diff options
Diffstat (limited to 'docs/release/src')
377 files changed, 164852 insertions, 0 deletions
diff --git a/docs/release/src/devices/cpu/m68000/m68kcpu.cpp b/docs/release/src/devices/cpu/m68000/m68kcpu.cpp new file mode 100644 index 00000000000..b11b0d987af --- /dev/null +++ b/docs/release/src/devices/cpu/m68000/m68kcpu.cpp @@ -0,0 +1,2777 @@ +// license:BSD-3-Clause +// copyright-holders:Karl Stenerud +/* ======================================================================== */ +/* ========================= LICENSING & COPYRIGHT ======================== */ +/* ======================================================================== */ + +#if 0 +static const char copyright_notice[] = +"MUSASHI\n" +"Version 4.95 (2012-02-19)\n" +"A portable Motorola M68xxx/CPU32/ColdFire processor emulation engine.\n" +"Copyright Karl Stenerud. All rights reserved.\n" +; +#endif + + +/* ======================================================================== */ +/* ================================= NOTES ================================ */ +/* ======================================================================== */ + + + +/* ======================================================================== */ +/* ================================ INCLUDES ============================== */ +/* ======================================================================== */ + +#include "emu.h" +#include "debugger.h" +#include "m68kcpu.h" +#include "m68kops.h" + +#include "m68kfpu.hxx" +#include "m68kmmu.h" + +extern void m68040_fpu_op0(m68000_base_device *m68k); +extern void m68040_fpu_op1(m68000_base_device *m68k); +extern void m68881_mmu_ops(m68000_base_device *m68k); + +/* ======================================================================== */ +/* ================================= DATA ================================= */ +/* ======================================================================== */ + +/* Used by shift & rotate instructions */ +const UINT8 m68ki_shift_8_table[65] = +{ + 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff +}; +const UINT16 m68ki_shift_16_table[65] = +{ + 0x0000, 0x8000, 0xc000, 0xe000, 0xf000, 0xf800, 0xfc00, 0xfe00, 0xff00, + 0xff80, 0xffc0, 0xffe0, 0xfff0, 0xfff8, 0xfffc, 0xfffe, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff +}; +const UINT32 m68ki_shift_32_table[65] = +{ + 0x00000000, 0x80000000, 0xc0000000, 0xe0000000, 0xf0000000, 0xf8000000, + 0xfc000000, 0xfe000000, 0xff000000, 0xff800000, 0xffc00000, 0xffe00000, + 0xfff00000, 0xfff80000, 0xfffc0000, 0xfffe0000, 0xffff0000, 0xffff8000, + 0xffffc000, 0xffffe000, 0xfffff000, 0xfffff800, 0xfffffc00, 0xfffffe00, + 0xffffff00, 0xffffff80, 0xffffffc0, 0xffffffe0, 0xfffffff0, 0xfffffff8, + 0xfffffffc, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff +}; + + +/* Number of clock cycles to use for exception processing. + * I used 4 for any vectors that are undocumented for processing times. + */ +const UINT8 m68ki_exception_cycle_table[7][256] = +{ + { /* 000 */ + 40, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 50, /* 2: Bus Error (unemulated) */ + 50, /* 3: Address Error (unemulated) */ + 34, /* 4: Illegal Instruction */ + 38, /* 5: Divide by Zero */ + 40, /* 6: CHK */ + 34, /* 7: TRAPV */ + 34, /* 8: Privilege Violation */ + 34, /* 9: Trace */ + 4, /* 10: 1010 */ + 4, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 44, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 44, /* 24: Spurious Interrupt */ + 44, /* 25: Level 1 Interrupt Autovector */ + 44, /* 26: Level 2 Interrupt Autovector */ + 44, /* 27: Level 3 Interrupt Autovector */ + 44, /* 28: Level 4 Interrupt Autovector */ + 44, /* 29: Level 5 Interrupt Autovector */ + 44, /* 30: Level 6 Interrupt Autovector */ + 44, /* 31: Level 7 Interrupt Autovector */ + 34, /* 32: TRAP #0 */ + 34, /* 33: TRAP #1 */ + 34, /* 34: TRAP #2 */ + 34, /* 35: TRAP #3 */ + 34, /* 36: TRAP #4 */ + 34, /* 37: TRAP #5 */ + 34, /* 38: TRAP #6 */ + 34, /* 39: TRAP #7 */ + 34, /* 40: TRAP #8 */ + 34, /* 41: TRAP #9 */ + 34, /* 42: TRAP #10 */ + 34, /* 43: TRAP #11 */ + 34, /* 44: TRAP #12 */ + 34, /* 45: TRAP #13 */ + 34, /* 46: TRAP #14 */ + 34, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, + { /* 010 */ + 40, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 126, /* 2: Bus Error (unemulated) */ + 126, /* 3: Address Error (unemulated) */ + 38, /* 4: Illegal Instruction */ + 44, /* 5: Divide by Zero */ + 44, /* 6: CHK */ + 34, /* 7: TRAPV */ + 38, /* 8: Privilege Violation */ + 38, /* 9: Trace */ + 4, /* 10: 1010 */ + 4, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 44, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 46, /* 24: Spurious Interrupt */ + 46, /* 25: Level 1 Interrupt Autovector */ + 46, /* 26: Level 2 Interrupt Autovector */ + 46, /* 27: Level 3 Interrupt Autovector */ + 46, /* 28: Level 4 Interrupt Autovector */ + 46, /* 29: Level 5 Interrupt Autovector */ + 46, /* 30: Level 6 Interrupt Autovector */ + 46, /* 31: Level 7 Interrupt Autovector */ + 38, /* 32: TRAP #0 */ + 38, /* 33: TRAP #1 */ + 38, /* 34: TRAP #2 */ + 38, /* 35: TRAP #3 */ + 38, /* 36: TRAP #4 */ + 38, /* 37: TRAP #5 */ + 38, /* 38: TRAP #6 */ + 38, /* 39: TRAP #7 */ + 38, /* 40: TRAP #8 */ + 38, /* 41: TRAP #9 */ + 38, /* 42: TRAP #10 */ + 38, /* 43: TRAP #11 */ + 38, /* 44: TRAP #12 */ + 38, /* 45: TRAP #13 */ + 38, /* 46: TRAP #14 */ + 38, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, + { /* 020 */ + 4, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 50, /* 2: Bus Error (unemulated) */ + 50, /* 3: Address Error (unemulated) */ + 20, /* 4: Illegal Instruction */ + 38, /* 5: Divide by Zero */ + 40, /* 6: CHK */ + 20, /* 7: TRAPV */ + 34, /* 8: Privilege Violation */ + 25, /* 9: Trace */ + 20, /* 10: 1010 */ + 20, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 30, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 30, /* 24: Spurious Interrupt */ + 30, /* 25: Level 1 Interrupt Autovector */ + 30, /* 26: Level 2 Interrupt Autovector */ + 30, /* 27: Level 3 Interrupt Autovector */ + 30, /* 28: Level 4 Interrupt Autovector */ + 30, /* 29: Level 5 Interrupt Autovector */ + 30, /* 30: Level 6 Interrupt Autovector */ + 30, /* 31: Level 7 Interrupt Autovector */ + 20, /* 32: TRAP #0 */ + 20, /* 33: TRAP #1 */ + 20, /* 34: TRAP #2 */ + 20, /* 35: TRAP #3 */ + 20, /* 36: TRAP #4 */ + 20, /* 37: TRAP #5 */ + 20, /* 38: TRAP #6 */ + 20, /* 39: TRAP #7 */ + 20, /* 40: TRAP #8 */ + 20, /* 41: TRAP #9 */ + 20, /* 42: TRAP #10 */ + 20, /* 43: TRAP #11 */ + 20, /* 44: TRAP #12 */ + 20, /* 45: TRAP #13 */ + 20, /* 46: TRAP #14 */ + 20, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, + { /* 030 - not correct */ + 4, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 50, /* 2: Bus Error (unemulated) */ + 50, /* 3: Address Error (unemulated) */ + 20, /* 4: Illegal Instruction */ + 38, /* 5: Divide by Zero */ + 40, /* 6: CHK */ + 20, /* 7: TRAPV */ + 34, /* 8: Privilege Violation */ + 25, /* 9: Trace */ + 20, /* 10: 1010 */ + 20, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 30, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 30, /* 24: Spurious Interrupt */ + 30, /* 25: Level 1 Interrupt Autovector */ + 30, /* 26: Level 2 Interrupt Autovector */ + 30, /* 27: Level 3 Interrupt Autovector */ + 30, /* 28: Level 4 Interrupt Autovector */ + 30, /* 29: Level 5 Interrupt Autovector */ + 30, /* 30: Level 6 Interrupt Autovector */ + 30, /* 31: Level 7 Interrupt Autovector */ + 20, /* 32: TRAP #0 */ + 20, /* 33: TRAP #1 */ + 20, /* 34: TRAP #2 */ + 20, /* 35: TRAP #3 */ + 20, /* 36: TRAP #4 */ + 20, /* 37: TRAP #5 */ + 20, /* 38: TRAP #6 */ + 20, /* 39: TRAP #7 */ + 20, /* 40: TRAP #8 */ + 20, /* 41: TRAP #9 */ + 20, /* 42: TRAP #10 */ + 20, /* 43: TRAP #11 */ + 20, /* 44: TRAP #12 */ + 20, /* 45: TRAP #13 */ + 20, /* 46: TRAP #14 */ + 20, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, + { /* 040 */ // TODO: these values are not correct + 4, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 50, /* 2: Bus Error (unemulated) */ + 50, /* 3: Address Error (unemulated) */ + 20, /* 4: Illegal Instruction */ + 38, /* 5: Divide by Zero */ + 40, /* 6: CHK */ + 20, /* 7: TRAPV */ + 34, /* 8: Privilege Violation */ + 25, /* 9: Trace */ + 20, /* 10: 1010 */ + 20, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 30, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 30, /* 24: Spurious Interrupt */ + 30, /* 25: Level 1 Interrupt Autovector */ + 30, /* 26: Level 2 Interrupt Autovector */ + 30, /* 27: Level 3 Interrupt Autovector */ + 30, /* 28: Level 4 Interrupt Autovector */ + 30, /* 29: Level 5 Interrupt Autovector */ + 30, /* 30: Level 6 Interrupt Autovector */ + 30, /* 31: Level 7 Interrupt Autovector */ + 20, /* 32: TRAP #0 */ + 20, /* 33: TRAP #1 */ + 20, /* 34: TRAP #2 */ + 20, /* 35: TRAP #3 */ + 20, /* 36: TRAP #4 */ + 20, /* 37: TRAP #5 */ + 20, /* 38: TRAP #6 */ + 20, /* 39: TRAP #7 */ + 20, /* 40: TRAP #8 */ + 20, /* 41: TRAP #9 */ + 20, /* 42: TRAP #10 */ + 20, /* 43: TRAP #11 */ + 20, /* 44: TRAP #12 */ + 20, /* 45: TRAP #13 */ + 20, /* 46: TRAP #14 */ + 20, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, + { /* CPU32 */ + 4, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 50, /* 2: Bus Error (unemulated) */ + 50, /* 3: Address Error (unemulated) */ + 20, /* 4: Illegal Instruction */ + 38, /* 5: Divide by Zero */ + 40, /* 6: CHK */ + 20, /* 7: TRAPV */ + 34, /* 8: Privilege Violation */ + 25, /* 9: Trace */ + 20, /* 10: 1010 */ + 20, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 30, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 30, /* 24: Spurious Interrupt */ + 30, /* 25: Level 1 Interrupt Autovector */ + 30, /* 26: Level 2 Interrupt Autovector */ + 30, /* 27: Level 3 Interrupt Autovector */ + 30, /* 28: Level 4 Interrupt Autovector */ + 30, /* 29: Level 5 Interrupt Autovector */ + 30, /* 30: Level 6 Interrupt Autovector */ + 30, /* 31: Level 7 Interrupt Autovector */ + 20, /* 32: TRAP #0 */ + 20, /* 33: TRAP #1 */ + 20, /* 34: TRAP #2 */ + 20, /* 35: TRAP #3 */ + 20, /* 36: TRAP #4 */ + 20, /* 37: TRAP #5 */ + 20, /* 38: TRAP #6 */ + 20, /* 39: TRAP #7 */ + 20, /* 40: TRAP #8 */ + 20, /* 41: TRAP #9 */ + 20, /* 42: TRAP #10 */ + 20, /* 43: TRAP #11 */ + 20, /* 44: TRAP #12 */ + 20, /* 45: TRAP #13 */ + 20, /* 46: TRAP #14 */ + 20, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, + { /* ColdFire - not correct */ + 4, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 50, /* 2: Bus Error (unemulated) */ + 50, /* 3: Address Error (unemulated) */ + 20, /* 4: Illegal Instruction */ + 38, /* 5: Divide by Zero */ + 40, /* 6: CHK */ + 20, /* 7: TRAPV */ + 34, /* 8: Privilege Violation */ + 25, /* 9: Trace */ + 20, /* 10: 1010 */ + 20, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 30, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 30, /* 24: Spurious Interrupt */ + 30, /* 25: Level 1 Interrupt Autovector */ + 30, /* 26: Level 2 Interrupt Autovector */ + 30, /* 27: Level 3 Interrupt Autovector */ + 30, /* 28: Level 4 Interrupt Autovector */ + 30, /* 29: Level 5 Interrupt Autovector */ + 30, /* 30: Level 6 Interrupt Autovector */ + 30, /* 31: Level 7 Interrupt Autovector */ + 20, /* 32: TRAP #0 */ + 20, /* 33: TRAP #1 */ + 20, /* 34: TRAP #2 */ + 20, /* 35: TRAP #3 */ + 20, /* 36: TRAP #4 */ + 20, /* 37: TRAP #5 */ + 20, /* 38: TRAP #6 */ + 20, /* 39: TRAP #7 */ + 20, /* 40: TRAP #8 */ + 20, /* 41: TRAP #9 */ + 20, /* 42: TRAP #10 */ + 20, /* 43: TRAP #11 */ + 20, /* 44: TRAP #12 */ + 20, /* 45: TRAP #13 */ + 20, /* 46: TRAP #14 */ + 20, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, +}; + +const UINT8 m68ki_ea_idx_cycle_table[64] = +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, /* ..01.000 no memory indirect, base nullptr */ + 5, /* ..01..01 memory indirect, base nullptr, outer nullptr */ + 7, /* ..01..10 memory indirect, base nullptr, outer 16 */ + 7, /* ..01..11 memory indirect, base nullptr, outer 32 */ + 0, 5, 7, 7, 0, 5, 7, 7, 0, 5, 7, 7, + 2, /* ..10.000 no memory indirect, base 16 */ + 7, /* ..10..01 memory indirect, base 16, outer nullptr */ + 9, /* ..10..10 memory indirect, base 16, outer 16 */ + 9, /* ..10..11 memory indirect, base 16, outer 32 */ + 0, 7, 9, 9, 0, 7, 9, 9, 0, 7, 9, 9, + 6, /* ..11.000 no memory indirect, base 32 */ + 11, /* ..11..01 memory indirect, base 32, outer nullptr */ + 13, /* ..11..10 memory indirect, base 32, outer 16 */ + 13, /* ..11..11 memory indirect, base 32, outer 32 */ + 0, 11, 13, 13, 0, 11, 13, 13, 0, 11, 13, 13 +}; + + + +/*************************************************************************** + CPU STATE DESCRIPTION +***************************************************************************/ + +#define MASK_ALL (CPU_TYPE_000 | CPU_TYPE_008 | CPU_TYPE_010 | CPU_TYPE_EC020 | CPU_TYPE_020 | CPU_TYPE_EC030 | CPU_TYPE_030 | CPU_TYPE_EC040 | CPU_TYPE_040 | CPU_TYPE_FSCPU32 ) +#define MASK_24BIT_SPACE (CPU_TYPE_000 | CPU_TYPE_008 | CPU_TYPE_010 | CPU_TYPE_EC020) +#define MASK_32BIT_SPACE (CPU_TYPE_020 | CPU_TYPE_EC030 | CPU_TYPE_030 | CPU_TYPE_EC040 | CPU_TYPE_040 | CPU_TYPE_FSCPU32 ) +#define MASK_010_OR_LATER (CPU_TYPE_010 | CPU_TYPE_EC020 | CPU_TYPE_020 | CPU_TYPE_030 | CPU_TYPE_EC030 | CPU_TYPE_040 | CPU_TYPE_EC040 | CPU_TYPE_FSCPU32 ) +#define MASK_020_OR_LATER (CPU_TYPE_EC020 | CPU_TYPE_020 | CPU_TYPE_EC030 | CPU_TYPE_030 | CPU_TYPE_EC040 | CPU_TYPE_040 | CPU_TYPE_FSCPU32 ) +#define MASK_030_OR_LATER (CPU_TYPE_030 | CPU_TYPE_EC030 | CPU_TYPE_040 | CPU_TYPE_EC040) +#define MASK_040_OR_LATER (CPU_TYPE_040 | CPU_TYPE_EC040) + + + +/* ======================================================================== */ +/* ================================= API ================================== */ +/* ======================================================================== */ + +static void set_irq_line(m68000_base_device *m68k, int irqline, int state) +{ + UINT32 old_level = m68k->int_level; + UINT32 vstate = m68k->virq_state; + UINT32 blevel; + + if(state == ASSERT_LINE) + vstate |= 1 << irqline; + else + vstate &= ~(1 << irqline); + m68k->virq_state = vstate; + + for(blevel = 7; blevel > 0; blevel--) + if(vstate & (1 << blevel)) + break; + + m68k->int_level = blevel << 8; + + /* A transition from < 7 to 7 always interrupts (NMI) */ + /* Note: Level 7 can also level trigger like a normal IRQ */ + if(old_level != 0x0700 && m68k->int_level == 0x0700) + m68k->nmi_pending = TRUE; +} + +void m68000_base_device::presave() +{ + save_sr = m68ki_get_sr(this); + save_stopped = (stopped & STOP_LEVEL_STOP) != 0; + save_halted = (stopped & STOP_LEVEL_HALT) != 0; +} + +void m68000_base_device::postload() +{ + m68ki_set_sr_noint_nosp(this, save_sr); + //fprintf(stderr, "Reloaded, pc=%x\n", REG_PC(m68k)); + stopped = (save_stopped ? STOP_LEVEL_STOP : 0) | (save_halted ? STOP_LEVEL_HALT : 0); + m68ki_jump(this, REG_PC(this)); +} + +static void m68k_cause_bus_error(m68000_base_device *m68k) +{ + UINT32 sr; + + sr = m68ki_init_exception(m68k); + + m68k->run_mode = RUN_MODE_BERR_AERR_RESET; + + if (!CPU_TYPE_IS_010_PLUS(m68k->cpu_type)) + { + /* Note: This is implemented for 68000 only! */ + m68ki_stack_frame_buserr(m68k, sr); + } + else if (CPU_TYPE_IS_010(m68k->cpu_type)) + { + /* only the 68010 throws this unique type-1000 frame */ + m68ki_stack_frame_1000(m68k, REG_PPC(m68k), sr, EXCEPTION_BUS_ERROR); + } + else if (m68k->mmu_tmp_buserror_address == REG_PPC(m68k)) + { + m68ki_stack_frame_1010(m68k, sr, EXCEPTION_BUS_ERROR, REG_PPC(m68k), m68k->mmu_tmp_buserror_address); + } + else + { + m68ki_stack_frame_1011(m68k, sr, EXCEPTION_BUS_ERROR, REG_PPC(m68k), m68k->mmu_tmp_buserror_address); + } + + m68ki_jump_vector(m68k, EXCEPTION_BUS_ERROR); +} + +WRITE_LINE_MEMBER( m68000_base_device::write_irq1 ) +{ + set_input_line( M68K_IRQ_1, state ); +} + +WRITE_LINE_MEMBER( m68000_base_device::write_irq2 ) +{ + set_input_line( M68K_IRQ_2, state ); +} + +WRITE_LINE_MEMBER( m68000_base_device::write_irq3 ) +{ + set_input_line( M68K_IRQ_3, state ); +} + +WRITE_LINE_MEMBER( m68000_base_device::write_irq4 ) +{ + set_input_line( M68K_IRQ_4, state ); +} + +WRITE_LINE_MEMBER( m68000_base_device::write_irq5 ) +{ + set_input_line( M68K_IRQ_5, state ); +} + +WRITE_LINE_MEMBER( m68000_base_device::write_irq6 ) +{ + set_input_line( M68K_IRQ_6, state ); +} + +WRITE_LINE_MEMBER( m68000_base_device::write_irq7 ) +{ + set_input_line( M68K_IRQ_7, state ); +} + +bool m68000_base_device::memory_translate(address_spacenum space, int intention, offs_t &address) +{ + /* only applies to the program address space and only does something if the MMU's enabled */ + { + /* 68040 needs to call the MMU even when disabled so transparent translation works */ + if ((space == AS_PROGRAM) && ((pmmu_enabled) || (CPU_TYPE_IS_040_PLUS(cpu_type)))) + { + // FIXME: mmu_tmp_sr will be overwritten in pmmu_translate_addr_with_fc + UINT16 temp_mmu_tmp_sr = mmu_tmp_sr; + int mode = s_flag ? FUNCTION_CODE_SUPERVISOR_PROGRAM : FUNCTION_CODE_USER_PROGRAM; +// UINT32 va=address; + + if (CPU_TYPE_IS_040_PLUS(cpu_type)) + { + address = pmmu_translate_addr_with_fc_040(this, address, mode, 1); + } + else + { + address = pmmu_translate_addr_with_fc(this, address, mode, 1); + } + + if ((mmu_tmp_sr & M68K_MMU_SR_INVALID) != 0) { +// logerror("cpu_translate_m68k failed with mmu_sr=%04x va=%08x pa=%08x\n",mmu_tmp_sr,va ,address); + address = 0; + } + + mmu_tmp_sr = temp_mmu_tmp_sr; + } + } + return TRUE; +} + + + + + + + + + +inline void m68000_base_device::cpu_execute(void) +{ + initial_cycles = remaining_cycles; + + /* eat up any reset cycles */ + if (reset_cycles) { + int rc = reset_cycles; + reset_cycles = 0; + remaining_cycles -= rc; + + if (remaining_cycles <= 0) return; + } + + /* See if interrupts came in */ + m68ki_check_interrupts(this); + + /* Make sure we're not stopped */ + if(!stopped) + { + /* Return point if we had an address error */ + check_address_error: +// HBMAME temp hack, to see if this allows us to run chinese hacks +#if 0 + if (m_address_error==1) + { + m_address_error = 0; + try { + m68ki_exception_address_error(this); + } + catch(int error) + { + if (error==10) + { + m_address_error = 1; + REG_PPC(this) = REG_PC(this); + goto check_address_error; + } + else + throw; + } + if(stopped) + { + if (remaining_cycles > 0) + remaining_cycles = 0; + return; + } + } +#endif + + /* Main loop. Keep going until we run out of clock cycles */ + while (remaining_cycles > 0) + { + /* Set tracing accodring to T1. (T0 is done inside instruction) */ + m68ki_trace_t1(this); /* auto-disable (see m68kcpu.h) */ + + /* Call external hook to peek at CPU */ + debugger_instruction_hook(this, REG_PC(this)); + + /* call external instruction hook (independent of debug mode) */ + if (!instruction_hook.isnull()) + instruction_hook(*program, REG_PC(this), 0xffffffff); + + /* Record previous program counter */ + REG_PPC(this) = REG_PC(this); + + try + { + if (!pmmu_enabled) + { + run_mode = RUN_MODE_NORMAL; + /* Read an instruction and call its handler */ + ir = m68ki_read_imm_16(this); + jump_table[ir](this); + remaining_cycles -= cyc_instruction[ir]; + } + else + { + run_mode = RUN_MODE_NORMAL; + // save CPU address registers values at start of instruction + int i; + UINT32 tmp_dar[16]; + + for (i = 15; i >= 0; i--) + { + tmp_dar[i] = REG_DA(this)[i]; + } + + mmu_tmp_buserror_occurred = 0; + + /* Read an instruction and call its handler */ + ir = m68ki_read_imm_16(this); + + if (!mmu_tmp_buserror_occurred) + { + jump_table[ir](this); + remaining_cycles -= cyc_instruction[ir]; + } + + if (mmu_tmp_buserror_occurred) + { + UINT32 sr; + + mmu_tmp_buserror_occurred = 0; + + // restore cpu address registers to value at start of instruction + for (i = 15; i >= 0; i--) + { + if (REG_DA(this)[i] != tmp_dar[i]) + { +// logerror("PMMU: pc=%08x sp=%08x bus error: fixed %s[%d]: %08x -> %08x\n", +// REG_PPC(this), REG_A(this)[7], i < 8 ? "D" : "A", i & 7, REG_DA(this)[i], tmp_dar[i]); + REG_DA(this)[i] = tmp_dar[i]; + } + } + + sr = m68ki_init_exception(this); + + run_mode = RUN_MODE_BERR_AERR_RESET; + + if (!CPU_TYPE_IS_020_PLUS(cpu_type)) + { + /* Note: This is implemented for 68000 only! */ + m68ki_stack_frame_buserr(this, sr); + } + else if(!CPU_TYPE_IS_040_PLUS(cpu_type)) { + if (mmu_tmp_buserror_address == REG_PPC(this)) + { + m68ki_stack_frame_1010(this, sr, EXCEPTION_BUS_ERROR, REG_PPC(this), mmu_tmp_buserror_address); + } + else + { + m68ki_stack_frame_1011(this, sr, EXCEPTION_BUS_ERROR, REG_PPC(this), mmu_tmp_buserror_address); + } + } + else + { + m68ki_stack_frame_0111(this, sr, EXCEPTION_BUS_ERROR, REG_PPC(this), mmu_tmp_buserror_address, true); + } + + m68ki_jump_vector(this, EXCEPTION_BUS_ERROR); + + // TODO: + /* Use up some clock cycles and undo the instruction's cycles */ + // remaining_cycles -= cyc_exception[EXCEPTION_BUS_ERROR] - cyc_instruction[ir]; + } + } + } + catch (int error) + { + if (error==10) + { + m_address_error = 1; + goto check_address_error; + } + else + throw; + } + + + /* Trace m68k_exception, if necessary */ + m68ki_exception_if_trace(this); /* auto-disable (see m68kcpu.h) */ + } + + /* set previous PC to current PC for the next entry into the loop */ + REG_PPC(this) = REG_PC(this); + } + else if (remaining_cycles > 0) + remaining_cycles = 0; +} + + + +void m68000_base_device::init_cpu_common(void) +{ + static UINT32 emulation_initialized = 0; + + //this = device;//deviceparam; + program = &space(AS_PROGRAM); + oprogram = has_space(AS_DECRYPTED_OPCODES) ? &space(AS_DECRYPTED_OPCODES) : program; + int_ack_callback = device_irq_acknowledge_delegate(FUNC(m68000_base_device::standard_irq_callback_member), this); + + /* disable all MMUs */ + has_pmmu = 0; + has_hmmu = 0; + pmmu_enabled = 0; + hmmu_enabled = 0; + + /* The first call to this function initializes the opcode handler jump table */ + if(!emulation_initialized) + { + m68ki_build_opcode_table(); + emulation_initialized = 1; + } + + /* Note, D covers A because the dar array is common, REG_A(m68k)=REG_D(m68k)+8 */ + save_item(NAME(REG_D(this))); + save_item(NAME(REG_PPC(this))); + save_item(NAME(REG_PC(this))); + save_item(NAME(REG_USP(this))); + save_item(NAME(REG_ISP(this))); + save_item(NAME(REG_MSP(this))); + save_item(NAME(vbr)); + save_item(NAME(sfc)); + save_item(NAME(dfc)); + save_item(NAME(cacr)); + save_item(NAME(caar)); + save_item(NAME(save_sr)); + save_item(NAME(int_level)); + save_item(NAME(save_stopped)); + save_item(NAME(save_halted)); + save_item(NAME(pref_addr)); + save_item(NAME(pref_data)); + save_item(NAME(reset_cycles)); + save_item(NAME(virq_state)); + save_item(NAME(nmi_pending)); + save_item(NAME(has_pmmu)); + save_item(NAME(has_hmmu)); + save_item(NAME(pmmu_enabled)); + save_item(NAME(hmmu_enabled)); + + save_item(NAME(mmu_crp_aptr)); + save_item(NAME(mmu_crp_limit)); + save_item(NAME(mmu_srp_aptr)); + save_item(NAME(mmu_srp_limit)); + save_item(NAME(mmu_urp_aptr)); + save_item(NAME(mmu_tc)); + save_item(NAME(mmu_sr)); + save_item(NAME(mmu_sr_040)); + save_item(NAME(mmu_atc_rr)); + save_item(NAME(mmu_tt0)); + save_item(NAME(mmu_tt1)); + save_item(NAME(mmu_itt0)); + save_item(NAME(mmu_itt1)); + save_item(NAME(mmu_dtt0)); + save_item(NAME(mmu_dtt1)); + save_item(NAME(mmu_acr0)); + save_item(NAME(mmu_acr1)); + save_item(NAME(mmu_acr2)); + save_item(NAME(mmu_acr3)); + save_item(NAME(mmu_last_page_entry)); + save_item(NAME(mmu_last_page_entry_addr)); + + for (int i=0; i<MMU_ATC_ENTRIES;i++) { + save_item(NAME(mmu_atc_tag[i]), i); + save_item(NAME(mmu_atc_data[i]), i); + } + + machine().save().register_presave(save_prepost_delegate(FUNC(m68000_base_device::presave), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(m68000_base_device::postload), this)); + + m_icountptr = &remaining_cycles; + remaining_cycles = 0; + +} + +void m68000_base_device::reset_cpu(void) +{ + /* Disable the PMMU/HMMU on reset, if any */ + pmmu_enabled = 0; + hmmu_enabled = 0; + + mmu_tc = 0; + mmu_tt0 = 0; + mmu_tt1 = 0; + + /* Clear all stop levels and eat up all remaining cycles */ + stopped = 0; + if (remaining_cycles > 0) + remaining_cycles = 0; + + run_mode = RUN_MODE_BERR_AERR_RESET; + + /* Turn off tracing */ + t1_flag = t0_flag = 0; + m68ki_clear_trace(this); + /* Interrupt mask to level 7 */ + int_mask = 0x0700; + int_level = 0; + virq_state = 0; + /* Reset VBR */ + vbr = 0; + /* Go to supervisor mode */ + m68ki_set_sm_flag(this, SFLAG_SET | MFLAG_CLEAR); + + /* Invalidate the prefetch queue */ + /* Set to arbitrary number since our first fetch is from 0 */ + pref_addr = 0x1000; + + /* Read the initial stack pointer and program counter */ + m68ki_jump(this, 0); + REG_SP(this) = m68ki_read_imm_32(this); + REG_PC(this) = m68ki_read_imm_32(this); + m68ki_jump(this, REG_PC(this)); + + run_mode = RUN_MODE_NORMAL; + + reset_cycles = cyc_exception[EXCEPTION_RESET]; + + /* flush the MMU's cache */ + pmmu_atc_flush(this); + + if(CPU_TYPE_IS_EC020_PLUS(cpu_type)) + { + // clear instruction cache + m68ki_ic_clear(this); + } +} + + + +/************************************************************************** + * STATE IMPORT/EXPORT + **************************************************************************/ + +void m68000_base_device::state_import(const device_state_entry &entry) +{ + switch (entry.index()) + { + case M68K_SR: + case STATE_GENFLAGS: + m68ki_set_sr(this, iotemp); + break; + + case M68K_ISP: + if (s_flag && !m_flag) + REG_SP(this) = iotemp; + else + REG_ISP(this) = iotemp; + break; + + case M68K_USP: + if (!s_flag) + REG_SP(this) = iotemp; + else + REG_USP(this) = iotemp; + break; + + case M68K_MSP: + if (s_flag && m_flag) + REG_SP(this) = iotemp; + else + REG_MSP(this) = iotemp; + break; + + default: + fatalerror("CPU_IMPORT_STATE(this) called for unexpected value\n"); + } + +} + + + +void m68000_base_device::state_export(const device_state_entry &entry) +{ + switch (entry.index()) + { + case M68K_SR: + case STATE_GENFLAGS: + iotemp = m68ki_get_sr(this); + break; + + case M68K_ISP: + iotemp = (s_flag && !m_flag) ? REG_SP(this) : REG_ISP(this); + break; + + case M68K_USP: + iotemp = (!s_flag) ? REG_SP(this) : REG_USP(this); + break; + + case M68K_MSP: + iotemp = (s_flag && m_flag) ? REG_SP(this) : REG_MSP(this); + break; + + case M68K_FP0: + case M68K_FP1: + case M68K_FP2: + case M68K_FP3: + case M68K_FP4: + case M68K_FP5: + case M68K_FP6: + case M68K_FP7: + break; + + default: + fatalerror("CPU_EXPORT_STATE(this) called for unexpected value\n"); + } +} + +void m68000_base_device::state_string_export(const device_state_entry &entry, std::string &str) const +{ + UINT16 sr; + + switch (entry.index()) + { + case M68K_FP0: + str = string_format("%f", fx80_to_double(REG_FP(this)[0])); + break; + + case M68K_FP1: + str = string_format("%f", fx80_to_double(REG_FP(this)[1])); + break; + + case M68K_FP2: + str = string_format("%f", fx80_to_double(REG_FP(this)[2])); + break; + + case M68K_FP3: + str = string_format("%f", fx80_to_double(REG_FP(this)[3])); + break; + + case M68K_FP4: + str = string_format("%f", fx80_to_double(REG_FP(this)[4])); + break; + + case M68K_FP5: + str = string_format("%f", fx80_to_double(REG_FP(this)[5])); + break; + + case M68K_FP6: + str = string_format("%f", fx80_to_double(REG_FP(this)[6])); + break; + + case M68K_FP7: + str = string_format("%f", fx80_to_double(REG_FP(this)[7])); + break; + + case STATE_GENFLAGS: + sr = m68ki_get_sr(this); + str = string_format("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", + sr & 0x8000 ? 'T':'.', + sr & 0x4000 ? 't':'.', + sr & 0x2000 ? 'S':'.', + sr & 0x1000 ? 'M':'.', + sr & 0x0800 ? '?':'.', + sr & 0x0400 ? 'I':'.', + sr & 0x0200 ? 'I':'.', + sr & 0x0100 ? 'I':'.', + sr & 0x0080 ? '?':'.', + sr & 0x0040 ? '?':'.', + sr & 0x0020 ? '?':'.', + sr & 0x0010 ? 'X':'.', + sr & 0x0008 ? 'N':'.', + sr & 0x0004 ? 'Z':'.', + sr & 0x0002 ? 'V':'.', + sr & 0x0001 ? 'C':'.'); + break; + } + +} + + +/* global access */ + +void m68000_base_device::set_hmmu_enable(int enable) +{ + hmmu_enabled = enable; +} + +void m68000_base_device::set_instruction_hook(read32_delegate ihook) +{ + instruction_hook = ihook; +} + +/**************************************************************************** + * 8-bit data memory interface + ****************************************************************************/ + +UINT16 m68000_base_device::m68008_read_immediate_16(offs_t address) +{ + return (m_odirect->read_byte(address) << 8) | (m_odirect->read_byte(address + 1)); +} + +void m68000_base_device::init8(address_space &space, address_space &ospace) +{ + m_space = &space; + m_direct = &space.direct(); + m_ospace = &ospace; + m_odirect = &ospace.direct(); +// m_cpustate = this; + opcode_xor = 0; + + readimm16 = m68k_readimm16_delegate(FUNC(m68000_base_device::m68008_read_immediate_16), this); + read8 = m68k_read8_delegate(FUNC(address_space::read_byte), &space); + read16 = m68k_read16_delegate(FUNC(address_space::read_word), &space); + read32 = m68k_read32_delegate(FUNC(address_space::read_dword), &space); + write8 = m68k_write8_delegate(FUNC(address_space::write_byte), &space); + write16 = m68k_write16_delegate(FUNC(address_space::write_word), &space); + write32 = m68k_write32_delegate(FUNC(address_space::write_dword), &space); +} + +/**************************************************************************** + * 16-bit data memory interface + ****************************************************************************/ + +UINT16 m68000_base_device::read_immediate_16(offs_t address) +{ + return m_odirect->read_word((address), opcode_xor); +} + +UINT16 m68000_base_device::simple_read_immediate_16(offs_t address) +{ + return m_odirect->read_word(address); +} + +void m68000_base_device::m68000_write_byte(offs_t address, UINT8 data) +{ + static const UINT16 masks[] = {0xff00, 0x00ff}; + + m_space->write_word(address & ~1, data | (data << 8), masks[address & 1]); +} + +void m68000_base_device::init16(address_space &space, address_space &ospace) +{ + m_space = &space; + m_direct = &space.direct(); + m_ospace = &ospace; + m_odirect = &ospace.direct(); + + opcode_xor = 0; + + readimm16 = m68k_readimm16_delegate(FUNC(m68000_base_device::simple_read_immediate_16), this); + read8 = m68k_read8_delegate(FUNC(address_space::read_byte), &space); + read16 = m68k_read16_delegate(FUNC(address_space::read_word), &space); + read32 = m68k_read32_delegate(FUNC(address_space::read_dword), &space); + write8 = m68k_write8_delegate(FUNC(m68000_base_device::m68000_write_byte), this); + write16 = m68k_write16_delegate(FUNC(address_space::write_word), &space); + write32 = m68k_write32_delegate(FUNC(address_space::write_dword), &space); +} + + + + + +/**************************************************************************** + * 32-bit data memory interface + ****************************************************************************/ + +/* interface for 32-bit data bus (68EC020, 68020) */ +void m68000_base_device::init32(address_space &space, address_space &ospace) +{ + m_space = &space; + m_direct = &space.direct(); + m_ospace = &ospace; + m_odirect = &ospace.direct(); + opcode_xor = WORD_XOR_BE(0); + + readimm16 = m68k_readimm16_delegate(FUNC(m68000_base_device::read_immediate_16), this); + read8 = m68k_read8_delegate(FUNC(address_space::read_byte), &space); + read16 = m68k_read16_delegate(FUNC(address_space::read_word_unaligned), &space); + read32 = m68k_read32_delegate(FUNC(address_space::read_dword_unaligned), &space); + write8 = m68k_write8_delegate(FUNC(address_space::write_byte), &space); + write16 = m68k_write16_delegate(FUNC(address_space::write_word_unaligned), &space); + write32 = m68k_write32_delegate(FUNC(address_space::write_dword_unaligned), &space); +} + +/* interface for 32-bit data bus with PMMU (68EC020, 68020) */ +UINT8 m68000_base_device::read_byte_32_mmu(offs_t address) +{ + if (pmmu_enabled) + { + address = pmmu_translate_addr(this, address); + if (mmu_tmp_buserror_occurred) { + return ~0; + } + } + + return m_space->read_byte(address); +} + +void m68000_base_device::write_byte_32_mmu(offs_t address, UINT8 data) +{ + if (pmmu_enabled) + { + address = pmmu_translate_addr(this, address); + if (mmu_tmp_buserror_occurred) { + return; + } + } + + m_space->write_byte(address, data); +} + +UINT16 m68000_base_device::read_immediate_16_mmu(offs_t address) +{ + if (pmmu_enabled) + { + address = pmmu_translate_addr(this, address); + if (mmu_tmp_buserror_occurred) { + return ~0; + } + } + + return m_odirect->read_word((address), opcode_xor); +} + +/* potentially misaligned 16-bit reads with a 32-bit data bus (and 24-bit address bus) */ +UINT16 m68000_base_device::readword_d32_mmu(offs_t address) +{ + UINT16 result; + + if (pmmu_enabled) + { + UINT32 address0 = pmmu_translate_addr(this, address); + if (mmu_tmp_buserror_occurred) { + return ~0; + } else if (WORD_ALIGNED(address)) { + return m_space->read_word(address0); + } else { + UINT32 address1 = pmmu_translate_addr(this, address + 1); + if (mmu_tmp_buserror_occurred) { + return ~0; + } else { + result = m_space->read_byte(address0) << 8; + return result | m_space->read_byte(address1); + } + } + } + + if (WORD_ALIGNED(address)) + return m_space->read_word(address); + result = m_space->read_byte(address) << 8; + return result | m_space->read_byte(address + 1); +} + +/* potentially misaligned 16-bit writes with a 32-bit data bus (and 24-bit address bus) */ +void m68000_base_device::writeword_d32_mmu(offs_t address, UINT16 data) +{ + if (pmmu_enabled) + { + UINT32 address0 = pmmu_translate_addr(this, address); + if (mmu_tmp_buserror_occurred) { + return; + } else if (WORD_ALIGNED(address)) { + m_space->write_word(address0, data); + return; + } else { + UINT32 address1 = pmmu_translate_addr(this, address + 1); + if (mmu_tmp_buserror_occurred) { + return; + } else { + m_space->write_byte(address0, data >> 8); + m_space->write_byte(address1, data); + return; + } + } + } + + if (WORD_ALIGNED(address)) + { + m_space->write_word(address, data); + return; + } + m_space->write_byte(address, data >> 8); + m_space->write_byte(address + 1, data); +} + +/* potentially misaligned 32-bit reads with a 32-bit data bus (and 24-bit address bus) */ +UINT32 m68000_base_device::readlong_d32_mmu(offs_t address) +{ + UINT32 result; + + if (pmmu_enabled) + { + UINT32 address0 = pmmu_translate_addr(this, address); + if (mmu_tmp_buserror_occurred) { + return ~0; + } else if ((address +3) & 0xfc) { + // not at page boundary; use default code + address = address0; + } else if (DWORD_ALIGNED(address)) { // 0 + return m_space->read_dword(address0); + } else { + UINT32 address2 = pmmu_translate_addr(this, address+2); + if (mmu_tmp_buserror_occurred) { + return ~0; + } else if (WORD_ALIGNED(address)) { // 2 + result = m_space->read_word(address0) << 16; + return result | m_space->read_word(address2); + } else { + UINT32 address1 = pmmu_translate_addr(this, address+1); + UINT32 address3 = pmmu_translate_addr(this, address+3); + if (mmu_tmp_buserror_occurred) { + return ~0; + } else { + result = m_space->read_byte(address0) << 24; + result |= m_space->read_word(address1) << 8; + return result | m_space->read_byte(address3); + } + } + } + } + + if (DWORD_ALIGNED(address)) + return m_space->read_dword(address); + else if (WORD_ALIGNED(address)) + { + result = m_space->read_word(address) << 16; + return result | m_space->read_word(address + 2); + } + result = m_space->read_byte(address) << 24; + result |= m_space->read_word(address + 1) << 8; + return result | m_space->read_byte(address + 3); +} + +/* potentially misaligned 32-bit writes with a 32-bit data bus (and 24-bit address bus) */ +void m68000_base_device::writelong_d32_mmu(offs_t address, UINT32 data) +{ + if (pmmu_enabled) + { + UINT32 address0 = pmmu_translate_addr(this, address); + if (mmu_tmp_buserror_occurred) { + return; + } else if ((address +3) & 0xfc) { + // not at page boundary; use default code + address = address0; + } else if (DWORD_ALIGNED(address)) { // 0 + m_space->write_dword(address0, data); + return; + } else { + UINT32 address2 = pmmu_translate_addr(this, address+2); + if (mmu_tmp_buserror_occurred) { + return; + } else if (WORD_ALIGNED(address)) { // 2 + m_space->write_word(address0, data >> 16); + m_space->write_word(address2, data); + return; + } else { + UINT32 address1 = pmmu_translate_addr(this, address+1); + UINT32 address3 = pmmu_translate_addr(this, address+3); + if (mmu_tmp_buserror_occurred) { + return; + } else { + m_space->write_byte(address0, data >> 24); + m_space->write_word(address1, data >> 8); + m_space->write_byte(address3, data); + return; + } + } + } + } + + if (DWORD_ALIGNED(address)) + { + m_space->write_dword(address, data); + return; + } + else if (WORD_ALIGNED(address)) + { + m_space->write_word(address, data >> 16); + m_space->write_word(address + 2, data); + return; + } + m_space->write_byte(address, data >> 24); + m_space->write_word(address + 1, data >> 8); + m_space->write_byte(address + 3, data); +} + +void m68000_base_device::init32mmu(address_space &space, address_space &ospace) +{ + m_space = &space; + m_direct = &space.direct(); + m_ospace = &ospace; + m_odirect = &ospace.direct(); + opcode_xor = WORD_XOR_BE(0); + + readimm16 = m68k_readimm16_delegate(FUNC(m68000_base_device::read_immediate_16_mmu), this); + read8 = m68k_read8_delegate(FUNC(m68000_base_device::read_byte_32_mmu), this); + read16 = m68k_read16_delegate(FUNC(m68000_base_device::readword_d32_mmu), this); + read32 = m68k_read32_delegate(FUNC(m68000_base_device::readlong_d32_mmu), this); + write8 = m68k_write8_delegate(FUNC(m68000_base_device::write_byte_32_mmu), this); + write16 = m68k_write16_delegate(FUNC(m68000_base_device::writeword_d32_mmu), this); + write32 = m68k_write32_delegate(FUNC(m68000_base_device::writelong_d32_mmu), this); +} + + +/* interface for 32-bit data bus with PMMU (68EC020, 68020) */ +UINT8 m68000_base_device::read_byte_32_hmmu(offs_t address) +{ + if (hmmu_enabled) + { + address = hmmu_translate_addr(this, address); + } + + return m_space->read_byte(address); +} + +void m68000_base_device::write_byte_32_hmmu(offs_t address, UINT8 data) +{ + if (hmmu_enabled) + { + address = hmmu_translate_addr(this, address); + } + + m_space->write_byte(address, data); +} + +UINT16 m68000_base_device::read_immediate_16_hmmu(offs_t address) +{ + if (hmmu_enabled) + { + address = hmmu_translate_addr(this, address); + } + + return m_odirect->read_word((address), opcode_xor); +} + +/* potentially misaligned 16-bit reads with a 32-bit data bus (and 24-bit address bus) */ +UINT16 m68000_base_device::readword_d32_hmmu(offs_t address) +{ + UINT16 result; + + if (hmmu_enabled) + { + address = hmmu_translate_addr(this, address); + } + + if (WORD_ALIGNED(address)) + return m_space->read_word(address); + result = m_space->read_byte(address) << 8; + return result | m_space->read_byte(address + 1); +} + +/* potentially misaligned 16-bit writes with a 32-bit data bus (and 24-bit address bus) */ +void m68000_base_device::writeword_d32_hmmu(offs_t address, UINT16 data) +{ + if (hmmu_enabled) + { + address = hmmu_translate_addr(this, address); + } + + if (WORD_ALIGNED(address)) + { + m_space->write_word(address, data); + return; + } + m_space->write_byte(address, data >> 8); + m_space->write_byte(address + 1, data); +} + +/* potentially misaligned 32-bit reads with a 32-bit data bus (and 24-bit address bus) */ +UINT32 m68000_base_device::readlong_d32_hmmu(offs_t address) +{ + UINT32 result; + + if (hmmu_enabled) + { + address = hmmu_translate_addr(this, address); + } + + if (DWORD_ALIGNED(address)) + return m_space->read_dword(address); + else if (WORD_ALIGNED(address)) + { + result = m_space->read_word(address) << 16; + return result | m_space->read_word(address + 2); + } + result = m_space->read_byte(address) << 24; + result |= m_space->read_word(address + 1) << 8; + return result | m_space->read_byte(address + 3); +} + +/* potentially misaligned 32-bit writes with a 32-bit data bus (and 24-bit address bus) */ +void m68000_base_device::writelong_d32_hmmu(offs_t address, UINT32 data) +{ + if (hmmu_enabled) + { + address = hmmu_translate_addr(this, address); + } + + if (DWORD_ALIGNED(address)) + { + m_space->write_dword(address, data); + return; + } + else if (WORD_ALIGNED(address)) + { + m_space->write_word(address, data >> 16); + m_space->write_word(address + 2, data); + return; + } + m_space->write_byte(address, data >> 24); + m_space->write_word(address + 1, data >> 8); + m_space->write_byte(address + 3, data); +} + +void m68000_base_device::init32hmmu(address_space &space, address_space &ospace) +{ + m_space = &space; + m_direct = &space.direct(); + m_ospace = &ospace; + m_odirect = &ospace.direct(); + opcode_xor = WORD_XOR_BE(0); + + readimm16 = m68k_readimm16_delegate(FUNC(m68000_base_device::read_immediate_16_hmmu), this); + read8 = m68k_read8_delegate(FUNC(m68000_base_device::read_byte_32_hmmu), this); + read16 = m68k_read16_delegate(FUNC(m68000_base_device::readword_d32_hmmu), this); + read32 = m68k_read32_delegate(FUNC(m68000_base_device::readlong_d32_hmmu), this); + write8 = m68k_write8_delegate(FUNC(m68000_base_device::write_byte_32_hmmu), this); + write16 = m68k_write16_delegate(FUNC(m68000_base_device::writeword_d32_hmmu), this); + write32 = m68k_write32_delegate(FUNC(m68000_base_device::writelong_d32_hmmu), this); +} + +void m68000_base_device::set_reset_callback(write_line_delegate callback) +{ + reset_instr_callback = callback; +} + +// fault_addr = address to indicate fault at +// rw = 0 for read, 1 for write +// fc = 3-bit function code of access (usually you'd just put what m68k_get_fc() returns here) +void m68000_base_device::set_buserror_details(UINT32 fault_addr, UINT8 rw, UINT8 fc) +{ + aerr_address = fault_addr; + aerr_write_mode = rw; + aerr_fc = fc; +} + +void m68000_base_device::set_cmpild_callback(write32_delegate callback) +{ + cmpild_instr_callback = callback; +} + +void m68000_base_device::set_rte_callback(write_line_delegate callback) +{ + rte_instr_callback = callback; +} + +void m68000_base_device::set_tas_write_callback(write8_delegate callback) +{ + tas_write_callback = callback; +} + +UINT16 m68000_base_device::get_fc() +{ + return mmu_tmp_fc; +} + +/**************************************************************************** + * State definition + ****************************************************************************/ + +void m68000_base_device::define_state(void) +{ + UINT32 addrmask = (cpu_type & MASK_24BIT_SPACE) ? 0xffffff : 0xffffffff; + + state_add(M68K_PC, "PC", pc).mask(addrmask); + state_add(STATE_GENPC, "GENPC", pc).mask(addrmask).noshow(); + state_add(STATE_GENPCBASE, "GENPCBASE", ppc).mask(addrmask).noshow(); + state_add(M68K_SP, "SP", dar[15]); + state_add(STATE_GENSP, "GENSP", dar[15]).noshow(); + state_add(STATE_GENFLAGS, "GENFLAGS", iotemp).noshow().callimport().callexport().formatstr("%16s"); + state_add(M68K_ISP, "ISP", iotemp).callimport().callexport(); + state_add(M68K_USP, "USP", iotemp).callimport().callexport(); + if (cpu_type & MASK_020_OR_LATER) + state_add(M68K_MSP, "MSP", iotemp).callimport().callexport(); + + for (int regnum = 0; regnum < 8; regnum++) { + state_add(M68K_D0 + regnum, string_format("D%d", regnum).c_str(), dar[regnum]); + } + for (int regnum = 0; regnum < 8; regnum++) { + state_add(M68K_A0 + regnum, string_format("A%d", regnum).c_str(), dar[8 + regnum]); + } + + state_add(M68K_PREF_ADDR, "PREF_ADDR", pref_addr).mask(addrmask); + state_add(M68K_PREF_DATA, "PREF_DATA", pref_data); + + if (cpu_type & MASK_010_OR_LATER) + { + state_add(M68K_SFC, "SFC", sfc).mask(0x7); + state_add(M68K_DFC, "DFC", dfc).mask(0x7); + state_add(M68K_VBR, "VBR", vbr); + } + + if (cpu_type & MASK_020_OR_LATER) + { + state_add(M68K_CACR, "CACR", cacr); + state_add(M68K_CAAR, "CAAR", caar); + } + + if (cpu_type & MASK_030_OR_LATER) + { + for (int regnum = 0; regnum < 8; regnum++) { + state_add(M68K_FP0 + regnum, string_format("FP%d", regnum).c_str(), iotemp).callimport().callexport().formatstr("%10s"); + } + state_add(M68K_FPSR, "FPSR", fpsr); + state_add(M68K_FPCR, "FPCR", fpcr); + } +} + + + +/**************** + CPU Inits +****************/ + + +void m68000_base_device::init_cpu_m68000(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_000; +// dasm_type = M68K_CPU_TYPE_68000; + + init16(*program, *oprogram); + sr_mask = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[0]; + cyc_instruction = m68ki_cycles[0]; + cyc_exception = m68ki_exception_cycle_table[0]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 2; + cyc_dbcc_f_noexp = -2; + cyc_dbcc_f_exp = 2; + cyc_scc_r_true = 2; + cyc_movem_w = 2; + cyc_movem_l = 3; + cyc_shift = 1; + cyc_reset = 132; + has_pmmu = 0; + has_hmmu = 0; + has_fpu = 0; + + define_state(); + +} + + +void m68000_base_device::init_cpu_m68008(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_008; +// dasm_type = M68K_CPU_TYPE_68008; + + init8(*program, *oprogram); + sr_mask = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[0]; + cyc_instruction = m68ki_cycles[0]; + cyc_exception = m68ki_exception_cycle_table[0]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 2; + cyc_dbcc_f_noexp = -2; + cyc_dbcc_f_exp = 2; + cyc_scc_r_true = 2; + cyc_movem_w = 2; + cyc_movem_l = 3; + cyc_shift = 1; + cyc_reset = 132; + has_pmmu = 0; + has_fpu = 0; + + define_state(); + +} + + +void m68000_base_device::init_cpu_m68010(void) +{ + init_cpu_common(); + cpu_type = CPU_TYPE_010; +// dasm_type = M68K_CPU_TYPE_68010; + + init16(*program, *oprogram); + sr_mask = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[1]; + cyc_instruction = m68ki_cycles[1]; + cyc_exception = m68ki_exception_cycle_table[1]; + cyc_bcc_notake_b = -4; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 6; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 3; + cyc_shift = 1; + cyc_reset = 130; + has_pmmu = 0; + has_fpu = 0; + + define_state(); +} + + +void m68000_base_device::init_cpu_m68020(void) +{ + init_cpu_common(); + cpu_type = CPU_TYPE_020; +// dasm_type = M68K_CPU_TYPE_68020; + + init32(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[2]; + cyc_instruction = m68ki_cycles[2]; + cyc_exception = m68ki_exception_cycle_table[2]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + + define_state(); +} + +void m68000_base_device::init_cpu_m68020fpu(void) +{ + init_cpu_m68020(); + + has_fpu = 1; +} + +void m68000_base_device::init_cpu_m68020pmmu(void) +{ + init_cpu_m68020(); + + has_pmmu = 1; + has_fpu = 1; + + + init32mmu(*program, *oprogram); +} + + + +void m68000_base_device::init_cpu_m68020hmmu(void) +{ + init_cpu_m68020(); + + has_hmmu = 1; + has_fpu = 1; + + + init32hmmu(*program, *oprogram); +} + +void m68000_base_device::init_cpu_m68ec020(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_EC020; +// dasm_type = M68K_CPU_TYPE_68EC020; + + + init32(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[2]; + cyc_instruction = m68ki_cycles[2]; + cyc_exception = m68ki_exception_cycle_table[2]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + has_pmmu = 0; + has_fpu = 0; + + define_state(); +} + + +void m68000_base_device::init_cpu_m68030(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_030; +// dasm_type = M68K_CPU_TYPE_68030; + + + init32mmu(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[3]; + cyc_instruction = m68ki_cycles[3]; + cyc_exception = m68ki_exception_cycle_table[3]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + has_pmmu = 1; + has_fpu = 1; + + define_state(); +} + + + +void m68000_base_device::init_cpu_m68ec030(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_EC030; +// dasm_type = M68K_CPU_TYPE_68EC030; + + + init32(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[3]; + cyc_instruction = m68ki_cycles[3]; + cyc_exception = m68ki_exception_cycle_table[3]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + has_pmmu = 0; /* EC030 lacks the PMMU and is effectively a die-shrink 68020 */ + has_fpu = 1; + + define_state(); +} + + + +void m68000_base_device::init_cpu_m68040(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_040; +// dasm_type = M68K_CPU_TYPE_68040; + + + init32mmu(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[4]; + cyc_instruction = m68ki_cycles[4]; + cyc_exception = m68ki_exception_cycle_table[4]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + has_pmmu = 1; + has_fpu = 1; + + define_state(); +} + + +void m68000_base_device::init_cpu_m68ec040(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_EC040; +// dasm_type = M68K_CPU_TYPE_68EC040; + + + init32(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[4]; + cyc_instruction = m68ki_cycles[4]; + cyc_exception = m68ki_exception_cycle_table[4]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + has_pmmu = 0; + has_fpu = 0; + + define_state(); +} + + +void m68000_base_device::init_cpu_m68lc040(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_LC040; +// dasm_type = M68K_CPU_TYPE_68LC040; + + + init32mmu(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[4]; + cyc_instruction = m68ki_cycles[4]; + cyc_exception = m68ki_exception_cycle_table[4]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + has_pmmu = 1; + has_fpu = 0; + + define_state(); +} + + +void m68000_base_device::init_cpu_scc68070(void) +{ + init_cpu_m68010(); + cpu_type = CPU_TYPE_SCC070; +} + + +void m68000_base_device::init_cpu_fscpu32(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_FSCPU32; +// dasm_type = M68K_CPU_TYPE_FSCPU32; + + + init32(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[5]; + cyc_instruction = m68ki_cycles[5]; + cyc_exception = m68ki_exception_cycle_table[5]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + + define_state(); +} + + + +void m68000_base_device::init_cpu_coldfire(void) +{ + init_cpu_common(); + + cpu_type = CPU_TYPE_COLDFIRE; +// dasm_type = M68K_CPU_TYPE_COLDFIRE; + + + init32(*program, *oprogram); + sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + jump_table = m68ki_instruction_jump_table[6]; + cyc_instruction = m68ki_cycles[6]; + cyc_exception = m68ki_exception_cycle_table[6]; + cyc_bcc_notake_b = -2; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 4; + cyc_scc_r_true = 0; + cyc_movem_w = 2; + cyc_movem_l = 2; + cyc_shift = 0; + cyc_reset = 518; + + define_state(); +} + +CPU_DISASSEMBLE( dasm_m68000 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68000); +} + +CPU_DISASSEMBLE( dasm_m68008 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68008); +} + +CPU_DISASSEMBLE( dasm_m68010 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68010); +} + +CPU_DISASSEMBLE( dasm_m68020 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68020); +} + +CPU_DISASSEMBLE( dasm_m68030 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68030); +} + +CPU_DISASSEMBLE( dasm_m68ec030 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68EC030); +} + +CPU_DISASSEMBLE( dasm_m68040 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68040); +} + +CPU_DISASSEMBLE( dasm_m68ec040 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68EC040); +} + +CPU_DISASSEMBLE( dasm_m68lc040 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68LC040); +} + +CPU_DISASSEMBLE( dasm_fscpu32 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_FSCPU32); +} + +CPU_DISASSEMBLE( dasm_coldfire ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_COLDFIRE); +} + +offs_t m68000_base_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68000)(this, buffer, pc, oprom, opram, options); } +offs_t m68000_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68000)(this, buffer, pc, oprom, opram, options); } +offs_t m68301_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68000)(this, buffer, pc, oprom, opram, options); } +offs_t m68008_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68008)(this, buffer, pc, oprom, opram, options); } +offs_t m68008plcc_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68008)(this, buffer, pc, oprom, opram, options); } +offs_t m68010_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68010)(this, buffer, pc, oprom, opram, options); } +offs_t m68ec020_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, buffer, pc, oprom, opram, options); } +offs_t m68020_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, buffer, pc, oprom, opram, options); } +offs_t m68020fpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, buffer, pc, oprom, opram, options); } +offs_t m68020pmmu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, buffer, pc, oprom, opram, options); } +offs_t m68020hmmu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, buffer, pc, oprom, opram, options); } +offs_t m68ec030_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68ec030)(this, buffer, pc, oprom, opram, options); } +offs_t m68030_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68030)(this, buffer, pc, oprom, opram, options); } +offs_t m68ec040_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68ec040)(this, buffer, pc, oprom, opram, options); } +offs_t m68lc040_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68lc040)(this, buffer, pc, oprom, opram, options); } +offs_t m68040_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68040)(this, buffer, pc, oprom, opram, options); } +offs_t scc68070_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_m68000)(this, buffer, pc, oprom, opram, options); } +offs_t fscpu32_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_fscpu32)(this, buffer, pc, oprom, opram, options); } +offs_t mcf5206e_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) { return CPU_DISASSEMBLE_NAME(dasm_coldfire)(this, buffer, pc, oprom, opram, options); } + + +/* Service an interrupt request and start exception processing */ +void m68000_base_device::m68ki_exception_interrupt(m68000_base_device *m68k, UINT32 int_level) +{ + UINT32 vector; + UINT32 sr; + UINT32 new_pc; + + if(CPU_TYPE_IS_000(cpu_type)) + { + instr_mode = INSTRUCTION_NO; + } + + /* Turn off the stopped state */ + stopped &= ~STOP_LEVEL_STOP; + + /* If we are halted, don't do anything */ + if(stopped) + return; + + /* Acknowledge the interrupt */ + vector = int_ack_callback(*this, int_level); + + /* Get the interrupt vector */ + if(vector == M68K_INT_ACK_AUTOVECTOR) + /* Use the autovectors. This is the most commonly used implementation */ + vector = EXCEPTION_INTERRUPT_AUTOVECTOR+int_level; + else if(vector == M68K_INT_ACK_SPURIOUS) + /* Called if no devices respond to the interrupt acknowledge */ + vector = EXCEPTION_SPURIOUS_INTERRUPT; + else if(vector > 255) + return; + + /* Start exception processing */ + sr = m68ki_init_exception(m68k); + + /* Set the interrupt mask to the level of the one being serviced */ + int_mask = int_level<<8; + + /* Get the new PC */ + new_pc = m68ki_read_data_32(this, (vector<<2) + vbr); + + /* If vector is uninitialized, call the uninitialized interrupt vector */ + if(new_pc == 0) + new_pc = m68ki_read_data_32(this, (EXCEPTION_UNINITIALIZED_INTERRUPT<<2) + vbr); + + /* Generate a stack frame */ + m68ki_stack_frame_0000(this, REG_PC(m68k), sr, vector); + if(m_flag && CPU_TYPE_IS_EC020_PLUS(cpu_type)) + { + /* Create throwaway frame */ + m68ki_set_sm_flag(this, s_flag); /* clear M */ + sr |= 0x2000; /* Same as SR in master stack frame except S is forced high */ + m68ki_stack_frame_0001(this, REG_PC(m68k), sr, vector); + } + + m68ki_jump(this, new_pc); + + /* Defer cycle counting until later */ + remaining_cycles -= cyc_exception[vector]; +} + + +const device_type M68K = &device_creator<m68000_base_device>; + +//------------------------------------------------- +// h6280_device - constructor +//------------------------------------------------- + +m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : cpu_device(mconfig, M68K, "M68K", tag, owner, clock, "m68k", __FILE__), + m_program_config("program", ENDIANNESS_BIG, 16, 24), + m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, 16, 24) +{ + clear_all(); +} + + + + +m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, UINT32 clock, + const device_type type, UINT32 prg_data_width, UINT32 prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source) + : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), + m_program_config("program", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, internal_map), + m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, internal_map) +{ + clear_all(); +} + + +m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, UINT32 clock, + const device_type type, UINT32 prg_data_width, UINT32 prg_address_bits, const char *shortname, const char *source) + : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), + m_program_config("program", ENDIANNESS_BIG, prg_data_width, prg_address_bits), + m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, prg_data_width, prg_address_bits) +{ + clear_all(); +} + +void m68000_base_device::clear_all() +{ + cpu_type= 0; +// dasm_type= 0; + for (auto & elem : dar) + elem= 0; + ppc= 0; + pc= 0; + for (auto & elem : sp) + elem= 0; + vbr= 0; + sfc= 0; + dfc= 0; + cacr= 0; + caar= 0; + ir= 0; +// for (int i=0;i<8;i++) +// fpr[i]= 0; + fpiar= 0; + fpsr= 0; + fpcr= 0; + t1_flag= 0; + t0_flag= 0; + s_flag= 0; + m_flag= 0; + x_flag= 0; + n_flag= 0; + not_z_flag= 0; + v_flag= 0; + c_flag= 0; + int_mask= 0; + int_level= 0; + stopped= 0; + pref_addr= 0; + pref_data= 0; + sr_mask= 0; + instr_mode= 0; + run_mode= 0; + has_pmmu= 0; + has_hmmu= 0; + pmmu_enabled= 0; + hmmu_enabled= 0; + has_fpu= 0; + fpu_just_reset= 0; + + cyc_bcc_notake_b = 0; + cyc_bcc_notake_w = 0; + cyc_dbcc_f_noexp = 0; + cyc_dbcc_f_exp = 0; + cyc_scc_r_true = 0; + cyc_movem_w = 0; + cyc_movem_l = 0; + cyc_shift = 0; + cyc_reset = 0; + + initial_cycles = 0; + remaining_cycles = 0; + reset_cycles = 0; + tracing = 0; + + m_address_error = 0; + + aerr_address = 0; + aerr_write_mode = 0; + aerr_fc = 0; + + virq_state = 0; + nmi_pending = 0; + + cyc_instruction = nullptr; + cyc_exception = nullptr; + + int_ack_callback = device_irq_acknowledge_delegate(); + program = nullptr; + + opcode_xor = 0; +// readimm16 = 0; +// read8 = 0; +// read16 = 0; +// read32 = 0; +// write8 = 0; +// write16 = 0; +// write32 = 0; + + m_space = nullptr; + m_direct = nullptr; + + + iotemp = 0; + + save_sr = 0; + save_stopped = 0; + save_halted = 0; + + + mmu_crp_aptr = mmu_crp_limit = 0; + mmu_srp_aptr = mmu_srp_limit = 0; + mmu_urp_aptr = 0; + mmu_tc = 0; + mmu_sr = 0; + mmu_sr_040 = 0; + + for (int i=0; i<MMU_ATC_ENTRIES;i++) + mmu_atc_tag[i] = mmu_atc_data[i] = 0; + + mmu_atc_rr = 0; + mmu_tt0 = mmu_tt1 = 0; + mmu_itt0 = mmu_itt1 = mmu_dtt0 = mmu_dtt1 = 0; + mmu_acr0= mmu_acr1 = mmu_acr2 = mmu_acr3 = 0; + mmu_tmp_sr = 0; + mmu_tmp_fc = 0; + mmu_tmp_rw = 0; + mmu_tmp_buserror_address = 0; + mmu_tmp_buserror_occurred = 0; + mmu_tmp_buserror_fc = 0; + mmu_tmp_buserror_rw = 0; + + for (int i=0;i<M68K_IC_SIZE;i++) + { + ic_address[i] = 0; + ic_data[i] = 0; + ic_valid[i] = false; + } + + internal = nullptr; +} + + +void m68000_base_device::execute_run() +{ + cpu_execute(); +} + +void m68000_base_device::device_start() +{ +} + +void m68000_base_device::device_reset() +{ + reset_cpu(); +} + +void m68000_base_device::device_stop() +{ +} + + + + +void m68000_base_device::execute_set_input(int inputnum, int state) +{ + switch (inputnum) + { + /* --- the following bits of info are set as 64-bit signed integers --- */ + case M68K_IRQ_NONE: + case M68K_IRQ_1: + case M68K_IRQ_2: + case M68K_IRQ_3: + case M68K_IRQ_4: + case M68K_IRQ_5: + case M68K_IRQ_6: + case M68K_IRQ_7: + case INPUT_LINE_NMI: + set_irq_line(this, inputnum, state); + break; + + case M68K_LINE_BUSERROR: + if (state == ASSERT_LINE) + { + m68k_cause_bus_error(this); + } + break; + } +} + + +const address_space_config *m68000_base_device::memory_space_config(address_spacenum spacenum) const +{ + switch(spacenum) + { + case AS_PROGRAM: return &m_program_config; + case AS_DECRYPTED_OPCODES: return has_configured_map(AS_DECRYPTED_OPCODES) ? &m_oprogram_config : nullptr; + default: return nullptr; + } +} + + + +const device_type M68000 = &device_creator<m68000_device>; +const device_type M68301 = &device_creator<m68301_device>; +const device_type M68008 = &device_creator<m68008_device>; +const device_type M68008PLCC = &device_creator<m68008plcc_device>; +const device_type M68010 = &device_creator<m68010_device>; +const device_type M68EC020 = &device_creator<m68ec020_device>; +const device_type M68020 = &device_creator<m68020_device>; +const device_type M68020FPU = &device_creator<m68020fpu_device>; +const device_type M68020PMMU = &device_creator<m68020pmmu_device>; +const device_type M68020HMMU = &device_creator<m68020hmmu_device>; +const device_type M68EC030 = &device_creator<m68ec030_device>; +const device_type M68030 = &device_creator<m68030_device>; +const device_type M68EC040 = &device_creator<m68ec040_device>; +const device_type M68LC040 = &device_creator<m68lc040_device>; +const device_type M68040 = &device_creator<m68040_device>; +const device_type SCC68070 = &device_creator<scc68070_device>; +const device_type FSCPU32 = &device_creator<fscpu32_device>; +const device_type MCF5206E = &device_creator<mcf5206e_device>; + +m68000_device::m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68000", tag, owner, clock, M68000, 16,24, "m68000", __FILE__) +{ +} + +m68000_device::m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) + : m68000_base_device(mconfig, "M68000", tag, owner, clock, M68000, 16,24, shortname, source) +{ +} + +void m68000_device::device_start() +{ + init_cpu_m68000(); +} + +m68000_device::m68000_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, UINT32 clock, + const device_type type, UINT32 prg_data_width, UINT32 prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source) + : m68000_base_device(mconfig, name, tag, owner, clock, type, prg_data_width, prg_address_bits, internal_map, shortname, source) +{ +} + + + + + +m68301_device::m68301_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68301", tag, owner, clock, M68301, 16,24, "m68301", __FILE__) +{ +} + + +void m68301_device::device_start() +{ + init_cpu_m68000(); +} + + + + + + +/* m68008_device */ + +m68008_device::m68008_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68008", tag, owner, clock, M68008, 8,20, "m68008", __FILE__) +{ +} + +void m68008_device::device_start() +{ + init_cpu_m68008(); +} + + +m68008plcc_device::m68008plcc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68008PLCC", tag, owner, clock, M68008, 8,22, "m68008plcc", __FILE__) +{ +} + +void m68008plcc_device::device_start() +{ + init_cpu_m68008(); +} + + + +m68010_device::m68010_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68010", tag, owner, clock, M68010, 16,24, "m68010", __FILE__) +{ +} + +void m68010_device::device_start() +{ + init_cpu_m68010(); +} + + + +m68020_device::m68020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68020", tag, owner, clock, M68020, 32,32, "m68020", __FILE__) +{ +} + +void m68020_device::device_start() +{ + init_cpu_m68020(); +} + + +m68020fpu_device::m68020fpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68020FPU", tag, owner, clock, M68020, 32,32, "m68020fpu", __FILE__) +{ +} + +void m68020fpu_device::device_start() +{ + init_cpu_m68020fpu(); +} + +// 68020 with 68851 PMMU +m68020pmmu_device::m68020pmmu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68020PMMU", tag, owner, clock, M68020PMMU, 32,32, "m68020pmmu", __FILE__) +{ +} + +void m68020pmmu_device::device_start() +{ + init_cpu_m68020pmmu(); +} + +bool m68020hmmu_device::memory_translate(address_spacenum space, int intention, offs_t &address) +{ + /* only applies to the program address space and only does something if the MMU's enabled */ + { + if ((space == AS_PROGRAM) && (hmmu_enabled)) + { + address = hmmu_translate_addr(this, address); + } + } + return TRUE; +} + + +// 68020 with Apple HMMU & 68881 FPU +// case CPUINFO_FCT_TRANSLATE: info->translate = CPU_TRANSLATE_NAME(m68khmmu); break; +m68020hmmu_device::m68020hmmu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68020HMMU", tag, owner, clock, M68020HMMU, 32,32, "m68020hmmu", __FILE__) +{ +} + +void m68020hmmu_device::device_start() +{ + init_cpu_m68020hmmu(); +} + + +m68ec020_device::m68ec020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68EC020", tag, owner, clock, M68EC020, 32,24, "m68ec020", __FILE__) +{ +} + +void m68ec020_device::device_start() +{ + init_cpu_m68ec020(); +} + +m68030_device::m68030_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68030", tag, owner, clock, M68030, 32,32, "m68030", __FILE__) +{ +} + +void m68030_device::device_start() +{ + init_cpu_m68030(); +} + +m68ec030_device::m68ec030_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68EC030", tag, owner, clock, M68EC030, 32,32, "m68ec030", __FILE__) +{ +} + +void m68ec030_device::device_start() +{ + init_cpu_m68ec030(); +} + +m68040_device::m68040_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68040", tag, owner, clock, M68040, 32,32, "m68040", __FILE__) +{ +} + + +void m68040_device::device_start() +{ + init_cpu_m68040(); +} + + + +m68ec040_device::m68ec040_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68EC040", tag, owner, clock, M68EC040, 32,32, "m68ec040", __FILE__) +{ +} + +void m68ec040_device::device_start() +{ + init_cpu_m68ec040(); +} + + + +m68lc040_device::m68lc040_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "M68LC040", tag, owner, clock, M68LC040, 32,32, "m68lc040", __FILE__) +{ +} + +void m68lc040_device::device_start() +{ + init_cpu_m68lc040(); +} + + +scc68070_device::scc68070_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "SCC68070", tag, owner, clock, SCC68070, 16,32, "scc68070", __FILE__) +{ +} + +void scc68070_device::device_start() +{ + init_cpu_scc68070(); +} + + +fscpu32_device::fscpu32_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "Freescale CPU32 Core", tag, owner, clock, FSCPU32, 32,32, "fscpu32", __FILE__) +{ +} + +fscpu32_device::fscpu32_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, UINT32 clock, + const device_type type, UINT32 prg_data_width, UINT32 prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source) + : m68000_base_device(mconfig, name, tag, owner, clock, type, prg_data_width, prg_address_bits, internal_map, shortname, source) +{ +} + + +void fscpu32_device::device_start() +{ + init_cpu_fscpu32(); +} + + + +mcf5206e_device::mcf5206e_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : m68000_base_device(mconfig, "MCF5206E", tag, owner, clock, MCF5206E, 32,32, "mcf5206e", __FILE__) +{ +} + +void mcf5206e_device::device_start() +{ + init_cpu_coldfire(); +} diff --git a/docs/release/src/emu/digfx.h b/docs/release/src/emu/digfx.h new file mode 100644 index 00000000000..7359aa4d340 --- /dev/null +++ b/docs/release/src/emu/digfx.h @@ -0,0 +1,236 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria, Aaron Giles, Alex W. Jackson +/*************************************************************************** + + digfx.h + + Device graphics interfaces. + +***************************************************************************/ + +#pragma once + +#ifndef __EMU_H__ +#error Dont include this file directly; include emu.h instead. +#endif + +#ifndef __DIGFX_H__ +#define __DIGFX_H__ + + + +//************************************************************************** +// CONSTANTS +//************************************************************************** + +const int MAX_GFX_ELEMENTS = 32; +const int MAX_GFX_PLANES = 8; +// HBMAME - needed by monaco +const int MAX_GFX_SIZE = 64; + + + +//************************************************************************** +// GRAPHICS LAYOUT MACROS +//************************************************************************** + +#define EXTENDED_XOFFS { 0 } +#define EXTENDED_YOFFS { 0 } + +#define GFX_RAW 0x12345678 +#define GFXLAYOUT_RAW( name, width, height, linemod, charmod ) \ +const gfx_layout name = { width, height, RGN_FRAC(1,1), 8, { GFX_RAW }, { 0 }, { linemod }, charmod }; +// When planeoffset[0] is set to GFX_RAW, the gfx data is left as-is, with no conversion. +// No buffer is allocated for the decoded data, and gfxdata is set to point to the source +// data. +// yoffset[0] is the line modulo (*8) and charincrement the char modulo (*8). They are *8 +// for consistency with the usual behaviour, but the bottom 3 bits are not used. +// +// This special mode can be used for graphics that are already in 8bpp linear format, +// or for unusual formats that don't fit our generic model and need to be decoded using +// custom code. See blend_gfx() in atarigen.c for an example of the latter usage. + + +// these macros describe gfx_layouts in terms of fractions of a region +// they can be used for total, planeoffset, xoffset, yoffset +#define RGN_FRAC(num,den) (0x80000000 | (((num) & 0x0f) << 27) | (((den) & 0x0f) << 23)) +#define IS_FRAC(offset) ((offset) & 0x80000000) +#define FRAC_NUM(offset) (((offset) >> 27) & 0x0f) +#define FRAC_DEN(offset) (((offset) >> 23) & 0x0f) +#define FRAC_OFFSET(offset) ((offset) & 0x007fffff) + +// these macros are useful in gfx_layouts +#define STEP2(START,STEP) (START),(START)+(STEP) +#define STEP4(START,STEP) STEP2(START,STEP),STEP2((START)+2*(STEP),STEP) +#define STEP8(START,STEP) STEP4(START,STEP),STEP4((START)+4*(STEP),STEP) +#define STEP16(START,STEP) STEP8(START,STEP),STEP8((START)+8*(STEP),STEP) +#define STEP32(START,STEP) STEP16(START,STEP),STEP16((START)+16*(STEP),STEP) +#define STEP64(START,STEP) STEP32(START,STEP),STEP32((START)+32*(STEP),STEP) +#define STEP128(START,STEP) STEP64(START,STEP),STEP64((START)+64*(STEP),STEP) +#define STEP256(START,STEP) STEP128(START,STEP),STEP128((START)+128*(STEP),STEP) +#define STEP512(START,STEP) STEP256(START,STEP),STEP256((START)+256*(STEP),STEP) +#define STEP1024(START,STEP) STEP512(START,STEP),STEP512((START)+512*(STEP),STEP) +#define STEP2048(START,STEP) STEP1024(START,STEP),STEP1024((START)+1024*(STEP),STEP) + +#define STEP2_INV(START,STEP) (START)+(STEP),(START) +#define STEP4_INV(START,STEP) STEP2_INV(START+2*STEP,STEP),STEP2_INV(START,STEP) + +//************************************************************************** +// GRAPHICS INFO MACROS +//************************************************************************** + +// optional horizontal and vertical scaling factors +#define GFXENTRY_XSCALEMASK 0x000000ff +#define GFXENTRY_YSCALEMASK 0x0000ff00 +#define GFXENTRY_XSCALE(x) ((((x)-1) << 0) & GFXENTRY_XSCALEMASK) +#define GFXENTRY_YSCALE(x) ((((x)-1) << 8) & GFXENTRY_YSCALEMASK) +#define GFXENTRY_GETXSCALE(x) ((((x) & GFXENTRY_XSCALEMASK) >> 0) + 1) +#define GFXENTRY_GETYSCALE(x) ((((x) & GFXENTRY_YSCALEMASK) >> 8) + 1) + +// GFXENTRY_RAM means region tag refers to a RAM share instead of a ROM region +#define GFXENTRY_ROM 0x00000000 +#define GFXENTRY_RAM 0x00010000 +#define GFXENTRY_ISROM(x) (((x) & GFXENTRY_RAM) == 0) +#define GFXENTRY_ISRAM(x) (((x) & GFXENTRY_RAM) != 0) + +// GFXENTRY_DEVICE means region tag is relative to this device instead of its owner +#define GFXENTRY_DEVICE 0x00020000 +#define GFXENTRY_ISDEVICE(x) (((x) & GFXENTRY_DEVICE) != 0) + +// GFXENTRY_REVERSE reverses the bit order in the layout (0-7 = LSB-MSB instead of MSB-LSB) +#define GFXENTRY_REVERSE 0x00040000 +#define GFXENTRY_ISREVERSE(x) (((x) & GFXENTRY_REVERSE) != 0) + + +// these macros are used for declaring gfx_decode_entry info arrays +#define GFXDECODE_NAME( name ) gfxdecodeinfo_##name +#define GFXDECODE_EXTERN( name ) extern const gfx_decode_entry GFXDECODE_NAME(name)[] +#define GFXDECODE_START( name ) const gfx_decode_entry GFXDECODE_NAME(name)[] = { +#define GFXDECODE_END { 0 } }; + +// use these to declare a gfx_decode_entry array as a member of a device class +#define DECLARE_GFXDECODE_MEMBER( name ) static const gfx_decode_entry name[] +#define GFXDECODE_MEMBER( name ) const gfx_decode_entry name[] = { +// common gfx_decode_entry macros +#define GFXDECODE_ENTRYX(region,offset,layout,start,colors,flags) { region, offset, &layout, start, colors, flags }, +#define GFXDECODE_ENTRY(region,offset,layout,start,colors) { region, offset, &layout, start, colors, 0 }, + +// specialized gfx_decode_entry macros +#define GFXDECODE_RAM(region,offset,layout,start,colors) { region, offset, &layout, start, colors, GFXENTRY_RAM }, +#define GFXDECODE_DEVICE(region,offset,layout,start,colors) { region, offset, &layout, start, colors, GFXENTRY_DEVICE }, +#define GFXDECODE_DEVICE_RAM(region,offset,layout,start,colors) { region, offset, &layout, start, colors, GFXENTRY_DEVICE | GFXENTRY_RAM }, +#define GFXDECODE_SCALE(region,offset,layout,start,colors,x,y) { region, offset, &layout, start, colors, GFXENTRY_XSCALE(x) | GFXENTRY_YSCALE(y) }, +#define GFXDECODE_REVERSEBITS(region,offset,layout,start,colors) { region, offset, &layout, start, colors, GFXENTRY_REVERSE }, + + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_GFX_PALETTE(_palette_tag) \ + device_gfx_interface::static_set_palette(*device, _palette_tag); + +#define MCFG_GFX_INFO(_info) \ + device_gfx_interface::static_set_info(*device, GFXDECODE_NAME(_info)); + + + +//************************************************************************** +// DEVICE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_GFXDECODE_ADD(_tag, _palette_tag, _info) \ + MCFG_DEVICE_ADD(_tag, GFXDECODE, 0) \ + MCFG_GFX_PALETTE(_palette_tag) \ + MCFG_GFX_INFO(_info) + +#define MCFG_GFXDECODE_MODIFY(_tag, _info) \ + MCFG_DEVICE_MODIFY(_tag) \ + MCFG_GFX_INFO(_info) + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// forward declarations +class gfx_element; +class palette_device; + +struct gfx_layout +{ + UINT32 xoffs(int x) const { return (extxoffs != nullptr) ? extxoffs[x] : xoffset[x]; } + UINT32 yoffs(int y) const { return (extyoffs != nullptr) ? extyoffs[y] : yoffset[y]; } + + UINT16 width; // pixel width of each element + UINT16 height; // pixel height of each element + UINT32 total; // total number of elements, or RGN_FRAC() + UINT16 planes; // number of bitplanes + UINT32 planeoffset[MAX_GFX_PLANES]; // bit offset of each bitplane + UINT32 xoffset[MAX_GFX_SIZE]; // bit offset of each horizontal pixel + UINT32 yoffset[MAX_GFX_SIZE]; // bit offset of each vertical pixel + UINT32 charincrement; // distance between two consecutive elements (in bits) + const UINT32 * extxoffs; // extended X offset array for really big layouts + const UINT32 * extyoffs; // extended Y offset array for really big layouts +}; + +struct gfx_decode_entry +{ + const char * memory_region; // memory region where the data resides + UINT32 start; // offset of beginning of data to decode + const gfx_layout *gfxlayout; // pointer to gfx_layout describing the layout; nullptr marks the end of the array + UINT16 color_codes_start; // offset in the color lookup table where color codes start + UINT16 total_color_codes; // total number of color codes + UINT32 flags; // flags and optional scaling factors +}; + +// ======================> device_gfx_interface + +class device_gfx_interface : public device_interface +{ +public: + // construction/destruction + device_gfx_interface(const machine_config &mconfig, device_t &device, + const gfx_decode_entry *gfxinfo = nullptr, const char *palette_tag = nullptr); + virtual ~device_gfx_interface(); + + // static configuration + static void static_set_info(device_t &device, const gfx_decode_entry *gfxinfo); + static void static_set_palette(device_t &device, const char *tag); + + // getters + palette_device &palette() const { return *m_palette; } + gfx_element *gfx(int index) const { assert(index < MAX_GFX_ELEMENTS); return m_gfx[index].get(); } + + // decoding + void decode_gfx(const gfx_decode_entry *gfxdecodeinfo); + void decode_gfx() { decode_gfx(m_gfxdecodeinfo); } + + void set_gfx(int index, std::unique_ptr<gfx_element> &&element) { assert(index < MAX_GFX_ELEMENTS); m_gfx[index] = std::move(element); } + +protected: + // interface-level overrides + virtual void interface_validity_check(validity_checker &valid) const override; + virtual void interface_pre_start() override; + virtual void interface_post_start() override; + +private: + palette_device * m_palette; // pointer to the palette device + std::unique_ptr<gfx_element> m_gfx[MAX_GFX_ELEMENTS]; // array of pointers to graphic sets + + // configuration + const gfx_decode_entry * m_gfxdecodeinfo; // pointer to array of gfx decode information + const char * m_palette_tag; // configured tag for palette device + bool m_palette_is_sibling; // is palette a sibling or a subdevice? + + // internal state + bool m_decoded; // have we processed our decode info yet? +}; + +// iterator +typedef device_interface_iterator<device_gfx_interface> gfx_interface_iterator; + + +#endif /* __DIGFX_H__ */ diff --git a/docs/release/src/emu/validity.cpp b/docs/release/src/emu/validity.cpp new file mode 100644 index 00000000000..1f4971b83a7 --- /dev/null +++ b/docs/release/src/emu/validity.cpp @@ -0,0 +1,1093 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles, Paul Priest +/*************************************************************************** + + validity.cpp + + Validity checks on internal data structures. + +***************************************************************************/ + +#include "emu.h" +#include "validity.h" +#include "emuopts.h" +#include <ctype.h> + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +//************************************************************************** +// INLINE FUNCTIONS +//************************************************************************** + +//------------------------------------------------- +// ioport_string_from_index - return an indexed +// string from the I/O port system +//------------------------------------------------- + +inline const char *validity_checker::ioport_string_from_index(UINT32 index) +{ + return ioport_configurer::string_from_token((const char *)(FPTR)index); +} + + +//------------------------------------------------- +// get_defstr_index - return the index of the +// string assuming it is one of the default +// strings +//------------------------------------------------- + +inline int validity_checker::get_defstr_index(const char *string, bool suppress_error) +{ + // check for strings that should be DEF_STR + auto strindex = m_defstr_map.find(string); + if (!suppress_error && strindex != m_defstr_map.end() && string != ioport_string_from_index(strindex->second)) + osd_printf_error("Must use DEF_STR( %s )\n", string); + return (strindex != m_defstr_map.end()) ? strindex->second : 0; +} + + +//------------------------------------------------- +// validate_tag - ensure that the given tag +// meets the general requirements +//------------------------------------------------- + +void validity_checker::validate_tag(const char *tag) +{ + // some common names that are now deprecated + if (strcmp(tag, "main") == 0 || strcmp(tag, "audio") == 0 || strcmp(tag, "sound") == 0 || strcmp(tag, "left") == 0 || strcmp(tag, "right") == 0) + osd_printf_error("Invalid generic tag '%s' used\n", tag); + + // scan for invalid characters + static const char *validchars = "abcdefghijklmnopqrstuvwxyz0123456789_.:^$"; + for (const char *p = tag; *p != 0; p++) + { + // only lower-case permitted + if (*p != tolower((UINT8)*p)) + { + osd_printf_error("Tag '%s' contains upper-case characters\n", tag); + break; + } + if (*p == ' ') + { + osd_printf_error("Tag '%s' contains spaces\n", tag); + break; + } + if (strchr(validchars, *p) == nullptr) + { + osd_printf_error("Tag '%s' contains invalid character '%c'\n", tag, *p); + break; + } + } + + // find the start of the final tag + const char *begin = strrchr(tag, ':'); + if (begin == nullptr) + begin = tag; + else + begin += 1; + + // 0-length = bad + if (*begin == 0) + osd_printf_error("Found 0-length tag\n"); + + // too short/too long = bad + if (strlen(begin) < MIN_TAG_LENGTH) + osd_printf_error("Tag '%s' is too short (must be at least %d characters)\n", tag, MIN_TAG_LENGTH); +} + + + +//************************************************************************** +// VALIDATION FUNCTIONS +//************************************************************************** + +//------------------------------------------------- +// validity_checker - constructor +//------------------------------------------------- + +validity_checker::validity_checker(emu_options &options) + : m_drivlist(options), + m_errors(0), + m_warnings(0), + m_print_verbose(options.verbose()), + m_current_driver(nullptr), + m_current_config(nullptr), + m_current_device(nullptr), + m_current_ioport(nullptr), + m_validate_all(false) +{ + // pre-populate the defstr map with all the default strings + for (int strnum = 1; strnum < INPUT_STRING_COUNT; strnum++) + { + const char *string = ioport_string_from_index(strnum); + if (string != nullptr) + m_defstr_map.insert(std::make_pair(string, strnum)); + } +} + +//------------------------------------------------- +// validity_checker - destructor +//------------------------------------------------- + +validity_checker::~validity_checker() +{ + validate_end(); +} + +//------------------------------------------------- +// check_driver - check a single driver +//------------------------------------------------- + +void validity_checker::check_driver(const game_driver &driver) +{ + // simply validate the one driver + validate_begin(); + validate_one(driver); + validate_end(); +} + + +//------------------------------------------------- +// check_shared_source - check all drivers that +// share the same source file as the given driver +//------------------------------------------------- + +void validity_checker::check_shared_source(const game_driver &driver) +{ + // initialize + validate_begin(); + + // then iterate over all drivers and check the ones that share the same source file + m_drivlist.reset(); + while (m_drivlist.next()) + if (strcmp(driver.source_file, m_drivlist.driver().source_file) == 0) + validate_one(m_drivlist.driver()); + + // cleanup + validate_end(); +} + + +//------------------------------------------------- +// check_all_matching - check all drivers whose +// names match the given string +//------------------------------------------------- + +bool validity_checker::check_all_matching(const char *string) +{ + // start by checking core stuff + validate_begin(); + validate_core(); + validate_inlines(); + + // if we had warnings or errors, output + if (m_errors > 0 || m_warnings > 0 || !m_verbose_text.empty()) + { + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Core: %d errors, %d warnings\n", m_errors, m_warnings); + if (m_errors > 0) + output_indented_errors(m_error_text, "Errors"); + if (m_warnings > 0) + output_indented_errors(m_warning_text, "Warnings"); + if (!m_verbose_text.empty()) + output_indented_errors(m_verbose_text, "Messages"); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "\n"); + } + + // then iterate over all drivers and check them + m_drivlist.reset(); + while (m_drivlist.next()) + if (m_drivlist.matches(string, m_drivlist.driver().name)) + validate_one(m_drivlist.driver()); + + // cleanup + validate_end(); + + return !(m_errors > 0 || m_warnings > 0); +} + + +//------------------------------------------------- +// validate_begin - prepare for validation by +// taking over the output callbacks and resetting +// our internal state +//------------------------------------------------- + +void validity_checker::validate_begin() +{ + // take over error and warning outputs + osd_output::push(this); + + // reset all our maps + m_names_map.clear(); + m_descriptions_map.clear(); + m_roms_map.clear(); + m_defstr_map.clear(); + m_region_map.clear(); + + // reset internal state + m_errors = 0; + m_warnings = 0; + m_already_checked.clear(); +} + + +//------------------------------------------------- +// validate_end - restore output callbacks and +// clean up +//------------------------------------------------- + +void validity_checker::validate_end() +{ + // restore the original output callbacks + osd_output::pop(this); +} + + +//------------------------------------------------- +// validate_drivers - master validity checker +//------------------------------------------------- + +void validity_checker::validate_one(const game_driver &driver) +{ + // set the current driver + m_current_driver = &driver; + m_current_config = nullptr; + m_current_device = nullptr; + m_current_ioport = nullptr; + m_region_map.clear(); + + // reset error/warning state + int start_errors = m_errors; + int start_warnings = m_warnings; + m_error_text.clear(); + m_warning_text.clear(); + m_verbose_text.clear(); + + // wrap in try/except to catch fatalerrors + try + { + machine_config config(driver, m_drivlist.options()); + m_current_config = &config; + validate_driver(); + validate_roms(); + validate_inputs(); + validate_devices(); + m_current_config = nullptr; + } + catch (emu_fatalerror &err) + { + osd_printf_error("Fatal error %s", err.string()); + } + + // if we had warnings or errors, output + if (m_errors > start_errors || m_warnings > start_warnings || !m_verbose_text.empty()) + { + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Driver %s (file %s): %d errors, %d warnings\n", driver.name, core_filename_extract_base(driver.source_file).c_str(), m_errors - start_errors, m_warnings - start_warnings); + if (m_errors > start_errors) + output_indented_errors(m_error_text, "Errors"); + if (m_warnings > start_warnings) + output_indented_errors(m_warning_text, "Warnings"); + if (!m_verbose_text.empty()) + output_indented_errors(m_verbose_text, "Messages"); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "\n"); + } + + // reset the driver/device + m_current_driver = nullptr; + m_current_config = nullptr; + m_current_device = nullptr; + m_current_ioport = nullptr; +} + + +//------------------------------------------------- +// validate_core - validate core internal systems +//------------------------------------------------- + +void validity_checker::validate_core() +{ + // basic system checks + if (~0 != -1) osd_printf_error("Machine must be two's complement\n"); + + UINT8 a = 0xff; + UINT8 b = a + 1; + if (b > a) osd_printf_error("UINT8 must be 8 bits\n"); + + // check size of core integer types + if (sizeof(INT8) != 1) osd_printf_error("INT8 must be 8 bits\n"); + if (sizeof(UINT8) != 1) osd_printf_error("UINT8 must be 8 bits\n"); + if (sizeof(INT16) != 2) osd_printf_error("INT16 must be 16 bits\n"); + if (sizeof(UINT16) != 2) osd_printf_error("UINT16 must be 16 bits\n"); + if (sizeof(INT32) != 4) osd_printf_error("INT32 must be 32 bits\n"); + if (sizeof(UINT32) != 4) osd_printf_error("UINT32 must be 32 bits\n"); + if (sizeof(INT64) != 8) osd_printf_error("INT64 must be 64 bits\n"); + if (sizeof(UINT64) != 8) osd_printf_error("UINT64 must be 64 bits\n"); + + // check signed right shift + INT8 a8 = -3; + INT16 a16 = -3; + INT32 a32 = -3; + INT64 a64 = -3; + if (a8 >> 1 != -2) osd_printf_error("INT8 right shift must be arithmetic\n"); + if (a16 >> 1 != -2) osd_printf_error("INT16 right shift must be arithmetic\n"); + if (a32 >> 1 != -2) osd_printf_error("INT32 right shift must be arithmetic\n"); + if (a64 >> 1 != -2) osd_printf_error("INT64 right shift must be arithmetic\n"); + + // check pointer size +#ifdef PTR64 + static_assert(sizeof(void *) == 8, "PTR64 flag enabled, but was compiled for 32-bit target\n"); +#else + static_assert(sizeof(void *) == 4, "PTR64 flag not enabled, but was compiled for 64-bit target\n"); +#endif + + // TODO: check if this is actually working + // check endianness definition + UINT16 lsbtest = 0; + *(UINT8 *)&lsbtest = 0xff; +#ifdef LSB_FIRST + if (lsbtest == 0xff00) osd_printf_error("LSB_FIRST specified, but running on a big-endian machine\n"); +#else + if (lsbtest == 0x00ff) osd_printf_error("LSB_FIRST not specified, but running on a little-endian machine\n"); +#endif +} + + +//------------------------------------------------- +// validate_inlines - validate inline function +// behaviors +//------------------------------------------------- + +void validity_checker::validate_inlines() +{ +#undef rand + volatile UINT64 testu64a = rand() ^ (rand() << 15) ^ ((UINT64)rand() << 30) ^ ((UINT64)rand() << 45); + volatile INT64 testi64a = rand() ^ (rand() << 15) ^ ((INT64)rand() << 30) ^ ((INT64)rand() << 45); + volatile UINT32 testu32a = rand() ^ (rand() << 15); + volatile UINT32 testu32b = rand() ^ (rand() << 15); + volatile INT32 testi32a = rand() ^ (rand() << 15); + volatile INT32 testi32b = rand() ^ (rand() << 15); + INT32 resulti32, expectedi32; + UINT32 resultu32, expectedu32; + INT64 resulti64, expectedi64; + UINT64 resultu64, expectedu64; + INT32 remainder, expremainder; + UINT32 uremainder, expuremainder, bigu32 = 0xffffffff; + + // use only non-zero, positive numbers + if (testu64a == 0) testu64a++; + if (testi64a == 0) testi64a++; + else if (testi64a < 0) testi64a = -testi64a; + if (testu32a == 0) testu32a++; + if (testu32b == 0) testu32b++; + if (testi32a == 0) testi32a++; + else if (testi32a < 0) testi32a = -testi32a; + if (testi32b == 0) testi32b++; + else if (testi32b < 0) testi32b = -testi32b; + + resulti64 = mul_32x32(testi32a, testi32b); + expectedi64 = (INT64)testi32a * (INT64)testi32b; + if (resulti64 != expectedi64) + osd_printf_error("Error testing mul_32x32 (%08X x %08X) = %08X%08X (expected %08X%08X)\n", testi32a, testi32b, (UINT32)(resulti64 >> 32), (UINT32)resulti64, (UINT32)(expectedi64 >> 32), (UINT32)expectedi64); + + resultu64 = mulu_32x32(testu32a, testu32b); + expectedu64 = (UINT64)testu32a * (UINT64)testu32b; + if (resultu64 != expectedu64) + osd_printf_error("Error testing mulu_32x32 (%08X x %08X) = %08X%08X (expected %08X%08X)\n", testu32a, testu32b, (UINT32)(resultu64 >> 32), (UINT32)resultu64, (UINT32)(expectedu64 >> 32), (UINT32)expectedu64); + + resulti32 = mul_32x32_hi(testi32a, testi32b); + expectedi32 = ((INT64)testi32a * (INT64)testi32b) >> 32; + if (resulti32 != expectedi32) + osd_printf_error("Error testing mul_32x32_hi (%08X x %08X) = %08X (expected %08X)\n", testi32a, testi32b, resulti32, expectedi32); + + resultu32 = mulu_32x32_hi(testu32a, testu32b); + expectedu32 = ((INT64)testu32a * (INT64)testu32b) >> 32; + if (resultu32 != expectedu32) + osd_printf_error("Error testing mulu_32x32_hi (%08X x %08X) = %08X (expected %08X)\n", testu32a, testu32b, resultu32, expectedu32); + + resulti32 = mul_32x32_shift(testi32a, testi32b, 7); + expectedi32 = ((INT64)testi32a * (INT64)testi32b) >> 7; + if (resulti32 != expectedi32) + osd_printf_error("Error testing mul_32x32_shift (%08X x %08X) >> 7 = %08X (expected %08X)\n", testi32a, testi32b, resulti32, expectedi32); + + resultu32 = mulu_32x32_shift(testu32a, testu32b, 7); + expectedu32 = ((INT64)testu32a * (INT64)testu32b) >> 7; + if (resultu32 != expectedu32) + osd_printf_error("Error testing mulu_32x32_shift (%08X x %08X) >> 7 = %08X (expected %08X)\n", testu32a, testu32b, resultu32, expectedu32); + + while ((INT64)testi32a * (INT64)0x7fffffff < testi64a) + testi64a /= 2; + while ((UINT64)testu32a * (UINT64)bigu32 < testu64a) + testu64a /= 2; + + resulti32 = div_64x32(testi64a, testi32a); + expectedi32 = testi64a / (INT64)testi32a; + if (resulti32 != expectedi32) + osd_printf_error("Error testing div_64x32 (%08X%08X / %08X) = %08X (expected %08X)\n", (UINT32)(testi64a >> 32), (UINT32)testi64a, testi32a, resulti32, expectedi32); + + resultu32 = divu_64x32(testu64a, testu32a); + expectedu32 = testu64a / (UINT64)testu32a; + if (resultu32 != expectedu32) + osd_printf_error("Error testing divu_64x32 (%08X%08X / %08X) = %08X (expected %08X)\n", (UINT32)(testu64a >> 32), (UINT32)testu64a, testu32a, resultu32, expectedu32); + + resulti32 = div_64x32_rem(testi64a, testi32a, &remainder); + expectedi32 = testi64a / (INT64)testi32a; + expremainder = testi64a % (INT64)testi32a; + if (resulti32 != expectedi32 || remainder != expremainder) + osd_printf_error("Error testing div_64x32_rem (%08X%08X / %08X) = %08X,%08X (expected %08X,%08X)\n", (UINT32)(testi64a >> 32), (UINT32)testi64a, testi32a, resulti32, remainder, expectedi32, expremainder); + + resultu32 = divu_64x32_rem(testu64a, testu32a, &uremainder); + expectedu32 = testu64a / (UINT64)testu32a; + expuremainder = testu64a % (UINT64)testu32a; + if (resultu32 != expectedu32 || uremainder != expuremainder) + osd_printf_error("Error testing divu_64x32_rem (%08X%08X / %08X) = %08X,%08X (expected %08X,%08X)\n", (UINT32)(testu64a >> 32), (UINT32)testu64a, testu32a, resultu32, uremainder, expectedu32, expuremainder); + + resulti32 = mod_64x32(testi64a, testi32a); + expectedi32 = testi64a % (INT64)testi32a; + if (resulti32 != expectedi32) + osd_printf_error("Error testing mod_64x32 (%08X%08X / %08X) = %08X (expected %08X)\n", (UINT32)(testi64a >> 32), (UINT32)testi64a, testi32a, resulti32, expectedi32); + + resultu32 = modu_64x32(testu64a, testu32a); + expectedu32 = testu64a % (UINT64)testu32a; + if (resultu32 != expectedu32) + osd_printf_error("Error testing modu_64x32 (%08X%08X / %08X) = %08X (expected %08X)\n", (UINT32)(testu64a >> 32), (UINT32)testu64a, testu32a, resultu32, expectedu32); + + while ((INT64)testi32a * (INT64)0x7fffffff < ((INT32)testi64a << 3)) + testi64a /= 2; + while ((UINT64)testu32a * (UINT64)0xffffffff < ((UINT32)testu64a << 3)) + testu64a /= 2; + + resulti32 = div_32x32_shift((INT32)testi64a, testi32a, 3); + expectedi32 = ((INT64)(INT32)testi64a << 3) / (INT64)testi32a; + if (resulti32 != expectedi32) + osd_printf_error("Error testing div_32x32_shift (%08X << 3) / %08X = %08X (expected %08X)\n", (INT32)testi64a, testi32a, resulti32, expectedi32); + + resultu32 = divu_32x32_shift((UINT32)testu64a, testu32a, 3); + expectedu32 = ((UINT64)(UINT32)testu64a << 3) / (UINT64)testu32a; + if (resultu32 != expectedu32) + osd_printf_error("Error testing divu_32x32_shift (%08X << 3) / %08X = %08X (expected %08X)\n", (UINT32)testu64a, testu32a, resultu32, expectedu32); + + if (fabsf(recip_approx(100.0f) - 0.01f) > 0.0001f) + osd_printf_error("Error testing recip_approx\n"); + + testi32a = (testi32a & 0x0000ffff) | 0x400000; + if (count_leading_zeros(testi32a) != 9) + osd_printf_error("Error testing count_leading_zeros\n"); + testi32a = (testi32a | 0xffff0000) & ~0x400000; + if (count_leading_ones(testi32a) != 9) + osd_printf_error("Error testing count_leading_ones\n"); +} + + +//------------------------------------------------- +// validate_driver - validate basic driver +// information +//------------------------------------------------- + +void validity_checker::validate_driver() +{ + // check for duplicate names + if (!m_names_map.insert(std::make_pair(m_current_driver->name, m_current_driver)).second) + { + const game_driver *match = m_names_map.find(m_current_driver->name)->second; + osd_printf_error("Driver name is a duplicate of %s(%s)\n", core_filename_extract_base(match->source_file).c_str(), match->name); + } + + // check for duplicate descriptions + if (!m_descriptions_map.insert(std::make_pair(m_current_driver->description, m_current_driver)).second) + { + const game_driver *match = m_descriptions_map.find(m_current_driver->description)->second; + osd_printf_error("Driver description is a duplicate of %s(%s)\n", core_filename_extract_base(match->source_file).c_str(), match->name); + } + + // determine if we are a clone + bool is_clone = (strcmp(m_current_driver->parent, "0") != 0); + int clone_of = m_drivlist.clone(*m_current_driver); + if (clone_of != -1 && (m_drivlist.driver(clone_of).flags & MACHINE_IS_BIOS_ROOT)) + is_clone = false; + + // if we have at least 100 drivers, validate the clone + // (100 is arbitrary, but tries to avoid tiny.mak dependencies) + if (driver_list::total() > 100 && clone_of == -1 && is_clone) + osd_printf_error("Driver is a clone of nonexistent driver %s\n", m_current_driver->parent); + + // look for recursive cloning + if (clone_of != -1 && &m_drivlist.driver(clone_of) == m_current_driver) + osd_printf_error("Driver is a clone of itself\n"); + + // look for clones that are too deep + if (clone_of != -1 && (clone_of = m_drivlist.non_bios_clone(clone_of)) != -1) + osd_printf_error("Driver is a clone of a clone\n"); + + // make sure the driver name is not too long + if (!is_clone && strlen(m_current_driver->name) > 8) + osd_printf_error("Parent driver name must be 8 characters or less\n"); + if (is_clone && strlen(m_current_driver->name) > 16) + osd_printf_error("Clone driver name must be 16 characters or less\n"); + + // make sure the year is only digits, '?' or '+' + for (const char *s = m_current_driver->year; *s != 0; s++) + if (!isdigit((UINT8)*s) && *s != '?' && *s != '+') + { + osd_printf_error("Driver has an invalid year '%s'\n", m_current_driver->year); + break; + } + + // normalize driver->compatible_with + const char *compatible_with = m_current_driver->compatible_with; + if (compatible_with != nullptr && strcmp(compatible_with, "0") == 0) + compatible_with = nullptr; + + // check for this driver being compatible with a non-existant driver + if (compatible_with != nullptr && m_drivlist.find(m_current_driver->compatible_with) == -1) + osd_printf_error("Driver is listed as compatible with nonexistent driver %s\n", m_current_driver->compatible_with); + + // check for clone_of and compatible_with being specified at the same time + if (m_drivlist.clone(*m_current_driver) != -1 && compatible_with != nullptr) + osd_printf_error("Driver cannot be both a clone and listed as compatible with another system\n"); + + // find any recursive dependencies on the current driver + for (int other_drv = m_drivlist.compatible_with(*m_current_driver); other_drv != -1; other_drv = m_drivlist.compatible_with(other_drv)) + if (m_current_driver == &m_drivlist.driver(other_drv)) + { + osd_printf_error("Driver is recursively compatible with itself\n"); + break; + } + + // make sure sound-less drivers are flagged + sound_interface_iterator iter(m_current_config->root_device()); + if ((m_current_driver->flags & MACHINE_IS_BIOS_ROOT) == 0 && iter.first() == nullptr && (m_current_driver->flags & MACHINE_NO_SOUND) == 0 && (m_current_driver->flags & MACHINE_NO_SOUND_HW) == 0) + osd_printf_error("Driver is missing MACHINE_NO_SOUND flag\n"); +} + + +//------------------------------------------------- +// validate_roms - validate ROM definitions +//------------------------------------------------- + +void validity_checker::validate_roms() +{ + // iterate, starting with the driver's ROMs and continuing with device ROMs + for (device_t &device : device_iterator(m_current_config->root_device())) + { + // track the current device + m_current_device = &device; + + // scan the ROM entries for this device + const char *last_region_name = "???"; + const char *last_name = "???"; + UINT32 current_length = 0; + int items_since_region = 1; + int last_bios = 0; + int total_files = 0; + for (const rom_entry *romp = rom_first_region(device); romp != nullptr && !ROMENTRY_ISEND(romp); romp++) + { + // if this is a region, make sure it's valid, and record the length + if (ROMENTRY_ISREGION(romp)) + { + // if we haven't seen any items since the last region, print a warning + if (items_since_region == 0) + osd_printf_warning("Empty ROM region '%s' (warning)\n", last_region_name); + + // reset our region tracking states + const char *basetag = ROMREGION_GETTAG(romp); + items_since_region = (ROMREGION_ISERASE(romp) || ROMREGION_ISDISKDATA(romp)) ? 1 : 0; + last_region_name = basetag; + + // check for a valid tag + if (basetag == nullptr) + { + osd_printf_error("ROM_REGION tag with nullptr name\n"); + continue; + } + + // validate the base tag + validate_tag(basetag); + + // generate the full tag + std::string fulltag = rom_region_name(device, romp); + + // attempt to add it to the map, reporting duplicates as errors + current_length = ROMREGION_GETLENGTH(romp); + if (!m_region_map.insert(std::make_pair(fulltag, current_length)).second) + osd_printf_error("Multiple ROM_REGIONs with the same tag '%s' defined\n", fulltag.c_str()); + } + + // If this is a system bios, make sure it is using the next available bios number + else if (ROMENTRY_ISSYSTEM_BIOS(romp)) + { + int bios_flags = ROM_GETBIOSFLAGS(romp); + if (bios_flags != last_bios + 1) + osd_printf_error("Non-sequential bios %s (specified as %d, expected to be %d)\n", ROM_GETNAME(romp), bios_flags, last_bios + 1); + last_bios = bios_flags; + } + + // if this is a file, make sure it is properly formatted + else if (ROMENTRY_ISFILE(romp)) + { + // track the last filename we found + last_name = ROM_GETNAME(romp); + total_files++; + + // make sure the hash is valid + hash_collection hashes; + if (!hashes.from_internal_string(ROM_GETHASHDATA(romp))) + osd_printf_error("ROM '%s' has an invalid hash string '%s'\n", last_name, ROM_GETHASHDATA(romp)); + } + + // for any non-region ending entries, make sure they don't extend past the end + if (!ROMENTRY_ISREGIONEND(romp) && current_length > 0 && !ROMENTRY_ISIGNORE(romp)) // HBMAME + { + items_since_region++; + if (ROM_GETOFFSET(romp) + ROM_GETLENGTH(romp) > current_length) + osd_printf_error("ROM '%s' extends past the defined memory region\n", last_name); + } + } + + // final check for empty regions + if (items_since_region == 0) + osd_printf_warning("Empty ROM region '%s' (warning)\n", last_region_name); + + + // reset the current device + m_current_device = nullptr; + } +} + + +//------------------------------------------------- +// validate_analog_input_field - validate an +// analog input field +//------------------------------------------------- + +void validity_checker::validate_analog_input_field(ioport_field &field) +{ + // analog ports must have a valid sensitivity + if (field.sensitivity() == 0) + osd_printf_error("Analog port with zero sensitivity\n"); + + // check that the default falls in the bitmask range + if (field.defvalue() & ~field.mask()) + osd_printf_error("Analog port with a default value (%X) out of the bitmask range (%X)\n", field.defvalue(), field.mask()); + + // tests for positional devices + if (field.type() == IPT_POSITIONAL || field.type() == IPT_POSITIONAL_V) + { + int shift; + for (shift = 0; shift <= 31 && (~field.mask() & (1 << shift)) != 0; shift++) { } + + // convert the positional max value to be in the bitmask for testing + //INT32 analog_max = field.maxval(); + //analog_max = (analog_max - 1) << shift; + + // positional port size must fit in bits used + if ((field.mask() >> shift) + 1 < field.maxval()) + osd_printf_error("Analog port with a positional port size bigger then the mask size\n"); + } + + // tests for absolute devices + else if (field.type() > IPT_ANALOG_ABSOLUTE_FIRST && field.type() < IPT_ANALOG_ABSOLUTE_LAST) + { + // adjust for signed values + INT32 default_value = field.defvalue(); + INT32 analog_min = field.minval(); + INT32 analog_max = field.maxval(); + if (analog_min > analog_max) + { + analog_min = -analog_min; + if (default_value > analog_max) + default_value = -default_value; + } + + // check that the default falls in the MINMAX range + if (default_value < analog_min || default_value > analog_max) + osd_printf_error("Analog port with a default value (%X) out of PORT_MINMAX range (%X-%X)\n", field.defvalue(), field.minval(), field.maxval()); + + // check that the MINMAX falls in the bitmask range + // we use the unadjusted min for testing + if (field.minval() & ~field.mask() || analog_max & ~field.mask()) + osd_printf_error("Analog port with a PORT_MINMAX (%X-%X) value out of the bitmask range (%X)\n", field.minval(), field.maxval(), field.mask()); + + // absolute analog ports do not use PORT_RESET + if (field.analog_reset()) + osd_printf_error("Absolute analog port using PORT_RESET\n"); + + // absolute analog ports do not use PORT_WRAPS + if (field.analog_wraps()) + osd_printf_error("Absolute analog port using PORT_WRAPS\n"); + } + + // tests for non IPT_POSITIONAL relative devices + else + { + // relative devices do not use PORT_MINMAX + if (field.minval() != 0 || field.maxval() != field.mask()) + osd_printf_error("Relative port using PORT_MINMAX\n"); + + // relative devices do not use a default value + // the counter is at 0 on power up + if (field.defvalue() != 0) + osd_printf_error("Relative port using non-0 default value\n"); + + // relative analog ports do not use PORT_WRAPS + if (field.analog_wraps()) + osd_printf_error("Absolute analog port using PORT_WRAPS\n"); + } +} + + +//------------------------------------------------- +// validate_dip_settings - validate a DIP switch +// setting +//------------------------------------------------- + +void validity_checker::validate_dip_settings(ioport_field &field) +{ + const char *demo_sounds = ioport_string_from_index(INPUT_STRING_Demo_Sounds); + const char *flipscreen = ioport_string_from_index(INPUT_STRING_Flip_Screen); + UINT8 coin_list[__input_string_coinage_end + 1 - __input_string_coinage_start] = { 0 }; + bool coin_error = false; + + // iterate through the settings + for (ioport_setting &setting : field.settings()) + { + // note any coinage strings + int strindex = get_defstr_index(setting.name()); + if (strindex >= __input_string_coinage_start && strindex <= __input_string_coinage_end) + coin_list[strindex - __input_string_coinage_start] = 1; + + // make sure demo sounds default to on + if (field.name() == demo_sounds && strindex == INPUT_STRING_On && field.defvalue() != setting.value()) + osd_printf_error("Demo Sounds must default to On\n"); + + // check for bad demo sounds options + if (field.name() == demo_sounds && (strindex == INPUT_STRING_Yes || strindex == INPUT_STRING_No)) + osd_printf_error("Demo Sounds option must be Off/On, not %s\n", setting.name()); + + // check for bad flip screen options + if (field.name() == flipscreen && (strindex == INPUT_STRING_Yes || strindex == INPUT_STRING_No)) + osd_printf_error("Flip Screen option must be Off/On, not %s\n", setting.name()); + + // if we have a neighbor, compare ourselves to him + if (setting.next() != nullptr) + { + // check for inverted off/on dispswitch order + int next_strindex = get_defstr_index(setting.next()->name(), true); + if (strindex == INPUT_STRING_On && next_strindex == INPUT_STRING_Off) + osd_printf_error("%s option must have Off/On options in the order: Off, On\n", field.name()); + + // check for inverted yes/no dispswitch order + else if (strindex == INPUT_STRING_Yes && next_strindex == INPUT_STRING_No) + osd_printf_error("%s option must have Yes/No options in the order: No, Yes\n", field.name()); + + // check for inverted upright/cocktail dispswitch order + else if (strindex == INPUT_STRING_Cocktail && next_strindex == INPUT_STRING_Upright) + osd_printf_error("%s option must have Upright/Cocktail options in the order: Upright, Cocktail\n", field.name()); + + // check for proper coin ordering + else if (strindex >= __input_string_coinage_start && strindex <= __input_string_coinage_end && next_strindex >= __input_string_coinage_start && next_strindex <= __input_string_coinage_end && + strindex >= next_strindex && setting.condition() == setting.next()->condition()) + { + osd_printf_error("%s option has unsorted coinage %s > %s\n", field.name(), setting.name(), setting.next()->name()); + coin_error = true; + } + } + } + + // if we have a coin error, demonstrate the correct way + if (coin_error) + { + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, " Note proper coin sort order should be:\n"); + for (int entry = 0; entry < ARRAY_LENGTH(coin_list); entry++) + if (coin_list[entry]) + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, " %s\n", ioport_string_from_index(__input_string_coinage_start + entry)); + } +} + + +//------------------------------------------------- +// validate_condition - validate a condition +// stored within an ioport field or setting +//------------------------------------------------- + +void validity_checker::validate_condition(ioport_condition &condition, device_t &device, std::unordered_set<std::string> &port_map) +{ + // resolve the tag + // then find a matching port + if (port_map.find(device.subtag(condition.tag())) == port_map.end()) + osd_printf_error("Condition referencing non-existent ioport tag '%s'\n", condition.tag()); +} + + +//------------------------------------------------- +// validate_inputs - validate input configuration +//------------------------------------------------- + +void validity_checker::validate_inputs() +{ + std::unordered_set<std::string> port_map; + + // iterate over devices + for (device_t &device : device_iterator(m_current_config->root_device())) + { + // see if this device has ports; if not continue + if (device.input_ports() == nullptr) + continue; + + // track the current device + m_current_device = &device; + + // allocate the input ports + ioport_list portlist; + std::string errorbuf; + portlist.append(device, errorbuf); + + // report any errors during construction + if (!errorbuf.empty()) + osd_printf_error("I/O port error during construction:\n%s\n", errorbuf.c_str()); + + // do a first pass over ports to add their names and find duplicates + for (ioport_port &port : portlist) + if (!port_map.insert(port.tag()).second) + osd_printf_error("Multiple I/O ports with the same tag '%s' defined\n", port.tag()); + + // iterate over ports + for (ioport_port &port : portlist) + { + m_current_ioport = port.tag(); + + // iterate through the fields on this port + for (ioport_field &field : port.fields()) + { + // verify analog inputs + if (field.is_analog()) + validate_analog_input_field(field); + + // look for invalid (0) types which should be mapped to IPT_OTHER + if (field.type() == IPT_INVALID) + osd_printf_error("Field has an invalid type (0); use IPT_OTHER instead\n"); + + // verify dip switches + if (field.type() == IPT_DIPSWITCH) + { + // dip switch fields must have a specific name + if (field.specific_name() == nullptr) + osd_printf_error("DIP switch has no specific name\n"); + + // verify the settings list + validate_dip_settings(field); + } + + // verify config settings + if (field.type() == IPT_CONFIG) + { + // config fields must have a specific name + if (field.specific_name() == nullptr) + osd_printf_error("Config switch has no specific name\n"); + } + + // verify names + const char *name = field.specific_name(); + if (name != nullptr) + { + // check for empty string + if (name[0] == 0) + osd_printf_error("Field name is an empty string\n"); + + // check for trailing spaces + if (name[0] != 0 && name[strlen(name) - 1] == ' ') + osd_printf_error("Field '%s' has trailing spaces\n", name); + + // check for invalid UTF-8 + if (!utf8_is_valid_string(name)) + osd_printf_error("Field '%s' has invalid characters\n", name); + + // look up the string and print an error if default strings are not used + /*strindex =get_defstr_index(defstr_map, name, driver, &error);*/ + } + + // verify conditions on the field + if (!field.condition().none()) + validate_condition(field.condition(), device, port_map); + + // verify conditions on the settings + for (ioport_setting &setting : field.settings()) + if (!setting.condition().none()) + validate_condition(setting.condition(), device, port_map); + } + + // done with this port + m_current_ioport = nullptr; + } + + // done with this device + m_current_device = nullptr; + } +} + + +//------------------------------------------------- +// validate_devices - run per-device validity +// checks +//------------------------------------------------- + +void validity_checker::validate_devices() +{ + std::unordered_set<std::string> device_map; + + for (device_t &device : device_iterator(m_current_config->root_device())) + { + // track the current device + m_current_device = &device; + + // validate auto-finders + device.findit(true); + + // validate the device tag + validate_tag(device.basetag()); + + // look for duplicates + if (!device_map.insert(device.tag()).second) + osd_printf_error("Multiple devices with the same tag '%s' defined\n", device.tag()); + + // all devices must have a shortname + if (strcmp(device.shortname(), "") == 0) + osd_printf_error("Device does not have short name defined\n"); + + // all devices must have a source file defined + if (strcmp(device.source(), "") == 0) + osd_printf_error("Device does not have source file location defined\n"); + + // check for device-specific validity check + device.validity_check(*this); + + // done with this device + m_current_device = nullptr; + } + + // if device is slot cart device, we must have a shortname + std::unordered_set<std::string> slot_device_map; + for (const device_slot_interface &slot : slot_interface_iterator(m_current_config->root_device())) + { + for (const device_slot_option &option : slot.option_list()) + { + std::string temptag("_"); + temptag.append(option.name()); + device_t *dev = const_cast<machine_config &>(*m_current_config).device_add(&m_current_config->root_device(), temptag.c_str(), option.devtype(), 0); + + // notify this device and all its subdevices that they are now configured + for (device_t &device : device_iterator(*dev)) + if (!device.configured()) + device.config_complete(); + + if (strcmp(dev->shortname(), "") == 0) { + if (slot_device_map.insert(dev->name()).second) + osd_printf_error("Device '%s' is slot cart device but does not have short name defined\n", dev->name()); + } + + const_cast<machine_config &>(*m_current_config).device_remove(&m_current_config->root_device(), temptag.c_str()); + } + } + +} + + +//------------------------------------------------- +// build_output_prefix - create a prefix +// indicating the current source file, driver, +// and device +//------------------------------------------------- + +void validity_checker::build_output_prefix(std::string &str) +{ + // start empty + str.clear(); + + // if we have a current (non-root) device, indicate that + if (m_current_device != nullptr && m_current_device->owner() != nullptr) + str.append(m_current_device->name()).append(" device '").append(m_current_device->tag()+1).append("': "); + + // if we have a current port, indicate that as well + if (m_current_ioport != nullptr) + str.append("ioport '").append(m_current_ioport).append("': "); +} + + +//------------------------------------------------- +// error_output - error message output override +//------------------------------------------------- + +void validity_checker::output_callback(osd_output_channel channel, const char *msg, va_list args) +{ + std::string output; + switch (channel) + { + case OSD_OUTPUT_CHANNEL_ERROR: + // count the error + m_errors++; + + // output the source(driver) device 'tag' + build_output_prefix(output); + + // generate the string + strcatvprintf(output, msg, args); + m_error_text.append(output); + break; + case OSD_OUTPUT_CHANNEL_WARNING: + // count the error + m_warnings++; + + // output the source(driver) device 'tag' + build_output_prefix(output); + + // generate the string and output to the original target + strcatvprintf(output, msg, args); + m_warning_text.append(output); + break; + case OSD_OUTPUT_CHANNEL_VERBOSE: + // if we're not verbose, skip it + if (!m_print_verbose) break; + + // output the source(driver) device 'tag' + build_output_prefix(output); + + // generate the string and output to the original target + strcatvprintf(output, msg, args); + m_verbose_text.append(output); + break; + default: + chain_output(channel, msg, args); + break; + } +} + +//------------------------------------------------- +// output_via_delegate - helper to output a +// message via a varargs string, so the argptr +// can be forwarded onto the given delegate +//------------------------------------------------- + +void validity_checker::output_via_delegate(osd_output_channel channel, const char *format, ...) +{ + va_list argptr; + + // call through to the delegate with the proper parameters + va_start(argptr, format); + this->chain_output(channel, format, argptr); + va_end(argptr); +} + +//------------------------------------------------- +// output_indented_errors - helper to output error +// and warning messages with header and indents +//------------------------------------------------- +void validity_checker::output_indented_errors(std::string &text, const char *header) +{ + // remove trailing newline + if (text[text.size()-1] == '\n') + text.erase(text.size()-1, 1); + strreplace(text, "\n", "\n "); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "%s:\n %s\n", header, text.c_str()); +} diff --git a/docs/release/src/emu/video.cpp b/docs/release/src/emu/video.cpp new file mode 100644 index 00000000000..1babd7c720b --- /dev/null +++ b/docs/release/src/emu/video.cpp @@ -0,0 +1,1368 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/*************************************************************************** + + video.cpp + + Core MAME video routines. + +***************************************************************************/ + +#include "emu.h" +#include "emuopts.h" +#include "png.h" +#include "debugger.h" +#include "ui/uimain.h" +#include "aviio.h" +#include "crsshair.h" +#include "rendersw.hxx" +#include "output.h" + +#include "snap.lh" + +#include "osdepend.h" + +//************************************************************************** +// DEBUGGING +//************************************************************************** + +#define LOG_THROTTLE (0) + + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// frameskipping tables +const UINT8 video_manager::s_skiptable[FRAMESKIP_LEVELS][FRAMESKIP_LEVELS] = +{ + { 0,0,0,0,0,0,0,0,0,0,0,0 }, + { 0,0,0,0,0,0,0,0,0,0,0,1 }, + { 0,0,0,0,0,1,0,0,0,0,0,1 }, + { 0,0,0,1,0,0,0,1,0,0,0,1 }, + { 0,0,1,0,0,1,0,0,1,0,0,1 }, + { 0,1,0,0,1,0,1,0,0,1,0,1 }, + { 0,1,0,1,0,1,0,1,0,1,0,1 }, + { 0,1,0,1,1,0,1,0,1,1,0,1 }, + { 0,1,1,0,1,1,0,1,1,0,1,1 }, + { 0,1,1,1,0,1,1,1,0,1,1,1 }, + { 0,1,1,1,1,1,0,1,1,1,1,1 }, + { 0,1,1,1,1,1,1,1,1,1,1,1 } +}; + + + +//************************************************************************** +// VIDEO MANAGER +//************************************************************************** + +static void video_notifier_callback(const char *outname, INT32 value, void *param) +{ + video_manager *vm = (video_manager *)param; + + vm->set_output_changed(); +} + + +//------------------------------------------------- +// video_manager - constructor +//------------------------------------------------- + +video_manager::video_manager(running_machine &machine) + : m_machine(machine), + m_screenless_frame_timer(nullptr), + m_output_changed(false), + m_throttle_last_ticks(0), + m_throttle_realtime(attotime::zero), + m_throttle_emutime(attotime::zero), + m_throttle_history(0), + m_speed_last_realtime(0), + m_speed_last_emutime(attotime::zero), + m_speed_percent(1.0), + m_overall_real_seconds(0), + m_overall_real_ticks(0), + m_overall_emutime(attotime::zero), + m_overall_valid_counter(0), + m_throttled(machine.options().throttle()), + m_throttle_rate(1.0f), + m_fastforward(false), + m_seconds_to_run(machine.options().seconds_to_run()), + m_auto_frameskip(machine.options().auto_frameskip()), + m_speed(original_speed_setting()), + m_empty_skip_count(0), + m_frameskip_level(machine.options().frameskip()), + m_frameskip_counter(0), + m_frameskip_adjust(0), + m_skipping_this_frame(false), + m_average_oversleep(0), + m_snap_target(nullptr), + m_snap_native(true), + m_snap_width(0), + m_snap_height(0), + m_mng_frame_period(attotime::zero), + m_mng_next_frame_time(attotime::zero), + m_mng_frame(0), + m_avi_file(nullptr), + m_avi_frame_period(attotime::zero), + m_avi_next_frame_time(attotime::zero), + m_avi_frame(0), + m_dummy_recording(false), + m_timecode_enabled(false), + m_timecode_write(false), + m_timecode_text(""), + m_timecode_start(attotime::zero), + m_timecode_total(attotime::zero) + +{ + // request a callback upon exiting + machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(video_manager::exit), this)); + machine.save().register_postload(save_prepost_delegate(FUNC(video_manager::postload), this)); + + // extract initial execution state from global configuration settings + update_refresh_speed(); + + // create a render target for snapshots + const char *viewname = machine.options().snap_view(); + m_snap_native = (machine.first_screen() != nullptr && (viewname[0] == 0 || strcmp(viewname, "native") == 0)); + + // the native target is hard-coded to our internal layout and has all options disabled + if (m_snap_native) + { + m_snap_target = machine.render().target_alloc(&layout_snap, RENDER_CREATE_SINGLE_FILE | RENDER_CREATE_HIDDEN); + m_snap_target->set_backdrops_enabled(false); + m_snap_target->set_overlays_enabled(false); + m_snap_target->set_bezels_enabled(false); + m_snap_target->set_cpanels_enabled(false); + m_snap_target->set_marquees_enabled(false); + m_snap_target->set_screen_overlay_enabled(false); + m_snap_target->set_zoom_to_screen(false); + } + + // other targets select the specified view and turn off effects + else + { + m_snap_target = machine.render().target_alloc(nullptr, RENDER_CREATE_HIDDEN); + m_snap_target->set_view(m_snap_target->configured_view(viewname, 0, 1)); + m_snap_target->set_screen_overlay_enabled(false); + } + + // extract snap resolution if present + if (sscanf(machine.options().snap_size(), "%dx%d", &m_snap_width, &m_snap_height) != 2) + m_snap_width = m_snap_height = 0; + + // start recording movie if specified + const char *filename = machine.options().mng_write(); + if (filename[0] != 0) + begin_recording(filename, MF_MNG); + + filename = machine.options().avi_write(); + if (filename[0] != 0) + begin_recording(filename, MF_AVI); + +#ifdef MAME_DEBUG + m_dummy_recording = machine.options().dummy_write(); +#endif + + // if no screens, create a periodic timer to drive updates + if (machine.first_screen() == nullptr) + { + m_screenless_frame_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(video_manager::screenless_update_callback), this)); + m_screenless_frame_timer->adjust(screen_device::DEFAULT_FRAME_PERIOD, 0, screen_device::DEFAULT_FRAME_PERIOD); + machine.output().set_notifier(nullptr, video_notifier_callback, this); + } +} + + +//------------------------------------------------- +// set_frameskip - set the current actual +// frameskip (-1 means autoframeskip) +//------------------------------------------------- + +void video_manager::set_frameskip(int frameskip) +{ + // -1 means autoframeskip + if (frameskip == -1) + { + m_auto_frameskip = true; + m_frameskip_level = 0; + } + + // any other level is a direct control + else if (frameskip >= 0 && frameskip <= MAX_FRAMESKIP) + { + m_auto_frameskip = false; + m_frameskip_level = frameskip; + } +} + + +//------------------------------------------------- +// frame_update - handle frameskipping and UI, +// plus updating the screen during normal +// operations +//------------------------------------------------- + +void video_manager::frame_update(bool debug) +{ + // only render sound and video if we're in the running phase + int phase = machine().phase(); + bool skipped_it = m_skipping_this_frame; + if (phase == MACHINE_PHASE_RUNNING && (!machine().paused() || machine().options().update_in_pause())) + { + bool anything_changed = finish_screen_updates(); + + // if none of the screens changed and we haven't skipped too many frames in a row, + // mark this frame as skipped to prevent throttling; this helps for games that + // don't update their screen at the monitor refresh rate + if (!anything_changed && !m_auto_frameskip && m_frameskip_level == 0 && m_empty_skip_count++ < 3) + skipped_it = true; + else + m_empty_skip_count = 0; + } + + // draw the user interface + emulator_info::draw_user_interface(machine()); + + // if we're throttling, synchronize before rendering + attotime current_time = machine().time(); + if (!debug && !skipped_it && effective_throttle()) + update_throttle(current_time); + + // ask the OSD to update + g_profiler.start(PROFILER_BLIT); + machine().osd().update(!debug && skipped_it); + g_profiler.stop(); + + emulator_info::periodic_check(); + + // perform tasks for this frame + if (!debug) + machine().call_notifiers(MACHINE_NOTIFY_FRAME); + + // update frameskipping + if (!debug) + update_frameskip(); + + // update speed computations + if (!debug && !skipped_it) + recompute_speed(current_time); + + // call the end-of-frame callback + if (phase == MACHINE_PHASE_RUNNING) + { + // reset partial updates if we're paused or if the debugger is active + screen_device *screen = machine().first_screen(); + if (screen != nullptr && (machine().paused() || debug || debugger_within_instruction_hook(machine()))) + screen->reset_partial_updates(); + } +} + + +//------------------------------------------------- +// speed_text - print the text to be displayed +// into a string buffer +//------------------------------------------------- + +std::string video_manager::speed_text() +{ + std::ostringstream str; + + // if we're paused, just display Paused + bool paused = machine().paused(); + if (paused) + str << "paused"; + + // if we're fast forwarding, just display Fast-forward + else if (m_fastforward) + str << "fast "; + + // if we're auto frameskipping, display that plus the level + else if (effective_autoframeskip()) + util::stream_format(str, "auto%2d/%d", effective_frameskip(), MAX_FRAMESKIP); + + // otherwise, just display the frameskip plus the level + else + util::stream_format(str, "skip %d/%d", effective_frameskip(), MAX_FRAMESKIP); + + // append the speed for all cases except paused + if (!paused) + util::stream_format(str, "%4d%%", (int)(100 * m_speed_percent + 0.5)); + + // display the number of partial updates as well + int partials = 0; + for (screen_device &screen : screen_device_iterator(machine().root_device())) + partials += screen.partial_updates(); + if (partials > 1) + util::stream_format(str, "\n%d partial updates", partials); + + return str.str(); +} + + +//------------------------------------------------- +// save_snapshot - save a snapshot to the given +// file handle +//------------------------------------------------- + +void video_manager::save_snapshot(screen_device *screen, emu_file &file) +{ + // validate + assert(!m_snap_native || screen != nullptr); + + // create the bitmap to pass in + create_snapshot_bitmap(screen); + + // add two text entries describing the image + std::string text1 = std::string(emulator_info::get_appname()).append(" ").append(emulator_info::get_build_version()); + std::string text2 = std::string(machine().system().manufacturer).append(" ").append(machine().system().description); + png_info pnginfo = { nullptr }; + png_add_text(&pnginfo, "Software", text1.c_str()); + png_add_text(&pnginfo, "System", text2.c_str()); + + // now do the actual work + const rgb_t *palette = (screen != nullptr && screen->has_palette()) ? screen->palette().palette()->entry_list_adjusted() : nullptr; + int entries = (screen != nullptr && screen->has_palette()) ? screen->palette().entries() : 0; + png_error error = png_write_bitmap(file, &pnginfo, m_snap_bitmap, entries, palette); + if (error != PNGERR_NONE) + osd_printf_error("Error generating PNG for snapshot: png_error = %d\n", error); + + // free any data allocated + png_free(&pnginfo); +} + + +//------------------------------------------------- +// save_active_screen_snapshots - save a +// snapshot of all active screens +//------------------------------------------------- + +void video_manager::save_active_screen_snapshots() +{ + // if we're native, then write one snapshot per visible screen + if (m_snap_native) + { + // write one snapshot per visible screen + for (screen_device &screen : screen_device_iterator(machine().root_device())) + if (machine().render().is_live(screen)) + { + emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); + osd_file::error filerr = open_next(file, "png"); + if (filerr == osd_file::error::NONE) + save_snapshot(&screen, file); + } + } + + // otherwise, just write a single snapshot + else + { + emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); + osd_file::error filerr = open_next(file, "png"); + if (filerr == osd_file::error::NONE) + save_snapshot(nullptr, file); + } +} + + +//------------------------------------------------- +// save_input_timecode - add a line of current +// timestamp to inp.timecode file +//------------------------------------------------- + +void video_manager::save_input_timecode() +{ + // if record timecode input is not active, do nothing + if (!m_timecode_enabled) { + return; + } + m_timecode_write = true; +} + +std::string &video_manager::timecode_text(std::string &str) +{ + attotime elapsed_time = machine().time() - m_timecode_start; + str = string_format(" %s%s%02d:%02d %s", + m_timecode_text, + m_timecode_text.empty() ? "" : " ", + (elapsed_time.m_seconds / 60) % 60, + elapsed_time.m_seconds % 60, + machine().paused() ? "[paused] " : ""); + return str; +} + +std::string &video_manager::timecode_total_text(std::string &str) +{ + attotime elapsed_time = m_timecode_total; + if (machine().ui().show_timecode_counter()) { + elapsed_time += machine().time() - m_timecode_start; + } + str = string_format("TOTAL %02d:%02d ", + (elapsed_time.m_seconds / 60) % 60, + elapsed_time.m_seconds % 60); + return str; +} + + + +//------------------------------------------------- +// begin_recording - begin recording of a movie +//------------------------------------------------- + +void video_manager::begin_recording(const char *name, movie_format format) +{ + // create a snapshot bitmap so we know what the target size is + create_snapshot_bitmap(nullptr); + + // start up an AVI recording + if (format == MF_AVI) + { + // stop any existing recording + end_recording(format); + + // reset the state + m_avi_frame = 0; + m_avi_next_frame_time = machine().time(); + + // build up information about this new movie + screen_device *screen = machine().first_screen(); + avi_file::movie_info info; + info.video_format = 0; + info.video_timescale = 1000 * ((screen != nullptr) ? ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds()) : screen_device::DEFAULT_FRAME_RATE); + info.video_sampletime = 1000; + info.video_numsamples = 0; + info.video_width = m_snap_bitmap.width(); + info.video_height = m_snap_bitmap.height(); + info.video_depth = 24; + + info.audio_format = 0; + info.audio_timescale = machine().sample_rate(); + info.audio_sampletime = 1; + info.audio_numsamples = 0; + info.audio_channels = 2; + info.audio_samplebits = 16; + info.audio_samplerate = machine().sample_rate(); + + // create a new temporary movie file + osd_file::error filerr; + std::string fullpath; + { + emu_file tempfile(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); + if (name != nullptr) + filerr = tempfile.open(name); + else + filerr = open_next(tempfile, "avi"); + + // if we succeeded, make a copy of the name and create the real file over top + if (filerr == osd_file::error::NONE) + fullpath = tempfile.fullpath(); + } + + if (filerr == osd_file::error::NONE) + { + // compute the frame time + m_avi_frame_period = attotime::from_seconds(1000) / info.video_timescale; + + // create the file and free the string + avi_file::error avierr = avi_file::create(fullpath, info, m_avi_file); + if (avierr != avi_file::error::NONE) + { + osd_printf_error("Error creating AVI: %s\n", avi_file::error_string(avierr)); + return end_recording(format); + } + } + } + + // start up a MNG recording + else if (format == MF_MNG) + { + // stop any existing recording + end_recording(format); + + // reset the state + m_mng_frame = 0; + m_mng_next_frame_time = machine().time(); + + // create a new movie file and start recording + m_mng_file = std::make_unique<emu_file>(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); + osd_file::error filerr; + if (name != nullptr) + filerr = m_mng_file->open(name); + else + filerr = open_next(*m_mng_file, "mng"); + + if (filerr == osd_file::error::NONE) + { + // start the capture + screen_device *screen = machine().first_screen(); + int rate = (screen != nullptr) ? ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds()) : screen_device::DEFAULT_FRAME_RATE; + png_error pngerr = mng_capture_start(*m_mng_file, m_snap_bitmap, rate); + if (pngerr != PNGERR_NONE) + { + osd_printf_error("Error capturing MNG, png_error=%d\n", pngerr); + return end_recording(format); + } + + // compute the frame time + m_mng_frame_period = attotime::from_hz(rate); + } + else + { + osd_printf_error("Error creating MNG, osd_file::error=%d\n", int(filerr)); + m_mng_file.reset(); + } + } +} + + +//------------------------------------------------- +// end_recording - stop recording of a movie +//------------------------------------------------- + +void video_manager::end_recording(movie_format format) +{ + if (format == MF_AVI) + { + // close the file if it exists + if (m_avi_file) + { + m_avi_file.reset(); + + // reset the state + m_avi_frame = 0; + } + } + else if (format == MF_MNG) + { + // close the file if it exists + if (m_mng_file != nullptr) + { + mng_capture_stop(*m_mng_file); + m_mng_file.reset(); + + // reset the state + m_mng_frame = 0; + } + } +} + + +//------------------------------------------------- +// add_sound_to_recording - add sound to a movie +// recording +//------------------------------------------------- + +void video_manager::add_sound_to_recording(const INT16 *sound, int numsamples) +{ + // only record if we have a file + if (m_avi_file != nullptr) + { + g_profiler.start(PROFILER_MOVIE_REC); + + // write the next frame + avi_file::error avierr = m_avi_file->append_sound_samples(0, sound + 0, numsamples, 1); + if (avierr == avi_file::error::NONE) + avierr = m_avi_file->append_sound_samples(1, sound + 1, numsamples, 1); + if (avierr != avi_file::error::NONE) + end_recording(MF_AVI); + + g_profiler.stop(); + } +} + + + +//------------------------------------------------- +// video_exit - close down the video system +//------------------------------------------------- + +void video_manager::exit() +{ + // stop recording any movie + end_recording(MF_AVI); + end_recording(MF_MNG); + + // free the snapshot target + machine().render().target_free(m_snap_target); + m_snap_bitmap.reset(); + + // print a final result if we have at least 2 seconds' worth of data + if (!emulator_info::standalone() && m_overall_emutime.seconds() >= 1) + { + osd_ticks_t tps = osd_ticks_per_second(); + double final_real_time = (double)m_overall_real_seconds + (double)m_overall_real_ticks / (double)tps; + double final_emu_time = m_overall_emutime.as_double(); + osd_printf_info("Average speed: %.2f%% (%d seconds)\n", 100 * final_emu_time / final_real_time, (m_overall_emutime + attotime(0, ATTOSECONDS_PER_SECOND / 2)).seconds()); + } +} + + +//------------------------------------------------- +// screenless_update_callback - update generator +// when there are no screens to drive it +//------------------------------------------------- + +void video_manager::screenless_update_callback(void *ptr, int param) +{ + // force an update + frame_update(false); +} + + +//------------------------------------------------- +// postload - callback for resetting things after +// state has been loaded +//------------------------------------------------- + +void video_manager::postload() +{ + m_avi_next_frame_time = machine().time(); + m_mng_next_frame_time = machine().time(); +} + + +//------------------------------------------------- +// effective_autoframeskip - return the effective +// autoframeskip value, accounting for fast +// forward +//------------------------------------------------- + +inline bool video_manager::effective_autoframeskip() const +{ + // if we're fast forwarding or paused, autoframeskip is disabled + if (m_fastforward || machine().paused()) + return false; + + // otherwise, it's up to the user + return m_auto_frameskip; +} + + +//------------------------------------------------- +// effective_frameskip - return the effective +// frameskip value, accounting for fast +// forward +//------------------------------------------------- + +inline int video_manager::effective_frameskip() const +{ + // if we're fast forwarding, use the maximum frameskip + if (m_fastforward) + return FRAMESKIP_LEVELS - 1; + + // otherwise, it's up to the user + return m_frameskip_level; +} + + +//------------------------------------------------- +// effective_throttle - return the effective +// throttle value, accounting for fast +// forward and user interface +//------------------------------------------------- + +inline bool video_manager::effective_throttle() const +{ + // if we're paused, or if the UI is active, we always throttle + if (machine().paused()) //|| machine().ui().is_menu_active()) + return true; + + // if we're fast forwarding, we don't throttle + if (m_fastforward) + return false; + + // otherwise, it's up to the user + return throttled(); +} + + +//------------------------------------------------- +// original_speed_setting - return the original +// speed setting +//------------------------------------------------- + +inline int video_manager::original_speed_setting() const +{ + return machine().options().speed() * 1000.0f + 0.5f; +} + + +//------------------------------------------------- +// finish_screen_updates - finish updating all +// the screens +//------------------------------------------------- + +bool video_manager::finish_screen_updates() +{ + // finish updating the screens + screen_device_iterator iter(machine().root_device()); + + for (screen_device &screen : iter) + screen.update_partial(screen.visible_area().max_y); + + // now add the quads for all the screens + bool anything_changed = m_output_changed; + m_output_changed = false; + for (screen_device &screen : iter) + if (screen.update_quads()) + anything_changed = true; + + // draw HUD from LUA callback (if any) + anything_changed |= emulator_info::frame_hook(); + + // update our movie recording and burn-in state + if (!machine().paused()) + { + record_frame(); + + // iterate over screens and update the burnin for the ones that care + for (screen_device &screen : iter) + screen.update_burnin(); + } + + // draw any crosshairs + for (screen_device &screen : iter) + machine().crosshair().render(screen); + + return anything_changed; +} + + + +//------------------------------------------------- +// update_throttle - throttle to the game's +// natural speed +//------------------------------------------------- + +void video_manager::update_throttle(attotime emutime) +{ +/* + + Throttling theory: + + This routine is called periodically with an up-to-date emulated time. + The idea is to synchronize real time with emulated time. We do this + by "throttling", or waiting for real time to catch up with emulated + time. + + In an ideal world, it will take less real time to emulate and render + each frame than the emulated time, so we need to slow things down to + get both times in sync. + + There are many complications to this model: + + * some games run too slow, so each frame we get further and + further behind real time; our only choice here is to not + throttle + + * some games have very uneven frame rates; one frame will take + a long time to emulate, and the next frame may be very fast + + * we run on top of multitasking OSes; sometimes execution time + is taken away from us, and this means we may not get enough + time to emulate one frame + + * we may be paused, and emulated time may not be marching + forward + + * emulated time could jump due to resetting the machine or + restoring from a saved state + +*/ + static const UINT8 popcount[256] = + { + 0,1,1,2,1,2,2,3, 1,2,2,3,2,3,3,4, 1,2,2,3,2,3,3,4, 2,3,3,4,3,4,4,5, + 1,2,2,3,2,3,3,4, 2,3,3,4,3,4,4,5, 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, + 1,2,2,3,2,3,3,4, 2,3,3,4,3,4,4,5, 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, + 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, 3,4,4,5,4,5,5,6, 4,5,5,6,5,6,6,7, + 1,2,2,3,2,3,3,4, 2,3,3,4,3,4,4,5, 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, + 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, 3,4,4,5,4,5,5,6, 4,5,5,6,5,6,6,7, + 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, 3,4,4,5,4,5,5,6, 4,5,5,6,5,6,6,7, + 3,4,4,5,4,5,5,6, 4,5,5,6,5,6,6,7, 4,5,5,6,5,6,6,7, 5,6,6,7,6,7,7,8 + }; + + // outer scope so we can break out in case of a resync + while (1) + { + // apply speed factor to emu time + if (m_speed != 0 && m_speed != 1000) + { + // multiply emutime by 1000, then divide by the global speed factor + emutime = (emutime * 1000) / m_speed; + } + + // compute conversion factors up front + osd_ticks_t ticks_per_second = osd_ticks_per_second(); + attoseconds_t attoseconds_per_tick = ATTOSECONDS_PER_SECOND / ticks_per_second * m_throttle_rate; + + // if we're paused, emutime will not advance; instead, we subtract a fixed + // amount of time (1/60th of a second) from the emulated time that was passed in, + // and explicitly reset our tracked real and emulated timers to that value ... + // this means we pretend that the last update was exactly 1/60th of a second + // ago, and was in sync in both real and emulated time + if (machine().paused()) + { + m_throttle_emutime = emutime - attotime(0, ATTOSECONDS_PER_SECOND / PAUSED_REFRESH_RATE); + m_throttle_realtime = m_throttle_emutime; + } + + // attempt to detect anomalies in the emulated time by subtracting the previously + // reported value from our current value; this should be a small value somewhere + // between 0 and 1/10th of a second ... anything outside of this range is obviously + // wrong and requires a resync + attoseconds_t emu_delta_attoseconds = (emutime - m_throttle_emutime).as_attoseconds(); + if (emu_delta_attoseconds < 0 || emu_delta_attoseconds > ATTOSECONDS_PER_SECOND / 10) + { + if (LOG_THROTTLE) + machine().logerror("Resync due to weird emutime delta: %s\n", attotime(0, emu_delta_attoseconds).as_string(18)); + break; + } + + // now determine the current real time in OSD-specified ticks; we have to be careful + // here because counters can wrap, so we only use the difference between the last + // read value and the current value in our computations + osd_ticks_t diff_ticks = osd_ticks() - m_throttle_last_ticks; + m_throttle_last_ticks += diff_ticks; + + // if it has been more than a full second of real time since the last call to this + // function, we just need to resynchronize + if (diff_ticks >= ticks_per_second) + { + if (LOG_THROTTLE) + machine().logerror("Resync due to real time advancing by more than 1 second\n"); + break; + } + + // convert this value into attoseconds for easier comparison + attoseconds_t real_delta_attoseconds = diff_ticks * attoseconds_per_tick; + + // now update our real and emulated timers with the current values + m_throttle_emutime = emutime; + m_throttle_realtime += attotime(0, real_delta_attoseconds); + + // keep a history of whether or not emulated time beat real time over the last few + // updates; this can be used for future heuristics + m_throttle_history = (m_throttle_history << 1) | (emu_delta_attoseconds > real_delta_attoseconds); + + // determine how far ahead real time is versus emulated time; note that we use the + // accumulated times for this instead of the deltas for the current update because + // we want to track time over a longer duration than a single update + attoseconds_t real_is_ahead_attoseconds = (m_throttle_emutime - m_throttle_realtime).as_attoseconds(); + + // if we're more than 1/10th of a second out, or if we are behind at all and emulation + // is taking longer than the real frame, we just need to resync + if (real_is_ahead_attoseconds < -ATTOSECONDS_PER_SECOND / 10 || + (real_is_ahead_attoseconds < 0 && popcount[m_throttle_history & 0xff] < 6)) + { + if (LOG_THROTTLE) + machine().logerror("Resync due to being behind: %s (history=%08X)\n", attotime(0, -real_is_ahead_attoseconds).as_string(18), m_throttle_history); + break; + } + + // if we're behind, it's time to just get out + if (real_is_ahead_attoseconds < 0) + return; + + // compute the target real time, in ticks, where we want to be + osd_ticks_t target_ticks = m_throttle_last_ticks + real_is_ahead_attoseconds / attoseconds_per_tick; + + // throttle until we read the target, and update real time to match the final time + diff_ticks = throttle_until_ticks(target_ticks) - m_throttle_last_ticks; + m_throttle_last_ticks += diff_ticks; + m_throttle_realtime += attotime(0, diff_ticks * attoseconds_per_tick); + return; + } + + // reset realtime and emutime to the same value + m_throttle_realtime = m_throttle_emutime = emutime; +} + + +//------------------------------------------------- +// throttle_until_ticks - spin until the +// specified target time, calling the OSD code +// to sleep if possible +//------------------------------------------------- + +osd_ticks_t video_manager::throttle_until_ticks(osd_ticks_t target_ticks) +{ + // we're allowed to sleep via the OSD code only if we're configured to do so + // and we're not frameskipping due to autoframeskip, or if we're paused + bool allowed_to_sleep = false; + if (machine().options().sleep() && (!effective_autoframeskip() || effective_frameskip() == 0)) + allowed_to_sleep = true; + if (machine().paused()) + allowed_to_sleep = true; + + // loop until we reach our target + g_profiler.start(PROFILER_IDLE); + osd_ticks_t minimum_sleep = osd_ticks_per_second() / 1000; + osd_ticks_t current_ticks = osd_ticks(); + while (current_ticks < target_ticks) + { + // compute how much time to sleep for, taking into account the average oversleep + osd_ticks_t delta = (target_ticks - current_ticks) * 1000 / (1000 + m_average_oversleep); + + // see if we can sleep + bool slept = false; + if (allowed_to_sleep && delta >= minimum_sleep) + { + osd_sleep(delta); + slept = true; + } + + // read the new value + osd_ticks_t new_ticks = osd_ticks(); + + // keep some metrics on the sleeping patterns of the OSD layer + if (slept) + { + // if we overslept, keep an average of the amount + osd_ticks_t actual_ticks = new_ticks - current_ticks; + if (actual_ticks > delta) + { + // take 90% of the previous average plus 10% of the new value + osd_ticks_t oversleep_milliticks = 1000 * (actual_ticks - delta) / delta; + m_average_oversleep = (m_average_oversleep * 99 + oversleep_milliticks) / 100; + + if (LOG_THROTTLE) + machine().logerror("Slept for %d ticks, got %d ticks, avgover = %d\n", (int)delta, (int)actual_ticks, (int)m_average_oversleep); + } + } + current_ticks = new_ticks; + } + g_profiler.stop(); + + return current_ticks; +} + + +//------------------------------------------------- +// update_frameskip - update frameskipping +// counters and periodically update autoframeskip +//------------------------------------------------- + +void video_manager::update_frameskip() +{ + // if we're throttling and autoframeskip is on, adjust + if (effective_throttle() && effective_autoframeskip() && m_frameskip_counter == 0) + { + // calibrate the "adjusted speed" based on the target + double adjusted_speed_percent = m_speed_percent / (double) m_throttle_rate; + + // if we're too fast, attempt to increase the frameskip + double speed = m_speed * 0.001; + if (adjusted_speed_percent >= 0.995 * speed) + { + // but only after 3 consecutive frames where we are too fast + if (++m_frameskip_adjust >= 3) + { + m_frameskip_adjust = 0; + if (m_frameskip_level > 0) + m_frameskip_level--; + } + } + + // if we're too slow, attempt to increase the frameskip + else + { + // if below 80% speed, be more aggressive + if (adjusted_speed_percent < 0.80 * speed) + m_frameskip_adjust -= (0.90 * speed - m_speed_percent) / 0.05; + + // if we're close, only force it up to frameskip 8 + else if (m_frameskip_level < 8) + m_frameskip_adjust--; + + // perform the adjustment + while (m_frameskip_adjust <= -2) + { + m_frameskip_adjust += 2; + if (m_frameskip_level < MAX_FRAMESKIP) + m_frameskip_level++; + } + } + } + + // increment the frameskip counter and determine if we will skip the next frame + m_frameskip_counter = (m_frameskip_counter + 1) % FRAMESKIP_LEVELS; + m_skipping_this_frame = s_skiptable[effective_frameskip()][m_frameskip_counter]; +} + + +//------------------------------------------------- +// update_refresh_speed - update the m_speed +// based on the maximum refresh rate supported +//------------------------------------------------- + +void video_manager::update_refresh_speed() +{ + // only do this if the refreshspeed option is used + if (machine().options().refresh_speed()) + { + double minrefresh = machine().render().max_update_rate(); + if (minrefresh != 0) + { + // find the screen with the shortest frame period (max refresh rate) + // note that we first check the token since this can get called before all screens are created + attoseconds_t min_frame_period = ATTOSECONDS_PER_SECOND; + for (screen_device &screen : screen_device_iterator(machine().root_device())) + { + attoseconds_t period = screen.frame_period().attoseconds(); + if (period != 0) + min_frame_period = MIN(min_frame_period, period); + } + + // compute a target speed as an integral percentage + // note that we lop 0.25Hz off of the minrefresh when doing the computation to allow for + // the fact that most refresh rates are not accurate to 10 digits... + UINT32 target_speed = floor((minrefresh - 0.25) * 1000.0 / ATTOSECONDS_TO_HZ(min_frame_period)); + UINT32 original_speed = original_speed_setting(); + target_speed = MIN(target_speed, original_speed); + + // if we changed, log that verbosely + if (target_speed != m_speed) + { + osd_printf_verbose("Adjusting target speed to %.1f%% (hw=%.2fHz, game=%.2fHz, adjusted=%.2fHz)\n", target_speed / 10.0, minrefresh, ATTOSECONDS_TO_HZ(min_frame_period), ATTOSECONDS_TO_HZ(min_frame_period * 1000.0 / target_speed)); + m_speed = target_speed; + } + } + } +} + + +//------------------------------------------------- +// recompute_speed - recompute the current +// overall speed; we assume this is called only +// if we did not skip a frame +//------------------------------------------------- + +void video_manager::recompute_speed(const attotime &emutime) +{ + // if we don't have a starting time yet, or if we're paused, reset our starting point + if (m_speed_last_realtime == 0 || machine().paused()) + { + m_speed_last_realtime = osd_ticks(); + m_speed_last_emutime = emutime; + } + + // if it has been more than the update interval, update the time + attotime delta_emutime = emutime - m_speed_last_emutime; + if (delta_emutime > attotime(0, ATTOSECONDS_PER_SPEED_UPDATE)) + { + // convert from ticks to attoseconds + osd_ticks_t realtime = osd_ticks(); + osd_ticks_t delta_realtime = realtime - m_speed_last_realtime; + osd_ticks_t tps = osd_ticks_per_second(); + m_speed_percent = delta_emutime.as_double() * (double)tps / (double)delta_realtime; + + // remember the last times + m_speed_last_realtime = realtime; + m_speed_last_emutime = emutime; + + // if we're throttled, this time period counts for overall speed; otherwise, we reset the counter + if (!m_fastforward) + m_overall_valid_counter++; + else + m_overall_valid_counter = 0; + + // if we've had at least 4 consecutive valid periods, accumulate stats + if (m_overall_valid_counter >= 4) + { + m_overall_real_ticks += delta_realtime; + while (m_overall_real_ticks >= tps) + { + m_overall_real_ticks -= tps; + m_overall_real_seconds++; + } + m_overall_emutime += delta_emutime; + } + } + + // if we're past the "time-to-execute" requested, signal an exit + if (m_seconds_to_run > 1 && emutime.seconds() >= m_seconds_to_run) + { + // create a final screenshot + emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); + osd_file::error filerr = file.open(machine().basename(), PATH_SEPARATOR "final.png"); + if (filerr == osd_file::error::NONE) + save_snapshot(nullptr, file); + + //printf("Scheduled exit at %f\n", emutime.as_double()); + // schedule our demise + machine().schedule_exit(); + } +} + + +//------------------------------------------------- +// create_snapshot_bitmap - creates a +// bitmap containing the screenshot for the +// given screen +//------------------------------------------------- + +typedef software_renderer<UINT32, 0,0,0, 16,8,0, false, true> snap_renderer_bilinear; +typedef software_renderer<UINT32, 0,0,0, 16,8,0, false, false> snap_renderer; + +void video_manager::create_snapshot_bitmap(screen_device *screen) +{ + // select the appropriate view in our dummy target + if (m_snap_native && screen != nullptr) + { + screen_device_iterator iter(machine().root_device()); + int view_index = iter.indexof(*screen); + assert(view_index != -1); + m_snap_target->set_view(view_index); + } + + // get the minimum width/height and set it on the target + INT32 width = m_snap_width; + INT32 height = m_snap_height; + if (width == 0 || height == 0) + m_snap_target->compute_minimum_size(width, height); + m_snap_target->set_bounds(width, height); + + // if we don't have a bitmap, or if it's not the right size, allocate a new one + if (!m_snap_bitmap.valid() || width != m_snap_bitmap.width() || height != m_snap_bitmap.height()) + m_snap_bitmap.allocate(width, height); + + // render the screen there + render_primitive_list &primlist = m_snap_target->get_primitives(); + primlist.acquire_lock(); + if (machine().options().snap_bilinear()) + snap_renderer_bilinear::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels()); + else + snap_renderer::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels()); + primlist.release_lock(); +} + + +//------------------------------------------------- +// open_next - open the next non-existing file of +// type filetype according to our numbering +// scheme +//------------------------------------------------- + +osd_file::error video_manager::open_next(emu_file &file, const char *extension) +{ + UINT32 origflags = file.openflags(); + + // handle defaults + const char *snapname = machine().options().snap_name(); + + if (snapname == nullptr || snapname[0] == 0) + snapname = "%g/%i"; + std::string snapstr(snapname); + + // strip any extension in the provided name + int index = snapstr.find_last_of('.'); + if (index != -1) + snapstr = snapstr.substr(0, index); + + // handle %d in the template (for image devices) + std::string snapdev("%d_"); + int pos = snapstr.find(snapdev); + + if (pos != -1) + { + // if more %d are found, revert to default and ignore them all + if (snapstr.find(snapdev.c_str(), pos + 3) != -1) + snapstr.assign("%g/%i"); + // else if there is a single %d, try to create the correct snapname + else + { + int name_found = 0; + + // find length of the device name + int end1 = snapstr.find("/", pos + 3); + int end2 = snapstr.find("%", pos + 3); + int end; + + if ((end1 != -1) && (end2 != -1)) + end = MIN(end1, end2); + else if (end1 != -1) + end = end1; + else if (end2 != -1) + end = end2; + else + end = snapstr.length(); + + if (end - pos < 3) + fatalerror("Something very wrong is going on!!!\n"); + + // copy the device name to an std::string + std::string snapdevname; + snapdevname.assign(snapstr.substr(pos + 3, end - pos - 3)); + //printf("check template: %s\n", snapdevname.c_str()); + + // verify that there is such a device for this system + for (device_image_interface &image : image_interface_iterator(machine().root_device())) + { + // get the device name + std::string tempdevname(image.brief_instance_name()); + //printf("check device: %s\n", tempdevname.c_str()); + + if (snapdevname.compare(tempdevname) == 0) + { + // verify that such a device has an image mounted + if (image.basename() != nullptr) + { + std::string filename(image.basename()); + + // strip extension + filename = filename.substr(0, filename.find_last_of('.')); + + // setup snapname and remove the %d_ + strreplace(snapstr, snapdevname.c_str(), filename.c_str()); + snapstr.erase(pos, 3); + //printf("check image: %s\n", filename.c_str()); + + name_found = 1; + } + } + } + + // or fallback to default + if (name_found == 0) + snapstr.assign("%g/%i"); + } + } + + // add our own extension + snapstr.append(".").append(extension); + + // substitute path and gamename up front + strreplace(snapstr, "/", PATH_SEPARATOR); + strreplace(snapstr, "%g", machine().basename()); + + // determine if the template has an index; if not, we always use the same name + std::string fname; + if (snapstr.find("%i") == -1) + fname.assign(snapstr); + + // otherwise, we scan for the next available filename + else + { + // try until we succeed + file.set_openflags(OPEN_FLAG_READ); + for (int seq = 0; ; seq++) + { + // build up the filename + fname.assign(snapstr); + strreplace(fname, "%i", string_format("%04d", seq).c_str()); + + // try to open the file; stop when we fail + osd_file::error filerr = file.open(fname.c_str()); + if (filerr != osd_file::error::NONE) + break; + } + } + + // create the final file + file.set_openflags(origflags); + return file.open(fname.c_str()); +} + + +//------------------------------------------------- +// record_frame - record a frame of a movie +//------------------------------------------------- + +void video_manager::record_frame() +{ + // ignore if nothing to do + if (m_mng_file == nullptr && m_avi_file == nullptr && !m_dummy_recording) + return; + + // start the profiler and get the current time + g_profiler.start(PROFILER_MOVIE_REC); + attotime curtime = machine().time(); + + // create the bitmap + create_snapshot_bitmap(nullptr); + + // handle an AVI recording + if (m_avi_file != nullptr) + { + // loop until we hit the right time + while (m_avi_next_frame_time <= curtime) + { + // write the next frame + avi_file::error avierr = m_avi_file->append_video_frame(m_snap_bitmap); + if (avierr != avi_file::error::NONE) + { + g_profiler.stop(); + end_recording(MF_AVI); + break; + } + + // advance time + m_avi_next_frame_time += m_avi_frame_period; + m_avi_frame++; + } + } + + // handle a MNG recording + if (m_mng_file != nullptr) + { + // loop until we hit the right time + while (m_mng_next_frame_time <= curtime) + { + // set up the text fields in the movie info + png_info pnginfo = { nullptr }; + if (m_mng_frame == 0) + { + std::string text1 = std::string(emulator_info::get_appname()).append(" ").append(emulator_info::get_build_version()); + std::string text2 = std::string(machine().system().manufacturer).append(" ").append(machine().system().description); + png_add_text(&pnginfo, "Software", text1.c_str()); + png_add_text(&pnginfo, "System", text2.c_str()); + } + + // write the next frame + screen_device *screen = machine().first_screen(); + const rgb_t *palette = (screen != nullptr && screen->has_palette()) ? screen->palette().palette()->entry_list_adjusted() : nullptr; + int entries = (screen != nullptr && screen->has_palette()) ? screen->palette().entries() : 0; + png_error error = mng_capture_frame(*m_mng_file, &pnginfo, m_snap_bitmap, entries, palette); + png_free(&pnginfo); + if (error != PNGERR_NONE) + { + g_profiler.stop(); + end_recording(MF_MNG); + break; + } + + // advance time + m_mng_next_frame_time += m_mng_frame_period; + m_mng_frame++; + } + } + + g_profiler.stop(); +} + +//------------------------------------------------- +// toggle_throttle +//------------------------------------------------- + +void video_manager::toggle_throttle() +{ + set_throttled(!throttled()); +} + + +//------------------------------------------------- +// toggle_record_movie +//------------------------------------------------- + +void video_manager::toggle_record_movie() +{ + if (!is_recording()) + { + begin_recording(nullptr, MF_MNG); + machine().popmessage("REC START"); + } + else + { + end_recording(MF_MNG); + machine().popmessage("REC STOP"); + } +} diff --git a/docs/release/src/emu/video.h b/docs/release/src/emu/video.h new file mode 100644 index 00000000000..4e426dd9017 --- /dev/null +++ b/docs/release/src/emu/video.h @@ -0,0 +1,211 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/*************************************************************************** + + video.h + + Core MAME video routines. + +***************************************************************************/ + +#pragma once + +#ifndef __EMU_H__ +#error Dont include this file directly; include emu.h instead. +#endif + +#ifndef MAME_EMU_VIDEO_H +#define MAME_EMU_VIDEO_H + +#include "aviio.h" + + +//************************************************************************** +// CONSTANTS +//************************************************************************** + +// number of levels of frameskipping supported +const int FRAMESKIP_LEVELS = 12; +const int MAX_FRAMESKIP = FRAMESKIP_LEVELS - 2; + +#define LCD_FRAMES_PER_SECOND 30 + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// forward references +class render_target; +class screen_device; +class avi_file; + + + +// ======================> video_manager + +class video_manager +{ + friend class screen_device; + +public: + // movie format options + enum movie_format + { + MF_MNG, + MF_AVI + }; + + // construction/destruction + video_manager(running_machine &machine); + + // getters + running_machine &machine() const { return m_machine; } + bool skip_this_frame() const { return m_skipping_this_frame; } + int speed_factor() const { return m_speed; } + int frameskip() const { return m_auto_frameskip ? -1 : m_frameskip_level; } + bool throttled() const { return m_throttled; } + float throttle_rate() const { return m_throttle_rate; } + bool fastforward() const { return m_fastforward; } + bool is_recording() const { return (m_mng_file || m_avi_file); } + + // setters + void set_speed_factor(int speed) { m_speed = speed; } // MESSUI + void set_frameskip(int frameskip); + void set_throttled(bool throttled = true) { m_throttled = throttled; } + void set_throttle_rate(float throttle_rate) { m_throttle_rate = throttle_rate; } + void set_fastforward(bool ffwd = true) { m_fastforward = ffwd; } + void set_output_changed() { m_output_changed = true; } + + // misc + void toggle_throttle(); + void toggle_record_movie(); + osd_file::error open_next(emu_file &file, const char *extension); + + // render a frame + void frame_update(bool debug = false); + + // current speed helpers + std::string speed_text(); + double speed_percent() const { return m_speed_percent; } + + // snapshots + void save_snapshot(screen_device *screen, emu_file &file); + void save_active_screen_snapshots(); + void save_input_timecode(); + + // movies + void begin_recording(const char *name, movie_format format); + void end_recording(movie_format format); + void add_sound_to_recording(const INT16 *sound, int numsamples); + + void set_timecode_enabled(bool value) { m_timecode_enabled = value; } + bool get_timecode_enabled() { return m_timecode_enabled; } + bool get_timecode_write() { return m_timecode_write; } + void set_timecode_write(bool value) { m_timecode_write = value; } + void set_timecode_text(std::string &str) { m_timecode_text = str; } + void set_timecode_start(attotime time) { m_timecode_start = time; } + void add_to_total_time(attotime time) { m_timecode_total += time; } + std::string &timecode_text(std::string &str); + std::string &timecode_total_text(std::string &str); + + +private: + // internal helpers + void exit(); + void screenless_update_callback(void *ptr, int param); + void postload(); + + // effective value helpers + bool effective_autoframeskip() const; + int effective_frameskip() const; + bool effective_throttle() const; + + // speed and throttling helpers + int original_speed_setting() const; + bool finish_screen_updates(); + void update_throttle(attotime emutime); + osd_ticks_t throttle_until_ticks(osd_ticks_t target_ticks); + void update_frameskip(); + void update_refresh_speed(); + void recompute_speed(const attotime &emutime); + + // snapshot/movie helpers + void create_snapshot_bitmap(screen_device *screen); + void record_frame(); + + // internal state + running_machine & m_machine; // reference to our machine + + // screenless systems + emu_timer * m_screenless_frame_timer; // timer to signal VBLANK start + bool m_output_changed; // did an output element change? + + // throttling calculations + osd_ticks_t m_throttle_last_ticks; // osd_ticks the last call to throttle + attotime m_throttle_realtime; // real time the last call to throttle + attotime m_throttle_emutime; // emulated time the last call to throttle + UINT32 m_throttle_history; // history of frames where we were fast enough + + // dynamic speed computation + osd_ticks_t m_speed_last_realtime; // real time at the last speed calculation + attotime m_speed_last_emutime; // emulated time at the last speed calculation + double m_speed_percent; // most recent speed percentage + + // overall speed computation + UINT32 m_overall_real_seconds; // accumulated real seconds at normal speed + osd_ticks_t m_overall_real_ticks; // accumulated real ticks at normal speed + attotime m_overall_emutime; // accumulated emulated time at normal speed + UINT32 m_overall_valid_counter; // number of consecutive valid time periods + + // configuration + bool m_throttled; // flag: TRUE if we're currently throttled + float m_throttle_rate; // target rate for throttling + bool m_fastforward; // flag: TRUE if we're currently fast-forwarding + UINT32 m_seconds_to_run; // number of seconds to run before quitting + bool m_auto_frameskip; // flag: TRUE if we're automatically frameskipping + UINT32 m_speed; // overall speed (*1000) + + // frameskipping + UINT8 m_empty_skip_count; // number of empty frames we have skipped + UINT8 m_frameskip_level; // current frameskip level + UINT8 m_frameskip_counter; // counter that counts through the frameskip steps + INT8 m_frameskip_adjust; + bool m_skipping_this_frame; // flag: TRUE if we are skipping the current frame + osd_ticks_t m_average_oversleep; // average number of ticks the OSD oversleeps + + // snapshot stuff + render_target * m_snap_target; // screen shapshot target + bitmap_rgb32 m_snap_bitmap; // screen snapshot bitmap + bool m_snap_native; // are we using native per-screen layouts? + INT32 m_snap_width; // width of snapshots (0 == auto) + INT32 m_snap_height; // height of snapshots (0 == auto) + + // movie recording - MNG + std::unique_ptr<emu_file> m_mng_file; // handle to the open movie file + attotime m_mng_frame_period; // period of a single movie frame + attotime m_mng_next_frame_time; // time of next frame + UINT32 m_mng_frame; // current movie frame number + + // movie recording - AVI + avi_file::ptr m_avi_file; // handle to the open movie file + attotime m_avi_frame_period; // period of a single movie frame + attotime m_avi_next_frame_time; // time of next frame + UINT32 m_avi_frame; // current movie frame number + + // movie recording - dummy + bool m_dummy_recording; // indicates if snapshot should be created of every frame + + static const UINT8 s_skiptable[FRAMESKIP_LEVELS][FRAMESKIP_LEVELS]; + + static const attoseconds_t ATTOSECONDS_PER_SPEED_UPDATE = ATTOSECONDS_PER_SECOND / 4; + static const int PAUSED_REFRESH_RATE = 30; + + bool m_timecode_enabled; // inp.timecode record enabled + bool m_timecode_write; // Show/hide timer at right (partial time) + std::string m_timecode_text; // Message for that video part (intro, gameplay, extra) + attotime m_timecode_start; // Starting timer for that video part (intro, gameplay, extra) + attotime m_timecode_total; // Show/hide timer at left (total elapsed on resulting video preview) + +}; + +#endif // MAME_EMU_VIDEO_H diff --git a/docs/release/src/frontend/mame/audit.cpp b/docs/release/src/frontend/mame/audit.cpp new file mode 100644 index 00000000000..e0db3da3cb3 --- /dev/null +++ b/docs/release/src/frontend/mame/audit.cpp @@ -0,0 +1,693 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/*************************************************************************** + + audit.c + + ROM set auditing functions. + +***************************************************************************/ + +#include "emu.h" +#include "emuopts.h" +#include "audit.h" +#include "chd.h" +#include "drivenum.h" +#include "sound/samples.h" +#include "softlist.h" + +//************************************************************************** +// CORE FUNCTIONS +//************************************************************************** + +//------------------------------------------------- +// media_auditor - constructor +//------------------------------------------------- + +media_auditor::media_auditor(const driver_enumerator &enumerator) + : m_enumerator(enumerator), + m_validation(AUDIT_VALIDATE_FULL), + m_searchpath(nullptr) +{ +} + + +//------------------------------------------------- +// audit_media - audit the media described by the +// currently-enumerated driver +//------------------------------------------------- + +media_auditor::summary media_auditor::audit_media(const char *validation) +{ + // start fresh + m_record_list.reset(); + + // store validation for later + m_validation = validation; + +// temporary hack until romload is update: get the driver path and support it for +// all searches +const char *driverpath = m_enumerator.config().root_device().searchpath(); + + int found = 0; + int required = 0; + int shared_found = 0; + int shared_required = 0; + + // iterate over devices and regions + for (device_t &device : device_iterator(m_enumerator.config().root_device())) + { + // determine the search path for this source and iterate through the regions + m_searchpath = device.searchpath(); + + // now iterate over regions and ROMs within + for (const rom_entry *region = rom_first_region(device); region != nullptr; region = rom_next_region(region)) + { +// temporary hack: add the driver path & region name +std::string combinedpath = std::string(device.searchpath()).append(";").append(driverpath); +if (device.shortname()) + combinedpath.append(";").append(device.shortname()); +m_searchpath = combinedpath.c_str(); + + for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom)) + { + const char *name = ROM_GETNAME(rom); + hash_collection hashes(ROM_GETHASHDATA(rom)); + device_t *shared_device = find_shared_device(device, name, hashes, ROM_GETLENGTH(rom)); + + // count the number of files with hashes + if (!hashes.flag(hash_collection::FLAG_NO_DUMP) && !ROM_ISOPTIONAL(rom)) + { + required++; + if (shared_device != nullptr) + shared_required++; + } + + // audit a file + audit_record *record = nullptr; + if (ROMREGION_ISROMDATA(region)) + record = audit_one_rom(rom); + + // audit a disk + else if (ROMREGION_ISDISKDATA(region)) + record = audit_one_disk(rom); + + if (record != nullptr) + { + // count the number of files that are found. + if (record->status() == audit_record::STATUS_GOOD || (record->status() == audit_record::STATUS_FOUND_INVALID && find_shared_device(device, name, record->actual_hashes(), record->actual_length()) == nullptr)) + { + found++; + if (shared_device != nullptr) + shared_found++; + } + + record->set_shared_device(shared_device); + } + } + } + } + + // if we only find files that are in the parent & either the set has no unique files or the parent is not found, then assume we don't have the set at all + if (found == shared_found && required > 0 && (required != shared_required || shared_found == 0)) + { + m_record_list.reset(); + return NOTFOUND; + } + + // return a summary + return summarize(m_enumerator.driver().name); +} + + +//------------------------------------------------- +// audit_device - audit the device +//------------------------------------------------- + +media_auditor::summary media_auditor::audit_device(device_t &device, const char *validation) +{ + // start fresh + m_record_list.reset(); + + // store validation for later + m_validation = validation; + m_searchpath = device.shortname(); + + int found = 0; + int required = 0; + + // now iterate over regions and ROMs within + for (const rom_entry *region = rom_first_region(device); region != nullptr; region = rom_next_region(region)) + { + for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom)) + { + hash_collection hashes(ROM_GETHASHDATA(rom)); + + // count the number of files with hashes + if (!hashes.flag(hash_collection::FLAG_NO_DUMP) && !ROM_ISOPTIONAL(rom)) + { + required++; + } + + // audit a file + audit_record *record = nullptr; + if (ROMREGION_ISROMDATA(region)) + record = audit_one_rom(rom); + + // audit a disk + else if (ROMREGION_ISDISKDATA(region)) + record = audit_one_disk(rom); + + // count the number of files that are found. + if (record != nullptr && (record->status() == audit_record::STATUS_GOOD || record->status() == audit_record::STATUS_FOUND_INVALID)) + { + found++; + } + } + } + + if (found == 0 && required > 0) + { + m_record_list.reset(); + return NOTFOUND; + } + + // return a summary + return summarize(device.shortname()); +} + + +//------------------------------------------------- +// audit_software +//------------------------------------------------- +media_auditor::summary media_auditor::audit_software(const char *list_name, software_info *swinfo, const char *validation) +{ + // start fresh + m_record_list.reset(); + + // store validation for later + m_validation = validation; + + std::string combinedpath(swinfo->shortname()); + combinedpath.append(";"); + combinedpath.append(list_name); + combinedpath.append(PATH_SEPARATOR); + combinedpath.append(swinfo->shortname()); + std::string locationtag(list_name); + locationtag.append("%"); + locationtag.append(swinfo->shortname()); + locationtag.append("%"); + if (swinfo->parentname() != nullptr) + { + locationtag.append(swinfo->parentname()); + combinedpath.append(";").append(swinfo->parentname()).append(";").append(list_name).append(PATH_SEPARATOR).append(swinfo->parentname()); + } + m_searchpath = combinedpath.c_str(); + + int found = 0; + int required = 0; + + // now iterate over software parts + for (software_part &part : swinfo->parts()) + { + // now iterate over regions + for ( const rom_entry *region = part.romdata(); region; region = rom_next_region( region ) ) + { + // now iterate over rom definitions + for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom)) + { + hash_collection hashes(ROM_GETHASHDATA(rom)); + + // count the number of files with hashes + if (!hashes.flag(hash_collection::FLAG_NO_DUMP) && !ROM_ISOPTIONAL(rom)) + { + required++; + } + + // audit a file + audit_record *record = nullptr; + if (ROMREGION_ISROMDATA(region)) + { + record = audit_one_rom(rom); + } + // audit a disk + else if (ROMREGION_ISDISKDATA(region)) + { + record = audit_one_disk(rom, locationtag.c_str()); + } + + // count the number of files that are found. + if (record != nullptr && (record->status() == audit_record::STATUS_GOOD || record->status() == audit_record::STATUS_FOUND_INVALID)) + { + found++; + } + } + } + } + + if (found == 0 && required > 0) + { + m_record_list.reset(); + return NOTFOUND; + } + + // return a summary + return summarize(list_name); +} + + +//------------------------------------------------- +// audit_samples - validate the samples for the +// currently-enumerated driver +//------------------------------------------------- + +media_auditor::summary media_auditor::audit_samples() +{ + // start fresh + m_record_list.reset(); + + int required = 0; + int found = 0; + + // iterate over sample entries + for (samples_device &device : samples_device_iterator(m_enumerator.config().root_device())) + { + // by default we just search using the driver name + std::string searchpath(m_enumerator.driver().name); + + // add the alternate path if present + samples_iterator iter(device); + if (iter.altbasename() != nullptr) + searchpath.append(";").append(iter.altbasename()); + + // iterate over samples in this entry + for (const char *samplename = iter.first(); samplename != nullptr; samplename = iter.next()) + { + required++; + + // create a new record + audit_record &record = m_record_list.append(*global_alloc(audit_record(samplename, audit_record::MEDIA_SAMPLE))); + + // look for the files + emu_file file(m_enumerator.options().sample_path(), OPEN_FLAG_READ | OPEN_FLAG_NO_PRELOAD); + path_iterator path(searchpath.c_str()); + std::string curpath; + while (path.next(curpath, samplename)) + { + // attempt to access the file (.flac) or (.wav) + osd_file::error filerr = file.open(curpath.c_str(), ".flac"); + if (filerr != osd_file::error::NONE) + filerr = file.open(curpath.c_str(), ".wav"); + + if (filerr == osd_file::error::NONE) + { + record.set_status(audit_record::STATUS_GOOD, audit_record::SUBSTATUS_GOOD); + found++; + } + else + record.set_status(audit_record::STATUS_NOT_FOUND, audit_record::SUBSTATUS_NOT_FOUND); + } + } + } + + if (found == 0 && required > 0) + { + m_record_list.reset(); + return NOTFOUND; + } + + // return a summary + return summarize(m_enumerator.driver().name); +} + + +//------------------------------------------------- +// summary - generate a summary, with an optional +// string format +//------------------------------------------------- + +media_auditor::summary media_auditor::summarize(const char *name, std::string *output) +{ + if (m_record_list.count() == 0) + { + return NONE_NEEDED; + } + + // loop over records + summary overall_status = CORRECT; + for (audit_record &record : m_record_list) + { + summary best_new_status = INCORRECT; + + // skip anything that's fine + if (record.substatus() == audit_record::SUBSTATUS_GOOD) + continue; + + // output the game name, file name, and length (if applicable) + if (output != nullptr) + { + output->append(string_format("%-12s: %s", name, record.name())); + if (record.expected_length() > 0) + output->append(string_format(" (%d bytes)", record.expected_length())); + output->append(" - "); + } + + // use the substatus for finer details + switch (record.substatus()) + { + case audit_record::SUBSTATUS_GOOD_NEEDS_REDUMP: + if (output != nullptr) output->append("NEEDS REDUMP\n"); + best_new_status = BEST_AVAILABLE; + break; + + case audit_record::SUBSTATUS_FOUND_NODUMP: + if (output != nullptr) output->append("NO GOOD DUMP KNOWN\n"); + best_new_status = BEST_AVAILABLE; + break; + + case audit_record::SUBSTATUS_FOUND_BAD_CHECKSUM: + if (output != nullptr) + { + output->append("INCORRECT CHECKSUM:\n"); + output->append(string_format("EXPECTED: %s\n", record.expected_hashes().macro_string().c_str())); + output->append(string_format(" FOUND: %s\n", record.actual_hashes().macro_string().c_str())); + } + break; + + case audit_record::SUBSTATUS_FOUND_WRONG_LENGTH: + if (output != nullptr) output->append(string_format("INCORRECT LENGTH: %d bytes\n", record.actual_length())); + break; + + case audit_record::SUBSTATUS_NOT_FOUND: + if (output != nullptr) + { + device_t *shared_device = record.shared_device(); + if (shared_device == nullptr) + output->append("NOT FOUND\n"); + else + output->append(string_format("NOT FOUND (%s)\n", shared_device->shortname())); + } + break; + + case audit_record::SUBSTATUS_NOT_FOUND_NODUMP: + if (output != nullptr) output->append("NOT FOUND - NO GOOD DUMP KNOWN\n"); + best_new_status = BEST_AVAILABLE; + break; + + case audit_record::SUBSTATUS_NOT_FOUND_OPTIONAL: + if (output != nullptr) output->append("NOT FOUND BUT OPTIONAL\n"); + best_new_status = BEST_AVAILABLE; + break; + + default: + assert(false); + } + + // downgrade the overall status if necessary + overall_status = MAX(overall_status, best_new_status); + } + return overall_status; +} + +// WINUI - only report problems that the user can fix +media_auditor::summary media_auditor::winui_summarize(const char *name, std::string *output) +{ + if (m_record_list.count() == 0) + { + return NONE_NEEDED; + } + + // loop over records + summary overall_status = CORRECT; + for (audit_record *record = m_record_list.first(); record; record = record->next()) + { + summary best_new_status = INCORRECT; + + // skip anything that's fine + if ( (record->substatus() == audit_record::SUBSTATUS_GOOD) + || (record->substatus() == audit_record::SUBSTATUS_GOOD_NEEDS_REDUMP) + || (record->substatus() == audit_record::SUBSTATUS_NOT_FOUND_NODUMP) + || (record->substatus() == audit_record::SUBSTATUS_FOUND_NODUMP) + ) + continue; + + // output the game name, file name, and length (if applicable) + if (output) + { + output->append(string_format("%-12s: %s", name, record->name())); + if (record->expected_length() > 0) + output->append(string_format(" (%d bytes)", record->expected_length())); + output->append(" - "); + } + + // use the substatus for finer details + switch (record->substatus()) + { + case audit_record::SUBSTATUS_GOOD_NEEDS_REDUMP: + if (output) output->append("NEEDS REDUMP\n"); + best_new_status = BEST_AVAILABLE; + break; + + //case audit_record::SUBSTATUS_FOUND_NODUMP: + // if (output) output->append("NO GOOD DUMP KNOWN\n"); + // best_new_status = BEST_AVAILABLE; + // break; + + case audit_record::SUBSTATUS_FOUND_BAD_CHECKSUM: + if (output) + { + output->append("INCORRECT CHECKSUM:\n"); + output->append(string_format("EXPECTED: %s\n", record->expected_hashes().macro_string().c_str())); + output->append(string_format(" FOUND: %s\n", record->actual_hashes().macro_string().c_str())); + } + break; + + case audit_record::SUBSTATUS_FOUND_WRONG_LENGTH: + if (output) output->append(string_format("INCORRECT LENGTH: %d bytes\n", record->actual_length())); + break; + + case audit_record::SUBSTATUS_NOT_FOUND: + if (output) + { + device_t *shared_device = record->shared_device(); + if (shared_device) + output->append(string_format("NOT FOUND (%s)\n", shared_device->shortname())); + else + output->append("NOT FOUND\n"); + } + best_new_status = NOTFOUND; + break; + + //case audit_record::SUBSTATUS_NOT_FOUND_NODUMP: + // if (output) output->append("NOT FOUND - NO GOOD DUMP KNOWN\n"); + // best_new_status = BEST_AVAILABLE; + // break; + + case audit_record::SUBSTATUS_NOT_FOUND_OPTIONAL: + if (output) output->append("NOT FOUND BUT OPTIONAL\n"); + best_new_status = BEST_AVAILABLE; + break; + + default: + break; + } + + // downgrade the overall status if necessary + overall_status = MAX(overall_status, best_new_status); + } + return overall_status; +} + +//------------------------------------------------- +// audit_one_rom - validate a single ROM entry +//------------------------------------------------- + +audit_record *media_auditor::audit_one_rom(const rom_entry *rom) +{ + // allocate and append a new record + audit_record &record = m_record_list.append(*global_alloc(audit_record(*rom, audit_record::MEDIA_ROM))); + + // see if we have a CRC and extract it if so + UINT32 crc = 0; + bool has_crc = record.expected_hashes().crc(crc); + + // find the file and checksum it, getting the file length along the way + emu_file file(m_enumerator.options().media_path(), OPEN_FLAG_READ | OPEN_FLAG_NO_PRELOAD); + file.set_restrict_to_mediapath(true); + path_iterator path(m_searchpath); + std::string curpath; + while (path.next(curpath, record.name())) + { + // open the file if we can + osd_file::error filerr; + if (has_crc) + filerr = file.open(curpath.c_str(), crc); + else + filerr = file.open(curpath.c_str()); + + // if it worked, get the actual length and hashes, then stop + if (filerr == osd_file::error::NONE) + { + record.set_actual(file.hashes(m_validation), file.size()); + break; + } + } + + // compute the final status + compute_status(record, rom, record.actual_length() != 0); + return &record; +} + + +//------------------------------------------------- +// audit_one_disk - validate a single disk entry +//------------------------------------------------- + +audit_record *media_auditor::audit_one_disk(const rom_entry *rom, const char *locationtag) +{ + // allocate and append a new record + audit_record &record = m_record_list.append(*global_alloc(audit_record(*rom, audit_record::MEDIA_DISK))); + + // open the disk + chd_file source; + chd_error err = chd_error(open_disk_image(m_enumerator.options(), &m_enumerator.driver(), rom, source, locationtag)); + + // if we succeeded, get the hashes + if (err == CHDERR_NONE) + { + hash_collection hashes; + + // if there's a SHA1 hash, add them to the output hash + if (source.sha1() != sha1_t::null) + hashes.add_sha1(source.sha1()); + + // update the actual values + record.set_actual(hashes); + } + + // compute the final status + compute_status(record, rom, err == CHDERR_NONE); + return &record; +} + + +//------------------------------------------------- +// compute_status - compute a detailed status +// based on the information we have +//------------------------------------------------- + +void media_auditor::compute_status(audit_record &record, const rom_entry *rom, bool found) +{ + // if not found, provide more details + if (!found) + { + // no good dump + if (record.expected_hashes().flag(hash_collection::FLAG_NO_DUMP)) + record.set_status(audit_record::STATUS_NOT_FOUND, audit_record::SUBSTATUS_NOT_FOUND_NODUMP); + + // optional ROM + else if (ROM_ISOPTIONAL(rom)) + record.set_status(audit_record::STATUS_NOT_FOUND, audit_record::SUBSTATUS_NOT_FOUND_OPTIONAL); + + // just plain old not found + else + record.set_status(audit_record::STATUS_NOT_FOUND, audit_record::SUBSTATUS_NOT_FOUND); + } + + // if found, provide more details + else + { + // length mismatch + if (record.expected_length() != record.actual_length()) + record.set_status(audit_record::STATUS_FOUND_INVALID, audit_record::SUBSTATUS_FOUND_WRONG_LENGTH); + + // found but needs a dump + else if (record.expected_hashes().flag(hash_collection::FLAG_NO_DUMP)) + record.set_status(audit_record::STATUS_GOOD, audit_record::SUBSTATUS_FOUND_NODUMP); + + // incorrect hash + else if (record.expected_hashes() != record.actual_hashes()) + record.set_status(audit_record::STATUS_FOUND_INVALID, audit_record::SUBSTATUS_FOUND_BAD_CHECKSUM); + + // correct hash but needs a redump + else if (record.expected_hashes().flag(hash_collection::FLAG_BAD_DUMP)) + record.set_status(audit_record::STATUS_GOOD, audit_record::SUBSTATUS_GOOD_NEEDS_REDUMP); + + // just plain old good + else + record.set_status(audit_record::STATUS_GOOD, audit_record::SUBSTATUS_GOOD); + } +} + + +//------------------------------------------------- +// find_shared_device - return the source that +// shares a media entry with the same hashes +//------------------------------------------------- + +device_t *media_auditor::find_shared_device(device_t &device, const char *name, const hash_collection &romhashes, UINT64 romlength) +{ + bool dumped = !romhashes.flag(hash_collection::FLAG_NO_DUMP); + + // special case for non-root devices + device_t *highest_device = nullptr; + if (device.owner() != nullptr) + { + for (const rom_entry *region = rom_first_region(device); region != nullptr; region = rom_next_region(region)) + for (const rom_entry *rom = rom_first_file(region); rom != nullptr; rom = rom_next_file(rom)) + if (ROM_GETLENGTH(rom) == romlength) + { + hash_collection hashes(ROM_GETHASHDATA(rom)); + if ((dumped && hashes == romhashes) || (!dumped && ROM_GETNAME(rom) == name)) + highest_device = &device; + } + } + else + { + // iterate up the parent chain + for (int drvindex = m_enumerator.find(m_enumerator.driver().parent); drvindex != -1; drvindex = m_enumerator.find(m_enumerator.driver(drvindex).parent)) + { + for (device_t &scandevice : device_iterator(m_enumerator.config(drvindex).root_device())) + for (const rom_entry *region = rom_first_region(scandevice); region; region = rom_next_region(region)) + for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom)) + if (ROM_GETLENGTH(rom) == romlength) + { + hash_collection hashes(ROM_GETHASHDATA(rom)); + if ((dumped && hashes == romhashes) || (!dumped && ROM_GETNAME(rom) == name)) + highest_device = &scandevice; + } + } + } + + return highest_device; +} + + +//------------------------------------------------- +// audit_record - constructor +//------------------------------------------------- + +audit_record::audit_record(const rom_entry &media, media_type type) + : m_next(nullptr), + m_type(type), + m_status(STATUS_ERROR), + m_substatus(SUBSTATUS_ERROR), + m_name(ROM_GETNAME(&media)), + m_explength(rom_file_size(&media)), + m_length(0), + m_shared_device(nullptr) +{ + m_exphashes.from_internal_string(ROM_GETHASHDATA(&media)); +} + +audit_record::audit_record(const char *name, media_type type) + : m_next(nullptr), + m_type(type), + m_status(STATUS_ERROR), + m_substatus(SUBSTATUS_ERROR), + m_name(name), + m_explength(0), + m_length(0), + m_shared_device(nullptr) +{ +} diff --git a/docs/release/src/frontend/mame/audit.h b/docs/release/src/frontend/mame/audit.h new file mode 100644 index 00000000000..d936951155f --- /dev/null +++ b/docs/release/src/frontend/mame/audit.h @@ -0,0 +1,171 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/*************************************************************************** + + audit.h + + ROM, disk, and sample auditing functions. + +***************************************************************************/ + +#pragma once + +#ifndef __AUDIT_H__ +#define __AUDIT_H__ + +#include "hash.h" + + + +//************************************************************************** +// CONSTANTS +//************************************************************************** + +// hashes to use for validation +#define AUDIT_VALIDATE_FAST "R" /* CRC only */ +#define AUDIT_VALIDATE_FULL "RS" /* CRC + SHA1 */ + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + + +// forward declarations +class driver_enumerator; + +// ======================> audit_record + +// holds the result of auditing a single item +class audit_record +{ + friend class simple_list<audit_record>; + +public: + // media types + enum media_type + { + MEDIA_ROM = 0, + MEDIA_DISK, + MEDIA_SAMPLE + }; + + // status values + enum audit_status + { + STATUS_GOOD = 0, + STATUS_FOUND_INVALID, + STATUS_NOT_FOUND, + STATUS_ERROR + }; + + // substatus values + enum audit_substatus + { + SUBSTATUS_GOOD = 0, + SUBSTATUS_GOOD_NEEDS_REDUMP, + SUBSTATUS_FOUND_NODUMP, + SUBSTATUS_FOUND_BAD_CHECKSUM, + SUBSTATUS_FOUND_WRONG_LENGTH, + SUBSTATUS_NOT_FOUND, + SUBSTATUS_NOT_FOUND_NODUMP, + SUBSTATUS_NOT_FOUND_OPTIONAL, + SUBSTATUS_ERROR = 100 + }; + + // construction/destruction + audit_record(const rom_entry &media, media_type type); + audit_record(const char *name, media_type type); + + // getters + audit_record *next() const { return m_next; } + media_type type() const { return m_type; } + audit_status status() const { return m_status; } + audit_substatus substatus() const { return m_substatus; } + const char *name() const { return m_name; } + UINT64 expected_length() const { return m_explength; } + UINT64 actual_length() const { return m_length; } + const hash_collection &expected_hashes() const { return m_exphashes; } + const hash_collection &actual_hashes() const { return m_hashes; } + device_t *shared_device() const { return m_shared_device; } + + // setters + void set_status(audit_status status, audit_substatus substatus) + { + m_status = status; + m_substatus = substatus; + } + + void set_actual(const hash_collection &hashes, UINT64 length = 0) + { + m_hashes = hashes; + m_length = length; + } + + void set_shared_device(device_t *shared_device) + { + m_shared_device = shared_device; + } + +private: + // internal state + audit_record * m_next; + media_type m_type; /* type of item that was audited */ + audit_status m_status; /* status of audit on this item */ + audit_substatus m_substatus; /* finer-detail status */ + const char * m_name; /* name of item */ + UINT64 m_explength; /* expected length of item */ + UINT64 m_length; /* actual length of item */ + hash_collection m_exphashes; /* expected hash data */ + hash_collection m_hashes; /* actual hash information */ + device_t * m_shared_device; /* device that shares the rom */ +}; + + +// ======================> media_auditor + +// class which manages auditing of items +class media_auditor +{ +public: + // summary values + enum summary + { + CORRECT = 0, + NONE_NEEDED, + BEST_AVAILABLE, + INCORRECT, + NOTFOUND + }; + + // construction/destruction + media_auditor(const driver_enumerator &enumerator); + + // getters + const simple_list<audit_record> &records() const { return m_record_list; } + + // audit operations + summary audit_media(const char *validation = AUDIT_VALIDATE_FULL); + summary audit_device(device_t &device, const char *validation = AUDIT_VALIDATE_FULL); + summary audit_software(const char *list_name, software_info *swinfo, const char *validation = AUDIT_VALIDATE_FULL); + summary audit_samples(); + summary summarize(const char *name,std::string *output = nullptr); + summary winui_summarize(const char *name, std::string *output = nullptr); //WINUI - only report problems that the user can fix + +private: + // internal helpers + audit_record *audit_one_rom(const rom_entry *rom); + audit_record *audit_one_disk(const rom_entry *rom, const char *locationtag = nullptr); + void compute_status(audit_record &record, const rom_entry *rom, bool found); + device_t *find_shared_device(device_t &device, const char *name, const hash_collection &romhashes, UINT64 romlength); + + // internal state + simple_list<audit_record> m_record_list; + const driver_enumerator & m_enumerator; + const char * m_validation; + const char * m_searchpath; +}; + + +#endif /* __AUDIT_H__ */ diff --git a/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp b/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp new file mode 100644 index 00000000000..1ad3b0c34e1 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp @@ -0,0 +1,109 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#include "emu.h" +#include "banked_cart.h" + + + +extern const device_type NEOGEO_BANKED_CART = &device_creator<neogeo_banked_cart_device>; + + +neogeo_banked_cart_device::neogeo_banked_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, NEOGEO_BANKED_CART, "NeoGeo Banked Cartridge", tag, owner, clock, "neogeo_banked_cart", __FILE__), + m_bank_cartridge(nullptr), + m_main_cpu_bank_address(0), + m_region(nullptr), + m_region_size(0) + +{ +} + +void neogeo_banked_cart_device::postload() +{ + _set_main_cpu_bank_address(); +} + +void neogeo_banked_cart_device::device_start() +{ + save_item(NAME(m_main_cpu_bank_address)); + machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_banked_cart_device::postload), this)); +} + +void neogeo_banked_cart_device::device_reset() +{ +} + + + + + + +/************************************* + * + * Main CPU banking + * + *************************************/ + +void neogeo_banked_cart_device::_set_main_cpu_bank_address(void) +{ + if (!m_region) + printf("region is null\n"); + + if (!m_bank_cartridge) + printf("bank_cartridge is null\n"); + + if (m_region && m_bank_cartridge) m_bank_cartridge->set_base(m_region + m_main_cpu_bank_address); +} + + +void neogeo_banked_cart_device::neogeo_set_main_cpu_bank_address( UINT32 bank_address ) +{ +// if (LOG_MAIN_CPU_BANKING) logerror("MAIN CPU PC %06x: neogeo_set_main_cpu_bank_address %06x\n", m_maincpu->pc(), bank_address); + + m_main_cpu_bank_address = bank_address; + + _set_main_cpu_bank_address(); +} + + +WRITE16_MEMBER(neogeo_banked_cart_device::main_cpu_bank_select_w) +{ + UINT32 bank_address; + UINT32 len = m_region_size; + + if ((len <= 0x100000) && (data & 0x07)) + logerror("PC %06x: warning: bankswitch to %02x but no banks available\n", space.device().safe_pc(), data); + else + { + bank_address = ((data & 0x07) + 1) * 0x100000; + + if (bank_address >= len) + { + logerror("PC %06x: warning: bankswitch to empty bank %02x\n", space.device().safe_pc(), data); + bank_address = 0x100000; + } + + neogeo_set_main_cpu_bank_address(bank_address); + } +} + +void neogeo_banked_cart_device::init_banks(void) +{ + /* set initial main CPU bank */ + if (m_region_size > 0x100000) + neogeo_set_main_cpu_bank_address(0x100000); + else + neogeo_set_main_cpu_bank_address(0x000000); +} + +void neogeo_banked_cart_device::install_banks(running_machine& machine, cpu_device* maincpu, UINT8* region, UINT32 region_size) +{ + maincpu->space(AS_PROGRAM).install_read_bank(0x200000, 0x2fffff, 0, 0, "cartridge"); + maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(neogeo_banked_cart_device::main_cpu_bank_select_w),this)); + + m_bank_cartridge = machine.root_device().membank("cartridge"); + m_region = region; + m_region_size = region_size; + + init_banks(); +} diff --git a/docs/release/src/hbmame/bus/neogeo/banked_cart.h b/docs/release/src/hbmame/bus/neogeo/banked_cart.h new file mode 100644 index 00000000000..5f9c4d9503d --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/banked_cart.h @@ -0,0 +1,40 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#ifndef __NEOGEO_BANKED_CART__ +#define __NEOGEO_BANKED_CART__ + +extern const device_type NEOGEO_BANKED_CART; + +#define MCFG_NEOGEO_BANKED_CART_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, NEOGEO_BANKED_CART, 0) + + +class neogeo_banked_cart_device : public device_t +{ +public: + // construction/destruction + neogeo_banked_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + memory_bank* m_bank_cartridge; + UINT32 m_main_cpu_bank_address; + UINT8* m_region; + UINT32 m_region_size; + + + void install_banks(running_machine& machine, cpu_device* maincpu, UINT8* region, UINT32 region_size); + WRITE16_MEMBER(main_cpu_bank_select_w); + void neogeo_set_main_cpu_bank_address(UINT32 bank_address); + void _set_main_cpu_bank_address(); + void init_banks(void); + +protected: + virtual void device_start() override; + virtual void device_reset() override; + void postload(); +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/bootleg_cart.cpp b/docs/release/src/hbmame/bus/neogeo/bootleg_cart.cpp new file mode 100644 index 00000000000..45a4563f88d --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/bootleg_cart.cpp @@ -0,0 +1,378 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "bootleg_cart.h" + + +//------------------------------------------------- +// neogeo_bootleg_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_BOOTLEG_CART = &device_creator<neogeo_bootleg_cart>; + + +neogeo_bootleg_cart::neogeo_bootleg_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_bootleg_prot(*this, "bootleg_prot") + +{ +} + +neogeo_bootleg_cart::neogeo_bootleg_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_BOOTLEG_CART, "NEOGEO Bootleg Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_bootleg_prot(*this, "bootleg_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_bootleg_cart::device_start() +{ +} + +void neogeo_bootleg_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_bootleg_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( bootleg_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_bootleg_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( bootleg_cart ); +} + + + +/* Individual cartridge types (mirror DRIVER_INIT functionality) */ + + +/************************************************* + garoubl +**************************************************/ + +const device_type NEOGEO_BOOTLEG_GAROUBL_CART = &device_creator<neogeo_bootleg_garoubl_cart>; + +neogeo_bootleg_garoubl_cart::neogeo_bootleg_garoubl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_GAROUBL_CART, "NEOGEO BOOT garoubl Cart", tag, owner, clock, "boot_garoubl_cart", __FILE__) {} + +void neogeo_bootleg_garoubl_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_garoubl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} + +/************************************************* + cthd2003 +**************************************************/ + +const device_type NEOGEO_BOOTLEG_CTHD2003_CART = &device_creator<neogeo_bootleg_cthd2003_cart>; + +neogeo_bootleg_cthd2003_cart::neogeo_bootleg_cthd2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_CTHD2003_CART, "NEOGEO BOOT cthd2003 Cart", tag, owner, clock, "boot_cthd2003_cart", __FILE__) {} + +void neogeo_bootleg_cthd2003_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_bootleg_prot->patch_cthd2003(maincpu,m_banked_cart, cpuregion, cpuregion_size); +} + +void neogeo_bootleg_cthd2003_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region, audio_region_size, fix_region, fix_region_size); +} + +/******/ + +const device_type NEOGEO_BOOTLEG_CT2K3SP_CART = &device_creator<neogeo_bootleg_ct2k3sp_cart>; + +neogeo_bootleg_ct2k3sp_cart::neogeo_bootleg_ct2k3sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_CT2K3SP_CART, "NEOGEO BOOT ct2k3sp Cart", tag, owner, clock, "boot_ct2k3sp_cart", __FILE__) {} + +void neogeo_bootleg_ct2k3sp_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_bootleg_prot->patch_cthd2003(maincpu,m_banked_cart, cpuregion, cpuregion_size); +} + +void neogeo_bootleg_ct2k3sp_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->decrypt_ct2k3sp(spr_region, spr_region_size, audiocpu_region, audio_region_size, fix_region, fix_region_size); +} + +/******/ + +const device_type NEOGEO_BOOTLEG_CT2K3SA_CART = &device_creator<neogeo_bootleg_ct2k3sa_cart>; + +neogeo_bootleg_ct2k3sa_cart::neogeo_bootleg_ct2k3sa_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_CT2K3SA_CART, "NEOGEO BOOT ct2k3sa Cart", tag, owner, clock, "boot_ct2k3sa_cart", __FILE__) {} + +void neogeo_bootleg_ct2k3sa_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); +} + +void neogeo_bootleg_ct2k3sa_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->decrypt_ct2k3sa(spr_region, spr_region_size, audiocpu_region, audio_region_size); + m_bootleg_prot->patch_ct2k3sa(cpuregion, cpuregion_size); +} + +/************************************************* + kf10thep +**************************************************/ + +const device_type NEOGEO_BOOTLEG_KF10THEP_CART = &device_creator<neogeo_bootleg_kf10thep_cart>; + +neogeo_bootleg_kf10thep_cart::neogeo_bootleg_kf10thep_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KF10THEP_CART, "NEOGEO BOOT kf10thep Cart", tag, owner, clock, "boot_kf10thep_cart", __FILE__) {} + +void neogeo_bootleg_kf10thep_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_kf10thep_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->kf10thep_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region,fix_region_size,1); +} + + +/************************************************* + kf2k5uni +**************************************************/ + +const device_type NEOGEO_BOOTLEG_KF2K5UNI_CART = &device_creator<neogeo_bootleg_kf2k5uni_cart>; + +neogeo_bootleg_kf2k5uni_cart::neogeo_bootleg_kf2k5uni_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KF2K5UNI_CART, "NEOGEO BOOT kf2k5uni Cart", tag, owner, clock, "boot_kf2k5uni_cart", __FILE__) {} + +void neogeo_bootleg_kf2k5uni_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_kf2k5uni_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->decrypt_kf2k5uni(cpuregion,cpuregion_size, audiocpu_region, audio_region_size, fix_region, fix_region_size); +} + + +/************************************************* + kf2k4se +**************************************************/ + +const device_type NEOGEO_BOOTLEG_KF2K4SE_CART = &device_creator<neogeo_bootleg_kf2k4se_cart>; + +neogeo_bootleg_kf2k4se_cart::neogeo_bootleg_kf2k4se_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KF2K4SE_CART, "NEOGEO BOOT kf2k4se Cart", tag, owner, clock, "boot_kf2k4se_cart", __FILE__) {} + +void neogeo_bootleg_kf2k4se_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_kf2k4se_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->decrypt_kof2k4se_68k(cpuregion, cpuregion_size); +} + + + +/************************************************* + svcplus +**************************************************/ + +const device_type NEOGEO_BOOTLEG_SVCPLUS_CART = &device_creator<neogeo_bootleg_svcplus_cart>; + +neogeo_bootleg_svcplus_cart::neogeo_bootleg_svcplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_SVCPLUS_CART, "NEOGEO BOOT svcplus Cart", tag, owner, clock, "boot_svcplus_cart", __FILE__) {} + +void neogeo_bootleg_svcplus_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_svcplus_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->svcplus_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size, 1); + m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size); +} + + +/************************************************* + svcplusaa +**************************************************/ + +const device_type NEOGEO_BOOTLEG_SVCPLUSA_CART = &device_creator<neogeo_bootleg_svcplusa_cart>; + +neogeo_bootleg_svcplusa_cart::neogeo_bootleg_svcplusa_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_SVCPLUSA_CART, "NEOGEO BOOT svcplusa Cart", tag, owner, clock, "boot_svcplusa_cart", __FILE__) {} + +void neogeo_bootleg_svcplusa_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_svcplusa_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->svcplusa_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size); + m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size); +} + +/************************************************* + samsho5b +**************************************************/ + +const device_type NEOGEO_BOOTLEG_SAMSHO5B_CART = &device_creator<neogeo_bootleg_samsho5b_cart>; + +neogeo_bootleg_samsho5b_cart::neogeo_bootleg_samsho5b_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_SAMSHO5B_CART, "NEOGEO BOOT samsho5b Cart", tag, owner, clock, "boot_samsho5b_cart", __FILE__) {} + +void neogeo_bootleg_samsho5b_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_samsho5b_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->samsho5b_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->samsho5b_vx_decrypt(ym_region, ym_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} + + +/************************************************* + kof97oro +**************************************************/ + +const device_type NEOGEO_BOOTLEG_KOF97ORO_CART = &device_creator<neogeo_bootleg_kof97oro_cart>; + +neogeo_bootleg_kof97oro_cart::neogeo_bootleg_kof97oro_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KOF97ORO_CART, "NEOGEO BOOT kof97oro Cart", tag, owner, clock, "boot_kof97oro_cart", __FILE__) {} + +void neogeo_bootleg_kof97oro_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_kof97oro_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->kof97oro_px_decode(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} + + +/************************************************* + lans2004 +**************************************************/ + +const device_type NEOGEO_BOOTLEG_LANS2004_CART = &device_creator<neogeo_bootleg_lans2004_cart>; + +neogeo_bootleg_lans2004_cart::neogeo_bootleg_lans2004_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_LANS2004_CART, "NEOGEO BOOT lans2004 Cart", tag, owner, clock, "boot_lans2004_cart", __FILE__) {} + +void neogeo_bootleg_lans2004_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_lans2004_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->lans2004_decrypt_68k(cpuregion, cpuregion_size); + m_bootleg_prot->lans2004_vx_decrypt(ym_region, ym_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} + + +/************************************************* + kof10th +**************************************************/ + +const device_type NEOGEO_BOOTLEG_KOF10TH_CART = &device_creator<neogeo_bootleg_kof10th_cart>; + +neogeo_bootleg_kof10th_cart::neogeo_bootleg_kof10th_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KOF10TH_CART, "NEOGEO BOOT kof10th Cart", tag, owner, clock, "boot_kof10th_cart", __FILE__) {} + +void neogeo_bootleg_kof10th_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_bootleg_prot->install_kof10th_protection(maincpu,m_banked_cart, cpuregion, cpuregion_size, fixedregion, fixedregion_size); + +} + +void neogeo_bootleg_kof10th_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->decrypt_kof10th(cpuregion, cpuregion_size); +} + + + +/************************************************* + kog +**************************************************/ + +const device_type NEOGEO_BOOTLEG_KOG_CART = &device_creator<neogeo_bootleg_kog_cart>; + +neogeo_bootleg_kog_cart::neogeo_bootleg_kog_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KOG_CART, "NEOGEO BOOT kog Cart", tag, owner, clock, "boot_kog_cart", __FILE__), + m_kog_prot(*this, "kog_prot") +{} + +static MACHINE_CONFIG_FRAGMENT( kog_bootleg_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot") + MCFG_KOG_PROT_ADD("kog_prot") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_bootleg_kog_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( kog_bootleg_cart ); +} + + +void neogeo_bootleg_kog_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_kog_prot->kog_install_protection(maincpu); +} + +void neogeo_bootleg_kog_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kog_prot->kog_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} diff --git a/docs/release/src/hbmame/bus/neogeo/bootleg_cart.h b/docs/release/src/hbmame/bus/neogeo/bootleg_cart.h new file mode 100644 index 00000000000..77082b7035d --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/bootleg_cart.h @@ -0,0 +1,250 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_BOOTLEG_CART_H +#define __NEOGEO_BOOTLEG_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "sma_prot.h" +#include "bootleg_prot.h" +#include "kog_prot.h" + +// ======================> neogeo_bootleg_cart + +class neogeo_bootleg_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_bootleg_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_bootleg_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override {} + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} + virtual int get_fixed_bank_type(void) override { return 0; } + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<ngbootleg_prot_device> m_bootleg_prot; +}; + + + +// device type definition +extern const device_type NEOGEO_BOOTLEG_CART; + + +/************************************************* + GAROUBL +**************************************************/ + +class neogeo_bootleg_garoubl_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_garoubl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_GAROUBL_CART; + + +/************************************************* + CTHD2003 +**************************************************/ + +class neogeo_bootleg_cthd2003_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_cthd2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_CTHD2003_CART; + +class neogeo_bootleg_ct2k3sp_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_ct2k3sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_CT2K3SP_CART; + +class neogeo_bootleg_ct2k3sa_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_ct2k3sa_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_CT2K3SA_CART; + + +/************************************************* + KF10THEP +**************************************************/ + +class neogeo_bootleg_kf10thep_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_kf10thep_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_KF10THEP_CART; + + +/************************************************* + KF2K5UNI +**************************************************/ + +class neogeo_bootleg_kf2k5uni_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_kf2k5uni_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_KF2K5UNI_CART; + +/************************************************* + KF2K4SE +**************************************************/ + +class neogeo_bootleg_kf2k4se_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_kf2k4se_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_KF2K4SE_CART; + + +/************************************************* + SVCPLUS +**************************************************/ + +class neogeo_bootleg_svcplus_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_svcplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_SVCPLUS_CART; + +/************************************************* + SVCPLUSA +**************************************************/ + +class neogeo_bootleg_svcplusa_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_svcplusa_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_SVCPLUSA_CART; + +/************************************************* + SAMSHO5B +**************************************************/ + +class neogeo_bootleg_samsho5b_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_samsho5b_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_SAMSHO5B_CART; + + +/************************************************* + KOF97ORO +**************************************************/ + +class neogeo_bootleg_kof97oro_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_kof97oro_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_KOF97ORO_CART; + + +/************************************************* + LANS2004 +**************************************************/ + +class neogeo_bootleg_lans2004_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_lans2004_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_LANS2004_CART; + +/************************************************* + KOF10TH +**************************************************/ + +class neogeo_bootleg_kof10th_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_kof10th_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_KOF10TH_CART; + + + +/************************************************* + KOG +**************************************************/ + +class neogeo_bootleg_kog_cart : public neogeo_bootleg_cart +{ +public: + neogeo_bootleg_kog_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } + + virtual machine_config_constructor device_mconfig_additions() const override; + + required_device<kog_prot_device> m_kog_prot; +}; +extern const device_type NEOGEO_BOOTLEG_KOG_CART; + + + + + + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/bootleg_hybrid_cart.cpp b/docs/release/src/hbmame/bus/neogeo/bootleg_hybrid_cart.cpp new file mode 100644 index 00000000000..5d677c8cc74 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/bootleg_hybrid_cart.cpp @@ -0,0 +1,319 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + these are bootlegs using a mix of reimplemented original features, could be further sorted + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "bootleg_hybrid_cart.h" + + +//------------------------------------------------- +// neogeo_bootleg_hybrid_hybrid_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_BOOTLEG_HYBRID_HYBRID_CART = &device_creator<neogeo_bootleg_hybrid_hybrid_cart>; + + +neogeo_bootleg_hybrid_hybrid_cart::neogeo_bootleg_hybrid_hybrid_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_bootleg_prot(*this, "bootleg_prot"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot"), + m_kof2002_prot(*this, "kof2002_prot"), + m_pvc_prot(*this, "pvc_prot") +{ +} + +neogeo_bootleg_hybrid_hybrid_cart::neogeo_bootleg_hybrid_hybrid_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_BOOTLEG_HYBRID_HYBRID_CART, "NEOGEO SMA Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_bootleg_prot(*this, "bootleg_prot"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot"), + m_kof2002_prot(*this, "kof2002_prot"), + m_pvc_prot(*this, "pvc_prot") + +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_bootleg_hybrid_hybrid_cart::device_start() +{ +} + +void neogeo_bootleg_hybrid_hybrid_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_bootleg_hybrid_hybrid_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( bootleg_hybrid_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot") + MCFG_CMC_PROT_ADD("cmc_prot") + MCFG_PCM2_PROT_ADD("pcm2_prot") + MCFG_KOF2002_PROT_ADD("kof2002_prot") + MCFG_PVC_PROT_ADD("pvc_prot") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_bootleg_hybrid_hybrid_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( bootleg_hybrid_cart ); +} + + + +/* Individual cartridge types (mirror DRIVER_INIT functionality) */ + + +/************************************************* + mslug3b6 +**************************************************/ + +const device_type NEOGEO_BOOTLEG_HYBRID_MSLUG3B6_CART = &device_creator<neogeo_bootleg_hybrid_mslug3b6_cart>; + +neogeo_bootleg_hybrid_mslug3b6_cart::neogeo_bootleg_hybrid_mslug3b6_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_MSLUG3B6_CART, "NEOGEO BOOT mslug3b6 Cart", tag, owner, clock, "boot_mslug3b6_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_mslug3b6_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_hybrid_mslug3b6_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY); +} + +/************************************************* + kof2002b +**************************************************/ + +const device_type NEOGEO_BOOTLEG_HYBRID_KOF2002B_CART = &device_creator<neogeo_bootleg_hybrid_kof2002b_cart>; + +neogeo_bootleg_hybrid_kof2002b_cart::neogeo_bootleg_hybrid_kof2002b_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KOF2002B_CART, "NEOGEO BOOT kof2002b Cart", tag, owner, clock, "boot_kof2002b_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_kof2002b_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_hybrid_kof2002b_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_bootleg_prot->kof2002b_gfx_decrypt(spr_region,0x4000000); + m_bootleg_prot->kof2002b_gfx_decrypt(fix_region,0x20000); +} + +/***/ + +const device_type NEOGEO_BOOTLEG_HYBRID_KF2K2MP_CART = &device_creator<neogeo_bootleg_hybrid_kf2k2mp_cart>; + +neogeo_bootleg_hybrid_kf2k2mp_cart::neogeo_bootleg_hybrid_kf2k2mp_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K2MP_CART, "NEOGEO BOOT kf2k2mp Cart", tag, owner, clock, "boot_kf2k2mp_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_kf2k2mp_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_hybrid_kf2k2mp_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->kf2k2mp_decrypt(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); +} + +/***/ + +const device_type NEOGEO_BOOTLEG_HYBRID_KF2K2MP2_CART = &device_creator<neogeo_bootleg_hybrid_kf2k2mp2_cart>; + +neogeo_bootleg_hybrid_kf2k2mp2_cart::neogeo_bootleg_hybrid_kf2k2mp2_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K2MP2_CART, "NEOGEO BOOT kf2k2mp2 Cart", tag, owner, clock, "boot_kf2k2mp2_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_kf2k2mp2_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_hybrid_kf2k2mp2_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->kf2k2mp2_px_decrypt(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); +} + +/************************************************* + matrimbl +**************************************************/ + +const device_type NEOGEO_BOOTLEG_HYBRID_MATRIMBL_CART = &device_creator<neogeo_bootleg_hybrid_matrimbl_cart>; + +neogeo_bootleg_hybrid_matrimbl_cart::neogeo_bootleg_hybrid_matrimbl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_MATRIMBL_CART, "NEOGEO BOOT matrimbl Cart", tag, owner, clock, "boot_matrimbl_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_matrimbl_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_hybrid_matrimbl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size); + m_bootleg_prot->matrimbl_decrypt(spr_region, spr_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); /* required for text layer */ +} + +/************************************************* + ms5plus +**************************************************/ + +const device_type NEOGEO_BOOTLEG_HYBRID_MS5PLUS_CART = &device_creator<neogeo_bootleg_hybrid_ms5plus_cart>; + +neogeo_bootleg_hybrid_ms5plus_cart::neogeo_bootleg_hybrid_ms5plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_MS5PLUS_CART, "NEOGEO BOOT ms5plus Cart", tag, owner, clock, "boot_ms5plus_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_ms5plus_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_bootleg_prot->install_ms5plus_protection(maincpu,m_banked_cart); +} + +void neogeo_bootleg_hybrid_ms5plus_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG5_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); +} + +/************************************************* + svcboot +**************************************************/ + +const device_type NEOGEO_BOOTLEG_HYBRID_SVCBOOT_CART = &device_creator<neogeo_bootleg_hybrid_svcboot_cart>; + +neogeo_bootleg_hybrid_svcboot_cart::neogeo_bootleg_hybrid_svcboot_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_SVCBOOT_CART, "NEOGEO BOOT svcboot Cart", tag, owner, clock, "boot_svcboot_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_svcboot_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_pvc_prot->install_pvc_protection(maincpu,m_banked_cart); +} + +void neogeo_bootleg_hybrid_svcboot_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->svcboot_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size); +} + +/***/ + +const device_type NEOGEO_BOOTLEG_HYBRID_SVCSPLUS_CART = &device_creator<neogeo_bootleg_hybrid_svcsplus_cart>; + +neogeo_bootleg_hybrid_svcsplus_cart::neogeo_bootleg_hybrid_svcsplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_SVCSPLUS_CART, "NEOGEO BOOT svcsplus Cart", tag, owner, clock, "boot_svcsplus_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_svcsplus_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_pvc_prot->install_pvc_protection(maincpu,m_banked_cart); + +} + +void neogeo_bootleg_hybrid_svcsplus_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_bootleg_prot->svcsplus_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size); + m_bootleg_prot->svcsplus_px_hack(cpuregion, cpuregion_size); +} + + +/************************************************* + kf2k3bl +**************************************************/ + +const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3BL_CART = &device_creator<neogeo_bootleg_hybrid_kf2k3bl_cart>; + +neogeo_bootleg_hybrid_kf2k3bl_cart::neogeo_bootleg_hybrid_kf2k3bl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K3BL_CART, "NEOGEO BOOT kf2k3bl Cart", tag, owner, clock, "boot_kf2k3bl_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_kf2k3bl_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_bootleg_prot->kf2k3bl_install_protection(maincpu,m_banked_cart, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_hybrid_kf2k3bl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + +} + +const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3PL_CART = &device_creator<neogeo_bootleg_hybrid_kf2k3pl_cart>; + +neogeo_bootleg_hybrid_kf2k3pl_cart::neogeo_bootleg_hybrid_kf2k3pl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K3PL_CART, "NEOGEO BOOT kf2k3pl Cart", tag, owner, clock, "boot_kf2k3pl_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_kf2k3pl_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_bootleg_prot->kf2k3pl_install_protection(maincpu,m_banked_cart, cpuregion, cpuregion_size); +} + +void neogeo_bootleg_hybrid_kf2k3pl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_bootleg_prot->kf2k3pl_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); +} + + +const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3UPL_CART = &device_creator<neogeo_bootleg_hybrid_kf2k3upl_cart>; + +neogeo_bootleg_hybrid_kf2k3upl_cart::neogeo_bootleg_hybrid_kf2k3upl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K3UPL_CART, "NEOGEO BOOT kf2k3upl Cart", tag, owner, clock, "boot_kf2k3upl_cart", __FILE__) {} + +void neogeo_bootleg_hybrid_kf2k3upl_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_bootleg_prot->kf2k3bl_install_protection(maincpu,m_banked_cart, cpuregion, cpuregion_size); + +} + +void neogeo_bootleg_hybrid_kf2k3upl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_bootleg_prot->kf2k3upl_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); +} diff --git a/docs/release/src/hbmame/bus/neogeo/bootleg_hybrid_cart.h b/docs/release/src/hbmame/bus/neogeo/bootleg_hybrid_cart.h new file mode 100644 index 00000000000..09416da8545 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/bootleg_hybrid_cart.h @@ -0,0 +1,192 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_BOOTLEG_HYBRID_HYBRID_CART_H +#define __NEOGEO_BOOTLEG_HYBRID_HYBRID_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "bootleg_prot.h" +#include "pcm2_prot.h" +#include "cmc_prot.h" +#include "kof2002_prot.h" +#include "pvc_prot.h" + +// ======================> neogeo_bootleg_hybrid_hybrid_cart + +class neogeo_bootleg_hybrid_hybrid_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_bootleg_hybrid_hybrid_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_bootleg_hybrid_hybrid_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override {} + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} + virtual int get_fixed_bank_type(void) override { return 0; } + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<ngbootleg_prot_device> m_bootleg_prot; + required_device<cmc_prot_device> m_cmc_prot; + required_device<pcm2_prot_device> m_pcm2_prot; + required_device<kof2002_prot_device> m_kof2002_prot; + required_device<pvc_prot_device> m_pvc_prot; +}; + + + +// device type definition +extern const device_type NEOGEO_BOOTLEG_HYBRID_HYBRID_CART; + + + +/************************************************* + MSLUG3B6 +**************************************************/ + +class neogeo_bootleg_hybrid_mslug3b6_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_mslug3b6_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_MSLUG3B6_CART; + + +/************************************************* + KOF2002B +**************************************************/ + +class neogeo_bootleg_hybrid_kof2002b_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_kof2002b_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_KOF2002B_CART; + +class neogeo_bootleg_hybrid_kf2k2mp_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_kf2k2mp_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K2MP_CART; + +class neogeo_bootleg_hybrid_kf2k2mp2_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_kf2k2mp2_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K2MP2_CART; + + +/************************************************* + MATRIMBL +**************************************************/ + +class neogeo_bootleg_hybrid_matrimbl_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_matrimbl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 2; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_MATRIMBL_CART; + +/************************************************* + MS5PLUS +**************************************************/ + +class neogeo_bootleg_hybrid_ms5plus_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_ms5plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_MS5PLUS_CART; + +/************************************************* + SVCBOOT +**************************************************/ + +class neogeo_bootleg_hybrid_svcboot_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_svcboot_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_SVCBOOT_CART; + +class neogeo_bootleg_hybrid_svcsplus_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_svcsplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_SVCSPLUS_CART; + + + +/************************************************* + KF2K3BL +**************************************************/ + +class neogeo_bootleg_hybrid_kf2k3bl_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_kf2k3bl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3BL_CART; + +class neogeo_bootleg_hybrid_kf2k3pl_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_kf2k3pl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3PL_CART; + + +class neogeo_bootleg_hybrid_kf2k3upl_cart : public neogeo_bootleg_hybrid_hybrid_cart +{ +public: + neogeo_bootleg_hybrid_kf2k3upl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3UPL_CART; + + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/bootleg_prot.cpp b/docs/release/src/hbmame/bus/neogeo/bootleg_prot.cpp new file mode 100644 index 00000000000..38e4e91bb7f --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/bootleg_prot.cpp @@ -0,0 +1,1072 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#include "emu.h" +#include "bootleg_prot.h" + + + +extern const device_type NGBOOTLEG_PROT = &device_creator<ngbootleg_prot_device>; + + +ngbootleg_prot_device::ngbootleg_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, NGBOOTLEG_PROT, "NeoGeo Protection (Bootleg)", tag, owner, clock, "ngbootleg_prot", __FILE__), + kof2k3_overlay(0), + m_mainrom(nullptr), + m_fixedrom(nullptr), + m_bankdev(nullptr) +{ +} + + +void ngbootleg_prot_device::device_start() +{ + memset(m_cartridge_ram, 0x00, 0x2000); + + save_item(NAME(m_cartridge_ram)); +} + +void ngbootleg_prot_device::device_reset() +{ +} + + + +/*************************************************************************** + + Neo-Geo hardware encryption and protection used on bootleg cartridges + + Many of the NeoGeo bootlegs use their own form of encryption and + protection, presumably to make them harder for other bootleggers to + copy. This encryption often involves non-trivial scrambling of the + program roms and the games are protected using an Altera chip which + provides some kind of rom overlay, patching parts of the code. + The graphics roms are usually scrambled in a different way to the + official SNK cartridges too. + +***************************************************************************/ + +#include "emu.h" +#include "includes/neogeo.h" + + +/* General Bootleg Functions - used by more than 1 game */ + + +void ngbootleg_prot_device::neogeo_bootleg_cx_decrypt(UINT8*sprrom, UINT32 sprrom_size) +{ + int i; + int cx_size = sprrom_size; + UINT8 *rom = sprrom; + dynamic_buffer buf( cx_size ); + + memcpy( &buf[0], rom, cx_size ); + + for( i = 0; i < cx_size / 0x40; i++ ){ + memcpy( &rom[ i * 0x40 ], &buf[ (i ^ 1) * 0x40 ], 0x40 ); + } +} + + +void ngbootleg_prot_device::neogeo_bootleg_sx_decrypt(UINT8* fixed, UINT32 fixed_size, int value ) +{ + int sx_size = fixed_size; + UINT8 *rom = fixed; + int i; + + if (value == 1) + { + dynamic_buffer buf( sx_size ); + memcpy( &buf[0], rom, sx_size ); + + for( i = 0; i < sx_size; i += 0x10 ) + { + memcpy( &rom[ i ], &buf[ i + 8 ], 8 ); + memcpy( &rom[ i + 8 ], &buf[ i ], 8 ); + } + } + else if (value == 2) + { + for( i = 0; i < sx_size; i++ ) + rom[ i ] = BITSWAP8( rom[ i ], 7, 6, 0, 4, 3, 2, 1, 5 ); + } +} + + + +/* The King of Fighters '97 Oroshi Plus 2003 (bootleg) */ + +void ngbootleg_prot_device::kof97oro_px_decode(UINT8* cpurom, UINT32 cpurom_size) +{ + int i; + std::vector<UINT16> tmp( 0x500000 ); + UINT16 *src = (UINT16*)cpurom; + + for (i = 0; i < 0x500000/2; i++) { + tmp[i] = src[i ^ 0x7ffef]; + } + + memcpy (src, &tmp[0], 0x500000); +} + + +/* The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg) */ + + +/* this uses RAM based tiles for the text layer, however the implementation + is incomplete, at the moment the S data is copied from the program rom on + start-up instead */ + +void ngbootleg_prot_device::kof10thBankswitch(address_space &space, UINT16 nBank) +{ + UINT32 bank = 0x100000 + ((nBank & 7) << 20); + if (bank >= 0x700000) + bank = 0x100000; + m_bankdev->neogeo_set_main_cpu_bank_address(bank); +} + +READ16_MEMBER( ngbootleg_prot_device::kof10th_RAMB_r ) +{ + return m_cartridge_ram[offset]; +} + +READ16_MEMBER(ngbootleg_prot_device::kof10th_RAM2_r) +{ +// printf("kof10th_RAM2_r\n"); + return m_cartridge_ram2[offset]; +} + +WRITE16_MEMBER( ngbootleg_prot_device::kof10th_custom_w ) +{ + if (!m_cartridge_ram[0xFFE]) { // Write to RAM bank A + //UINT16 *prom = (UINT16*)m_mainrom; + COMBINE_DATA(&m_cartridge_ram2[(0x00000/2) + (offset & 0xFFFF)]); + } else { // Write S data on-the-fly + m_fixedrom[offset] = BITSWAP8(data,7,6,0,4,3,2,1,5); + } +} + +WRITE16_MEMBER( ngbootleg_prot_device::kof10th_bankswitch_w ) +{ + if (offset >= 0x5F000) { + if (offset == 0x5FFF8) { // Standard bankswitch + kof10thBankswitch(space, data); + } else if (offset == 0x5FFFC && m_cartridge_ram[0xFFC] != data) { // Special bankswitch + UINT8 *src = m_mainrom; + memcpy (src + 0x10000, src + ((data & 1) ? 0x810000 : 0x710000), 0xcffff); + } + COMBINE_DATA(&m_cartridge_ram[offset & 0xFFF]); + } +} + +void ngbootleg_prot_device::install_kof10th_protection (cpu_device* maincpu, neogeo_banked_cart_device* bankdev, UINT8* cpurom, UINT32 cpurom_size, UINT8* fixedrom, UINT32 fixedrom_size) +{ + m_mainrom = cpurom; + m_fixedrom = fixedrom; + m_bankdev = bankdev; + + maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAM2_r),this)); + + maincpu->space(AS_PROGRAM).install_read_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAMB_r),this)); + maincpu->space(AS_PROGRAM).install_write_handler(0x200000, 0x23ffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_custom_w),this)); + maincpu->space(AS_PROGRAM).install_write_handler(0x240000, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_bankswitch_w),this)); + memcpy(m_cartridge_ram2, cpurom + 0xe0000, 0x20000); + + // HACK: only save this at device_start (not allowed later) + if (machine().phase() <= MACHINE_PHASE_INIT) + save_pointer(NAME(m_fixedrom), 0x40000); +} + +void ngbootleg_prot_device::decrypt_kof10th(UINT8* cpurom, UINT32 cpurom_size) +{ + int i, j; + dynamic_buffer dst(0x900000); + UINT8 *src = cpurom; + + memcpy(&dst[0x000000], src + 0x700000, 0x100000); // Correct (Verified in Uni-bios) + memcpy(&dst[0x100000], src + 0x000000, 0x800000); + + for (i = 0; i < 0x900000; i++) { + j = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,2,9,8,7,1,5,4,3,10,6,0); + src[j] = dst[i]; + } + + // Altera protection chip patches these over P ROM + ((UINT16*)src)[0x0124/2] = 0x000d; // Enables XOR for RAM moves, forces SoftDIPs, and USA region + ((UINT16*)src)[0x0126/2] = 0xf7a8; + + ((UINT16*)src)[0x8bf4/2] = 0x4ef9; // Run code to change "S" data + ((UINT16*)src)[0x8bf6/2] = 0x000d; + ((UINT16*)src)[0x8bf8/2] = 0xf980; + +} + + +/* The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg) */ + + +void ngbootleg_prot_device::kf10thep_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + UINT16 *rom = (UINT16*)cpurom; + std::vector<UINT16> buf(0x100000/2); + + memcpy(&buf[0x000000/2], &rom[0x060000/2], 0x20000); + memcpy(&buf[0x020000/2], &rom[0x100000/2], 0x20000); + memcpy(&buf[0x040000/2], &rom[0x0e0000/2], 0x20000); + memcpy(&buf[0x060000/2], &rom[0x180000/2], 0x20000); + memcpy(&buf[0x080000/2], &rom[0x020000/2], 0x20000); + memcpy(&buf[0x0a0000/2], &rom[0x140000/2], 0x20000); + memcpy(&buf[0x0c0000/2], &rom[0x0c0000/2], 0x20000); + memcpy(&buf[0x0e0000/2], &rom[0x1a0000/2], 0x20000); + memcpy(&buf[0x0002e0/2], &rom[0x0402e0/2], 0x6a); // copy banked code to a new memory region + memcpy(&buf[0x0f92bc/2], &rom[0x0492bc/2], 0xb9e); // copy banked code to a new memory region + memcpy(rom, &buf[0], 0x100000); + + for (int i = 0xf92bc/2; i < 0xf9e58/2; i++) + { + if (rom[i+0] == 0x4eb9 && rom[i+1] == 0x0000) rom[i+1] = 0x000F; // correct JSR in moved code + if (rom[i+0] == 0x4ef9 && rom[i+1] == 0x0000) rom[i+1] = 0x000F; // correct JMP in moved code + } + rom[0x00342/2] = 0x000f; + + memmove(&rom[0x100000/2], &rom[0x200000/2], 0x600000); +} + + +/* The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg) */ + + +void ngbootleg_prot_device::kf2k5uni_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + int i, j, ofst; + UINT8 *src = cpurom; + UINT8 dst[0x80]; + + for (i = 0; i < 0x800000; i+=0x80) + { + for (j = 0; j < 0x80; j+=2) + { + ofst = BITSWAP8(j, 0, 3, 4, 5, 6, 1, 2, 7); + memcpy(&dst[j], src + i + ofst, 2); + } + memcpy(src + i, &dst[0], 0x80); + } + + memcpy(src, src + 0x600000, 0x100000); // Seems to be the same as kof10th +} + +void ngbootleg_prot_device::kf2k5uni_sx_decrypt(UINT8* fixedrom, UINT32 fixedrom_size) +{ + int i; + UINT8 *srom = fixedrom; + + for (i = 0; i < 0x20000; i++) + srom[i] = BITSWAP8(srom[i], 4, 5, 6, 7, 0, 1, 2, 3); +} + +void ngbootleg_prot_device::kf2k5uni_mx_decrypt(UINT8* audiorom, UINT32 audiorom_size) +{ + int i; + UINT8 *mrom = audiorom; + + for (i = 0; i < 0x30000; i++) + mrom[i] = BITSWAP8(mrom[i], 4, 5, 6, 7, 0, 1, 2, 3); +} + +void ngbootleg_prot_device::decrypt_kf2k5uni(UINT8* cpurom, UINT32 cpurom_size, UINT8* audiorom, UINT32 audiorom_size, UINT8* fixedrom, UINT32 fixedrom_size) +{ + kf2k5uni_px_decrypt(cpurom, cpurom_size); + kf2k5uni_sx_decrypt(fixedrom, fixedrom_size); + kf2k5uni_mx_decrypt(audiorom, audiorom_size); +} + + +/* The King of Fighters 2002 (bootleg) */ + + +void ngbootleg_prot_device::kof2002b_gfx_decrypt(UINT8 *src, int size) +{ + int i, j; + static const UINT8 t[ 8 ][ 6 ] = + { + { 0, 8, 7, 6, 2, 1 }, + { 1, 0, 8, 7, 6, 2 }, + { 2, 1, 0, 8, 7, 6 }, + { 6, 2, 1, 0, 8, 7 }, + { 7, 6, 2, 1, 0, 8 }, + { 0, 1, 2, 6, 7, 8 }, + { 2, 1, 0, 6, 7, 8 }, + { 8, 0, 7, 6, 2, 1 }, + }; + + dynamic_buffer dst( 0x10000 ); + + for ( i = 0; i < size; i+=0x10000 ) + { + memcpy( &dst[0], src+i, 0x10000 ); + + for ( j = 0; j < 0x200; j++ ) + { + int n = (j & 0x38) >> 3; + int ofst = BITSWAP16(j, 15, 14, 13, 12, 11, 10, 9, t[n][0], t[n][1], t[n][2], 5, 4, 3, t[n][3], t[n][4], t[n][5]); + memcpy( src+i+ofst*128, &dst[j*128], 128 ); + } + } +} + + +/* The King of Fighters 2002 Magic Plus (bootleg) */ + + +void ngbootleg_prot_device::kf2k2mp_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + int i,j; + + UINT8 *src = cpurom; + UINT8 dst[0x80]; + + memmove(src, src + 0x300000, 0x500000); + + for (i = 0; i < 0x800000; i+=0x80) + { + for (j = 0; j < 0x80 / 2; j++) + { + int ofst = BITSWAP8( j, 6, 7, 2, 3, 4, 5, 0, 1 ); + memcpy(dst + j * 2, src + i + ofst * 2, 2); + } + memcpy(src + i, dst, 0x80); + } +} + + +/* The King of Fighters 2002 Magic Plus II (bootleg) */ + + +void ngbootleg_prot_device::kf2k2mp2_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + UINT8 *src = cpurom; + dynamic_buffer dst(0x600000); + + memcpy (&dst[0x000000], &src[0x1C0000], 0x040000); + memcpy (&dst[0x040000], &src[0x140000], 0x080000); + memcpy (&dst[0x0C0000], &src[0x100000], 0x040000); + memcpy (&dst[0x100000], &src[0x200000], 0x400000); + memcpy (&src[0x000000], &dst[0x000000], 0x600000); +} + + +/* Crouching Tiger Hidden Dragon 2003 (bootleg of King of Fighters 2001) */ + + +/* descrambling information from razoola */ +void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix_do(UINT8* sprrom, UINT32 sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift) +{ + int i,j; + int tilesize=128; + + dynamic_buffer rom(16*tilesize); // 16 tiles buffer + UINT8* realrom = sprrom + start*tilesize; + + for (i = 0; i < (end-start)/16; i++) { + for (j = 0; j < 16; j++) { + int offset = (((j&1)>>0)<<bit0shift) + +(((j&2)>>1)<<bit1shift) + +(((j&4)>>2)<<bit2shift) + +(((j&8)>>3)<<bit3shift); + + memcpy(&rom[j*tilesize], realrom+offset*tilesize, tilesize); + } + memcpy(realrom,&rom[0],tilesize*16); + realrom+=16*tilesize; + } +} + +void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix(UINT8* sprrom, UINT32 sprrom_size, int start, int end) +{ + cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*0, end+512*0, 0,3,2,1); + cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*1, end+512*1, 1,0,3,2); + cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*2, end+512*2, 2,1,0,3); + // skip 3 & 4 + cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*5, end+512*5, 0,1,2,3); + cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*6, end+512*6, 0,1,2,3); + cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*7, end+512*7, 0,2,3,1); +} + +void ngbootleg_prot_device::cthd2003_c(UINT8* sprrom, UINT32 sprrom_size, int pow) +{ + int i; + + for (i=0; i<=192; i+=8) + cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512); + + for (i=200; i<=392; i+=8) + cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512); + + for (i=400; i<=592; i+=8) + cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512); + + for (i=600; i<=792; i+=8) + cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512); + + for (i=800; i<=992; i+=8) + cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512); + + for (i=1000; i<=1016; i+=8) + cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512); +} + +void ngbootleg_prot_device::decrypt_cthd2003(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size, UINT8* fixedrom, UINT32 fixedrom_size) +{ + UINT8 *romdata = fixedrom; + dynamic_buffer tmp(8*128*128); + + memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128); + memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128); + memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128); + memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128); + memcpy(romdata, &tmp[0], 8*128*128); + + romdata = audiorom+0x10000; + memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128); + memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128); + memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128); + memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128); + memcpy(romdata, &tmp[0], 8*128*128); + + memcpy(romdata-0x10000,romdata,0x10000); + + cthd2003_c(sprrom, sprrom_size, 0); +} + +WRITE16_MEMBER( ngbootleg_prot_device::cthd2003_bankswitch_w ) +{ + int bankaddress; + static const int cthd2003_banks[8] = + { + 1,0,1,0,1,0,3,2, + }; + if (offset == 0) + { + bankaddress = 0x100000 + cthd2003_banks[data&7]*0x100000; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress); + } +} + +void ngbootleg_prot_device::patch_cthd2003(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, UINT8* cpurom, UINT32 cpurom_size) +{ + /* patches thanks to razoola */ + int i; + UINT16 *mem16 = (UINT16 *)cpurom; + + /* special ROM banking handler */ + maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::cthd2003_bankswitch_w),this)); + m_bankdev = bankdev; + + // theres still a problem on the character select screen but it seems to be related to cpu core timing issues, + // overclocking the 68k prevents it. + + // fix garbage on s1 layer over everything + mem16[0xf415a/2] = 0x4ef9; + mem16[0xf415c/2] = 0x000f; + mem16[0xf415e/2] = 0x4cf2; + // Fix corruption in attract mode before title screen + for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1) + { + mem16[i] = 0x0000; + } + + // Fix for title page + for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2) + { + mem16[i] -= 0x7000; + mem16[i+1] -= 0x0010; + } + + // Fix for green dots on title page + for (i=0xac500/2;i < 0xac520/2; i=i+1) + { + mem16[i] = 0xFFFF; + } + // Fix for blanks as screen change level end clear + mem16[0x991d0/2] = 0xdd03; + mem16[0x99306/2] = 0xdd03; + mem16[0x99354/2] = 0xdd03; + mem16[0x9943e/2] = 0xdd03; +} + + +/* Crouching Tiger Hidden Dragon 2003 Super Plus (bootleg of King of Fighters 2001) */ + + +void ngbootleg_prot_device::ct2k3sp_sx_decrypt( UINT8* fixedrom, UINT32 fixedrom_size ) +{ + int rom_size = fixedrom_size; + UINT8 *rom = fixedrom; + dynamic_buffer buf( rom_size ); + int i; + int ofst; + + memcpy( &buf[0], rom, rom_size ); + + for( i = 0; i < rom_size; i++ ){ + ofst = BITSWAP24( (i & 0x1ffff), 23, 22, 21, 20, 19, 18, 17, 3, + 0, 1, 4, 2, 13, 14, 16, 15, + 5, 6, 11, 10, 9, 8, 7, 12 ); + + ofst += (i >> 17) << 17; + + rom[ i ] = buf[ ofst ]; + } + + memcpy( &buf[0], rom, rom_size ); + + memcpy( &rom[ 0x08000 ], &buf[ 0x10000 ], 0x8000 ); + memcpy( &rom[ 0x10000 ], &buf[ 0x08000 ], 0x8000 ); + memcpy( &rom[ 0x28000 ], &buf[ 0x30000 ], 0x8000 ); + memcpy( &rom[ 0x30000 ], &buf[ 0x28000 ], 0x8000 ); +} + +void ngbootleg_prot_device::decrypt_ct2k3sp(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size, UINT8* fixedrom, UINT32 fixedrom_size) +{ + UINT8 *romdata = audiorom+0x10000; + dynamic_buffer tmp(8*128*128); + memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128); + memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128); + memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128); + memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128); + memcpy(romdata, &tmp[0], 8*128*128); + + memcpy(romdata-0x10000,romdata,0x10000); + ct2k3sp_sx_decrypt(fixedrom, fixedrom_size); + cthd2003_c(sprrom,sprrom_size,0); +} + + +/* Crouching Tiger Hidden Dragon 2003 Super Plus alternate (bootleg of King of Fighters 2001) */ + + +void ngbootleg_prot_device::decrypt_ct2k3sa(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size ) +{ + UINT8 *romdata = audiorom+0x10000; + dynamic_buffer tmp(8*128*128); + memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128); + memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128); + memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128); + memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128); + memcpy(romdata, &tmp[0], 8*128*128); + + memcpy(romdata-0x10000,romdata,0x10000); + cthd2003_c(sprrom,sprrom_size, 0); +} + +void ngbootleg_prot_device::patch_ct2k3sa(UINT8* cpurom, UINT32 cpurom_size) +{ + /* patches thanks to razoola - same as for cthd2003*/ + int i; + UINT16 *mem16 = (UINT16 *)cpurom; + + // theres still a problem on the character select screen but it seems to be related to cpu core timing issues, + // overclocking the 68k prevents it. + + // fix garbage on s1 layer over everything + mem16[0xf415a/2] = 0x4ef9; + mem16[0xf415c/2] = 0x000f; + mem16[0xf415e/2] = 0x4cf2; + + // Fix corruption in attract mode before title screen + for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1) + { + mem16[i] = 0x0000; + } + + // Fix for title page + for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2) + { + mem16[i] -= 0x7000; + mem16[i+1] -= 0x0010; + } + + // Fix for green dots on title page + for (i=0xac500/2;i < 0xac520/2; i=i+1) + { + mem16[i] = 0xFFFF; + } + // Fix for blanks as screen change level end clear + mem16[0x991d0/2] = 0xdd03; + mem16[0x99306/2] = 0xdd03; + mem16[0x99354/2] = 0xdd03; + mem16[0x9943e/2] = 0xdd03; +} + + +/* King of Fighters Special Edition 2004 (bootleg of King of Fighters 2002) */ + + +void ngbootleg_prot_device::decrypt_kof2k4se_68k(UINT8* cpurom, UINT32 cpurom_size) +{ + UINT8 *src = cpurom+0x100000; + dynamic_buffer dst(0x400000); + int i; + static const int sec[] = {0x300000,0x200000,0x100000,0x000000}; + memcpy(&dst[0],src,0x400000); + + for(i = 0; i < 4; ++i) + { + memcpy(src+i*0x100000,&dst[sec[i]],0x100000); + } +} + + +/* Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg) */ + + +void ngbootleg_prot_device::lans2004_vx_decrypt(UINT8* ymsndrom, UINT32 ymsndrom_size) +{ + int i; + UINT8 *rom = ymsndrom; + for (i = 0; i < 0xA00000; i++) + rom[i] = BITSWAP8(rom[i], 0, 1, 5, 4, 3, 2, 6, 7); +} + +void ngbootleg_prot_device::lans2004_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size) +{ + /* Descrambling P ROMs - Thanks to Razoola for the info */ + int i; + UINT8 *src = cpurom; + UINT16 *rom = (UINT16*)cpurom; + + { + static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD }; + dynamic_buffer dst(0x600000); + + for (i = 0; i < 8; i++) + memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000); + + memcpy (&dst[0x0BBB00], src + 0x045B00, 0x001710); + memcpy (&dst[0x02FFF0], src + 0x1A92BE, 0x000010); + memcpy (&dst[0x100000], src + 0x200000, 0x400000); + memcpy (src, &dst[0], 0x600000); + } + + for (i = 0xBBB00/2; i < 0xBE000/2; i++) { + if ((((rom[i]&0xFFBF)==0x4EB9) || ((rom[i]&0xFFBF)==0x43B9)) && (rom[i+1]==0x0000)) { + rom[i + 1] = 0x000B; + rom[i + 2] += 0x6000; + } + } + + /* Patched by protection chip (Altera) ? */ + rom[0x2D15C/2] = 0x000B; + rom[0x2D15E/2] = 0xBB00; + rom[0x2D1E4/2] = 0x6002; + rom[0x2EA7E/2] = 0x6002; + rom[0xBBCD0/2] = 0x6002; + rom[0xBBDF2/2] = 0x6002; + rom[0xBBE42/2] = 0x6002; +} + + +/* Metal Slug 5 Plus (bootleg) */ + + +READ16_MEMBER( ngbootleg_prot_device::mslug5_prot_r ) +{ + logerror("PC %06x: access protected\n",space.device().safe_pc()); + return 0xa0; +} + +WRITE16_MEMBER( ngbootleg_prot_device::ms5plus_bankswitch_w ) +{ + int bankaddress; + logerror("offset: %06x PC %06x: set banking %04x\n",offset,space.device().safe_pc(),data); + if ((offset == 0)&&(data == 0xa0)) + { + bankaddress=0xa0; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress); + logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress); + } + else if(offset == 2) + { + data=data>>4; + //data=data&7; + bankaddress=data*0x100000; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress); + logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress); + } +} + +void ngbootleg_prot_device::install_ms5plus_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev) +{ + // special ROM banking handler / additional protection + maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2ffff0, 0x2fffff,read16_delegate(FUNC(ngbootleg_prot_device::mslug5_prot_r),this), write16_delegate(FUNC(ngbootleg_prot_device::ms5plus_bankswitch_w),this)); + m_bankdev = bankdev; + +} + + +/* SNK vs. CAPCOM SVC CHAOS (bootleg) */ + + +void ngbootleg_prot_device::svcboot_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + static const UINT8 sec[] = { + 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 + }; + int i; + int size = cpurom_size; + UINT8 *src = cpurom; + dynamic_buffer dst( size ); + int ofst; + for( i = 0; i < size / 0x100000; i++ ){ + memcpy( &dst[ i * 0x100000 ], &src[ sec[ i ] * 0x100000 ], 0x100000 ); + } + for( i = 0; i < size / 2; i++ ){ + ofst = BITSWAP8( (i & 0x0000ff), 7, 6, 1, 0, 3, 2, 5, 4 ); + ofst += (i & 0xffff00); + memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 0x02 ); + } +} + +void ngbootleg_prot_device::svcboot_cx_decrypt(UINT8*sprrom, UINT32 sprrom_size) +{ + static const UINT8 idx_tbl[ 0x10 ] = { + 0, 1, 0, 1, 2, 3, 2, 3, 3, 4, 3, 4, 4, 5, 4, 5, + }; + static const UINT8 bitswap4_tbl[ 6 ][ 4 ] = { + { 3, 0, 1, 2 }, + { 2, 3, 0, 1 }, + { 1, 2, 3, 0 }, + { 0, 1, 2, 3 }, + { 3, 2, 1, 0 }, + { 3, 0, 2, 1 }, + }; + int i; + int size = sprrom_size; + UINT8 *src = sprrom; + dynamic_buffer dst( size ); + int ofst; + memcpy( &dst[0], src, size ); + for( i = 0; i < size / 0x80; i++ ){ + int idx = idx_tbl[ (i & 0xf00) >> 8 ]; + int bit0 = bitswap4_tbl[ idx ][ 0 ]; + int bit1 = bitswap4_tbl[ idx ][ 1 ]; + int bit2 = bitswap4_tbl[ idx ][ 2 ]; + int bit3 = bitswap4_tbl[ idx ][ 3 ]; + ofst = BITSWAP8( (i & 0x0000ff), 7, 6, 5, 4, bit3, bit2, bit1, bit0 ); + ofst += (i & 0xfffff00); + memcpy( &src[ i * 0x80 ], &dst[ ofst * 0x80 ], 0x80 ); + } +} + + +/* SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 1) */ + + +void ngbootleg_prot_device::svcplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + static const int sec[] = { + 0x00, 0x03, 0x02, 0x05, 0x04, 0x01 + }; + int size = cpurom_size; + UINT8 *src = cpurom; + dynamic_buffer dst( size ); + int i; + int ofst; + memcpy( &dst[0], src, size ); + for( i = 0; i < size / 2; i++ ){ + ofst = BITSWAP24( (i & 0xfffff), 0x17, 0x16, 0x15, 0x14, 0x13, 0x00, 0x01, 0x02, + 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, + 0x07, 0x06, 0x05, 0x04, 0x03, 0x10, 0x11, 0x12 ); + ofst ^= 0x0f0007; + ofst += (i & 0xff00000); + memcpy( &src[ i * 0x02 ], &dst[ ofst * 0x02 ], 0x02 ); + } + memcpy( &dst[0], src, size ); + for( i = 0; i < 6; i++ ){ + memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 ); + } +} + +void ngbootleg_prot_device::svcplus_px_hack(UINT8* cpurom, UINT32 cpurom_size) +{ + /* patched by the protection chip? */ + UINT16 *mem16 = (UINT16 *)cpurom; + mem16[0x0f8016/2] = 0x33c1; +} + + +/* SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 2) */ + + +void ngbootleg_prot_device::svcplusa_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + int i; + static const int sec[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 + }; + int size = cpurom_size; + UINT8 *src = cpurom; + dynamic_buffer dst( size ); + memcpy( &dst[0], src, size ); + for( i = 0; i < 6; i++ ){ + memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 ); + } +} + + +/* SNK vs. CAPCOM SVC CHAOS Super Plus (bootleg) */ + + +void ngbootleg_prot_device::svcsplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + static const int sec[] = { + 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 + }; + int size = cpurom_size; + UINT8 *src = cpurom; + dynamic_buffer dst( size ); + int i; + int ofst; + memcpy( &dst[0], src, size ); + for( i = 0; i < size / 2; i++ ){ + ofst = BITSWAP16( (i & 0x007fff), 0x0f, 0x00, 0x08, 0x09, 0x0b, 0x0a, 0x0c, 0x0d, + 0x04, 0x03, 0x01, 0x07, 0x06, 0x02, 0x05, 0x0e ); + + ofst += (i & 0x078000); + ofst += sec[ (i & 0xf80000) >> 19 ] << 19; + memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 0x02 ); + } +} + +void ngbootleg_prot_device::svcsplus_px_hack(UINT8* cpurom, UINT32 cpurom_size) +{ + /* patched by the protection chip? */ + UINT16 *mem16 = (UINT16 *)cpurom; + mem16[0x9e90/2] = 0x000f; + mem16[0x9e92/2] = 0xc9c0; + mem16[0xa10c/2] = 0x4eb9; + mem16[0xa10e/2] = 0x000e; + mem16[0xa110/2] = 0x9750; +} + + +/* The King of Fighters 2003 (bootleg set 1) */ + + +READ16_MEMBER( ngbootleg_prot_device::kof2003_r) +{ + return m_cartridge_ram[offset]; +} + +READ16_MEMBER(ngbootleg_prot_device::kof2003_overlay_r) // hack? +{ + return kof2k3_overlay; +} + +WRITE16_MEMBER( ngbootleg_prot_device::kof2003_w ) +{ + data = COMBINE_DATA(&m_cartridge_ram[offset]); + if (offset == 0x1ff0/2 || offset == 0x1ff2/2) { + UINT8* cr = (UINT8 *)m_cartridge_ram; + UINT32 address = (cr[BYTE_XOR_LE(0x1ff3)]<<16)|(cr[BYTE_XOR_LE(0x1ff2)]<<8)|cr[BYTE_XOR_LE(0x1ff1)]; + UINT8 prt = cr[BYTE_XOR_LE(0x1ff2)]; + + cr[BYTE_XOR_LE(0x1ff0)] = 0xa0; + cr[BYTE_XOR_LE(0x1ff1)] &= 0xfe; + cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f; + m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000); + + kof2k3_overlay = (prt & 0x00ff) | (kof2k3_overlay & 0xff00); + } +} + +WRITE16_MEMBER( ngbootleg_prot_device::kof2003p_w ) +{ + data = COMBINE_DATA(&m_cartridge_ram[offset]); + if (offset == 0x1ff0/2 || offset == 0x1ff2/2) { + UINT8* cr = (UINT8 *)m_cartridge_ram; + UINT32 address = (cr[BYTE_XOR_LE(0x1ff3)]<<16)|(cr[BYTE_XOR_LE(0x1ff2)]<<8)|cr[BYTE_XOR_LE(0x1ff0)]; + UINT8 prt = cr[BYTE_XOR_LE(0x1ff2)]; + + cr[BYTE_XOR_LE(0x1ff0)] &= 0xfe; + cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f; + m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000); + + kof2k3_overlay = (prt & 0x00ff) | (kof2k3_overlay & 0xff00); + } +} + +void ngbootleg_prot_device::kf2k3bl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + int i; + static const UINT8 sec[] = { + 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 + }; + + int rom_size = 0x800000; + UINT8 *rom = cpurom; + dynamic_buffer buf( rom_size ); + memcpy( &buf[0], rom, rom_size ); + + for( i = 0; i < rom_size / 0x100000; i++ ){ + memcpy( &rom[ i * 0x100000 ], &buf[ sec[ i ] * 0x100000 ], 0x100000 ); + } +} + +void ngbootleg_prot_device::kf2k3bl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, UINT8* cpurom, UINT32 cpurom_size) +{ + m_mainrom = cpurom; + + maincpu->space(AS_PROGRAM).install_read_handler(0x58196, 0x58197, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_overlay_r),this) ); + + maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this), write16_delegate(FUNC(ngbootleg_prot_device::kof2003_w),this) ); + m_bankdev = bankdev; + +} + + +/* The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg) */ + + +void ngbootleg_prot_device::kf2k3pl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + std::vector<UINT16> tmp(0x100000/2); + UINT16*rom16 = (UINT16*)cpurom; + int j; + int i; + + for (i = 0;i < 0x700000/2;i+=0x100000/2) + { + memcpy(&tmp[0],&rom16[i],0x100000); + for (j = 0;j < 0x100000/2;j++) + rom16[i+j] = tmp[BITSWAP24(j,23,22,21,20,19,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)]; + } + + /* patched by Altera protection chip on PCB */ + rom16[0xf38ac/2] = 0x4e75; + + kof2k3_overlay = rom16[0x58196 / 2]; +} + +void ngbootleg_prot_device::kf2k3pl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, UINT8* cpurom, UINT32 cpurom_size) +{ + m_mainrom = cpurom; + maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this), write16_delegate(FUNC(ngbootleg_prot_device::kof2003p_w),this) ); + m_bankdev = bankdev; +} + + +/* The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg) */ + + +void ngbootleg_prot_device::kf2k3upl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + { + UINT8 *src = cpurom; + memmove(src+0x100000, src, 0x600000); + memmove(src, src+0x700000, 0x100000); + } + + { + int ofst; + int i; + UINT8 *rom = cpurom + 0xfe000; + UINT8 *buf = cpurom + 0xd0610; + + for( i = 0; i < 0x2000 / 2; i++ ){ + ofst = (i & 0xff00) + BITSWAP8( (i & 0x00ff), 7, 6, 0, 4, 3, 2, 1, 5 ); + memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 2 ); + } + } + + UINT16*rom16 = (UINT16*)cpurom; + kof2k3_overlay = rom16[0x58196 / 2]; + + +} + + +/* Samurai Shodown V / Samurai Spirits Zero (bootleg) */ + + +void ngbootleg_prot_device::samsho5b_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + int px_size = cpurom_size; + UINT8 *rom = cpurom; + dynamic_buffer buf( px_size ); + int ofst; + int i; + + memcpy( &buf[0], rom, px_size ); + + for( i = 0; i < px_size / 2; i++ ){ + ofst = BITSWAP8( (i & 0x000ff), 7, 6, 5, 4, 3, 0, 1, 2 ); + ofst += (i & 0xfffff00); + ofst ^= 0x060005; + + memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 0x02 ); + } + + memcpy( &buf[0], rom, px_size ); + + memcpy( &rom[ 0x000000 ], &buf[ 0x700000 ], 0x100000 ); + memcpy( &rom[ 0x100000 ], &buf[ 0x000000 ], 0x700000 ); +} + + +void ngbootleg_prot_device::samsho5b_vx_decrypt(UINT8* ymsndrom, UINT32 ymsndrom_size) +{ + int vx_size = ymsndrom_size; + UINT8 *rom = ymsndrom; + int i; + + for( i = 0; i < vx_size; i++ ) + rom[ i ] = BITSWAP8( rom[ i ], 0, 1, 5, 4, 3, 2, 6, 7 ); +} + + +/* Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg) */ + + +#define MATRIMBLZ80( i ) ( i^(BITSWAP8(i&0x3,4,3,1,2,0,7,6,5)<<8) ) + +void ngbootleg_prot_device::matrimbl_decrypt(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size) +{ + /* decrypt Z80 */ + UINT8 *rom = audiorom+0x10000; + dynamic_buffer buf( 0x20000 ); + int i, j; + memcpy( &buf[0], rom, 0x20000 ); + for( i=0x00000; i<0x20000; i++ ) + { + if ( i&0x10000 ) + { + if ( i&0x800 ) + { + j=MATRIMBLZ80( i ); + j=j^0x10000; + } + else + { + j=MATRIMBLZ80(( i^0x01 )); + } + } + else + { + if ( i&0x800 ) + { + j=MATRIMBLZ80(( i^0x01 )); + j=j^0x10000; + } + else + { + j=MATRIMBLZ80( i ); + } + } + rom[ j ]=buf[ i ]; + } + memcpy( rom-0x10000, rom, 0x10000 ); + + /* decrypt gfx */ + cthd2003_c(sprrom,sprrom_size, 0 ); +} diff --git a/docs/release/src/hbmame/bus/neogeo/bootleg_prot.h b/docs/release/src/hbmame/bus/neogeo/bootleg_prot.h new file mode 100644 index 00000000000..8aa1c9bdd7e --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/bootleg_prot.h @@ -0,0 +1,92 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#pragma once + +#include "banked_cart.h" + +#ifndef __NGBOOTLEG_PROT__ +#define __NGBOOTLEG_PROT__ + +extern const device_type NGBOOTLEG_PROT; + +#define MCFG_NGBOOTLEG_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, NGBOOTLEG_PROT, 0) + + +class ngbootleg_prot_device : public device_t +{ +public: + // construction/destruction + ngbootleg_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + void neogeo_bootleg_cx_decrypt(UINT8*sprrom, UINT32 sprrom_size); + void neogeo_bootleg_sx_decrypt(UINT8* fixed, UINT32 fixed_size, int value); + void kof97oro_px_decode(UINT8* cpurom, UINT32 cpurom_size); + void kof10thBankswitch(address_space &space, UINT16 nBank); + DECLARE_READ16_MEMBER(kof10th_RAM2_r); + DECLARE_READ16_MEMBER(kof10th_RAMB_r); + DECLARE_WRITE16_MEMBER(kof10th_custom_w); + DECLARE_WRITE16_MEMBER(kof10th_bankswitch_w); + void install_kof10th_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, UINT8* cpurom, UINT32 cpurom_size, UINT8* fixedrom, UINT32 fixedrom_size); + void decrypt_kof10th(UINT8* cpurom, UINT32 cpurom_size); + void kf10thep_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void kf2k5uni_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void kf2k5uni_sx_decrypt(UINT8* fixedrom, UINT32 fixedrom_size); + void kf2k5uni_mx_decrypt(UINT8* audiorom, UINT32 audiorom_size); + void decrypt_kf2k5uni(UINT8* cpurom, UINT32 cpurom_size, UINT8* audiorom, UINT32 audiorom_size, UINT8* fixedrom, UINT32 fixedrom_size); + void kof2002b_gfx_decrypt(UINT8 *src, int size); + void kf2k2mp_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void kf2k2mp2_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void cthd2003_neogeo_gfx_address_fix_do(UINT8* sprrom, UINT32 sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift); + void cthd2003_neogeo_gfx_address_fix(UINT8* sprrom, UINT32 sprrom_size, int start, int end); + void cthd2003_c(UINT8* sprrom, UINT32 sprrom_size, int pow); + void decrypt_cthd2003(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size, UINT8* fixedrom, UINT32 fixedrom_size); + DECLARE_WRITE16_MEMBER(cthd2003_bankswitch_w); + void patch_cthd2003(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, UINT8* cpurom, UINT32 cpurom_size); + void ct2k3sp_sx_decrypt(UINT8* fixedrom, UINT32 fixedrom_size); + void decrypt_ct2k3sp(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size, UINT8* fixedrom, UINT32 fixedrom_size); + void decrypt_ct2k3sa(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size); + void patch_ct2k3sa(UINT8* cpurom, UINT32 cpurom_size); + void decrypt_kof2k4se_68k(UINT8* cpurom, UINT32 cpurom_size); + void lans2004_vx_decrypt(UINT8* ymsndrom, UINT32 ymsndrom_size); + void lans2004_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size); + DECLARE_READ16_MEMBER(mslug5_prot_r); + DECLARE_WRITE16_MEMBER(ms5plus_bankswitch_w); + void install_ms5plus_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev); + void svcboot_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void svcboot_cx_decrypt(UINT8*sprrom, UINT32 sprrom_size); + void svcplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void svcplus_px_hack(UINT8* cpurom, UINT32 cpurom_size); + void svcplusa_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void svcsplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void svcsplus_px_hack(UINT8* cpurom, UINT32 cpurom_size); + DECLARE_READ16_MEMBER(kof2003_r); + DECLARE_WRITE16_MEMBER(kof2003_w); + DECLARE_WRITE16_MEMBER(kof2003p_w); + DECLARE_READ16_MEMBER(kof2003_overlay_r); + void kf2k3bl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void kf2k3bl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, UINT8* cpurom, UINT32 cpurom_size); + void kf2k3pl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void kf2k3pl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, UINT8* cpurom, UINT32 cpurom_size); + UINT16 kof2k3_overlay; + + void kf2k3upl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void samsho5b_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + void samsho5b_vx_decrypt(UINT8* ymsndrom, UINT32 ymsndrom_size); + void matrimbl_decrypt(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size); + + UINT16 m_cartridge_ram[0x1000]; // bootlegs + + // for kof10th + UINT8* m_mainrom; + UINT8* m_fixedrom; + neogeo_banked_cart_device* m_bankdev; + UINT16 m_cartridge_ram2[0x10000]; + +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/cmc_cart.cpp b/docs/release/src/hbmame/bus/neogeo/cmc_cart.cpp new file mode 100644 index 00000000000..c528366b717 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/cmc_cart.cpp @@ -0,0 +1,223 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "cmc_cart.h" + + +//------------------------------------------------- +// neogeo_cmc_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_CMC_CART = &device_creator<neogeo_cmc_cart>; + + +neogeo_cmc_cart::neogeo_cmc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_cmc_prot(*this, "cmc_prot") + +{ +} + +neogeo_cmc_cart::neogeo_cmc_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_CMC_CART, "NEOGEO SMA Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_cmc_prot(*this, "cmc_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_cmc_cart::device_start() +{ +} + +void neogeo_cmc_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_cmc_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( cmc_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_CMC_PROT_ADD("cmc_prot") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_cmc_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( cmc_cart ); +} + + + +/* Individual cartridge types (mirror DRIVER_INIT functionality) */ + +/************************************************* + Zupapa +**************************************************/ + +const device_type NEOGEO_CMC_ZUPAPA_CART = &device_creator<neogeo_cmc_zupapa_cart>; + +neogeo_cmc_zupapa_cart::neogeo_cmc_zupapa_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_ZUPAPA_CART, "NEOGEO CMC zupapa Cart", tag, owner, clock, "cmc_zupapa_cart", __FILE__) {} + +void neogeo_cmc_zupapa_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, ZUPAPA_GFX_KEY); +} + + +/************************************************* + Zupapa +**************************************************/ + +const device_type NEOGEO_CMC_MSLUG3H_CART = &device_creator<neogeo_cmc_mslug3h_cart>; + +neogeo_cmc_mslug3h_cart::neogeo_cmc_mslug3h_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_MSLUG3H_CART, "NEOGEO CMC mslug3h Cart", tag, owner, clock, "cmc_mslug3h_cart", __FILE__) {} + +void neogeo_cmc_mslug3h_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY); +} + + +/************************************************* + Ganryu +**************************************************/ + +const device_type NEOGEO_CMC_GANRYU_CART = &device_creator<neogeo_cmc_ganryu_cart>; + +neogeo_cmc_ganryu_cart::neogeo_cmc_ganryu_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_GANRYU_CART, "NEOGEO CMC ganryu Cart", tag, owner, clock, "cmc_ganryu_cart", __FILE__) {} + +void neogeo_cmc_ganryu_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GANRYU_GFX_KEY); +} + + +/************************************************* + S1945P +**************************************************/ + +const device_type NEOGEO_CMC_S1945P_CART = &device_creator<neogeo_cmc_s1945p_cart>; + +neogeo_cmc_s1945p_cart::neogeo_cmc_s1945p_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_S1945P_CART, "NEOGEO CMC s1945p Cart", tag, owner, clock, "cmc_s1945p_cart", __FILE__) {} + +void neogeo_cmc_s1945p_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, S1945P_GFX_KEY); +} + +/************************************************* + PREISLE2 +**************************************************/ + +const device_type NEOGEO_CMC_PREISLE2_CART = &device_creator<neogeo_cmc_preisle2_cart>; + +neogeo_cmc_preisle2_cart::neogeo_cmc_preisle2_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_PREISLE2_CART, "NEOGEO CMC preisle2 Cart", tag, owner, clock, "cmc_preisle2_cart", __FILE__) {} + +void neogeo_cmc_preisle2_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, PREISLE2_GFX_KEY); +} + +/************************************************* + BANGBEAD +**************************************************/ + +const device_type NEOGEO_CMC_BANGBEAD_CART = &device_creator<neogeo_cmc_bangbead_cart>; + +neogeo_cmc_bangbead_cart::neogeo_cmc_bangbead_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_BANGBEAD_CART, "NEOGEO CMC bangbead Cart", tag, owner, clock, "cmc_bangbead_cart", __FILE__) {} + +void neogeo_cmc_bangbead_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, BANGBEAD_GFX_KEY); +} + +/************************************************* + NITD +**************************************************/ + +const device_type NEOGEO_CMC_NITD_CART = &device_creator<neogeo_cmc_nitd_cart>; + +neogeo_cmc_nitd_cart::neogeo_cmc_nitd_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_NITD_CART, "NEOGEO CMC nitd Cart", tag, owner, clock, "cmc_nitd_cart", __FILE__) {} + +void neogeo_cmc_nitd_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, NITD_GFX_KEY); +} + + +/************************************************* + SENGOKU3 +**************************************************/ + +const device_type NEOGEO_CMC_SENGOKU3_CART = &device_creator<neogeo_cmc_sengoku3_cart>; + +neogeo_cmc_sengoku3_cart::neogeo_cmc_sengoku3_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_SENGOKU3_CART, "NEOGEO CMC sengoku3 Cart", tag, owner, clock, "cmc_sengoku3_cart", __FILE__) {} + +void neogeo_cmc_sengoku3_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SENGOKU3_GFX_KEY); +} + +/************************************************* + KOF99K +**************************************************/ + +const device_type NEOGEO_CMC_KOF99K_CART = &device_creator<neogeo_cmc_kof99k_cart>; + +neogeo_cmc_kof99k_cart::neogeo_cmc_kof99k_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF99K_CART, "NEOGEO CMC kof99k Cart", tag, owner, clock, "cmc_kof99k_cart", __FILE__) {} + +void neogeo_cmc_kof99k_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY); +} + + +/************************************************* + KOF2001 +**************************************************/ + +const device_type NEOGEO_CMC_KOF2001_CART = &device_creator<neogeo_cmc_kof2001_cart>; + +neogeo_cmc_kof2001_cart::neogeo_cmc_kof2001_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF2001_CART, "NEOGEO CMC kof2001 Cart", tag, owner, clock, "cmc_kof2001_cart", __FILE__) {} + +void neogeo_cmc_kof2001_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2001_GFX_KEY); +} + +/************************************************* + KOF2000N +**************************************************/ + +const device_type NEOGEO_CMC_KOF2000N_CART = &device_creator<neogeo_cmc_kof2000n_cart>; + +neogeo_cmc_kof2000n_cart::neogeo_cmc_kof2000n_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF2000N_CART, "NEOGEO CMC kof2000n Cart", tag, owner, clock, "cmc_kof2000n_cart", __FILE__) {} + +void neogeo_cmc_kof2000n_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2000_GFX_KEY); +} diff --git a/docs/release/src/hbmame/bus/neogeo/cmc_cart.h b/docs/release/src/hbmame/bus/neogeo/cmc_cart.h new file mode 100644 index 00000000000..6dcb544813a --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/cmc_cart.h @@ -0,0 +1,191 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_CMC_CART_H +#define __NEOGEO_CMC_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "sma_prot.h" +#include "cmc_prot.h" + +// ======================> neogeo_cmc_cart + +class neogeo_cmc_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_cmc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_cmc_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); } + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} + virtual int get_fixed_bank_type(void) override { return 0; } + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<cmc_prot_device> m_cmc_prot; +}; + + + +// device type definition +extern const device_type NEOGEO_CMC_CART; + + +/************************************************* + ZUPAPA +**************************************************/ + +class neogeo_cmc_zupapa_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_zupapa_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_ZUPAPA_CART; + +/************************************************* + MSLUG3H +**************************************************/ + +class neogeo_cmc_mslug3h_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_mslug3h_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_MSLUG3H_CART; + + +/************************************************* + GANRYU +**************************************************/ + +class neogeo_cmc_ganryu_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_ganryu_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_GANRYU_CART; + +/************************************************* + S1945P +**************************************************/ + +class neogeo_cmc_s1945p_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_s1945p_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_S1945P_CART; + + +/************************************************* + PREISLE2 +**************************************************/ + +class neogeo_cmc_preisle2_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_preisle2_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_PREISLE2_CART; + +/************************************************* + BANGBEAD +**************************************************/ + +class neogeo_cmc_bangbead_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_bangbead_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_BANGBEAD_CART; + + +/************************************************* + NITD +**************************************************/ + +class neogeo_cmc_nitd_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_nitd_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_NITD_CART; + +/************************************************* + SENGOKU3 +**************************************************/ + +class neogeo_cmc_sengoku3_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_sengoku3_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_SENGOKU3_CART; + +/************************************************* + KOF99K +**************************************************/ + +class neogeo_cmc_kof99k_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_kof99k_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_KOF99K_CART; + +/************************************************* + KOF2001 +**************************************************/ + +class neogeo_cmc_kof2001_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_kof2001_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_CMC_KOF2001_CART; + +/************************************************* + KOF2000N +**************************************************/ + +class neogeo_cmc_kof2000n_cart : public neogeo_cmc_cart +{ +public: + neogeo_cmc_kof2000n_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 2; } +}; +extern const device_type NEOGEO_CMC_KOF2000N_CART; + + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/cmc_prot.cpp b/docs/release/src/hbmame/bus/neogeo/cmc_prot.cpp new file mode 100644 index 00000000000..c4dc573af8a --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/cmc_prot.cpp @@ -0,0 +1,798 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#include "emu.h" +#include "cmc_prot.h" + + + +extern const device_type CMC_PROT = &device_creator<cmc_prot_device>; + + +cmc_prot_device::cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, CMC_PROT, "NeoGeo Protection (CMC)", tag, owner, clock, "cmc_prot", __FILE__), + type0_t03(nullptr), + type0_t12(nullptr), + type1_t03(nullptr), + type1_t12(nullptr), + address_8_15_xor1(nullptr), + address_8_15_xor2(nullptr), + address_16_23_xor1(nullptr), + address_16_23_xor2(nullptr), + address_0_7_xor(nullptr) +{ +} + + +void cmc_prot_device::device_start() +{ +} + +void cmc_prot_device::device_reset() +{ +} + + + + + + + +/*************************************************************************** + +NeoGeo 'C' ROM encryption + +Starting with KOF99, all NeoGeo games have encrypted graphics. Additionally +to that, the data for the front text layer, which was previously stored in +a separate ROM, is stored at the end of the tile data. + +The encryption is one of the nastiest implementation of a XOR scheme ever +seen, involving 9 seemingly uncorrelated 256-byte tables. All known games use +the same tables except KOF2000 and MS4 which use a different set. + +The 32 data bits of every longword are decrypted in a single step (one byte at +a time), but the values to use for the xor are determined in a convoluted way. +It's actually so convoluted that it's too difficult to describe - please refer +to the source below. +Suffice to say that bytes are handled in couples (0&3 and 1&2), and the two xor +values are taken from three tables, the indexes inside the tables depending on +bits 0-7 and 8-15 of the address, in one case further xored through the table +used in step 5) below. Additionally, the bytes in a couple can be swapped, +depending either on bit 8 of the address, or on bit 16 xored with the table +used in step 4) below. + +The 24 address bits are encrypted in five steps. Each step xors 8 bits with a +value taken from a different table; the index inside the table depends on 8 +other bits. +0) xor bits 0-7 with a fixed value that changes from game to game +1) xor bits 8-15 depending on bits 16-23 +2) xor bits 8-15 depending on bits 0-7 +3) xor bits 16-23 depending on bits 0-7 +4) xor bits 16-23 depending on bits 8-15 +5) xor bits 0-7 depending on bits 8-15 + +Each step acts on the current value, so e.g. step 4) uses bits 8-15 as modified +by step 2). + +[Note: the table used in step 1) is currently incomplete due to lack of data to +analyze] + + +There are two major weaknesses in this encryption algorithm, that exposed it to +a known plaintext attack. + +The first weakness is that the data xor depends on the address inside the +encrypted ROM instead that on the decrypted address; together with the high +concentration of 0x00 and 0xFF in the decrypted data (more than 60% of the +total), this exposed easily recognizable patterns in the encrypted data, which +could be exploited with some simple statistical checks. The deviousness of the +xor scheme was the major difficulty. + +The second weakness is that the address scrambling works on 32-bit words. Since +there are a large number of 32-bit values that appear only once in the whole +encrypted ROM space, this means that once the xor layer was broken, a large +table of encrypted-decrypted address correspondencies could be built and +analyzed, quickly leading to the algorithm. + +***************************************************************************/ + +static const UINT8 kof99_type0_t03[256] = +{ + 0xfb, 0x86, 0x9d, 0xf1, 0xbf, 0x80, 0xd5, 0x43, 0xab, 0xb3, 0x9f, 0x6a, 0x33, 0xd9, 0xdb, 0xb6, + 0x66, 0x08, 0x69, 0x88, 0xcc, 0xb7, 0xde, 0x49, 0x97, 0x64, 0x1f, 0xa6, 0xc0, 0x2f, 0x52, 0x42, + 0x44, 0x5a, 0xf2, 0x28, 0x98, 0x87, 0x96, 0x8a, 0x83, 0x0b, 0x03, 0x61, 0x71, 0x99, 0x6b, 0xb5, + 0x1a, 0x8e, 0xfe, 0x04, 0xe1, 0xf7, 0x7d, 0xdd, 0xed, 0xca, 0x37, 0xfc, 0xef, 0x39, 0x72, 0xda, + 0xb8, 0xbe, 0xee, 0x7f, 0xe5, 0x31, 0x78, 0xf3, 0x91, 0x9a, 0xd2, 0x11, 0x19, 0xb9, 0x09, 0x4c, + 0xfd, 0x6d, 0x2a, 0x4d, 0x65, 0xa1, 0x89, 0xc7, 0x75, 0x50, 0x21, 0xfa, 0x16, 0x00, 0xe9, 0x12, + 0x74, 0x2b, 0x1e, 0x4f, 0x14, 0x01, 0x70, 0x3a, 0x4e, 0x3f, 0xf5, 0xf4, 0x1d, 0x3d, 0x15, 0x27, + 0xa7, 0xff, 0x45, 0xe0, 0x6e, 0xf9, 0x54, 0xc8, 0x48, 0xad, 0xa5, 0x0a, 0xf6, 0x2d, 0x2c, 0xe2, + 0x68, 0x67, 0xd6, 0x85, 0xb4, 0xc3, 0x34, 0xbc, 0x62, 0xd3, 0x5f, 0x84, 0x06, 0x5b, 0x0d, 0x95, + 0xea, 0x5e, 0x9e, 0xd4, 0xeb, 0x90, 0x7a, 0x05, 0x81, 0x57, 0xe8, 0x60, 0x2e, 0x20, 0x25, 0x7c, + 0x46, 0x0c, 0x93, 0xcb, 0xbd, 0x17, 0x7e, 0xec, 0x79, 0xb2, 0xc2, 0x22, 0x41, 0xb1, 0x10, 0xac, + 0xa8, 0xbb, 0x9b, 0x82, 0x4b, 0x9c, 0x8b, 0x07, 0x47, 0x35, 0x24, 0x56, 0x8d, 0xaf, 0xe6, 0x26, + 0x40, 0x38, 0xc4, 0x5d, 0x1b, 0xc5, 0xd1, 0x0f, 0x6c, 0x7b, 0xb0, 0xe3, 0xa3, 0x23, 0x6f, 0x58, + 0xc1, 0xba, 0xcf, 0xd7, 0xa2, 0xe7, 0xd0, 0x63, 0x5c, 0xf8, 0x73, 0xa0, 0x13, 0xdc, 0x29, 0xcd, + 0xc9, 0x76, 0xae, 0x8f, 0xe4, 0x59, 0x30, 0xaa, 0x94, 0x1c, 0x3c, 0x0e, 0x55, 0x92, 0x77, 0x32, + 0xc6, 0xce, 0x18, 0x36, 0xdf, 0xa9, 0x8c, 0xd8, 0xa4, 0xf0, 0x3b, 0x51, 0x4a, 0x02, 0x3e, 0x53, +}; + + +static const UINT8 kof99_type0_t12[256] = +{ + 0x1f, 0xac, 0x4d, 0xcd, 0xca, 0x70, 0x02, 0x6b, 0x18, 0x40, 0x62, 0xb2, 0x3f, 0x9b, 0x5b, 0xef, + 0x69, 0x68, 0x71, 0x3b, 0xcb, 0xd4, 0x30, 0xbc, 0x47, 0x72, 0x74, 0x5e, 0x84, 0x4c, 0x1b, 0xdb, + 0x6a, 0x35, 0x1d, 0xf5, 0xa1, 0xb3, 0x87, 0x5d, 0x57, 0x28, 0x2f, 0xc4, 0xfd, 0x24, 0x26, 0x36, + 0xad, 0xbe, 0x61, 0x63, 0x73, 0xaa, 0x82, 0xee, 0x29, 0xd0, 0xdf, 0x8c, 0x15, 0xb5, 0x96, 0xf3, + 0xdd, 0x7e, 0x3a, 0x37, 0x58, 0x7f, 0x0c, 0xfc, 0x0b, 0x07, 0xe8, 0xf7, 0xf4, 0x14, 0xb8, 0x81, + 0xb6, 0xd7, 0x1e, 0xc8, 0x85, 0xe6, 0x9d, 0x33, 0x60, 0xc5, 0x95, 0xd5, 0x55, 0x00, 0xa3, 0xb7, + 0x7d, 0x50, 0x0d, 0xd2, 0xc1, 0x12, 0xe5, 0xed, 0xd8, 0xa4, 0x9c, 0x8f, 0x2a, 0x4f, 0xa8, 0x01, + 0x52, 0x83, 0x65, 0xea, 0x9a, 0x6c, 0x44, 0x4a, 0xe2, 0xa5, 0x2b, 0x46, 0xe1, 0x34, 0x25, 0xf8, + 0xc3, 0xda, 0xc7, 0x6e, 0x48, 0x38, 0x7c, 0x78, 0x06, 0x53, 0x64, 0x16, 0x98, 0x3c, 0x91, 0x42, + 0x39, 0xcc, 0xb0, 0xf1, 0xeb, 0x13, 0xbb, 0x05, 0x32, 0x86, 0x0e, 0xa2, 0x0a, 0x9e, 0xfa, 0x66, + 0x54, 0x8e, 0xd3, 0xe7, 0x19, 0x20, 0x77, 0xec, 0xff, 0xbd, 0x6d, 0x43, 0x23, 0x03, 0xab, 0x75, + 0x3d, 0xcf, 0xd1, 0xde, 0x92, 0x31, 0xa7, 0x45, 0x4b, 0xc2, 0x97, 0xf9, 0x7a, 0x88, 0xd9, 0x1c, + 0xe9, 0xe4, 0x10, 0xc9, 0x22, 0x2d, 0x90, 0x76, 0x17, 0x79, 0x04, 0x51, 0x1a, 0x5a, 0x5f, 0x2c, + 0x21, 0x6f, 0x3e, 0xe0, 0xf0, 0xbf, 0xd6, 0x94, 0x0f, 0x80, 0x11, 0xa0, 0x5c, 0xa9, 0x49, 0x2e, + 0xce, 0xaf, 0xa6, 0x9f, 0x7b, 0x99, 0xb9, 0xb4, 0xe3, 0xfb, 0xf6, 0x27, 0xf2, 0x93, 0xfe, 0x08, + 0x67, 0xae, 0x09, 0x89, 0xdc, 0x4e, 0xc6, 0xc0, 0x8a, 0xb1, 0x59, 0x8b, 0x41, 0x56, 0x8d, 0xba, +}; + + +static const UINT8 kof99_type1_t03[256] = +{ + 0xa9, 0x17, 0xaf, 0x0d, 0x34, 0x6e, 0x53, 0xb6, 0x7f, 0x58, 0xe9, 0x14, 0x5f, 0x55, 0xdb, 0xd4, + 0x42, 0x80, 0x99, 0x59, 0xa8, 0x3a, 0x57, 0x5d, 0xd5, 0x6f, 0x4c, 0x68, 0x35, 0x46, 0xa6, 0xe7, + 0x7b, 0x71, 0xe0, 0x93, 0xa2, 0x1f, 0x64, 0x21, 0xe3, 0xb1, 0x98, 0x26, 0xab, 0xad, 0xee, 0xe5, + 0xbb, 0xd9, 0x1e, 0x2e, 0x95, 0x36, 0xef, 0x23, 0x79, 0x45, 0x04, 0xed, 0x13, 0x1d, 0xf4, 0x85, + 0x96, 0xec, 0xc2, 0x32, 0xaa, 0x7c, 0x15, 0xd8, 0xda, 0x92, 0x90, 0x9d, 0xb7, 0x56, 0x6a, 0x66, + 0x41, 0xfc, 0x00, 0xf6, 0x50, 0x24, 0xcf, 0xfb, 0x11, 0xfe, 0x82, 0x48, 0x9b, 0x27, 0x1b, 0x67, + 0x4e, 0x84, 0x69, 0x97, 0x6d, 0x8c, 0xd2, 0xba, 0x74, 0xf9, 0x8f, 0xa5, 0x54, 0x5c, 0xcd, 0x73, + 0x07, 0xd1, 0x01, 0x09, 0xf1, 0x19, 0x3b, 0x5e, 0x87, 0x30, 0x76, 0xcc, 0xc0, 0x5a, 0xa7, 0x49, + 0x22, 0xfa, 0x16, 0x02, 0xdf, 0xa4, 0xff, 0xb3, 0x75, 0x33, 0xbd, 0x88, 0x2f, 0xcb, 0x2a, 0x44, + 0xb8, 0xbf, 0x1c, 0x0f, 0x81, 0x10, 0x43, 0xb4, 0xc8, 0x7e, 0x9a, 0x25, 0xea, 0x83, 0x4b, 0x38, + 0x7a, 0xd7, 0x3d, 0x1a, 0x4f, 0x62, 0x51, 0xc9, 0x47, 0x0e, 0xce, 0x3f, 0xc7, 0x4d, 0x2c, 0xa1, + 0x86, 0xb9, 0xc5, 0xca, 0xdd, 0x6b, 0x70, 0x6c, 0x91, 0x9c, 0xbe, 0x0a, 0x9f, 0xf5, 0x94, 0xbc, + 0x18, 0x2b, 0x60, 0x20, 0x29, 0xf7, 0xf2, 0x28, 0xc4, 0xa0, 0x0b, 0x65, 0xde, 0x8d, 0x78, 0x12, + 0x3e, 0xd0, 0x77, 0x08, 0x8b, 0xae, 0x05, 0x31, 0x3c, 0xd6, 0xa3, 0x89, 0x06, 0xdc, 0x52, 0x72, + 0xb0, 0xb5, 0x37, 0xd3, 0xc3, 0x8a, 0xc6, 0xf0, 0xc1, 0x61, 0xfd, 0x4a, 0x5b, 0x7d, 0x9e, 0xf3, + 0x63, 0x40, 0x2d, 0xe8, 0xb2, 0xe6, 0x39, 0x03, 0xeb, 0x8e, 0xe1, 0x0c, 0xe4, 0xe2, 0xf8, 0xac, +}; + + +static const UINT8 kof99_type1_t12[256] = +{ + 0xea, 0xe6, 0x5e, 0xa7, 0x8e, 0xac, 0x34, 0x03, 0x30, 0x97, 0x52, 0x53, 0x76, 0xf2, 0x62, 0x0b, + 0x0a, 0xfc, 0x94, 0xb8, 0x67, 0x36, 0x11, 0xbc, 0xae, 0xca, 0xfa, 0x15, 0x04, 0x2b, 0x17, 0xc4, + 0x3e, 0x5b, 0x59, 0x01, 0x57, 0xe2, 0xba, 0xb7, 0xd1, 0x3f, 0xf0, 0x6a, 0x9c, 0x2a, 0xcb, 0xa9, + 0xe3, 0x2c, 0xc0, 0x0f, 0x46, 0x91, 0x8a, 0xd0, 0x98, 0xc5, 0xa6, 0x1b, 0x96, 0x29, 0x12, 0x09, + 0x63, 0xed, 0xe0, 0xa2, 0x86, 0x77, 0xbe, 0xe5, 0x65, 0xdb, 0xbd, 0x50, 0xb3, 0x9d, 0x1a, 0x4e, + 0x79, 0x0c, 0x00, 0x43, 0xdf, 0x3d, 0x54, 0x33, 0x8f, 0x89, 0xa8, 0x7b, 0xf9, 0xd5, 0x27, 0x82, + 0xbb, 0xc2, 0x8c, 0x47, 0x88, 0x6b, 0xb4, 0xc3, 0xf8, 0xaa, 0x06, 0x1e, 0x83, 0x7d, 0x05, 0x78, + 0x85, 0xf6, 0x6e, 0x2e, 0xec, 0x5a, 0x31, 0x45, 0x38, 0x14, 0x16, 0x8b, 0x02, 0xe4, 0x4f, 0xb0, + 0xbf, 0xab, 0xa4, 0x9e, 0x48, 0x60, 0x19, 0x35, 0x08, 0xde, 0xdd, 0x66, 0x90, 0x51, 0xcc, 0xa3, + 0xaf, 0x70, 0x9b, 0x75, 0x95, 0x49, 0x6c, 0x64, 0x72, 0x7e, 0x44, 0xa0, 0x73, 0x25, 0x68, 0x55, + 0x1f, 0x40, 0x7a, 0x74, 0x0e, 0x8d, 0xdc, 0x1c, 0x71, 0xc8, 0xcf, 0xd7, 0xe8, 0xce, 0xeb, 0x32, + 0x3a, 0xee, 0x07, 0x61, 0x4d, 0xfe, 0x5c, 0x7c, 0x56, 0x2f, 0x2d, 0x5f, 0x6f, 0x9f, 0x81, 0x22, + 0x58, 0x4b, 0xad, 0xda, 0xb9, 0x10, 0x18, 0x23, 0xe1, 0xf3, 0x6d, 0xe7, 0xe9, 0x28, 0xd6, 0xd8, + 0xf4, 0x4c, 0x39, 0x21, 0xb2, 0x84, 0xc1, 0x24, 0x26, 0xf1, 0x93, 0x37, 0xc6, 0x4a, 0xcd, 0x20, + 0xc9, 0xd9, 0xc7, 0xb1, 0xff, 0x99, 0xd4, 0x5d, 0xb5, 0xa1, 0x87, 0x0d, 0x69, 0x92, 0x13, 0x80, + 0xd2, 0xd3, 0xfd, 0x1d, 0xf5, 0x3b, 0xa5, 0x7f, 0xef, 0x9a, 0xb6, 0x42, 0xfb, 0x3c, 0xf7, 0x41, +}; + + +/* underlined values are wrong (not enough evidence, FF fill in kof99 and garou) */ +/* they correspond to tiles 7d000-7efff */ +static const UINT8 kof99_address_8_15_xor1[256] = +{ + 0x00, 0xb1, 0x1e, 0xc5, 0x3d, 0x40, 0x45, 0x5e, 0xf2, 0xf8, 0x04, 0x63, 0x36, 0x87, 0x88, 0xbf, + 0xab, 0xcc, 0x78, 0x08, 0xdd, 0x20, 0xd4, 0x35, 0x09, 0x8e, 0x44, 0xae, 0x33, 0xa9, 0x9e, 0xcd, + 0xb3, 0xe5, 0xad, 0x41, 0xda, 0xbe, 0xf4, 0x16, 0x57, 0x2e, 0x53, 0x67, 0xaf, 0xdb, 0x8a, 0xd8, + 0x34, 0x17, 0x3c, 0x01, 0x55, 0x73, 0xcf, 0xe3, 0xe8, 0xc7, 0x0d, 0xe9, 0xa3, 0x13, 0x0c, 0xf6, + 0x90, 0x4e, 0xfb, 0x97, 0x6d, 0x5f, 0xa8, 0x71, 0x11, 0xfc, 0xd1, 0x95, 0x81, 0xba, 0x8c, 0x1b, + 0x39, 0xfe, 0xa2, 0x15, 0xa6, 0x52, 0x4d, 0x5b, 0x59, 0xa5, 0xe0, 0x96, 0xd9, 0x8f, 0x7b, 0xed, + 0x29, 0xd3, 0x1f, 0x0e, 0xec, 0x23, 0x0f, 0xb8, 0x6c, 0x6f, 0x7d, 0x18, 0x46, 0xd6, 0xe4, 0xb5, + 0x9a, 0x79, 0x02, 0xf5, 0x03, 0xc0, 0x60, 0x66, 0x5c, 0x2f, 0x76, 0x85, 0x9d, 0x54, 0x1a, 0x6a, + 0x28, 0xce, 0x7f, 0x7c, 0x91, 0x99, 0x4c, 0x83, 0x3e, 0xb4, 0x1d, 0x05, 0xc1, 0xc3, 0xd7, 0x47, + 0xde, 0xbc, 0x62, 0x6e, 0x86, 0x14, 0x80, 0x77, 0xeb, 0xf3, 0x07, 0x31, 0x56, 0xd2, 0xc2, 0xc6, + 0x6b, 0xdc, 0xfd, 0x22, 0x92, 0xf0, 0x06, 0x51, 0x2d, 0x38, 0xe6, 0xa0, 0x25, 0xdf, 0xd5, 0x2c, + 0x1c, 0x94, 0x12, 0x9c, 0xb0, 0x9b, 0xc4, 0x0b, 0xc8, 0xd0, 0xf7, 0x30, 0xcb, 0x27, 0xfa, 0x7a, + 0x10, 0x61, 0xaa, 0xa4, 0x70, 0xb7, 0x2a, 0x5a, 0xc9, 0xf1, 0x0a, 0x49, 0x65, 0xee, 0x69, 0x4b, + 0x3a, 0x8d, 0x32, 0x5d, 0x68, 0xb9, 0x9f, 0x75, 0x19, 0x3f, 0xac, 0x37, 0x4f, 0xe7, 0x93, 0x89, + 0x7e, 0x4a, 0x3b, 0xea, 0x74, 0x72, 0x43, 0xbd, 0x24, 0xef, 0xb6, 0xff, 0x64, 0x58, 0x84, 0x8b, + 0xa7, 0xbb, 0xb2, 0xe1, 0x26, 0x2b, 0x50, 0xca, 0x21, 0xf9, 0x98, 0xa1, 0xe2, 0x42, 0x82, 0x48, +// ^^^^ ^^^^ ^^^^ ^^^^ +}; + + +static const UINT8 kof99_address_8_15_xor2[256] = +{ + 0x9b, 0x9d, 0xc1, 0x3d, 0xa9, 0xb8, 0xf4, 0x6f, 0xf6, 0x25, 0xc7, 0x47, 0xd5, 0x97, 0xdf, 0x6b, + 0xeb, 0x90, 0xa4, 0xb2, 0x5d, 0xf5, 0x66, 0xb0, 0xb9, 0x8b, 0x93, 0x64, 0xec, 0x7b, 0x65, 0x8c, + 0xf1, 0x43, 0x42, 0x6e, 0x45, 0x9f, 0xb3, 0x35, 0x06, 0x71, 0x96, 0xdb, 0xa0, 0xfb, 0x0b, 0x3a, + 0x1f, 0xf8, 0x8e, 0x69, 0xcd, 0x26, 0xab, 0x86, 0xa2, 0x0c, 0xbd, 0x63, 0xa5, 0x7a, 0xe7, 0x6a, + 0x5f, 0x18, 0x9e, 0xbf, 0xad, 0x55, 0xb1, 0x1c, 0x5c, 0x03, 0x30, 0xc6, 0x37, 0x20, 0xe3, 0xc9, + 0x52, 0xe8, 0xee, 0x4f, 0x01, 0x70, 0xc4, 0x77, 0x29, 0x2a, 0xba, 0x53, 0x12, 0x04, 0x7d, 0xaf, + 0x33, 0x8f, 0xa8, 0x4d, 0xaa, 0x5b, 0xb4, 0x0f, 0x92, 0xbb, 0xed, 0xe1, 0x2f, 0x50, 0x6c, 0xd2, + 0x2c, 0x95, 0xd9, 0xf9, 0x98, 0xc3, 0x76, 0x4c, 0xf2, 0xe4, 0xe5, 0x2b, 0xef, 0x9c, 0x49, 0xb6, + 0x31, 0x3b, 0xbc, 0xa1, 0xca, 0xde, 0x62, 0x74, 0xea, 0x81, 0x00, 0xdd, 0xa6, 0x46, 0x88, 0x3f, + 0x39, 0xd6, 0x23, 0x54, 0x24, 0x4a, 0xd8, 0xdc, 0xd7, 0xd1, 0xcc, 0xbe, 0x57, 0x7c, 0xda, 0x44, + 0x61, 0xce, 0xd3, 0xd4, 0xe9, 0x28, 0x80, 0xe0, 0x56, 0x8a, 0x09, 0x05, 0x9a, 0x89, 0x1b, 0xf7, + 0xf3, 0x99, 0x6d, 0x5e, 0x48, 0x91, 0xc0, 0xd0, 0xc5, 0x79, 0x78, 0x41, 0x59, 0x21, 0x2e, 0xff, + 0xc2, 0x4b, 0x38, 0x83, 0x32, 0xe6, 0xe2, 0x7f, 0x1e, 0x17, 0x58, 0x1d, 0x1a, 0xfa, 0x85, 0x82, + 0x94, 0xc8, 0x72, 0x7e, 0xb7, 0xac, 0x0e, 0xfc, 0xfd, 0x16, 0x27, 0x75, 0x8d, 0xcb, 0x08, 0xfe, + 0x0a, 0x02, 0x0d, 0x36, 0x11, 0x22, 0x84, 0x40, 0x34, 0x3e, 0x2d, 0x68, 0x5a, 0xa7, 0x67, 0xae, + 0x87, 0x07, 0x10, 0x60, 0x14, 0x73, 0x3c, 0x51, 0x19, 0xa3, 0xb5, 0xcf, 0x13, 0xf0, 0x15, 0x4e, +}; + + +static const UINT8 kof99_address_16_23_xor1[256] = +{ + 0x00, 0x5f, 0x03, 0x52, 0xce, 0xe3, 0x7d, 0x8f, 0x6b, 0xf8, 0x20, 0xde, 0x7b, 0x7e, 0x39, 0xbe, + 0xf5, 0x94, 0x18, 0x78, 0x80, 0xc9, 0x7f, 0x7a, 0x3e, 0x63, 0xf2, 0xe0, 0x4e, 0xf7, 0x87, 0x27, + 0x69, 0x6c, 0xa4, 0x1d, 0x85, 0x5b, 0xe6, 0x44, 0x25, 0x0c, 0x98, 0xc7, 0x01, 0x02, 0xa3, 0x26, + 0x09, 0x38, 0xdb, 0xc3, 0x1e, 0xcf, 0x23, 0x45, 0x68, 0x76, 0xd6, 0x22, 0x5d, 0x5a, 0xae, 0x16, + 0x9f, 0xa2, 0xb5, 0xcd, 0x81, 0xea, 0x5e, 0xb8, 0xb9, 0x9d, 0x9c, 0x1a, 0x0f, 0xff, 0xe1, 0xe7, + 0x74, 0xaa, 0xd4, 0xaf, 0xfc, 0xc6, 0x33, 0x29, 0x5c, 0xab, 0x95, 0xf0, 0x19, 0x47, 0x59, 0x67, + 0xf3, 0x96, 0x60, 0x1f, 0x62, 0x92, 0xbd, 0x89, 0xee, 0x28, 0x13, 0x06, 0xfe, 0xfa, 0x32, 0x6d, + 0x57, 0x3c, 0x54, 0x50, 0x2c, 0x58, 0x49, 0xfb, 0x17, 0xcc, 0xef, 0xb2, 0xb4, 0xf9, 0x07, 0x70, + 0xc5, 0xa9, 0xdf, 0xd5, 0x3b, 0x86, 0x2b, 0x0d, 0x6e, 0x4d, 0x0a, 0x90, 0x43, 0x31, 0xc1, 0xf6, + 0x88, 0x0b, 0xda, 0x53, 0x14, 0xdc, 0x75, 0x8e, 0xb0, 0xeb, 0x99, 0x46, 0xa1, 0x15, 0x71, 0xc8, + 0xe9, 0x3f, 0x4a, 0xd9, 0x73, 0xe5, 0x7c, 0x30, 0x77, 0xd3, 0xb3, 0x4b, 0x37, 0x72, 0xc2, 0x04, + 0x97, 0x08, 0x36, 0xb1, 0x3a, 0x61, 0xec, 0xe2, 0x1c, 0x9a, 0x8b, 0xd1, 0x1b, 0x2e, 0x9e, 0x8a, + 0xd8, 0x41, 0xe4, 0xc4, 0x40, 0x2f, 0xad, 0xc0, 0xb6, 0x84, 0x51, 0x66, 0xbb, 0x12, 0xe8, 0xdd, + 0xcb, 0xbc, 0x6f, 0xd0, 0x11, 0x83, 0x56, 0x4c, 0xca, 0xbf, 0x05, 0x10, 0xd7, 0xba, 0xfd, 0xed, + 0x8c, 0x0e, 0x4f, 0x3d, 0x35, 0x91, 0xb7, 0xac, 0x34, 0x64, 0x2a, 0xf1, 0x79, 0x6a, 0x9b, 0x2d, + 0x65, 0xf4, 0x42, 0xa0, 0x8d, 0xa7, 0x48, 0x55, 0x21, 0x93, 0x24, 0xd2, 0xa6, 0xa5, 0xa8, 0x82, +}; + + +static const UINT8 kof99_address_16_23_xor2[256] = +{ + 0x29, 0x97, 0x1a, 0x2c, 0x0b, 0x94, 0x3e, 0x75, 0x01, 0x0d, 0x1b, 0xe1, 0x4d, 0x38, 0x39, 0x8f, + 0xe7, 0xd0, 0x60, 0x90, 0xb2, 0x0f, 0xbb, 0x70, 0x1f, 0xe6, 0x5b, 0x87, 0xb4, 0x43, 0xfd, 0xf5, + 0xf6, 0xf9, 0xad, 0xc0, 0x98, 0x17, 0x9f, 0x91, 0x15, 0x51, 0x55, 0x64, 0x6c, 0x18, 0x61, 0x0e, + 0xd9, 0x93, 0xab, 0xd6, 0x24, 0x2f, 0x6a, 0x3a, 0x22, 0xb1, 0x4f, 0xaa, 0x23, 0x48, 0xed, 0xb9, + 0x88, 0x8b, 0xa3, 0x6b, 0x26, 0x4c, 0xe8, 0x2d, 0x1c, 0x99, 0xbd, 0x5c, 0x58, 0x08, 0x50, 0xf2, + 0x2a, 0x62, 0xc1, 0x72, 0x66, 0x04, 0x10, 0x37, 0x6e, 0xfc, 0x44, 0xa9, 0xdf, 0xd4, 0x20, 0xdd, + 0xee, 0x41, 0xdb, 0x73, 0xde, 0x54, 0xec, 0xc9, 0xf3, 0x4b, 0x2e, 0xae, 0x5a, 0x4a, 0x5e, 0x47, + 0x07, 0x2b, 0x76, 0xa4, 0xe3, 0x28, 0xfe, 0xb0, 0xf0, 0x02, 0x06, 0xd1, 0xaf, 0x42, 0xc2, 0xa5, + 0xe0, 0x67, 0xbf, 0x16, 0x8e, 0x35, 0xce, 0x8a, 0xe5, 0x3d, 0x7b, 0x96, 0xd7, 0x79, 0x52, 0x1e, + 0xa1, 0xfb, 0x9b, 0xbe, 0x21, 0x9c, 0xe9, 0x56, 0x14, 0x7f, 0xa0, 0xe4, 0xc3, 0xc4, 0x46, 0xea, + 0xf7, 0xd2, 0x1d, 0x31, 0x0a, 0x5f, 0xeb, 0xa2, 0x68, 0x8d, 0xb5, 0xc5, 0x74, 0x0c, 0xdc, 0x82, + 0x80, 0x09, 0x19, 0x95, 0x71, 0x9a, 0x11, 0x57, 0x77, 0x4e, 0xc6, 0xff, 0x12, 0x03, 0xa7, 0xc7, + 0xf4, 0xc8, 0xb6, 0x7a, 0x59, 0x36, 0x3c, 0x53, 0xe2, 0x69, 0x8c, 0x25, 0x05, 0x45, 0x63, 0xf8, + 0x34, 0x89, 0x33, 0x3f, 0x85, 0x27, 0xbc, 0x65, 0xfa, 0xa8, 0x6d, 0x84, 0x5d, 0xba, 0x40, 0x32, + 0x30, 0xef, 0x83, 0x13, 0xa6, 0x78, 0xcc, 0x81, 0x9e, 0xda, 0xca, 0xd3, 0x7e, 0x9d, 0x6f, 0xcd, + 0xb7, 0xb3, 0xd8, 0xcf, 0x3b, 0x00, 0x92, 0xb8, 0x86, 0xac, 0x49, 0x7c, 0xf1, 0xd5, 0xcb, 0x7d, +}; + + +static const UINT8 kof99_address_0_7_xor[256] = +{ + 0x74, 0xad, 0x5d, 0x1d, 0x9e, 0xc3, 0xfa, 0x4e, 0xf7, 0xdb, 0xca, 0xa2, 0x64, 0x36, 0x56, 0x0c, + 0x4f, 0xcf, 0x43, 0x66, 0x1e, 0x91, 0xe3, 0xa5, 0x58, 0xc2, 0xc1, 0xd4, 0xb9, 0xdd, 0x76, 0x16, + 0xce, 0x61, 0x75, 0x01, 0x2b, 0x22, 0x38, 0x55, 0x50, 0xef, 0x6c, 0x99, 0x05, 0xe9, 0xe8, 0xe0, + 0x2d, 0xa4, 0x4b, 0x4a, 0x42, 0xae, 0xba, 0x8c, 0x6f, 0x93, 0x14, 0xbd, 0x71, 0x21, 0xb0, 0x02, + 0x15, 0xc4, 0xe6, 0x60, 0xd7, 0x44, 0xfd, 0x85, 0x7e, 0x78, 0x8f, 0x00, 0x81, 0xf1, 0xa7, 0x3b, + 0xa0, 0x10, 0xf4, 0x9f, 0x39, 0x88, 0x35, 0x62, 0xcb, 0x19, 0x31, 0x11, 0x51, 0xfb, 0x2a, 0x20, + 0x45, 0xd3, 0x7d, 0x92, 0x1b, 0xf2, 0x09, 0x0d, 0x97, 0xa9, 0xb5, 0x3c, 0xee, 0x5c, 0xaf, 0x7b, + 0xd2, 0x3a, 0x49, 0x8e, 0xb6, 0xcd, 0xd9, 0xde, 0x8a, 0x29, 0x6e, 0xd8, 0x0b, 0xe1, 0x69, 0x87, + 0x1a, 0x96, 0x18, 0xcc, 0xdf, 0xe7, 0xc5, 0xc7, 0xf8, 0x52, 0xc9, 0xf0, 0xb7, 0xe5, 0x33, 0xda, + 0x67, 0x9d, 0xa3, 0x03, 0x0e, 0x72, 0x26, 0x79, 0xe2, 0xb8, 0xfc, 0xaa, 0xfe, 0xb4, 0x86, 0xc8, + 0xd1, 0xbc, 0x12, 0x08, 0x77, 0xeb, 0x40, 0x8d, 0x04, 0x25, 0x4d, 0x5a, 0x6a, 0x7a, 0x2e, 0x41, + 0x65, 0x1c, 0x13, 0x94, 0xb2, 0x63, 0x28, 0x59, 0x5e, 0x9a, 0x30, 0x07, 0xc6, 0xbf, 0x17, 0xf5, + 0x0f, 0x89, 0xf3, 0x1f, 0xea, 0x6d, 0xb3, 0xc0, 0x70, 0x47, 0xf9, 0x53, 0xf6, 0xd6, 0x54, 0xed, + 0x6b, 0x4c, 0xe4, 0x8b, 0x83, 0x24, 0x90, 0xb1, 0x7c, 0xbb, 0x73, 0xab, 0xd5, 0x2f, 0x5f, 0xec, + 0x9c, 0x2c, 0xa8, 0x34, 0x46, 0x37, 0x27, 0xa1, 0x0a, 0x06, 0x80, 0x68, 0x82, 0x32, 0x84, 0xff, + 0x48, 0xac, 0x7f, 0x3f, 0x95, 0xdc, 0x98, 0x9b, 0xbe, 0x23, 0x57, 0x3e, 0x5b, 0xd0, 0x3d, 0xa6, +}; + + +static const UINT8 kof2000_type0_t03[256] = +{ + 0x10, 0x61, 0xf1, 0x78, 0x85, 0x52, 0x68, 0xe3, 0x12, 0x0d, 0xfa, 0xf0, 0xc9, 0x36, 0x5e, 0x3d, + 0xf9, 0xa6, 0x01, 0x2e, 0xc7, 0x84, 0xea, 0x2b, 0x6d, 0x14, 0x38, 0x4f, 0x55, 0x1c, 0x9d, 0xa7, + 0x7a, 0xc6, 0xf8, 0x9a, 0xe6, 0x42, 0xb5, 0xed, 0x7d, 0x3a, 0xb1, 0x05, 0x43, 0x4a, 0x22, 0xfd, + 0xac, 0xa4, 0x31, 0xc3, 0x32, 0x76, 0x95, 0x9e, 0x7e, 0x88, 0x8e, 0xa2, 0x97, 0x18, 0xbe, 0x2a, + 0xf5, 0xd6, 0xca, 0xcc, 0x72, 0x3b, 0x87, 0x6c, 0xde, 0x75, 0xd7, 0x21, 0xcb, 0x0b, 0xdd, 0xe7, + 0xe1, 0x65, 0xaa, 0xb9, 0x44, 0xfb, 0x66, 0x15, 0x1a, 0x3c, 0x98, 0xcf, 0x8a, 0xdf, 0x37, 0xa5, + 0x2f, 0x67, 0xd2, 0x83, 0xb6, 0x6b, 0xfc, 0xe0, 0xb4, 0x7c, 0x08, 0xdc, 0x93, 0x30, 0xab, 0xe4, + 0x19, 0xc2, 0x8b, 0xeb, 0xa0, 0x0a, 0xc8, 0x03, 0xc0, 0x4b, 0x64, 0x71, 0x86, 0x9c, 0x9b, 0x16, + 0x79, 0xff, 0x70, 0x09, 0x8c, 0xd0, 0xf6, 0x53, 0x07, 0x73, 0xd4, 0x89, 0xb3, 0x00, 0xe9, 0xfe, + 0xec, 0x8f, 0xbc, 0xb2, 0x1e, 0x5d, 0x11, 0x35, 0xa9, 0x06, 0x59, 0x9f, 0xc1, 0xd3, 0x7b, 0xf2, + 0xc5, 0x77, 0x4e, 0x39, 0x20, 0xd5, 0x6a, 0x82, 0xda, 0x45, 0xf3, 0x33, 0x81, 0x23, 0xba, 0xe2, + 0x1d, 0x5f, 0x5c, 0x51, 0x49, 0xae, 0x8d, 0xc4, 0xa8, 0xf7, 0x1f, 0x0f, 0x34, 0x28, 0xa1, 0xd9, + 0x27, 0xd8, 0x4c, 0x2c, 0xbf, 0x91, 0x3e, 0x69, 0x57, 0x41, 0x25, 0x0c, 0x5a, 0x90, 0x92, 0xb0, + 0x63, 0x6f, 0x40, 0xaf, 0x74, 0xb8, 0x2d, 0x80, 0xbb, 0x46, 0x94, 0xe5, 0x29, 0xee, 0xb7, 0x1b, + 0x96, 0xad, 0x13, 0x0e, 0x58, 0x99, 0x60, 0x4d, 0x17, 0x26, 0xce, 0xe8, 0xdb, 0xef, 0x24, 0xa3, + 0x6e, 0x7f, 0x54, 0x3f, 0x02, 0xd1, 0x5b, 0x50, 0x56, 0x48, 0xf4, 0xbd, 0x62, 0x47, 0x04, 0xcd, +}; + + +static const UINT8 kof2000_type0_t12[256] = +{ + 0xf4, 0x28, 0xb4, 0x8f, 0xfa, 0xeb, 0x8e, 0x54, 0x2b, 0x49, 0xd1, 0x76, 0x71, 0x47, 0x8b, 0x57, + 0x92, 0x85, 0x7c, 0xb8, 0x5c, 0x22, 0xf9, 0x26, 0xbc, 0x5b, 0x6d, 0x67, 0xae, 0x5f, 0x6f, 0xf5, + 0x9f, 0x48, 0x66, 0x40, 0x0d, 0x11, 0x4e, 0xb2, 0x6b, 0x35, 0x15, 0x0f, 0x18, 0x25, 0x1d, 0xba, + 0xd3, 0x69, 0x79, 0xec, 0xa8, 0x8c, 0xc9, 0x7f, 0x4b, 0xdb, 0x51, 0xaf, 0xca, 0xe2, 0xb3, 0x81, + 0x12, 0x5e, 0x7e, 0x38, 0xc8, 0x95, 0x01, 0xff, 0xfd, 0xfb, 0xf2, 0x74, 0x62, 0x14, 0xa5, 0x98, + 0xa6, 0xda, 0x80, 0x53, 0xe8, 0x56, 0xac, 0x1b, 0x52, 0xd0, 0xf1, 0x45, 0x42, 0xb6, 0x1a, 0x4a, + 0x3a, 0x99, 0xfc, 0xd2, 0x9c, 0xcf, 0x31, 0x2d, 0xdd, 0x86, 0x2f, 0x29, 0xe1, 0x03, 0x19, 0xa2, + 0x41, 0x33, 0x83, 0x90, 0xc1, 0xbf, 0x0b, 0x08, 0x3d, 0xd8, 0x8d, 0x6c, 0x39, 0xa0, 0xe3, 0x55, + 0x02, 0x50, 0x46, 0xe6, 0xc3, 0x82, 0x36, 0x13, 0x75, 0xab, 0x27, 0xd7, 0x1f, 0x0a, 0xd4, 0x89, + 0x59, 0x4f, 0xc0, 0x5d, 0xc6, 0xf7, 0x88, 0xbd, 0x3c, 0x00, 0xef, 0xcd, 0x05, 0x1c, 0xaa, 0x9b, + 0xed, 0x7a, 0x61, 0x17, 0x93, 0xfe, 0x23, 0xb9, 0xf3, 0x68, 0x78, 0xf6, 0x5a, 0x7b, 0xe0, 0xe4, + 0xa3, 0xee, 0x16, 0x72, 0xc7, 0x3b, 0x8a, 0x37, 0x2a, 0x70, 0xa9, 0x2c, 0x21, 0xf8, 0x24, 0x09, + 0xce, 0x20, 0x9e, 0x06, 0x87, 0xc5, 0x04, 0x64, 0x43, 0x7d, 0x4d, 0x10, 0xd6, 0xa4, 0x94, 0x4c, + 0x60, 0xde, 0xdf, 0x58, 0xb1, 0x44, 0x3f, 0xb0, 0xd9, 0xe5, 0xcb, 0xbb, 0xbe, 0xea, 0x07, 0x34, + 0x73, 0x6a, 0x77, 0xf0, 0x9d, 0x0c, 0x2e, 0x0e, 0x91, 0x9a, 0xcc, 0xc2, 0xb7, 0x63, 0x97, 0xd5, + 0xdc, 0xc4, 0x32, 0xe7, 0x84, 0x3e, 0x30, 0xa1, 0x1e, 0xb5, 0x6e, 0x65, 0xe9, 0xad, 0xa7, 0x96, +}; + + +static const UINT8 kof2000_type1_t03[256] = +{ + 0x9a, 0x2f, 0xcc, 0x4e, 0x40, 0x69, 0xac, 0xca, 0xa5, 0x7b, 0x0a, 0x61, 0x91, 0x0d, 0x55, 0x74, + 0xcd, 0x8b, 0x0b, 0x80, 0x09, 0x5e, 0x38, 0xc7, 0xda, 0xbf, 0xf5, 0x37, 0x23, 0x31, 0x33, 0xe9, + 0xae, 0x87, 0xe5, 0xfa, 0x6e, 0x5c, 0xad, 0xf4, 0x76, 0x62, 0x9f, 0x2e, 0x01, 0xe2, 0xf6, 0x47, + 0x8c, 0x7c, 0xaa, 0x98, 0xb5, 0x92, 0x51, 0xec, 0x5f, 0x07, 0x5d, 0x6f, 0x16, 0xa1, 0x1d, 0xa9, + 0x48, 0x45, 0xf0, 0x6a, 0x9c, 0x1e, 0x11, 0xa0, 0x06, 0x46, 0xd5, 0xf1, 0x73, 0xed, 0x94, 0xf7, + 0xc3, 0x57, 0x1b, 0xe0, 0x97, 0xb1, 0xa4, 0xa7, 0x24, 0xe7, 0x2b, 0x05, 0x5b, 0x34, 0x0c, 0xb8, + 0x0f, 0x9b, 0xc8, 0x4d, 0x5a, 0xa6, 0x86, 0x3e, 0x14, 0x29, 0x84, 0x58, 0x90, 0xdb, 0x2d, 0x54, + 0x9d, 0x82, 0xd4, 0x7d, 0xc6, 0x67, 0x41, 0x89, 0xc1, 0x13, 0xb0, 0x9e, 0x81, 0x6d, 0xa8, 0x59, + 0xbd, 0x39, 0x8e, 0xe6, 0x25, 0x8f, 0xd9, 0xa2, 0xe4, 0x53, 0xc5, 0x72, 0x7e, 0x36, 0x4a, 0x4f, + 0x52, 0xc2, 0x22, 0x2a, 0xce, 0x3c, 0x21, 0x2c, 0x00, 0xd7, 0x75, 0x8a, 0x27, 0xee, 0x43, 0xfe, + 0xcb, 0x6b, 0xb9, 0xa3, 0x78, 0xb7, 0x85, 0x02, 0x20, 0xd0, 0x83, 0xc4, 0x12, 0xf9, 0xfd, 0xd8, + 0x79, 0x64, 0x3a, 0x49, 0x03, 0xb4, 0xc0, 0xf2, 0xdf, 0x15, 0x93, 0x08, 0x35, 0xff, 0x70, 0xdd, + 0x28, 0x6c, 0x0e, 0x04, 0xde, 0x7a, 0x65, 0xd2, 0xab, 0x42, 0x95, 0xe1, 0x3f, 0x3b, 0x7f, 0x66, + 0xd1, 0x8d, 0xe3, 0xbb, 0x1c, 0xfc, 0x77, 0x1a, 0x88, 0x18, 0x19, 0x68, 0x1f, 0x56, 0xd6, 0xe8, + 0xb6, 0xbc, 0xd3, 0xea, 0x3d, 0x26, 0xb3, 0xc9, 0x44, 0xdc, 0xf3, 0x32, 0x30, 0xef, 0x96, 0x4c, + 0xaf, 0x17, 0xf8, 0xfb, 0x60, 0x50, 0xeb, 0x4b, 0x99, 0x63, 0xba, 0xb2, 0x71, 0xcf, 0x10, 0xbe, +}; + + +static const UINT8 kof2000_type1_t12[256] = +{ + 0xda, 0xa7, 0xd6, 0x6e, 0x2f, 0x5e, 0xf0, 0x3f, 0xa4, 0xce, 0xd3, 0xfd, 0x46, 0x2a, 0xac, 0xc9, + 0xbe, 0xeb, 0x9f, 0xd5, 0x3c, 0x61, 0x96, 0x11, 0xd0, 0x38, 0xca, 0x06, 0xed, 0x1b, 0x65, 0xe7, + 0x23, 0xdd, 0xd9, 0x05, 0xbf, 0x5b, 0x5d, 0xa5, 0x95, 0x00, 0xec, 0xf1, 0x01, 0xa9, 0xa6, 0xfc, + 0xbb, 0x54, 0xe3, 0x2e, 0x92, 0x58, 0x0a, 0x7b, 0xb6, 0xcc, 0xb1, 0x5f, 0x14, 0x35, 0x72, 0xff, + 0xe6, 0x52, 0xd7, 0x8c, 0xf3, 0x43, 0xaf, 0x9c, 0xc0, 0x4f, 0x0c, 0x42, 0x8e, 0xef, 0x80, 0xcd, + 0x1d, 0x7e, 0x88, 0x3b, 0x98, 0xa1, 0xad, 0xe4, 0x9d, 0x8d, 0x2b, 0x56, 0xb5, 0x50, 0xdf, 0x66, + 0x6d, 0xd4, 0x60, 0x09, 0xe1, 0xee, 0x4a, 0x47, 0xf9, 0xfe, 0x73, 0x07, 0x89, 0xa8, 0x39, 0xea, + 0x82, 0x9e, 0xcf, 0x26, 0xb2, 0x4e, 0xc3, 0x59, 0xf2, 0x3d, 0x9a, 0xb0, 0x69, 0xf7, 0xbc, 0x34, + 0xe5, 0x36, 0x22, 0xfb, 0x57, 0x71, 0x99, 0x6c, 0x83, 0x30, 0x55, 0xc2, 0xbd, 0xf4, 0x77, 0xe9, + 0x76, 0x97, 0xa0, 0xe0, 0xb9, 0x86, 0x6b, 0xa3, 0x84, 0x67, 0x1a, 0x70, 0x02, 0x5a, 0x41, 0x5c, + 0x25, 0x81, 0xaa, 0x28, 0x78, 0x4b, 0xc6, 0x64, 0x53, 0x16, 0x4d, 0x8b, 0x20, 0x93, 0xae, 0x0f, + 0x94, 0x2c, 0x3a, 0xc7, 0x62, 0xe8, 0xc4, 0xdb, 0x04, 0xc5, 0xfa, 0x29, 0x48, 0xd1, 0x08, 0x24, + 0x0d, 0xe2, 0xd8, 0x10, 0xb4, 0x91, 0x8a, 0x13, 0x0e, 0xdc, 0xd2, 0x79, 0xb8, 0xf8, 0xba, 0x2d, + 0xcb, 0xf5, 0x7d, 0x37, 0x51, 0x40, 0x31, 0xa2, 0x0b, 0x18, 0x63, 0x7f, 0xb3, 0xab, 0x9b, 0x87, + 0xf6, 0x90, 0xde, 0xc8, 0x27, 0x45, 0x7c, 0x1c, 0x85, 0x68, 0x33, 0x19, 0x03, 0x75, 0x15, 0x7a, + 0x1f, 0x49, 0x8f, 0x4c, 0xc1, 0x44, 0x17, 0x12, 0x6f, 0x32, 0xb7, 0x3e, 0x74, 0x1e, 0x21, 0x6a, +}; + + +static const UINT8 kof2000_address_8_15_xor1[256] = +{ + 0xfc, 0x9b, 0x1c, 0x35, 0x72, 0x53, 0xd6, 0x7d, 0x84, 0xa4, 0xc5, 0x93, 0x7b, 0xe7, 0x47, 0xd5, + 0x24, 0xa2, 0xfa, 0x19, 0x0c, 0xb1, 0x8c, 0xb9, 0x9d, 0xd8, 0x59, 0x4f, 0x3c, 0xb2, 0x78, 0x4a, + 0x2a, 0x96, 0x9a, 0xf1, 0x1f, 0x22, 0xa8, 0x5b, 0x67, 0xa3, 0x0f, 0x00, 0xfb, 0xdf, 0xeb, 0x0a, + 0x57, 0xb8, 0x25, 0xd7, 0xf0, 0x6b, 0x0b, 0x31, 0x95, 0x23, 0x2d, 0x5c, 0x27, 0xc7, 0xf4, 0x55, + 0x1a, 0xf7, 0x74, 0xbe, 0xd3, 0xac, 0x3d, 0xc1, 0x7f, 0xbd, 0x28, 0x01, 0x10, 0xe5, 0x09, 0x37, + 0x1e, 0x58, 0xaf, 0x17, 0xf2, 0x16, 0x30, 0x92, 0x36, 0x68, 0xe6, 0xd4, 0xea, 0xb7, 0x75, 0x54, + 0x77, 0x41, 0xb4, 0x8d, 0xe0, 0xf3, 0x51, 0x03, 0xa9, 0xe8, 0x66, 0xab, 0x29, 0xa5, 0xed, 0xcb, + 0xd1, 0xaa, 0xf5, 0xdb, 0x4c, 0x42, 0x97, 0x8a, 0xae, 0xc9, 0x6e, 0x04, 0x33, 0x85, 0xdd, 0x2b, + 0x6f, 0xef, 0x12, 0x21, 0x7a, 0xa1, 0x5a, 0x91, 0xc8, 0xcc, 0xc0, 0xa7, 0x60, 0x3e, 0x56, 0x2f, + 0xe4, 0x71, 0x99, 0xc2, 0xa0, 0x45, 0x80, 0x65, 0xbb, 0x87, 0x69, 0x81, 0x73, 0xca, 0xf6, 0x46, + 0x43, 0xda, 0x26, 0x7e, 0x8f, 0xe1, 0x8b, 0xfd, 0x50, 0x79, 0xba, 0xc6, 0x63, 0x4b, 0xb3, 0x8e, + 0x34, 0xe2, 0x48, 0x14, 0xcd, 0xe3, 0xc4, 0x05, 0x13, 0x40, 0x06, 0x6c, 0x88, 0xb0, 0xe9, 0x1b, + 0x4d, 0xf8, 0x76, 0x02, 0x44, 0x94, 0xcf, 0x32, 0xfe, 0xce, 0x3b, 0x5d, 0x2c, 0x89, 0x5f, 0xdc, + 0xd2, 0x9c, 0x6a, 0xec, 0x18, 0x6d, 0x0e, 0x86, 0xff, 0x5e, 0x9e, 0xee, 0x11, 0xd0, 0x49, 0x52, + 0x4e, 0x61, 0x90, 0x0d, 0xc3, 0x39, 0x15, 0x83, 0xb5, 0x62, 0x3f, 0x70, 0x7c, 0xad, 0x20, 0xbf, + 0x2e, 0x08, 0x1d, 0xf9, 0xb6, 0xa6, 0x64, 0x07, 0x82, 0x38, 0x98, 0x3a, 0x9f, 0xde, 0xbc, 0xd9, +}; + + +static const UINT8 kof2000_address_8_15_xor2[256] = +{ + 0x00, 0xbe, 0x06, 0x5a, 0xfa, 0x42, 0x15, 0xf2, 0x3f, 0x0a, 0x84, 0x93, 0x4e, 0x78, 0x3b, 0x89, + 0x32, 0x98, 0xa2, 0x87, 0x73, 0xdd, 0x26, 0xe5, 0x05, 0x71, 0x08, 0x6e, 0x9b, 0xe0, 0xdf, 0x9e, + 0xfc, 0x83, 0x81, 0xef, 0xb2, 0xc0, 0xc3, 0xbf, 0xa7, 0x6d, 0x1b, 0x95, 0xed, 0xb9, 0x3e, 0x13, + 0xb0, 0x47, 0x9c, 0x7a, 0x24, 0x41, 0x68, 0xd0, 0x36, 0x0b, 0xb5, 0xc2, 0x67, 0xf7, 0x54, 0x92, + 0x1e, 0x44, 0x86, 0x2b, 0x94, 0xcc, 0xba, 0x23, 0x0d, 0xca, 0x6b, 0x4c, 0x2a, 0x9a, 0x2d, 0x8b, + 0xe3, 0x52, 0x29, 0xf0, 0x21, 0xbd, 0xbb, 0x1f, 0xa3, 0xab, 0xf8, 0x46, 0xb7, 0x45, 0x82, 0x5e, + 0xdb, 0x07, 0x5d, 0xe9, 0x9d, 0x1a, 0x48, 0xce, 0x91, 0x12, 0xd4, 0xee, 0xa9, 0x39, 0xf1, 0x18, + 0x2c, 0x22, 0x8a, 0x7e, 0x34, 0x4a, 0x8c, 0xc1, 0x14, 0xf3, 0x20, 0x35, 0xd9, 0x96, 0x33, 0x77, + 0x9f, 0x76, 0x7c, 0x90, 0xc6, 0xd5, 0xa1, 0x5b, 0xac, 0x75, 0xc7, 0x0c, 0xb3, 0x17, 0xd6, 0x99, + 0x56, 0xa6, 0x3d, 0x1d, 0xb1, 0x2e, 0xd8, 0xbc, 0x2f, 0xde, 0x60, 0x55, 0x6c, 0x40, 0xcd, 0x43, + 0xff, 0xad, 0x38, 0x79, 0x51, 0xc8, 0x0e, 0x5f, 0xc4, 0x66, 0xcb, 0xa8, 0x7d, 0xa4, 0x3a, 0xea, + 0x27, 0x7b, 0x70, 0x8e, 0x5c, 0x19, 0x0f, 0x80, 0x6f, 0x8f, 0x10, 0xf9, 0x49, 0x85, 0x69, 0x7f, + 0xeb, 0x1c, 0x01, 0x65, 0x37, 0xa5, 0x28, 0xe4, 0x6a, 0x03, 0x04, 0xd1, 0x31, 0x11, 0x30, 0xfb, + 0x88, 0x97, 0xd3, 0xf6, 0xc5, 0x4d, 0xf5, 0x3c, 0xe8, 0x61, 0xdc, 0xd2, 0xb4, 0xb8, 0xa0, 0xae, + 0x16, 0x25, 0x02, 0x09, 0xfe, 0xcf, 0x53, 0x63, 0xaf, 0x59, 0xf4, 0xe1, 0xec, 0xd7, 0xe7, 0x50, + 0xe2, 0xc9, 0xaa, 0x4b, 0x8d, 0x4f, 0xe6, 0x64, 0xda, 0x74, 0xb6, 0x72, 0x57, 0x62, 0xfd, 0x58, +}; + + +static const UINT8 kof2000_address_16_23_xor1[256] = +{ + 0x45, 0x9f, 0x6e, 0x2f, 0x28, 0xbc, 0x5e, 0x6d, 0xda, 0xb5, 0x0d, 0xb8, 0xc0, 0x8e, 0xa2, 0x32, + 0xee, 0xcd, 0x8d, 0x48, 0x8c, 0x27, 0x14, 0xeb, 0x65, 0xd7, 0xf2, 0x93, 0x99, 0x90, 0x91, 0xfc, + 0x5f, 0xcb, 0xfa, 0x75, 0x3f, 0x26, 0xde, 0x72, 0x33, 0x39, 0xc7, 0x1f, 0x88, 0x79, 0x73, 0xab, + 0x4e, 0x36, 0x5d, 0x44, 0xd2, 0x41, 0xa0, 0x7e, 0xa7, 0x8b, 0xa6, 0xbf, 0x03, 0xd8, 0x86, 0xdc, + 0x2c, 0xaa, 0x70, 0x3d, 0x46, 0x07, 0x80, 0x58, 0x0b, 0x2b, 0xe2, 0xf0, 0xb1, 0xfe, 0x42, 0xf3, + 0xe9, 0xa3, 0x85, 0x78, 0xc3, 0xd0, 0x5a, 0xdb, 0x1a, 0xfb, 0x9d, 0x8a, 0xa5, 0x12, 0x0e, 0x54, + 0x8f, 0xc5, 0x6c, 0xae, 0x25, 0x5b, 0x4b, 0x17, 0x02, 0x9c, 0x4a, 0x24, 0x40, 0xe5, 0x9e, 0x22, + 0xc6, 0x49, 0x62, 0xb6, 0x6b, 0xbb, 0xa8, 0xcc, 0xe8, 0x81, 0x50, 0x47, 0xc8, 0xbe, 0x5c, 0xa4, + 0xd6, 0x94, 0x4f, 0x7b, 0x9a, 0xcf, 0xe4, 0x59, 0x7a, 0xa1, 0xea, 0x31, 0x37, 0x13, 0x2d, 0xaf, + 0x21, 0x69, 0x19, 0x1d, 0x6f, 0x16, 0x98, 0x1e, 0x08, 0xe3, 0xb2, 0x4d, 0x9b, 0x7f, 0xa9, 0x77, + 0xed, 0xbd, 0xd4, 0xd9, 0x34, 0xd3, 0xca, 0x09, 0x18, 0x60, 0xc9, 0x6a, 0x01, 0xf4, 0xf6, 0x64, + 0xb4, 0x3a, 0x15, 0xac, 0x89, 0x52, 0x68, 0x71, 0xe7, 0x82, 0xc1, 0x0c, 0x92, 0xf7, 0x30, 0xe6, + 0x1c, 0x3e, 0x0f, 0x0a, 0x67, 0x35, 0xba, 0x61, 0xdd, 0x29, 0xc2, 0xf8, 0x97, 0x95, 0xb7, 0x3b, + 0xe0, 0xce, 0xf9, 0xd5, 0x06, 0x76, 0xb3, 0x05, 0x4c, 0x04, 0x84, 0x3c, 0x87, 0x23, 0x63, 0x7c, + 0x53, 0x56, 0xe1, 0x7d, 0x96, 0x1b, 0xd1, 0xec, 0x2a, 0x66, 0xf1, 0x11, 0x10, 0xff, 0x43, 0x2e, + 0xdf, 0x83, 0x74, 0xf5, 0x38, 0x20, 0xfd, 0xad, 0xc4, 0xb9, 0x55, 0x51, 0xb0, 0xef, 0x00, 0x57, +}; + + +static const UINT8 kof2000_address_16_23_xor2[256] = +{ + 0x00, 0xb8, 0xf0, 0x34, 0xca, 0x21, 0x3c, 0xf9, 0x01, 0x8e, 0x75, 0x70, 0xec, 0x13, 0x27, 0x96, + 0xf4, 0x5b, 0x88, 0x1f, 0xeb, 0x4a, 0x7d, 0x9d, 0xbe, 0x02, 0x14, 0xaf, 0xa2, 0x06, 0xc6, 0xdb, + 0x35, 0x6b, 0x74, 0x45, 0x7b, 0x29, 0xd2, 0xfe, 0xb6, 0x15, 0xd0, 0x8a, 0xa9, 0x2d, 0x19, 0xf6, + 0x5e, 0x5a, 0x90, 0xe9, 0x11, 0x33, 0xc2, 0x47, 0x37, 0x4c, 0x4f, 0x59, 0xc3, 0x04, 0x57, 0x1d, + 0xf2, 0x63, 0x6d, 0x6e, 0x31, 0x95, 0xcb, 0x3e, 0x67, 0xb2, 0xe3, 0x98, 0xed, 0x8d, 0xe6, 0xfb, + 0xf8, 0xba, 0x5d, 0xd4, 0x2a, 0xf5, 0x3b, 0x82, 0x05, 0x16, 0x44, 0xef, 0x4d, 0xe7, 0x93, 0xda, + 0x9f, 0xbb, 0x61, 0xc9, 0x53, 0xbd, 0x76, 0x78, 0x52, 0x36, 0x0c, 0x66, 0xc1, 0x10, 0xdd, 0x7a, + 0x84, 0x69, 0xcd, 0xfd, 0x58, 0x0d, 0x6c, 0x89, 0x68, 0xad, 0x3a, 0xb0, 0x4b, 0x46, 0xc5, 0x03, + 0xb4, 0xf7, 0x30, 0x8c, 0x4e, 0x60, 0x73, 0xa1, 0x8b, 0xb1, 0x62, 0xcc, 0xd1, 0x08, 0xfc, 0x77, + 0x7e, 0xcf, 0x56, 0x51, 0x07, 0xa6, 0x80, 0x92, 0xdc, 0x0b, 0xa4, 0xc7, 0xe8, 0xe1, 0xb5, 0x71, + 0xea, 0xb3, 0x2f, 0x94, 0x18, 0xe2, 0x3d, 0x49, 0x65, 0xaa, 0xf1, 0x91, 0xc8, 0x99, 0x55, 0x79, + 0x86, 0xa7, 0x26, 0xa0, 0xac, 0x5f, 0xce, 0x6a, 0x5c, 0xf3, 0x87, 0x8f, 0x12, 0x1c, 0xd8, 0xe4, + 0x9b, 0x64, 0x2e, 0x1e, 0xd7, 0xc0, 0x17, 0xbc, 0xa3, 0xa8, 0x9a, 0x0e, 0x25, 0x40, 0x41, 0x50, + 0xb9, 0xbf, 0x28, 0xdf, 0x32, 0x54, 0x9e, 0x48, 0xd5, 0x2b, 0x42, 0xfa, 0x9c, 0x7f, 0xd3, 0x85, + 0x43, 0xde, 0x81, 0x0f, 0x24, 0xc4, 0x38, 0xae, 0x83, 0x1b, 0x6f, 0x7c, 0xe5, 0xff, 0x1a, 0xd9, + 0x3f, 0xb7, 0x22, 0x97, 0x09, 0xe0, 0xa5, 0x20, 0x23, 0x2c, 0x72, 0xd6, 0x39, 0xab, 0x0a, 0xee, +}; + + +static const UINT8 kof2000_address_0_7_xor[256] = +{ + 0x26, 0x48, 0x06, 0x9b, 0x21, 0xa9, 0x1b, 0x76, 0xc9, 0xf8, 0xb4, 0x67, 0xe4, 0xff, 0x99, 0xf7, + 0x15, 0x9e, 0x62, 0x00, 0x72, 0x4d, 0xa0, 0x4f, 0x02, 0xf1, 0xea, 0xef, 0x0b, 0xf3, 0xeb, 0xa6, + 0x93, 0x78, 0x6f, 0x7c, 0xda, 0xd4, 0x7b, 0x05, 0xe9, 0xc6, 0xd6, 0xdb, 0x50, 0xce, 0xd2, 0x01, + 0xb5, 0xe8, 0xe0, 0x2a, 0x08, 0x1a, 0xb8, 0xe3, 0xf9, 0xb1, 0xf4, 0x8b, 0x39, 0x2d, 0x85, 0x9c, + 0x55, 0x73, 0x63, 0x40, 0x38, 0x96, 0xdc, 0xa3, 0xa2, 0xa1, 0x25, 0x66, 0x6d, 0x56, 0x8e, 0x10, + 0x0f, 0x31, 0x1c, 0xf5, 0x28, 0x77, 0x0a, 0xd1, 0x75, 0x34, 0xa4, 0xfe, 0x7d, 0x07, 0x51, 0x79, + 0x41, 0x90, 0x22, 0x35, 0x12, 0xbb, 0xc4, 0xca, 0xb2, 0x1f, 0xcb, 0xc8, 0xac, 0xdd, 0xd0, 0x0d, + 0xfc, 0xc5, 0x9d, 0x14, 0xbc, 0x83, 0xd9, 0x58, 0xc2, 0x30, 0x9a, 0x6a, 0xc0, 0x0c, 0xad, 0xf6, + 0x5d, 0x74, 0x7f, 0x2f, 0xbd, 0x1d, 0x47, 0xd5, 0xe6, 0x89, 0xcf, 0xb7, 0xd3, 0x59, 0x36, 0x98, + 0xf0, 0xfb, 0x3c, 0xf2, 0x3f, 0xa7, 0x18, 0x82, 0x42, 0x5c, 0xab, 0xba, 0xde, 0x52, 0x09, 0x91, + 0xaa, 0x61, 0xec, 0xd7, 0x95, 0x23, 0xcd, 0x80, 0xa5, 0x68, 0x60, 0x27, 0x71, 0xe1, 0x2c, 0x2e, + 0x8d, 0x2b, 0x57, 0x65, 0xbf, 0xc1, 0x19, 0xc7, 0x49, 0x64, 0x88, 0x4a, 0xcc, 0x20, 0x4e, 0xd8, + 0x3b, 0x4c, 0x13, 0x5f, 0x9f, 0xbe, 0x5e, 0x6e, 0xfd, 0xe2, 0xfa, 0x54, 0x37, 0x0e, 0x16, 0x7a, + 0x6c, 0x33, 0xb3, 0x70, 0x84, 0x7e, 0xc3, 0x04, 0xb0, 0xae, 0xb9, 0x81, 0x03, 0x29, 0xdf, 0x46, + 0xe5, 0x69, 0xe7, 0x24, 0x92, 0x5a, 0x4b, 0x5b, 0x94, 0x11, 0x3a, 0x3d, 0x87, 0xed, 0x97, 0xb6, + 0x32, 0x3e, 0x45, 0xaf, 0x1e, 0x43, 0x44, 0x8c, 0x53, 0x86, 0x6b, 0xee, 0xa8, 0x8a, 0x8f, 0x17, +}; + + + +void cmc_prot_device::decrypt(UINT8 *r0, UINT8 *r1, + UINT8 c0, UINT8 c1, + const UINT8 *table0hi, + const UINT8 *table0lo, + const UINT8 *table1, + int base, + int invert) +{ + UINT8 tmp,xor0,xor1; + + tmp = table1[(base & 0xff) ^ address_0_7_xor[(base >> 8) & 0xff]]; + xor0 = (table0hi[(base >> 8) & 0xff] & 0xfe) | (tmp & 0x01); + xor1 = (tmp & 0xfe) | (table0lo[(base >> 8) & 0xff] & 0x01); + + if (invert) + { + *r0 = c1 ^ xor0; + *r1 = c0 ^ xor1; + } + else + { + *r0 = c0 ^ xor0; + *r1 = c1 ^ xor1; + } +} + + +void cmc_prot_device::neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, int extra_xor) +{ + int rpos; + + + dynamic_buffer buf(rom_size); + + // Data xor + for (rpos = 0;rpos < rom_size/4;rpos++) + { + decrypt(&buf[4*rpos+0], &buf[4*rpos+3], rom[4*rpos+0], rom[4*rpos+3], type0_t03, type0_t12, type1_t03, rpos, (rpos>>8) & 1); + decrypt(&buf[4*rpos+1], &buf[4*rpos+2], rom[4*rpos+1], rom[4*rpos+2], type0_t12, type0_t03, type1_t12, rpos, ((rpos>>16) ^ address_16_23_xor2[(rpos>>8) & 0xff]) & 1); + } + + // Address xor + for (rpos = 0;rpos < rom_size/4;rpos++) + { + int baser; + + baser = rpos; + + baser ^= extra_xor; + + baser ^= address_8_15_xor1[(baser >> 16) & 0xff] << 8; + baser ^= address_8_15_xor2[baser & 0xff] << 8; + baser ^= address_16_23_xor1[baser & 0xff] << 16; + baser ^= address_16_23_xor2[(baser >> 8) & 0xff] << 16; + baser ^= address_0_7_xor[(baser >> 8) & 0xff]; + + + if (rom_size == 0x3000000) /* special handling for preisle2 */ + { + if (rpos < 0x2000000/4) + baser &= (0x2000000/4)-1; + else + baser = 0x2000000/4 + (baser & ((0x1000000/4)-1)); + } + else if (rom_size == 0x6000000) /* special handling for kf2k3pcb */ + { + if (rpos < 0x4000000/4) + baser &= (0x4000000/4)-1; + else + baser = 0x4000000/4 + (baser & ((0x1000000/4)-1)); + } + else /* Clamp to the real rom size */ + baser &= (rom_size/4)-1; + + rom[4*rpos+0] = buf[4*baser+0]; + rom[4*rpos+1] = buf[4*baser+1]; + rom[4*rpos+2] = buf[4*baser+2]; + rom[4*rpos+3] = buf[4*baser+3]; + } +} + + +/* the S data comes from the end of the C data */ +void cmc_prot_device::neogeo_sfix_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size) +{ + int i; + int tx_size = fixed_size; + UINT8 *src = rom+rom_size-tx_size; + UINT8 *dst = fixed; + + for (i = 0;i < tx_size;i++) + dst[i] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)]; +} + + +/* CMC42 protection chip */ +void cmc_prot_device::kof99_neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size, int extra_xor) +{ + type0_t03 = kof99_type0_t03; + type0_t12 = kof99_type0_t12; + type1_t03 = kof99_type1_t03; + type1_t12 = kof99_type1_t12; + address_8_15_xor1 = kof99_address_8_15_xor1; + address_8_15_xor2 = kof99_address_8_15_xor2; + address_16_23_xor1 = kof99_address_16_23_xor1; + address_16_23_xor2 = kof99_address_16_23_xor2; + address_0_7_xor = kof99_address_0_7_xor; + neogeo_gfx_decrypt(rom, rom_size, extra_xor); + neogeo_sfix_decrypt(rom, rom_size, fixed, fixed_size); +} + + +/* CMC50 protection chip */ +void cmc_prot_device::kof2000_neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size, int extra_xor) +{ + type0_t03 = kof2000_type0_t03; + type0_t12 = kof2000_type0_t12; + type1_t03 = kof2000_type1_t03; + type1_t12 = kof2000_type1_t12; + address_8_15_xor1 = kof2000_address_8_15_xor1; + address_8_15_xor2 = kof2000_address_8_15_xor2; + address_16_23_xor1 = kof2000_address_16_23_xor1; + address_16_23_xor2 = kof2000_address_16_23_xor2; + address_0_7_xor = kof2000_address_0_7_xor; + neogeo_gfx_decrypt(rom, rom_size, extra_xor); + neogeo_sfix_decrypt(rom, rom_size, fixed, fixed_size); +} + + +/* CMC42 protection chip */ +void cmc_prot_device::cmc42_neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size, int extra_xor) +{ + type0_t03 = kof99_type0_t03; + type0_t12 = kof99_type0_t12; + type1_t03 = kof99_type1_t03; + type1_t12 = kof99_type1_t12; + address_8_15_xor1 = kof99_address_8_15_xor1; + address_8_15_xor2 = kof99_address_8_15_xor2; + address_16_23_xor1 = kof99_address_16_23_xor1; + address_16_23_xor2 = kof99_address_16_23_xor2; + address_0_7_xor = kof99_address_0_7_xor; + neogeo_gfx_decrypt(rom, rom_size, extra_xor); +} + + +/* CMC50 protection chip */ +void cmc_prot_device::cmc50_neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size, int extra_xor) +{ + type0_t03 = kof2000_type0_t03; + type0_t12 = kof2000_type0_t12; + type1_t03 = kof2000_type1_t03; + type1_t12 = kof2000_type1_t12; + address_8_15_xor1 = kof2000_address_8_15_xor1; + address_8_15_xor2 = kof2000_address_8_15_xor2; + address_16_23_xor1 = kof2000_address_16_23_xor1; + address_16_23_xor2 = kof2000_address_16_23_xor2; + address_0_7_xor = kof2000_address_0_7_xor; + neogeo_gfx_decrypt(rom, rom_size, extra_xor); +} + + + +/*************************************************************************** + +NeoGeo 'M' ROM encryption + CMC50 protection chip + +***************************************************************************/ + + +static const UINT8 m1_address_8_15_xor[256] = +{ + 0x0a, 0x72, 0xb7, 0xaf, 0x67, 0xde, 0x1d, 0xb1, 0x78, 0xc4, 0x4f, 0xb5, 0x4b, 0x18, 0x76, 0xdd, + 0x11, 0xe2, 0x36, 0xa1, 0x82, 0x03, 0x98, 0xa0, 0x10, 0x5f, 0x3f, 0xd6, 0x1f, 0x90, 0x6a, 0x0b, + 0x70, 0xe0, 0x64, 0xcb, 0x9f, 0x38, 0x8b, 0x53, 0x04, 0xca, 0xf8, 0xd0, 0x07, 0x68, 0x56, 0x32, + 0xae, 0x1c, 0x2e, 0x48, 0x63, 0x92, 0x9a, 0x9c, 0x44, 0x85, 0x41, 0x40, 0x09, 0xc0, 0xc8, 0xbf, + 0xea, 0xbb, 0xf7, 0x2d, 0x99, 0x21, 0xf6, 0xba, 0x15, 0xce, 0xab, 0xb0, 0x2a, 0x60, 0xbc, 0xf1, + 0xf0, 0x9e, 0xd5, 0x97, 0xd8, 0x4e, 0x14, 0x9d, 0x42, 0x4d, 0x2c, 0x5c, 0x2b, 0xa6, 0xe1, 0xa7, + 0xef, 0x25, 0x33, 0x7a, 0xeb, 0xe7, 0x1b, 0x6d, 0x4c, 0x52, 0x26, 0x62, 0xb6, 0x35, 0xbe, 0x80, + 0x01, 0xbd, 0xfd, 0x37, 0xf9, 0x47, 0x55, 0x71, 0xb4, 0xf2, 0xff, 0x27, 0xfa, 0x23, 0xc9, 0x83, + 0x17, 0x39, 0x13, 0x0d, 0xc7, 0x86, 0x16, 0xec, 0x49, 0x6f, 0xfe, 0x34, 0x05, 0x8f, 0x00, 0xe6, + 0xa4, 0xda, 0x7b, 0xc1, 0xf3, 0xf4, 0xd9, 0x75, 0x28, 0x66, 0x87, 0xa8, 0x45, 0x6c, 0x20, 0xe9, + 0x77, 0x93, 0x7e, 0x3c, 0x1e, 0x74, 0xf5, 0x8c, 0x3e, 0x94, 0xd4, 0xc2, 0x5a, 0x06, 0x0e, 0xe8, + 0x3d, 0xa9, 0xb2, 0xe3, 0xe4, 0x22, 0xcf, 0x24, 0x8e, 0x6b, 0x8a, 0x8d, 0x84, 0x4a, 0xd2, 0x91, + 0x88, 0x79, 0x57, 0xa5, 0x0f, 0xcd, 0xb9, 0xac, 0x3b, 0xaa, 0xb3, 0xd1, 0xee, 0x31, 0x81, 0x7c, + 0xd7, 0x89, 0xd3, 0x96, 0x43, 0xc5, 0xc6, 0xc3, 0x69, 0x7f, 0x46, 0xdf, 0x30, 0x5b, 0x6e, 0xe5, + 0x08, 0x95, 0x9b, 0xfb, 0xb8, 0x58, 0x0c, 0x61, 0x50, 0x5d, 0x3a, 0xa2, 0x29, 0x12, 0xfc, 0x51, + 0x7d, 0x1a, 0x02, 0x65, 0x54, 0x5e, 0x19, 0xcc, 0xdc, 0xdb, 0x73, 0xed, 0xad, 0x59, 0x2f, 0xa3, +}; + +static const UINT8 m1_address_0_7_xor[256] = +{ + 0xf4, 0xbc, 0x02, 0xf7, 0x2c, 0x3d, 0xe8, 0xd9, 0x50, 0x62, 0xec, 0xbd, 0x53, 0x73, 0x79, 0x61, + 0x00, 0x34, 0xcf, 0xa2, 0x63, 0x28, 0x90, 0xaf, 0x44, 0x3b, 0xc5, 0x8d, 0x3a, 0x46, 0x07, 0x70, + 0x66, 0xbe, 0xd8, 0x8b, 0xe9, 0xa0, 0x4b, 0x98, 0xdc, 0xdf, 0xe2, 0x16, 0x74, 0xf1, 0x37, 0xf5, + 0xb7, 0x21, 0x81, 0x01, 0x1c, 0x1b, 0x94, 0x36, 0x09, 0xa1, 0x4a, 0x91, 0x30, 0x92, 0x9b, 0x9a, + 0x29, 0xb1, 0x38, 0x4d, 0x55, 0xf2, 0x56, 0x18, 0x24, 0x47, 0x9d, 0x3f, 0x80, 0x1f, 0x22, 0xa4, + 0x11, 0x54, 0x84, 0x0d, 0x25, 0x48, 0xee, 0xc6, 0x59, 0x15, 0x03, 0x7a, 0xfd, 0x6c, 0xc3, 0x33, + 0x5b, 0xc4, 0x7b, 0x5a, 0x05, 0x7f, 0xa6, 0x40, 0xa9, 0x5d, 0x41, 0x8a, 0x96, 0x52, 0xd3, 0xf0, + 0xab, 0x72, 0x10, 0x88, 0x6f, 0x95, 0x7c, 0xa8, 0xcd, 0x9c, 0x5f, 0x32, 0xae, 0x85, 0x39, 0xac, + 0xe5, 0xd7, 0xfb, 0xd4, 0x08, 0x23, 0x19, 0x65, 0x6b, 0xa7, 0x93, 0xbb, 0x2b, 0xbf, 0xb8, 0x35, + 0xd0, 0x06, 0x26, 0x68, 0x3e, 0xdd, 0xb9, 0x69, 0x2a, 0xb2, 0xde, 0x87, 0x45, 0x58, 0xff, 0x3c, + 0x9e, 0x7d, 0xda, 0xed, 0x49, 0x8c, 0x14, 0x8e, 0x75, 0x2f, 0xe0, 0x6e, 0x78, 0x6d, 0x20, 0xd2, + 0xfa, 0x2d, 0x51, 0xcc, 0xc7, 0xe7, 0x1d, 0x27, 0x97, 0xfc, 0x31, 0xdb, 0xf8, 0x42, 0xe3, 0x99, + 0x5e, 0x83, 0x0e, 0xb4, 0x2e, 0xf6, 0xc0, 0x0c, 0x4c, 0x57, 0xb6, 0x64, 0x0a, 0x17, 0xa3, 0xc1, + 0x77, 0x12, 0xfe, 0xe6, 0x8f, 0x13, 0x71, 0xe4, 0xf9, 0xad, 0x9f, 0xce, 0xd5, 0x89, 0x7e, 0x0f, + 0xc2, 0x86, 0xf3, 0x67, 0xba, 0x60, 0x43, 0xc9, 0x04, 0xb3, 0xb0, 0x1e, 0xb5, 0xc8, 0xeb, 0xa5, + 0x76, 0xea, 0x5c, 0x82, 0x1a, 0x4f, 0xaa, 0xca, 0xe1, 0x0b, 0x4e, 0xcb, 0x6a, 0xef, 0xd1, 0xd6, +}; + + +/* The CMC50 hardware does a checksum of the first 64kb of the M1 rom, + ,and uses this checksum as the basis of the key with which to decrypt + the rom */ + +UINT16 cmc_prot_device::generate_cs16(UINT8 *rom, int size) +{ + UINT16 cs16; + int i; + cs16 = 0x0000; + for (i=0;i<size;i++ ) + { + cs16 += rom[i]; + } + return cs16&0xFFFF; +} + + +int cmc_prot_device::m1_address_scramble(int address, UINT16 key) +{ + int block; + int aux; + + const int p1[8][16] = { + {15,14,10,7,1,2,3,8,0,12,11,13,6,9,5,4}, + {7,1,8,11,15,9,2,3,5,13,4,14,10,0,6,12}, + {8,6,14,3,10,7,15,1,4,0,2,5,13,11,12,9}, + {2,8,15,9,3,4,11,7,13,6,0,10,1,12,14,5}, + {1,13,6,15,14,3,8,10,9,4,7,12,5,2,0,11}, + {11,15,3,4,7,0,9,2,6,14,12,1,8,5,10,13}, + {10,5,13,8,6,15,1,14,11,9,3,0,12,7,4,2}, + {9,3,7,0,2,12,4,11,14,10,5,8,15,13,1,6}, + }; + + block = (address>>16)&7; + aux = address&0xffff; + + aux ^= BITSWAP16(key,12,0,2,4,8,15,7,13,10,1,3,6,11,9,14,5); + aux = BITSWAP16(aux, + p1[block][15],p1[block][14],p1[block][13],p1[block][12], + p1[block][11],p1[block][10],p1[block][9],p1[block][8], + p1[block][7],p1[block][6],p1[block][5],p1[block][4], + p1[block][3],p1[block][2],p1[block][1],p1[block][0]); + aux ^= m1_address_0_7_xor[(aux>>8)&0xff]; + aux ^= m1_address_8_15_xor[aux&0xff]<<8; + aux = BITSWAP16(aux, 7,15,14,6,5,13,12,4,11,3,10,2,9,1,8,0); + + return (block<<16)|aux; +} + + +void cmc_prot_device::neogeo_cmc50_m1_decrypt(UINT8* romcrypt, UINT32 romcrypt_size, UINT8* romaudio, UINT32 romaudio_size) +{ + UINT8* rom = romcrypt; + size_t rom_size = 0x80000; + UINT8* rom2 = romaudio; + + dynamic_buffer buffer(rom_size); + + UINT32 i; + + UINT16 key=generate_cs16(rom,0x10000); + + //printf("key %04x\n",key); + + for (i=0; i<rom_size; i++) + { + buffer[i] = rom[m1_address_scramble(i,key)]; + } + + memcpy(rom,&buffer[0],rom_size); + + memcpy(rom2,rom,0x10000); + memcpy(rom2+0x10000,rom,0x80000); + + #if 0 + { + FILE *fp; + const char *gamename = machine().system().name; + char filename[256]; + sprintf(filename, "%s_m1.dump", gamename); + + fp=fopen(filename, "w+b"); + if (fp) + { + fwrite(rom, rom_size, 1, fp); + fclose(fp); + } + } + #endif + + + #if 0 + { + FILE *fp; + const char *gamename = machine().system().name; + char filename[256]; + sprintf(filename, "%s_m1extra.dump", gamename); + + fp=fopen(filename, "w+b"); + if (fp) + { + fwrite(&rom[0xf800], 0x800, 1, fp); + fclose(fp); + } + } + #endif +} diff --git a/docs/release/src/hbmame/bus/neogeo/cmc_prot.h b/docs/release/src/hbmame/bus/neogeo/cmc_prot.h new file mode 100644 index 00000000000..cbf53a865dd --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/cmc_prot.h @@ -0,0 +1,83 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#ifndef __CMC_PROT__ +#define __CMC_PROT__ + +extern const device_type CMC_PROT; + +#define MCFG_CMC_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, CMC_PROT, 0) + +// cmc42 +#define KOF99_GFX_KEY (0x00) +#define GAROU_GFX_KEY (0x06) +#define MSLUG3_GFX_KEY (0xad) +#define ZUPAPA_GFX_KEY (0xbd) +#define GANRYU_GFX_KEY (0x07) +#define S1945P_GFX_KEY (0x05) +#define PREISLE2_GFX_KEY (0x9f) +#define BANGBEAD_GFX_KEY (0xf8) +#define NITD_GFX_KEY (0xff) +#define SENGOKU3_GFX_KEY (0xfe) + +// cmc50 +#define KOF2000_GFX_KEY (0x00) +#define KOF2001_GFX_KEY (0x1e) +#define MSLUG4_GFX_KEY (0x31) +#define ROTD_GFX_KEY (0x3f) +#define PNYAA_GFX_KEY (0x2e) +#define KOF2002_GFX_KEY (0xec) +#define MATRIM_GFX_KEY (0x6a) +#define SAMSHO5_GFX_KEY (0x0f) +#define SAMSHO5SP_GFX_KEY (0x0d) +#define MSLUG5_GFX_KEY (0x19) +#define SVC_GFX_KEY (0x57) +#define KOF2003_GFX_KEY (0x9d) +#define JOCKEYGP_GFX_KEY (0xac) + + +class cmc_prot_device : public device_t +{ +public: + // construction/destruction + cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + void decrypt(UINT8 *r0, UINT8 *r1, + UINT8 c0, UINT8 c1, + const UINT8 *table0hi, + const UINT8 *table0lo, + const UINT8 *table1, + int base, + int invert); + + void neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, int extra_xor); + void neogeo_sfix_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size); + void kof99_neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size, int extra_xor); + void kof2000_neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size, int extra_xor); + void cmc42_neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size, int extra_xor); + void cmc50_neogeo_gfx_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UINT32 fixed_size, int extra_xor); + + UINT16 generate_cs16(UINT8 *rom, int size); + int m1_address_scramble(int address, UINT16 key); + void neogeo_cmc50_m1_decrypt(UINT8* romcrypt, UINT32 romcrypt_size, UINT8* romaudio, UINT32 romaudio_size); + +protected: + virtual void device_start() override; + virtual void device_reset() override; + + const UINT8 *type0_t03; + const UINT8 *type0_t12; + const UINT8 *type1_t03; + const UINT8 *type1_t12; + const UINT8 *address_8_15_xor1; + const UINT8 *address_8_15_xor2; + const UINT8 *address_16_23_xor1; + const UINT8 *address_16_23_xor2; + const UINT8 *address_0_7_xor; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/fatfury2_cart.cpp b/docs/release/src/hbmame/bus/neogeo/fatfury2_cart.cpp new file mode 100644 index 00000000000..047ca79a2eb --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/fatfury2_cart.cpp @@ -0,0 +1,75 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "fatfury2_cart.h" + + +//------------------------------------------------- +// neogeo_fatfury2_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_FATFURY2_CART = &device_creator<neogeo_fatfury2_cart>; + + +neogeo_fatfury2_cart::neogeo_fatfury2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface( mconfig, *this ), + m_banked_cart(*this, "banked_cart"), + m_fatfury2_prot(*this, "fatfury2_prot") +{ +} + +neogeo_fatfury2_cart::neogeo_fatfury2_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_FATFURY2_CART, "NEOGEO Fatal Fury 2 Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface( mconfig, *this ), + m_banked_cart(*this, "banked_cart"), + m_fatfury2_prot(*this, "fatfury2_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_fatfury2_cart::device_start() +{ +} + +void neogeo_fatfury2_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_fatfury2_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( fatfury2_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_FATFURY2_PROT_ADD("fatfury2_prot") + +MACHINE_CONFIG_END + +machine_config_constructor neogeo_fatfury2_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( fatfury2_cart ); +} + +void neogeo_fatfury2_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_fatfury2_prot->fatfury2_install_protection(maincpu, m_banked_cart); +} diff --git a/docs/release/src/hbmame/bus/neogeo/fatfury2_cart.h b/docs/release/src/hbmame/bus/neogeo/fatfury2_cart.h new file mode 100644 index 00000000000..4d4f91a72a1 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/fatfury2_cart.h @@ -0,0 +1,41 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_FATFURY2_CART_H +#define __NEOGEO_FATFURY2_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "fatfury2_prot.h" + +// ======================> neogeo_fatfury2_cart + +class neogeo_fatfury2_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_fatfury2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_fatfury2_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<fatfury2_prot_device> m_fatfury2_prot; + +}; + + + +// device type definition +extern const device_type NEOGEO_FATFURY2_CART; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/fatfury2_prot.cpp b/docs/release/src/hbmame/bus/neogeo/fatfury2_prot.cpp new file mode 100644 index 00000000000..b2560ad4f62 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/fatfury2_prot.cpp @@ -0,0 +1,112 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#include "emu.h" +#include "fatfury2_prot.h" + + + +extern const device_type FATFURY2_PROT = &device_creator<fatfury2_prot_device>; + + +fatfury2_prot_device::fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, FATFURY2_PROT, "NeoGeo Protection (Fatal Fury 2)", tag, owner, clock, "fatfury2_prot", __FILE__), + m_bankdev(nullptr), + m_fatfury2_prot_data(0) +{ +} + + +void fatfury2_prot_device::device_start() +{ + save_item(NAME(m_fatfury2_prot_data)); +} + +void fatfury2_prot_device::device_reset() +{ +} + + + +/************************ Fatal Fury 2 *************************/ + +READ16_MEMBER( fatfury2_prot_device::fatfury2_protection_16_r ) +{ + UINT16 res = m_fatfury2_prot_data >> 24; + + switch (offset) + { + case 0x55550/2: + case 0xffff0/2: + case 0x00000/2: + case 0xff000/2: + case 0x36000/2: + case 0x36008/2: + return res; + + case 0x36004/2: + case 0x3600c/2: + return ((res & 0xf0) >> 4) | ((res & 0x0f) << 4); + + default: + logerror("unknown protection read at pc %06x, offset %08x\n", space.device().safe_pc(), offset << 1); + return 0; + } +} + + +WRITE16_MEMBER( fatfury2_prot_device::fatfury2_protection_16_w ) +{ + switch (offset) + { + case 0x11112/2: /* data == 0x1111; expects 0xff000000 back */ + m_fatfury2_prot_data = 0xff000000; + break; + + case 0x33332/2: /* data == 0x3333; expects 0x0000ffff back */ + m_fatfury2_prot_data = 0x0000ffff; + break; + + case 0x44442/2: /* data == 0x4444; expects 0x00ff0000 back */ + m_fatfury2_prot_data = 0x00ff0000; + break; + + case 0x55552/2: /* data == 0x5555; read back from 55550, ffff0, 00000, ff000 */ + m_fatfury2_prot_data = 0xff00ff00; + break; + + case 0x56782/2: /* data == 0x1234; read back from 36000 *or* 36004 */ + m_fatfury2_prot_data = 0xf05a3601; + break; + + case 0x42812/2: /* data == 0x1824; read back from 36008 *or* 3600c */ + m_fatfury2_prot_data = 0x81422418; + break; + + case 0x55550/2: + case 0xffff0/2: + case 0xff000/2: + case 0x36000/2: + case 0x36004/2: + case 0x36008/2: + case 0x3600c/2: + m_fatfury2_prot_data <<= 8; + break; + + default: + logerror("unknown protection write at pc %06x, offset %08x, data %02x\n", space.device().safe_pc(), offset, data); + break; + } +} + + +void fatfury2_prot_device::fatfury2_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev) +{ + /* the protection involves reading and writing addresses in the */ + /* 0x2xxxxx range. There are several checks all around the code. */ + maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2fffff, read16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_r),this), write16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_w),this)); + m_bankdev = bankdev; + + m_fatfury2_prot_data = 0; + +} diff --git a/docs/release/src/hbmame/bus/neogeo/fatfury2_prot.h b/docs/release/src/hbmame/bus/neogeo/fatfury2_prot.h new file mode 100644 index 00000000000..17a31586ed4 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/fatfury2_prot.h @@ -0,0 +1,36 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#pragma once + +#ifndef __FATFURY2_PROT__ +#define __FATFURY2_PROT__ + +#include "banked_cart.h" + +extern const device_type FATFURY2_PROT; + +#define MCFG_FATFURY2_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, FATFURY2_PROT, 0) + + +class fatfury2_prot_device : public device_t +{ +public: + // construction/destruction + fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + DECLARE_READ16_MEMBER( fatfury2_protection_16_r ); + DECLARE_WRITE16_MEMBER( fatfury2_protection_16_w ); + void fatfury2_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev); + + + neogeo_banked_cart_device* m_bankdev; + UINT32 m_fatfury2_prot_data; + +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/kof2002_cart.cpp b/docs/release/src/hbmame/bus/neogeo/kof2002_cart.cpp new file mode 100644 index 00000000000..9726bd34b4b --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kof2002_cart.cpp @@ -0,0 +1,157 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "kof2002_cart.h" + + +//------------------------------------------------- +// neogeo_kof2002_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_KOF2002_CART = &device_creator<neogeo_kof2002_cart>; + + +neogeo_kof2002_cart::neogeo_kof2002_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot"), + m_kof2002_prot(*this, "kof2002_prot") +{ +} + +neogeo_kof2002_cart::neogeo_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_KOF2002_CART, "NEOGEO KOF2002 Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot"), + m_kof2002_prot(*this, "kof2002_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_kof2002_cart::device_start() +{ +} + +void neogeo_kof2002_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_kof2002_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( kof2002_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_CMC_PROT_ADD("cmc_prot") + MCFG_PCM2_PROT_ADD("pcm2_prot") + MCFG_KOF2002_PROT_ADD("kof2002_prot") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_kof2002_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( kof2002_cart ); +} + + + +/* Individual cartridge types (mirror DRIVER_INIT functionality) */ + +/************************************************* + KOF2002 +**************************************************/ + +const device_type NEOGEO_KOF2002_KOF2002_CART = &device_creator<neogeo_kof2002_kof2002_cart>; + +neogeo_kof2002_kof2002_cart::neogeo_kof2002_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_KOF2002_CART, "NEOGEO Kof2002-type kof2002 Cart", tag, owner, clock, "k2k_k2k_cart", __FILE__) {} + +void neogeo_kof2002_kof2002_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + +} + +const device_type NEOGEO_KOF2002_KF2K2PLS_CART = &device_creator<neogeo_kof2002_kf2k2pls_cart>; + +neogeo_kof2002_kf2k2pls_cart::neogeo_kof2002_kf2k2pls_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_KF2K2PLS_CART, "NEOGEO Kof2002-type kof2002plus Cart", tag, owner, clock, "k2k_k2kpls_cart", __FILE__) {} + +void neogeo_kof2002_kf2k2pls_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); +} + + +/************************************************* + MATRIM +**************************************************/ + +const device_type NEOGEO_KOF2002_MATRIM_CART = &device_creator<neogeo_kof2002_matrim_cart>; + +neogeo_kof2002_matrim_cart::neogeo_kof2002_matrim_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_MATRIM_CART, "NEOGEO Kof2002-type matrim Cart", tag, owner, clock, "k2k_matrim_cart", __FILE__) {} + +void neogeo_kof2002_matrim_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MATRIM_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1); + +} + +/************************************************* + SAMSHO5 +**************************************************/ + +const device_type NEOGEO_KOF2002_SAMSHO5_CART = &device_creator<neogeo_kof2002_samsho5_cart>; + +neogeo_kof2002_samsho5_cart::neogeo_kof2002_samsho5_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_SAMSHO5_CART, "NEOGEO Kof2002-type Samsho5 Cart", tag, owner, clock, "k2k_ss5_cart", __FILE__) {} + +void neogeo_kof2002_samsho5_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SAMSHO5_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4); +} + +/************************************************* + SAMSHO5SP +**************************************************/ + +const device_type NEOGEO_KOF2002_SAMSHO5SP_CART = &device_creator<neogeo_kof2002_samsho5sp_cart>; + +neogeo_kof2002_samsho5sp_cart::neogeo_kof2002_samsho5sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_SAMSHO5SP_CART, "NEOGEO Kof2002-type Samsho5sp Cart", tag, owner, clock, "k2k_ss5s_cart", __FILE__) {} + +void neogeo_kof2002_samsho5sp_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SAMSHO5SP_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6); +} diff --git a/docs/release/src/hbmame/bus/neogeo/kof2002_cart.h b/docs/release/src/hbmame/bus/neogeo/kof2002_cart.h new file mode 100644 index 00000000000..f8c87314588 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kof2002_cart.h @@ -0,0 +1,111 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_KOF2002_CART_H +#define __NEOGEO_KOF2002_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "pcm2_prot.h" +#include "cmc_prot.h" +#include "kof2002_prot.h" + +// ======================> neogeo_kof2002_cart + +class neogeo_kof2002_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_kof2002_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); } + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} + virtual int get_fixed_bank_type(void) override { return 0; } + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<cmc_prot_device> m_cmc_prot; + required_device<pcm2_prot_device> m_pcm2_prot; + required_device<kof2002_prot_device> m_kof2002_prot; + +}; + + + +// device type definition +extern const device_type NEOGEO_KOF2002_CART; + + +/************************************************* + KOF2002 +**************************************************/ + +class neogeo_kof2002_kof2002_cart : public neogeo_kof2002_cart +{ +public: + neogeo_kof2002_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_KOF2002_KOF2002_CART; + +class neogeo_kof2002_kf2k2pls_cart : public neogeo_kof2002_cart +{ +public: + neogeo_kof2002_kf2k2pls_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_KOF2002_KF2K2PLS_CART; + + + +/************************************************* + MATRIM +**************************************************/ + +class neogeo_kof2002_matrim_cart : public neogeo_kof2002_cart +{ +public: + neogeo_kof2002_matrim_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 2; } +}; +extern const device_type NEOGEO_KOF2002_MATRIM_CART; + +/************************************************* + SAMSHO5 +**************************************************/ + +class neogeo_kof2002_samsho5_cart : public neogeo_kof2002_cart +{ +public: + neogeo_kof2002_samsho5_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_KOF2002_SAMSHO5_CART; + +/************************************************* + SAMSHO5SP +**************************************************/ + +class neogeo_kof2002_samsho5sp_cart : public neogeo_kof2002_cart +{ +public: + neogeo_kof2002_samsho5sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_KOF2002_SAMSHO5SP_CART; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/kof2002_prot.cpp b/docs/release/src/hbmame/bus/neogeo/kof2002_prot.cpp new file mode 100644 index 00000000000..f234602a0c2 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kof2002_prot.cpp @@ -0,0 +1,83 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#include "emu.h" +#include "kof2002_prot.h" + + + +extern const device_type KOF2002_PROT = &device_creator<kof2002_prot_device>; + + +kof2002_prot_device::kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, KOF2002_PROT, "NeoGeo Protection (KOF2002)", tag, owner, clock, "kof2002_prot", __FILE__) +{ +} + + +void kof2002_prot_device::device_start() +{ +} + +void kof2002_prot_device::device_reset() +{ +} + + +/* kof2002, matrim, samsho5, samsh5sp have some simple block swapping */ +void kof2002_prot_device::kof2002_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size) +{ + int i; + static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000}; + UINT8 *src = cpurom+0x100000; + dynamic_buffer dst(0x400000); + memcpy( &dst[0], src, 0x400000 ); + for( i=0; i<8; ++i ) + { + memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 ); + } +} + + +void kof2002_prot_device::matrim_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size) +{ + int i; + static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000}; + UINT8 *src = cpurom+0x100000; + dynamic_buffer dst(0x400000); + memcpy( &dst[0], src, 0x400000); + for( i=0; i<8; ++i ) + { + memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 ); + } +} + + +void kof2002_prot_device::samsho5_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size) +{ + int i; + static const int sec[]={0x000000,0x080000,0x700000,0x680000,0x500000,0x180000,0x200000,0x480000,0x300000,0x780000,0x600000,0x280000,0x100000,0x580000,0x400000,0x380000}; + UINT8 *src = cpurom; + dynamic_buffer dst(0x800000); + + memcpy( &dst[0], src, 0x800000 ); + for( i=0; i<16; ++i ) + { + memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 ); + } +} + + +void kof2002_prot_device::samsh5sp_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size) +{ + int i; + static const int sec[]={0x000000,0x080000,0x500000,0x480000,0x600000,0x580000,0x700000,0x280000,0x100000,0x680000,0x400000,0x780000,0x200000,0x380000,0x300000,0x180000}; + UINT8 *src = cpurom; + dynamic_buffer dst(0x800000); + + memcpy( &dst[0], src, 0x800000 ); + for( i=0; i<16; ++i ) + { + memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 ); + } +} diff --git a/docs/release/src/hbmame/bus/neogeo/kof2002_prot.h b/docs/release/src/hbmame/bus/neogeo/kof2002_prot.h new file mode 100644 index 00000000000..8ed4873b1be --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kof2002_prot.h @@ -0,0 +1,32 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#ifndef __KOF2002_PROT__ +#define __KOF2002_PROT__ + +extern const device_type KOF2002_PROT; + +#define MCFG_KOF2002_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, KOF2002_PROT, 0) + + +class kof2002_prot_device : public device_t +{ +public: + // construction/destruction + kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + void kof2002_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size); + void matrim_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size); + void samsho5_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size); + void samsh5sp_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size); + +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/kof98_cart.cpp b/docs/release/src/hbmame/bus/neogeo/kof98_cart.cpp new file mode 100644 index 00000000000..6314522e4ff --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kof98_cart.cpp @@ -0,0 +1,80 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "kof98_cart.h" + + +//------------------------------------------------- +// neogeo_kof98_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_KOF98_CART = &device_creator<neogeo_kof98_cart>; + + +neogeo_kof98_cart::neogeo_kof98_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface( mconfig, *this ), + m_banked_cart(*this, "banked_cart"), + m_kof98_prot(*this, "kof98_prot") +{ +} + +neogeo_kof98_cart::neogeo_kof98_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_KOF98_CART, "NEOGEO KOF98 Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface( mconfig, *this ), + m_banked_cart(*this, "banked_cart"), + m_kof98_prot(*this, "kof98_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_kof98_cart::device_start() +{ +} + +void neogeo_kof98_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_kof98_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( kof98_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_KOF98_PROT_ADD("kof98_prot") + +MACHINE_CONFIG_END + +machine_config_constructor neogeo_kof98_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( kof98_cart ); +} + +void neogeo_kof98_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_kof98_prot->kof98_decrypt_68k(cpuregion, cpuregion_size); +} + +void neogeo_kof98_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_kof98_prot->install_kof98_protection(maincpu); +} diff --git a/docs/release/src/hbmame/bus/neogeo/kof98_cart.h b/docs/release/src/hbmame/bus/neogeo/kof98_cart.h new file mode 100644 index 00000000000..6bf3a715cde --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kof98_cart.h @@ -0,0 +1,41 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_KOF98_CART_H +#define __NEOGEO_KOF98_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "kof98_prot.h" + +// ======================> neogeo_kof98_cart + +class neogeo_kof98_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_kof98_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_kof98_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<kof98_prot_device> m_kof98_prot; + +}; + + + +// device type definition +extern const device_type NEOGEO_KOF98_CART; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/kof98_prot.cpp b/docs/release/src/hbmame/bus/neogeo/kof98_prot.cpp new file mode 100644 index 00000000000..6fdfa5001f3 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kof98_prot.cpp @@ -0,0 +1,142 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#include "emu.h" +#include "kof98_prot.h" + + + +extern const device_type KOF98_PROT = &device_creator<kof98_prot_device>; + + +kof98_prot_device::kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, KOF98_PROT, "NeoGeo Protection (KOF98)", tag, owner, clock, "kof98_prot", __FILE__), + kof98_prot_state(0) +{ +} + + +void kof98_prot_device::device_start() +{ +} + +void kof98_prot_device::device_reset() +{ + kof98_prot_state = 0; +} + + +/* Kof98 uses an early encryption, quite different from the others */ +void kof98_prot_device::kof98_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size) +{ + UINT8 *src = cpurom; + dynamic_buffer dst(0x200000); + int i, j, k; + static const UINT32 sec[]={0x000000,0x100000,0x000004,0x100004,0x10000a,0x00000a,0x10000e,0x00000e}; + static const UINT32 pos[]={0x000,0x004,0x00a,0x00e}; + + memcpy( &dst[0], src, 0x200000); + for( i=0x800; i<0x100000; i+=0x200 ) + { + for( j=0; j<0x100; j+=0x10 ) + { + for( k=0; k<16; k+=2) + { + memcpy( &src[i+j+k], &dst[ i+j+sec[k/2]+0x100 ], 2 ); + memcpy( &src[i+j+k+0x100], &dst[ i+j+sec[k/2] ], 2 ); + } + if( i >= 0x080000 && i < 0x0c0000) + { + for( k=0; k<4; k++ ) + { + memcpy( &src[i+j+pos[k]], &dst[i+j+pos[k]], 2 ); + memcpy( &src[i+j+pos[k]+0x100], &dst[i+j+pos[k]+0x100], 2 ); + } + } + else if( i >= 0x0c0000 ) + { + for( k=0; k<4; k++ ) + { + memcpy( &src[i+j+pos[k]], &dst[i+j+pos[k]+0x100], 2 ); + memcpy( &src[i+j+pos[k]+0x100], &dst[i+j+pos[k]], 2 ); + } + } + } + memcpy( &src[i+0x000000], &dst[i+0x000000], 2 ); + memcpy( &src[i+0x000002], &dst[i+0x100000], 2 ); + memcpy( &src[i+0x000100], &dst[i+0x000100], 2 ); + memcpy( &src[i+0x000102], &dst[i+0x100100], 2 ); + } + memmove( &src[0x100000], &src[0x200000], 0x400000 ); + + UINT16* mem16 = (UINT16*)cpurom; + m_default_rom[0] = mem16[0x100 / 2]; + m_default_rom[1] = mem16[0x102 / 2]; + + +} + + +/************************ King of Fighters 98******************* + The encrypted set has a rom overlay feature, checked at + various points in the game. + Boards used: NEO-MVS PROGSF1 (1998.6.17) / NEO-MVS PROGSF1E (1998.6.18) + The boards have an ALTERA chip (EPM7128SQC100-15) which is tied to 242-P1 +***************************************************************/ + +READ16_MEMBER(kof98_prot_device::kof98_prot_r) +{ + if (kof98_prot_state == 1) + { + if (!offset) + return 0x00c2; + else + return 0x00fd; + } + if (kof98_prot_state == 2) + { + if (!offset) + return 0x4e45; + else + return 0x4f2d; + } + + if (!offset) + return m_default_rom[0]; + else + return m_default_rom[1]; + + // never executed + //return 0xffff; +} + +WRITE16_MEMBER( kof98_prot_device::kof98_prot_w ) +{ + /* info from razoola */ + switch (data) + { + case 0x0090: + logerror ("%06x kof98 - protection 0x0090x\n", space.device().safe_pc()); + kof98_prot_state = 1; + break; + + case 0x00f0: + logerror ("%06x kof98 - protection 0x00f0x\n", space.device().safe_pc()); + kof98_prot_state = 2; + break; + + default: // 00aa is written, but not needed? + logerror ("%06x kof98 - unknown protection write %04x\n", space.device().safe_pc(), data); + break; + } +} + + +void kof98_prot_device::install_kof98_protection(cpu_device* maincpu) +{ + /* when 0x20aaaa contains 0x0090 (word) then 0x100 (normally the neogeo header) should return 0x00c200fd worked out using real hw */ + maincpu->space(AS_PROGRAM).install_read_handler(0x00100, 0x00103, read16_delegate(FUNC(kof98_prot_device::kof98_prot_r),this)); + + maincpu->space(AS_PROGRAM).install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(FUNC(kof98_prot_device::kof98_prot_w),this)); +} diff --git a/docs/release/src/hbmame/bus/neogeo/kof98_prot.h b/docs/release/src/hbmame/bus/neogeo/kof98_prot.h new file mode 100644 index 00000000000..f824a8a1206 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kof98_prot.h @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#ifndef __KOF98_PROT__ +#define __KOF98_PROT__ + +extern const device_type KOF98_PROT; + +#define MCFG_KOF98_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, KOF98_PROT, 0) + + +class kof98_prot_device : public device_t +{ +public: + // construction/destruction + kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + void kof98_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size); + void install_kof98_protection(cpu_device* maincpu); + DECLARE_WRITE16_MEMBER(kof98_prot_w); + DECLARE_READ16_MEMBER(kof98_prot_r); + int kof98_prot_state; + UINT16 m_default_rom[2]; + +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/kog_prot.cpp b/docs/release/src/hbmame/bus/neogeo/kog_prot.cpp new file mode 100644 index 00000000000..d3caaff3e15 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kog_prot.cpp @@ -0,0 +1,118 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#include "emu.h" +#include "kog_prot.h" + + + +extern const device_type KOG_PROT = &device_creator<kog_prot_device>; + + +kog_prot_device::kog_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, KOG_PROT, "NeoGeo Protection (King of Gladiator)", tag, owner, clock, "kog_prot", __FILE__), + m_jumper(*this, "JUMPER") +{ +} + + +void kog_prot_device::device_start() +{ +} + +void kog_prot_device::device_reset() +{ +} + +READ16_MEMBER(kog_prot_device::read_jumper) +{ + return ioport("JUMPER")->read(); +} + +void kog_prot_device::kog_install_protection(cpu_device* maincpu) +{ + /* overlay cartridge ROM */ + maincpu->space(AS_PROGRAM).install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(FUNC(kog_prot_device::read_jumper), this)); +} + + +/* The King of Gladiator (The King of Fighters '97 bootleg) */ + + +/* The protection patching here may be incomplete + Thanks to Razoola for the info */ + +void kog_prot_device::kog_px_decrypt(UINT8* cpurom, UINT32 cpurom_size) +{ + /* the protection chip does some *very* strange things to the rom */ + UINT8 *src = cpurom; + dynamic_buffer dst( 0x600000 ); + UINT16 *rom = (UINT16 *)cpurom; + int i; + static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD }; + + for (i = 0; i < 8; i++){ + memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000); + } + + memcpy (&dst[0x0007A6], src + 0x0407A6, 0x000006); + memcpy (&dst[0x0007C6], src + 0x0407C6, 0x000006); + memcpy (&dst[0x0007E6], src + 0x0407E6, 0x000006); + memcpy (&dst[0x090000], src + 0x040000, 0x004000); + memcpy (&dst[0x100000], src + 0x200000, 0x400000); + memcpy (src, &dst[0], 0x600000); + + for (i = 0x90000/2; i < 0x94000/2; i++){ + if (((rom[i]&0xFFBF) == 0x4EB9 || rom[i] == 0x43F9) && !rom[i + 1]) + rom[i + 1] = 0x0009; + + if (rom[i] == 0x4EB8) + rom[i] = 0x6100; + } + + rom[0x007A8/2] = 0x0009; + rom[0x007C8/2] = 0x0009; + rom[0x007E8/2] = 0x0009; + rom[0x93408/2] = 0xF168; + rom[0x9340C/2] = 0xFB7A; + rom[0x924AC/2] = 0x0009; + rom[0x9251C/2] = 0x0009; + rom[0x93966/2] = 0xFFDA; + rom[0x93974/2] = 0xFFCC; + rom[0x93982/2] = 0xFFBE; + rom[0x93990/2] = 0xFFB0; + rom[0x9399E/2] = 0xFFA2; + rom[0x939AC/2] = 0xFF94; + rom[0x939BA/2] = 0xFF86; + rom[0x939C8/2] = 0xFF78; + rom[0x939D4/2] = 0xFA5C; + rom[0x939E0/2] = 0xFA50; + rom[0x939EC/2] = 0xFA44; + rom[0x939F8/2] = 0xFA38; + rom[0x93A04/2] = 0xFA2C; + rom[0x93A10/2] = 0xFA20; + rom[0x93A1C/2] = 0xFA14; + rom[0x93A28/2] = 0xFA08; + rom[0x93A34/2] = 0xF9FC; + rom[0x93A40/2] = 0xF9F0; + rom[0x93A4C/2] = 0xFD14; + rom[0x93A58/2] = 0xFD08; + rom[0x93A66/2] = 0xF9CA; + rom[0x93A72/2] = 0xF9BE; + +} + + +static INPUT_PORTS_START( kog ) + /* a jumper on the pcb overlays a ROM address, very strange but that's how it works. */ + PORT_START("JUMPER") + PORT_DIPNAME( 0x0001, 0x0001, "Title Language" ) PORT_DIPLOCATION("CART-JUMPER:1") + PORT_DIPSETTING( 0x0001, DEF_STR( English ) ) + PORT_DIPSETTING( 0x0000, "Non-English" ) + PORT_BIT( 0x00fe, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END + +ioport_constructor kog_prot_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( kog ); +} diff --git a/docs/release/src/hbmame/bus/neogeo/kog_prot.h b/docs/release/src/hbmame/bus/neogeo/kog_prot.h new file mode 100644 index 00000000000..5e19053c3d4 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/kog_prot.h @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#ifndef __KOG_PROT__ +#define __KOG_PROT__ + +extern const device_type KOG_PROT; + +#define MCFG_KOG_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, KOG_PROT, 0) + + +class kog_prot_device : public device_t +{ +public: + // construction/destruction + kog_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + void kog_install_protection(cpu_device* maincpu); + void kog_px_decrypt(UINT8* cpurom, UINT32 cpurom_size); + READ16_MEMBER(read_jumper); + + required_ioport m_jumper; + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual ioport_constructor device_input_ports() const override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/mslugx_cart.cpp b/docs/release/src/hbmame/bus/neogeo/mslugx_cart.cpp new file mode 100644 index 00000000000..d6bd6388864 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/mslugx_cart.cpp @@ -0,0 +1,75 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "mslugx_cart.h" + + +//------------------------------------------------- +// neogeo_mslugx_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_MSLUGX_CART = &device_creator<neogeo_mslugx_cart>; + + +neogeo_mslugx_cart::neogeo_mslugx_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface( mconfig, *this ), + m_banked_cart(*this, "banked_cart"), + m_mslugx_prot(*this, "mslugx_prot") +{ +} + +neogeo_mslugx_cart::neogeo_mslugx_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_MSLUGX_CART, "NEOGEO Metal Slug X Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface( mconfig, *this ), + m_banked_cart(*this, "banked_cart"), + m_mslugx_prot(*this, "mslugx_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_mslugx_cart::device_start() +{ +} + +void neogeo_mslugx_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_mslugx_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( mslugx_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_MSLUGX_PROT_ADD("mslugx_prot") + +MACHINE_CONFIG_END + +machine_config_constructor neogeo_mslugx_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( mslugx_cart ); +} + +void neogeo_mslugx_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_mslugx_prot->mslugx_install_protection(maincpu); +} diff --git a/docs/release/src/hbmame/bus/neogeo/mslugx_cart.h b/docs/release/src/hbmame/bus/neogeo/mslugx_cart.h new file mode 100644 index 00000000000..2e58655f3e2 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/mslugx_cart.h @@ -0,0 +1,41 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_MSLUGX_CART_H +#define __NEOGEO_MSLUGX_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "mslugx_prot.h" + +// ======================> neogeo_mslugx_cart + +class neogeo_mslugx_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_mslugx_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_mslugx_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<mslugx_prot_device> m_mslugx_prot; + +}; + + + +// device type definition +extern const device_type NEOGEO_MSLUGX_CART; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/mslugx_prot.cpp b/docs/release/src/hbmame/bus/neogeo/mslugx_prot.cpp new file mode 100644 index 00000000000..783ef2db839 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/mslugx_prot.cpp @@ -0,0 +1,97 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#include "emu.h" +#include "mslugx_prot.h" + + + +extern const device_type MSLUGX_PROT = &device_creator<mslugx_prot_device>; + + +mslugx_prot_device::mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, MSLUGX_PROT, "NeoGeo Protection (Metal Slug X)", tag, owner, clock, "mslugx_prot", __FILE__), + m_mslugx_counter(0), + m_mslugx_command(0) +{ +} + + +void mslugx_prot_device::device_start() +{ + save_item(NAME(m_mslugx_command)); + save_item(NAME(m_mslugx_counter)); +} + +void mslugx_prot_device::device_reset() +{ +} + + + + +/************************ Metal Slug X ************************* + Board used: NEO-MVS PROGEOP (1999.2.2) + The board has an ALTERA chip (EPM7128SQC100-15) which is tied to 250-P1 + Also found is a QFP144 chip labeled with 0103 - function unknown +***************************************************************/ + +WRITE16_MEMBER( mslugx_prot_device::mslugx_protection_16_w ) +{ + switch (offset) + { + case 0x0/2: // start new read? + m_mslugx_command = 0; + break; + + case 0x2/2: // command? These are pulsed with data and then 0 + case 0x4/2: + m_mslugx_command |= data; + break; + + case 0x6/2: // finished? + break; + + case 0xa/2: // init? + m_mslugx_counter = 0; + m_mslugx_command = 0; + break; + + default: + logerror("unknown protection write at pc %06x, offset %08x, data %02x\n", space.device().safe_pc(), offset << 1, data); + break; + } +} + + +READ16_MEMBER( mslugx_prot_device::mslugx_protection_16_r ) +{ + UINT16 res = 0; + + switch (m_mslugx_command) + { + case 0x0001: { // $3bdc(?) and $3c30 (Register D7) + res = (space.read_byte(0xdedd2 + ((m_mslugx_counter >> 3) & 0xfff)) >> (~m_mslugx_counter & 0x07)) & 1; + m_mslugx_counter++; + } + break; + + case 0x0fff: { // All other accesses (Register D2) + INT32 select = space.read_word(0x10f00a) - 1; // How should this be calculated? + res = (space.read_byte(0xdedd2 + ((select >> 3) & 0x0fff)) >> (~select & 0x07)) & 1; + } + break; + + default: + logerror("unknown protection read at pc %06x, offset %08x\n", space.device().safe_pc(), offset << 1); + break; + } + + return res; +} + + +void mslugx_prot_device::mslugx_install_protection(cpu_device* maincpu) +{ + maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fffe0, 0x2fffef, read16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_r),this), write16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_w),this)); + +} diff --git a/docs/release/src/hbmame/bus/neogeo/mslugx_prot.h b/docs/release/src/hbmame/bus/neogeo/mslugx_prot.h new file mode 100644 index 00000000000..fb1f2261957 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/mslugx_prot.h @@ -0,0 +1,35 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#ifndef __MSLUGX_PROT__ +#define __MSLUGX_PROT__ + +extern const device_type MSLUGX_PROT; + +#define MCFG_MSLUGX_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, MSLUGX_PROT, 0) + + +class mslugx_prot_device : public device_t +{ +public: + // construction/destruction + mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + + DECLARE_WRITE16_MEMBER( mslugx_protection_16_w ); + DECLARE_READ16_MEMBER( mslugx_protection_16_r ); + void mslugx_install_protection(cpu_device* maincpu); + + UINT16 m_mslugx_counter; + UINT16 m_mslugx_command; + +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/neogeo_carts.cpp b/docs/release/src/hbmame/bus/neogeo/neogeo_carts.cpp new file mode 100644 index 00000000000..8f9d62037b4 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/neogeo_carts.cpp @@ -0,0 +1,97 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + /********************************************************************** + +**********************************************************************/ + +#include "neogeo_carts.h" + +SLOT_INTERFACE_START(neogeo_cart) + /* Standard cart with banking */ + SLOT_INTERFACE_INTERNAL("rom", NEOGEO_ROM) + + /* Custom MslugX protection*/ + SLOT_INTERFACE_INTERNAL("rom_mslugx", NEOGEO_MSLUGX_CART) + /* Custom Fatal Fury 2 protection */ + SLOT_INTERFACE_INTERNAL("rom_fatfur2", NEOGEO_FATFURY2_CART) + /* Custom KOF98 protection */ + SLOT_INTERFACE_INTERNAL("rom_kof98", NEOGEO_KOF98_CART) + + /* These use SMA for prg + CMC42 for gfx */ + SLOT_INTERFACE_INTERNAL("rom_sma", NEOGEO_SMA_CART) + SLOT_INTERFACE_INTERNAL("rom_sma_kof99", NEOGEO_SMA_KOF99_CART) + SLOT_INTERFACE_INTERNAL("rom_sma_garou", NEOGEO_SMA_GAROU_CART) + SLOT_INTERFACE_INTERNAL("rom_sma_garouh", NEOGEO_SMA_GAROUH_CART) + SLOT_INTERFACE_INTERNAL("rom_sma_mslug3", NEOGEO_SMA_MSLUG3_CART) + /* These use SMA for prg + CMC50 for gfx (& audiocpu) */ + SLOT_INTERFACE_INTERNAL("rom_sma_kof2000", NEOGEO_SMA_KOF2000_CART) + /* only CMC42 for gfx */ + SLOT_INTERFACE_INTERNAL("rom_cmc_zupapa", NEOGEO_CMC_ZUPAPA_CART) + SLOT_INTERFACE_INTERNAL("rom_cmc_mslug3h", NEOGEO_CMC_MSLUG3H_CART) + SLOT_INTERFACE_INTERNAL("rom_cmc_ganryu", NEOGEO_CMC_GANRYU_CART) + SLOT_INTERFACE_INTERNAL("rom_cmc_s1945p", NEOGEO_CMC_S1945P_CART) + SLOT_INTERFACE_INTERNAL("r_cmc_preisle2", NEOGEO_CMC_PREISLE2_CART) + SLOT_INTERFACE_INTERNAL("r_cmc_bangbead", NEOGEO_CMC_BANGBEAD_CART) + SLOT_INTERFACE_INTERNAL("rom_cmc_nitd", NEOGEO_CMC_NITD_CART) + SLOT_INTERFACE_INTERNAL("r_cmc_sengoku3", NEOGEO_CMC_SENGOKU3_CART) + SLOT_INTERFACE_INTERNAL("r_cmc_kof99k", NEOGEO_CMC_KOF99K_CART) + /* only CMC50 for gfx (& audiocpu) */ + SLOT_INTERFACE_INTERNAL("r_cmc_kof2001", NEOGEO_CMC_KOF2001_CART) + SLOT_INTERFACE_INTERNAL("r_cmc_kof2000n", NEOGEO_CMC_KOF2000N_CART) + /* CMC50 for gfx (& audiocpu) + NEOPCM2 for YM scramble */ + SLOT_INTERFACE_INTERNAL("r_pc2_mslug4", NEOGEO_PCM2_MSLUG4_CART) + SLOT_INTERFACE_INTERNAL("r_pc2_rotd", NEOGEO_PCM2_ROTD_CART) + SLOT_INTERFACE_INTERNAL("r_pc2_pnyaa", NEOGEO_PCM2_PNYAA_CART) + SLOT_INTERFACE_INTERNAL("r_ms4plus", NEOGEO_PCM2_MS4PLUS_CART) // regular encryption but external S1 rom + + /* CMC50 for gfx (& audiocpu) + NEOPCM2 for YM scramble + additonal prg scramble */ + SLOT_INTERFACE_INTERNAL("r_k2_kof2002", NEOGEO_KOF2002_KOF2002_CART) + SLOT_INTERFACE_INTERNAL("r_k2_matrim", NEOGEO_KOF2002_MATRIM_CART) + SLOT_INTERFACE_INTERNAL("r_k2_samsh5", NEOGEO_KOF2002_SAMSHO5_CART) + SLOT_INTERFACE_INTERNAL("r_k2_sams5s", NEOGEO_KOF2002_SAMSHO5SP_CART) + SLOT_INTERFACE_INTERNAL("r_kf2k2pls", NEOGEO_KOF2002_KF2K2PLS_CART) // regular encryption but external S1 rom + + /* CMC50 for gfx (& audiocpu) + NEOPCM2 for YM scramble + PVC protection/encryption */ + SLOT_INTERFACE_INTERNAL("r_pv_mslug5", NEOGEO_PVC_MSLUG5_CART) + SLOT_INTERFACE_INTERNAL("r_pv_svc", NEOGEO_PVC_SVC_CART) + SLOT_INTERFACE_INTERNAL("r_pv_kf2k3", NEOGEO_PVC_KOF2003_CART) + SLOT_INTERFACE_INTERNAL("r_pv_kf2k3h", NEOGEO_PVC_KOF2003H_CART) + + /* 100% bootleg logic */ + SLOT_INTERFACE_INTERNAL("r_garoubl", NEOGEO_BOOTLEG_GAROUBL_CART) + SLOT_INTERFACE_INTERNAL("r_cthd2003", NEOGEO_BOOTLEG_CTHD2003_CART) + SLOT_INTERFACE_INTERNAL("r_cthd2003sp", NEOGEO_BOOTLEG_CT2K3SP_CART) + SLOT_INTERFACE_INTERNAL("r_cthd2003sa", NEOGEO_BOOTLEG_CT2K3SA_CART) + SLOT_INTERFACE_INTERNAL("r_kf10thep", NEOGEO_BOOTLEG_KF10THEP_CART) + SLOT_INTERFACE_INTERNAL("r_kf2k5uni", NEOGEO_BOOTLEG_KF2K5UNI_CART) + SLOT_INTERFACE_INTERNAL("r_kf2k4se", NEOGEO_BOOTLEG_KF2K4SE_CART) + SLOT_INTERFACE_INTERNAL("r_svcplus", NEOGEO_BOOTLEG_SVCPLUS_CART) + SLOT_INTERFACE_INTERNAL("r_svcplusa", NEOGEO_BOOTLEG_SVCPLUSA_CART) + SLOT_INTERFACE_INTERNAL("r_samsho5b", NEOGEO_BOOTLEG_SAMSHO5B_CART) + SLOT_INTERFACE_INTERNAL("r_kof97oro", NEOGEO_BOOTLEG_KOF97ORO_CART) // missing from softlist? + SLOT_INTERFACE_INTERNAL("r_lans2004", NEOGEO_BOOTLEG_LANS2004_CART) + SLOT_INTERFACE_INTERNAL("r_kof10th", NEOGEO_BOOTLEG_KOF10TH_CART) + SLOT_INTERFACE_INTERNAL("r_kog", NEOGEO_BOOTLEG_KOG_CART) + + /* mixed original and bootleg logic */ + SLOT_INTERFACE_INTERNAL("r_mslug3b6", NEOGEO_BOOTLEG_HYBRID_MSLUG3B6_CART) + SLOT_INTERFACE_INTERNAL("r_kof2002b", NEOGEO_BOOTLEG_HYBRID_KOF2002B_CART) + SLOT_INTERFACE_INTERNAL("r_kf2k2mp", NEOGEO_BOOTLEG_HYBRID_KF2K2MP_CART) + SLOT_INTERFACE_INTERNAL("r_kf2k2mp2", NEOGEO_BOOTLEG_HYBRID_KF2K2MP2_CART) + + SLOT_INTERFACE_INTERNAL("r_matrimbl", NEOGEO_BOOTLEG_HYBRID_MATRIMBL_CART) + SLOT_INTERFACE_INTERNAL("r_ms5plus", NEOGEO_BOOTLEG_HYBRID_MS5PLUS_CART) + SLOT_INTERFACE_INTERNAL("r_svcboot", NEOGEO_BOOTLEG_HYBRID_SVCBOOT_CART) + SLOT_INTERFACE_INTERNAL("r_svcsplus", NEOGEO_BOOTLEG_HYBRID_SVCSPLUS_CART) + + SLOT_INTERFACE_INTERNAL("r_kf2k3bl", NEOGEO_BOOTLEG_HYBRID_KF2K3BL_CART) + SLOT_INTERFACE_INTERNAL("r_kf2k3pl", NEOGEO_BOOTLEG_HYBRID_KF2K3PL_CART) + SLOT_INTERFACE_INTERNAL("r_kf2k3upl", NEOGEO_BOOTLEG_HYBRID_KF2K3UPL_CART) + + + + + + + +SLOT_INTERFACE_END diff --git a/docs/release/src/hbmame/bus/neogeo/neogeo_carts.h b/docs/release/src/hbmame/bus/neogeo/neogeo_carts.h new file mode 100644 index 00000000000..f6925b96e98 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/neogeo_carts.h @@ -0,0 +1,30 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/********************************************************************** + +**********************************************************************/ + +#pragma once + +#ifndef __NEOGEO_CARTS_H__ +#define __NEOGEO_CARTS_H__ + +#include "emu.h" + +#include "rom.h" +#include "banked_cart.h" +#include "mslugx_cart.h" +#include "sma_cart.h" +#include "cmc_cart.h" +#include "pcm2_cart.h" +#include "kof2002_cart.h" +#include "pvc_cart.h" +#include "fatfury2_cart.h" +#include "kof98_cart.h" +#include "bootleg_cart.h" +#include "bootleg_hybrid_cart.h" + +// supported devices +SLOT_INTERFACE_EXTERN(neogeo_cart); + +#endif // __NEOGEO_CARTS_H__ diff --git a/docs/release/src/hbmame/bus/neogeo/neogeo_helper.cpp b/docs/release/src/hbmame/bus/neogeo/neogeo_helper.cpp new file mode 100644 index 00000000000..fdbd9ba7203 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/neogeo_helper.cpp @@ -0,0 +1,66 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#include "emu.h" +#include "neogeo_helper.h" + +static UINT32 get_region_mask(UINT8* rgn, UINT32 rgn_size) +{ + UINT32 mask; + UINT32 len; + UINT32 bit; + + mask = 0xffffffff; + + len = rgn_size; + + for (bit = 0x80000000; bit != 0; bit >>= 1) + { + if ((len * 2 - 1) & bit) + break; + + mask >>= 1; + } + + return mask; +} + +UINT32 neogeohelper_optimize_sprite_data(std::vector<UINT8> &spritegfx, UINT8* region_sprites, UINT32 region_sprites_size) +{ + /* convert the sprite graphics data into a format that + allows faster blitting */ + UINT8 *src; + UINT8 *dest; + + UINT32 mask = get_region_mask(region_sprites, region_sprites_size); + + spritegfx.resize(mask + 1); + UINT32 spritegfx_address_mask = mask; + + src = region_sprites; + dest = &spritegfx[0]; + + for (unsigned i = 0; i < region_sprites_size; i += 0x80, src += 0x80) + { + for (unsigned y = 0; y < 0x10; y++) + { + for (unsigned x = 0; x < 8; x++) + { + *(dest++) = (((src[0x43 | (y << 2)] >> x) & 0x01) << 3) | + (((src[0x41 | (y << 2)] >> x) & 0x01) << 2) | + (((src[0x42 | (y << 2)] >> x) & 0x01) << 1) | + (((src[0x40 | (y << 2)] >> x) & 0x01) << 0); + } + + for (unsigned x = 0; x < 8; x++) + { + *(dest++) = (((src[0x03 | (y << 2)] >> x) & 0x01) << 3) | + (((src[0x01 | (y << 2)] >> x) & 0x01) << 2) | + (((src[0x02 | (y << 2)] >> x) & 0x01) << 1) | + (((src[0x00 | (y << 2)] >> x) & 0x01) << 0); + } + } + } + + return spritegfx_address_mask; +} diff --git a/docs/release/src/hbmame/bus/neogeo/neogeo_helper.h b/docs/release/src/hbmame/bus/neogeo/neogeo_helper.h new file mode 100644 index 00000000000..3d125f7fd62 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/neogeo_helper.h @@ -0,0 +1,4 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +extern UINT32 neogeohelper_optimize_sprite_data(std::vector<UINT8> &spritegfx, UINT8* region_sprites, UINT32 region_sprites_size); diff --git a/docs/release/src/hbmame/bus/neogeo/neogeo_intf.cpp b/docs/release/src/hbmame/bus/neogeo/neogeo_intf.cpp new file mode 100644 index 00000000000..30877b11be8 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/neogeo_intf.cpp @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#include "emu.h" +#include "neogeo_intf.h" + +//------------------------------------------------- +// device_neogeo_cart_interface - constructor +//------------------------------------------------- + +device_neogeo_cart_interface::device_neogeo_cart_interface(const machine_config &mconfig, device_t &device) + : device_slot_card_interface(mconfig, device), + m_sprite_gfx_address_mask(0) +/* +m_rom(nullptr), +m_fixed(nullptr), +m_sprites(nullptr), +m_sprites_optimized(nullptr), +m_audio(nullptr), +m_ym(nullptr), +m_ymdelta(nullptr), +m_audiocrypt(nullptr) +*/ +{ +} + + +//------------------------------------------------- +// ~device_neogeo_cart_interface - destructor +//------------------------------------------------- + +device_neogeo_cart_interface::~device_neogeo_cart_interface() +{ +} diff --git a/docs/release/src/hbmame/bus/neogeo/neogeo_intf.h b/docs/release/src/hbmame/bus/neogeo/neogeo_intf.h new file mode 100644 index 00000000000..54ef30ce722 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/neogeo_intf.h @@ -0,0 +1,78 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#ifndef __NEOGEO_INTF_H +#define __NEOGEO_INTF_H + +// ======================> device_neogeo_cart_interface + +#define DECRYPT_ALL_PARAMS \ + UINT8* cpuregion, UINT32 cpuregion_size,UINT8* spr_region, UINT32 spr_region_size,UINT8* fix_region, UINT32 fix_region_size,UINT8* ym_region, UINT32 ym_region_size,UINT8* ymdelta_region, UINT32 ymdelta_region_size,UINT8* audiocpu_region, UINT32 audio_region_size, UINT8* audiocrypt_region, UINT32 audiocrypt_region_size + +#define ACTIVATE_CART_PARAMS \ + running_machine& machine, cpu_device* maincpu, UINT8* cpuregion, UINT32 cpuregion_size, UINT8* fixedregion, UINT32 fixedregion_size + +class device_neogeo_cart_interface : public device_slot_card_interface +{ +public: + // construction/destruction + device_neogeo_cart_interface(const machine_config &mconfig, device_t &device); + virtual ~device_neogeo_cart_interface(); + + // reading from ROM + virtual DECLARE_READ16_MEMBER(read_rom) { return 0xffff; } + virtual void activate_cart(ACTIVATE_CART_PARAMS) { }; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) { }; + virtual int get_fixed_bank_type(void) { return 0; } + + void rom_alloc(UINT32 size) { m_rom.resize(size/sizeof(UINT16)); } + UINT16* get_rom_base() { return &m_rom[0]; } + UINT32 get_rom_size() { return m_rom.size()*sizeof(UINT16); } + + void fixed_alloc(UINT32 size) { m_fixed.resize(size); } + UINT8* get_fixed_base() { return &m_fixed[0]; } + UINT32 get_fixed_size() { return m_fixed.size(); } + + void audio_alloc(UINT32 size) { m_audio.resize(size); } + UINT8* get_audio_base() { return &m_audio[0]; } + UINT32 get_audio_size() { return m_audio.size(); } + + void audiocrypt_alloc(UINT32 size) { m_audiocrypt.resize(size); } + UINT8* get_audiocrypt_base() { if (m_audiocrypt.size() == 0) return nullptr; else return &m_audiocrypt[0]; } + UINT32 get_audiocrypt_size() { return m_audiocrypt.size(); } + + void sprites_alloc(UINT32 size) { m_sprites.resize(size); } + UINT8* get_sprites_base() { return &m_sprites[0]; } + UINT32 get_sprites_size() { return m_sprites.size(); } + UINT8* get_sprites_optimized() { return &m_sprites_optimized[0]; } + UINT32 get_sprites_addrmask() { return m_sprite_gfx_address_mask; } + std::vector<UINT8>& get_sprites_optimized_arr() { return m_sprites_optimized; } + + void ym_alloc(UINT32 size) { m_ym.resize(size); } + UINT8* get_ym_base() { return &m_ym[0]; } + UINT32 get_ym_size() { return m_ym.size(); } + + void ymdelta_alloc(UINT32 size) { m_ymdelta.resize(size); } + UINT8* get_ymdelta_base() { return &m_ymdelta[0]; } + UINT32 get_ymdelta_size() { return m_ymdelta.size(); } + + std::vector<UINT16> m_rom; + std::vector<UINT8> m_fixed; + std::vector<UINT8> m_sprites; + std::vector<UINT8> m_sprites_optimized; + std::vector<UINT8> m_audio; + std::vector<UINT8> m_ym; + std::vector<UINT8> m_ymdelta; + + UINT32 m_sprite_gfx_address_mask; + + + +protected: + // internal state + std::vector<UINT8> m_audiocrypt; + + +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/neogeo_slot.cpp b/docs/release/src/hbmame/bus/neogeo/neogeo_slot.cpp new file mode 100644 index 00000000000..fac43eda050 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/neogeo_slot.cpp @@ -0,0 +1,222 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "neogeo_slot.h" + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +const device_type NEOGEO_CART_SLOT = &device_creator<neogeo_cart_slot_device>; + + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// neogeo_cart_slot_device - constructor +//------------------------------------------------- +neogeo_cart_slot_device::neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) : + device_t(mconfig, NEOGEO_CART_SLOT, "NeoGeo Cartridge Slot", tag, owner, clock, "neogeo_cart_slot", __FILE__), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_cart(nullptr) +{ +} + + +//------------------------------------------------- +// neogeo_cart_slot_device - destructor +//------------------------------------------------- + +neogeo_cart_slot_device::~neogeo_cart_slot_device() +{ +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_cart_slot_device::device_start() +{ + m_cart = dynamic_cast<device_neogeo_cart_interface *>(get_card_device()); +} + +//------------------------------------------------- +// device_config_complete - perform any +// operations now that the configuration is +// complete +//------------------------------------------------- + +void neogeo_cart_slot_device::device_config_complete() +{ + // set brief and instance name + update_names(); +} + + + +/*------------------------------------------------- + call load + -------------------------------------------------*/ + + +bool neogeo_cart_slot_device::call_load() +{ + if (m_cart) + { + UINT16 *ROM; + UINT8* ROM8; + UINT32 len; + + if (software_entry() != nullptr) + { + // create memory regions + len = get_software_region_length("maincpu"); + m_cart->rom_alloc(len); ROM = m_cart->get_rom_base(); + memcpy(ROM, get_software_region("maincpu"), len); + + len = get_software_region_length("fixed"); + m_cart->fixed_alloc(len); ROM8 = m_cart->get_fixed_base(); + memcpy(ROM8, get_software_region("fixed"), len); + + if (get_software_region("audiocpu") != nullptr) + { + len = get_software_region_length("audiocpu"); + m_cart->audio_alloc(len + 0x10000); ROM8 = m_cart->get_audio_base(); + memcpy(ROM8, get_software_region("audiocpu"), len); + memcpy(ROM8 + 0x10000, get_software_region("audiocpu"), len); // avoid reloading in XML, should just improve banking instead tho? + } + + len = get_software_region_length("ymsnd"); + m_cart->ym_alloc(len); ROM8 = m_cart->get_ym_base(); + memcpy(ROM8, get_software_region("ymsnd"), len); + + if (get_software_region("ymsnd.deltat") != nullptr) + { + len = get_software_region_length("ymsnd.deltat"); + m_cart->ymdelta_alloc(len); ROM8 = m_cart->get_ymdelta_base(); + memcpy(ROM8, get_software_region("ymsnd.deltat"), len); + } + else + { + // ensure there is no delta-t region + } + + + len = get_software_region_length("sprites"); + m_cart->sprites_alloc(len); ROM8 = m_cart->get_sprites_base(); + memcpy(ROM8, get_software_region("sprites"), len); + + if (get_software_region("audiocrypt") != nullptr) // encrypted Z80 code + { + len = get_software_region_length("audiocrypt"); + m_cart->audiocrypt_alloc(len); ROM8 = m_cart->get_audiocrypt_base(); + memcpy(ROM8, get_software_region("audiocrypt"), len); + // allocate the audiocpu region to decrypt data into + m_cart->audio_alloc(len + 0x10000); + } + + m_cart->decrypt_all( + (UINT8*)m_cart->get_rom_base(), m_cart->get_rom_size(), + m_cart->get_sprites_base(), m_cart->get_sprites_size(), + m_cart->get_fixed_base(), m_cart->get_fixed_size(), + m_cart->get_ym_base(), m_cart->get_ym_size(), + m_cart->get_ymdelta_base(), m_cart->get_ymdelta_size(), + m_cart->get_audio_base(), m_cart->get_audio_size(), + m_cart->get_audiocrypt_base(), m_cart->get_audiocrypt_size()); + + + // create optimized sprite cache + m_cart->m_sprite_gfx_address_mask = neogeohelper_optimize_sprite_data(m_cart->get_sprites_optimized_arr(), m_cart->get_sprites_base(), m_cart->get_sprites_size()); + + + return IMAGE_INIT_PASS; + } + } + + return IMAGE_INIT_PASS; +} + +void neogeo_cart_slot_device::setup_memory_banks(running_machine &machine) +{ + UINT16* base16 = get_rom_base(); + UINT32 size = get_rom_size(); + machine.memory().region_free(":maincpu"); + machine.memory().region_alloc(":maincpu",size,2, ENDIANNESS_BIG); + memcpy(memregion(":maincpu")->base(),(UINT8*)base16,size); + + UINT8* base = get_audio_base(); + size = get_audio_size(); + machine.memory().region_free(":audiocpu"); + machine.memory().region_alloc(":audiocpu",size,1, ENDIANNESS_LITTLE); + memcpy(memregion(":audiocpu")->base(),base,size); + + + base = get_ym_base(); + size = get_ym_size(); + + machine.memory().region_free(":ymsnd"); + machine.memory().region_alloc(":ymsnd",size,1, ENDIANNESS_LITTLE); + memcpy(memregion(":ymsnd")->base(),base,size); + + + base = get_ymdelta_base(); + size = get_ymdelta_size(); + machine.memory().region_free(":ymsnd.deltat"); + + if(base) + { + machine.memory().region_alloc(":ymsnd.deltat",size,1, ENDIANNESS_LITTLE); + memcpy(memregion(":ymsnd.deltat")->base(),base,size); + } + + +} + +/*------------------------------------------------- + call_unload + -------------------------------------------------*/ + +void neogeo_cart_slot_device::call_unload() +{ +} + +/*------------------------------------------------- + call softlist load + -------------------------------------------------*/ + +bool neogeo_cart_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) +{ + machine().rom_load().load_software_part_region(*this, swlist, swname, start_entry ); + return TRUE; +} + + +/*------------------------------------------------- + get default card software + -------------------------------------------------*/ + +std::string neogeo_cart_slot_device::get_default_card_software() +{ + return software_get_default_slot("rom"); +} + +/*------------------------------------------------- + read + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_cart_slot_device::read_rom) +{ + if (m_cart) + return m_cart->read_rom(space, offset, mem_mask); + else + return 0xffff; +} diff --git a/docs/release/src/hbmame/bus/neogeo/neogeo_slot.h b/docs/release/src/hbmame/bus/neogeo/neogeo_slot.h new file mode 100644 index 00000000000..1b037103165 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/neogeo_slot.h @@ -0,0 +1,87 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_SLOT_H +#define __NEOGEO_SLOT_H + +#include "neogeo_intf.h" +#include "neogeo_helper.h" + +/*************************************************************************** + TYPE DEFINITIONS + ***************************************************************************/ + +// ======================> neogeo_cart_slot_device + +class neogeo_cart_slot_device : public device_t, + public device_image_interface, + public device_slot_interface +{ +public: + // construction/destruction + neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + virtual ~neogeo_cart_slot_device(); + + // device-level overrides + virtual void device_start() override; + virtual void device_config_complete() override; + + // image-level overrides + virtual bool call_load() override; + virtual void call_unload() override; + virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) override; + + virtual iodevice_t image_type() const override { return IO_CARTSLOT; } + virtual bool is_readable() const override { return 1; } + virtual bool is_writeable() const override { return 0; } + virtual bool is_creatable() const override { return 0; } + virtual bool must_be_loaded() const override { return 0; } + virtual bool is_reset_on_load() const override { return 1; } + virtual const option_guide *create_option_guide() const override { return nullptr; } + virtual const char *image_interface() const override { return "neo_cart"; } + virtual const char *file_extensions() const override { return "bin"; } + + // slot interface overrides + virtual std::string get_default_card_software() override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom); + + UINT16* get_rom_base() { if (m_cart) { return m_cart->get_rom_base(); } else { return nullptr; } } + UINT32 get_rom_size() { if (m_cart) { return m_cart->get_rom_size(); } else { return 0; } } + UINT8* get_fixed_base() { if (m_cart) { return m_cart->get_fixed_base(); } else { return nullptr; } } + UINT32 get_fixed_size() { if (m_cart) { return m_cart->get_fixed_size(); } else { return 0; } } + UINT8* get_sprites_base() { if (m_cart) { return m_cart->get_sprites_base(); } else { return nullptr; } } + UINT32 get_sprites_size() { if (m_cart) { return m_cart->get_sprites_size(); } else { return 0; } } + UINT8* get_sprites_optimized() { if (m_cart) { return m_cart->get_sprites_optimized(); } else { return nullptr; } } + UINT32 get_sprites_addrmask() { if (m_cart) { return m_cart->get_sprites_addrmask(); } else { return 0; } } + UINT8* get_audio_base() { if (m_cart) { return m_cart->get_audio_base(); } else { return nullptr; } } + UINT32 get_audio_size() { if (m_cart) { return m_cart->get_audio_size(); } else { return 0; } } + UINT8* get_ym_base() { if (m_cart) { return m_cart->get_ym_base(); } else { return nullptr; } } + UINT32 get_ym_size() { if (m_cart) { return m_cart->get_ym_size(); } else { return 0; } } + UINT8* get_ymdelta_base() { if (m_cart) { return m_cart->get_ymdelta_base(); } else { return nullptr; } } + UINT32 get_ymdelta_size() { if (m_cart) { return m_cart->get_ymdelta_size(); } else { return 0; } } + int get_fixed_bank_type(void) { if (m_cart) { return m_cart->get_fixed_bank_type(); } else { return 0; } } + + void activate_cart(ACTIVATE_CART_PARAMS) { if (m_cart) m_cart->activate_cart(machine, maincpu, cpuregion, cpuregion_size, fixedregion, fixedregion_size); } + void setup_memory_banks(running_machine &machine); + + +private: + device_neogeo_cart_interface* m_cart; +}; + + +// device type definition +extern const device_type NEOGEO_CART_SLOT; + + +/*************************************************************************** + DEVICE CONFIGURATION MACROS + ***************************************************************************/ + +#define MCFG_NEOGEO_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ + MCFG_DEVICE_ADD(_tag, NEOGEO_CART_SLOT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/pcm2_cart.cpp b/docs/release/src/hbmame/bus/neogeo/pcm2_cart.cpp new file mode 100644 index 00000000000..04eede0ebe9 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/pcm2_cart.cpp @@ -0,0 +1,135 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "pcm2_cart.h" + + +//------------------------------------------------- +// neogeo_pcm2_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_PCM2_CART = &device_creator<neogeo_pcm2_cart>; + + +neogeo_pcm2_cart::neogeo_pcm2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot") +{ +} + +neogeo_pcm2_cart::neogeo_pcm2_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_PCM2_CART, "NEOGEO PCM2 Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_pcm2_cart::device_start() +{ +} + +void neogeo_pcm2_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_pcm2_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( pcm2_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_CMC_PROT_ADD("cmc_prot") + MCFG_PCM2_PROT_ADD("pcm2_prot") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_pcm2_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( pcm2_cart ); +} + + + +/* Individual cartridge types (mirror DRIVER_INIT functionality) */ + +/************************************************* + MSLUG4 +**************************************************/ + +const device_type NEOGEO_PCM2_MSLUG4_CART = &device_creator<neogeo_pcm2_mslug4_cart>; + +neogeo_pcm2_mslug4_cart::neogeo_pcm2_mslug4_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_MSLUG4_CART, "NEOGEO PCM2 mslug4 Cart", tag, owner, clock, "p2_mslug4_cart", __FILE__) {} + +void neogeo_pcm2_mslug4_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG4_GFX_KEY); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8); + +} + + +const device_type NEOGEO_PCM2_MS4PLUS_CART = &device_creator<neogeo_pcm2_ms4plus_cart>; + +neogeo_pcm2_ms4plus_cart::neogeo_pcm2_ms4plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_MS4PLUS_CART, "NEOGEO PCM2 ms4plus Cart", tag, owner, clock, "p2_ms4plus_cart", __FILE__) {} + +void neogeo_pcm2_ms4plus_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG4_GFX_KEY); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8); +} + + +/************************************************* + ROTD +**************************************************/ + +const device_type NEOGEO_PCM2_ROTD_CART = &device_creator<neogeo_pcm2_rotd_cart>; + +neogeo_pcm2_rotd_cart::neogeo_pcm2_rotd_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_ROTD_CART, "NEOGEO PCM2 rotd Cart", tag, owner, clock, "p2_rotd_cart", __FILE__) {} + +void neogeo_pcm2_rotd_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, ROTD_GFX_KEY); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16); + +} + +/************************************************* + PNYAA +**************************************************/ + +const device_type NEOGEO_PCM2_PNYAA_CART = &device_creator<neogeo_pcm2_pnyaa_cart>; + +neogeo_pcm2_pnyaa_cart::neogeo_pcm2_pnyaa_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_PNYAA_CART, "NEOGEO PCM2 pnyaa Cart", tag, owner, clock, "p2_pnyaa_cart", __FILE__) {} + +void neogeo_pcm2_pnyaa_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, PNYAA_GFX_KEY); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 4); +} diff --git a/docs/release/src/hbmame/bus/neogeo/pcm2_cart.h b/docs/release/src/hbmame/bus/neogeo/pcm2_cart.h new file mode 100644 index 00000000000..74f8e24d929 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/pcm2_cart.h @@ -0,0 +1,98 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_PCM2_CART_H +#define __NEOGEO_PCM2_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "pcm2_prot.h" +#include "cmc_prot.h" + +// ======================> neogeo_pcm2_cart + +class neogeo_pcm2_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_pcm2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_pcm2_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); } + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} + virtual int get_fixed_bank_type(void) override { return 0; } + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<cmc_prot_device> m_cmc_prot; + required_device<pcm2_prot_device> m_pcm2_prot; +}; + + + +// device type definition +extern const device_type NEOGEO_PCM2_CART; + + +/************************************************* + MSLUG4 +**************************************************/ + +class neogeo_pcm2_mslug4_cart : public neogeo_pcm2_cart +{ +public: + neogeo_pcm2_mslug4_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_PCM2_MSLUG4_CART; + +class neogeo_pcm2_ms4plus_cart : public neogeo_pcm2_cart +{ +public: + neogeo_pcm2_ms4plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 0; } +}; +extern const device_type NEOGEO_PCM2_MS4PLUS_CART; + + + +/************************************************* + ROTD +**************************************************/ + +class neogeo_pcm2_rotd_cart : public neogeo_pcm2_cart +{ +public: + neogeo_pcm2_rotd_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_PCM2_ROTD_CART; + + +/************************************************* + PNYAA +**************************************************/ + +class neogeo_pcm2_pnyaa_cart : public neogeo_pcm2_cart +{ +public: + neogeo_pcm2_pnyaa_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_PCM2_PNYAA_CART; + + + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/pcm2_prot.cpp b/docs/release/src/hbmame/bus/neogeo/pcm2_prot.cpp new file mode 100644 index 00000000000..64159ff4185 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/pcm2_prot.cpp @@ -0,0 +1,88 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#include "emu.h" +#include "pcm2_prot.h" + + + +extern const device_type PCM2_PROT = &device_creator<pcm2_prot_device>; + + +pcm2_prot_device::pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, PCM2_PROT, "NeoGeo Protection (NEOPCM2)", tag, owner, clock, "pcm2_prot", __FILE__) +{ +} + + +void pcm2_prot_device::device_start() +{ +} + +void pcm2_prot_device::device_reset() +{ +} + +/*************************************************************************** + +NeoGeo 'V' (PCM) ROM encryption + NEOPCM2 chip + +***************************************************************************/ + +/* Neo-Pcm2 Drivers for Encrypted V Roms */ +void pcm2_prot_device::neo_pcm2_snk_1999(UINT8* ymrom, UINT32 ymsize, int value) +{ /* thanks to Elsemi for the NEO-PCM2 info */ + UINT16 *rom = (UINT16 *)ymrom; + int size = ymsize; + int i, j; + + if( rom != nullptr ) + { /* swap address lines on the whole ROMs */ + std::vector<UINT16> buffer(value / 2); + + for( i = 0; i < size / 2; i += ( value / 2 ) ) + { + memcpy( &buffer[0], &rom[ i ], value ); + for( j = 0; j < (value / 2); j++ ) + { + rom[ i + j ] = buffer[ j ^ (value/4) ]; + } + } + } +} + + +/* the later PCM2 games have additional scrambling */ +void pcm2_prot_device::neo_pcm2_swap(UINT8* ymrom, UINT32 ymsize, int value) +{ + static const UINT32 addrs[7][2]={ + {0x000000,0xa5000}, + {0xffce20,0x01000}, + {0xfe2cf6,0x4e001}, + {0xffac28,0xc2000}, + {0xfeb2c0,0x0a000}, + {0xff14ea,0xa7001}, + {0xffb440,0x02000}}; + static const UINT8 xordata[7][8]={ + {0xf9,0xe0,0x5d,0xf3,0xea,0x92,0xbe,0xef}, + {0xc4,0x83,0xa8,0x5f,0x21,0x27,0x64,0xaf}, + {0xc3,0xfd,0x81,0xac,0x6d,0xe7,0xbf,0x9e}, + {0xc3,0xfd,0x81,0xac,0x6d,0xe7,0xbf,0x9e}, + {0xcb,0x29,0x7d,0x43,0xd2,0x3a,0xc2,0xb4}, + {0x4b,0xa4,0x63,0x46,0xf0,0x91,0xea,0x62}, + {0x4b,0xa4,0x63,0x46,0xf0,0x91,0xea,0x62}}; + + dynamic_buffer buf(0x1000000); + int i, j, d; + UINT8* src = ymrom; + memcpy(&buf[0],src,0x1000000); + for (i=0;i<0x1000000;i++) + { + j=BITSWAP24(i,23,22,21,20,19,18,17,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16); + j=j^addrs[value][1]; + d=((i+addrs[value][0])&0xffffff); + src[j]=buf[d]^xordata[value][j&0x7]; + } +} diff --git a/docs/release/src/hbmame/bus/neogeo/pcm2_prot.h b/docs/release/src/hbmame/bus/neogeo/pcm2_prot.h new file mode 100644 index 00000000000..72f59dac1b3 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/pcm2_prot.h @@ -0,0 +1,30 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#ifndef __PCM2_PROT__ +#define __PCM2_PROT__ + +extern const device_type PCM2_PROT; + +#define MCFG_PCM2_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, PCM2_PROT, 0) + + +class pcm2_prot_device : public device_t +{ +public: + // construction/destruction + pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + void neo_pcm2_snk_1999(UINT8* ymrom, UINT32 ymsize, int value); + void neo_pcm2_swap(UINT8* ymrom, UINT32 ymsize, int value); + +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/pvc_cart.cpp b/docs/release/src/hbmame/bus/neogeo/pvc_cart.cpp new file mode 100644 index 00000000000..ee587724b7f --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/pvc_cart.cpp @@ -0,0 +1,139 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "pvc_cart.h" + + +//------------------------------------------------- +// neogeo_pvc_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_PVC_CART = &device_creator<neogeo_pvc_cart>; + + +neogeo_pvc_cart::neogeo_pvc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot"), + m_pvc_prot(*this, "pvc_prot") +{ +} + +neogeo_pvc_cart::neogeo_pvc_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_PVC_CART, "NEOGEO PCM2 Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot"), + m_pvc_prot(*this, "pvc_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_pvc_cart::device_start() +{ +} + +void neogeo_pvc_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_pvc_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( pvc_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_CMC_PROT_ADD("cmc_prot") + MCFG_PCM2_PROT_ADD("pcm2_prot") + MCFG_PVC_PROT_ADD("pvc_prot") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_pvc_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( pvc_cart ); +} + + + +/* Individual cartridge types (mirror DRIVER_INIT functionality) */ + +/************************************************* + MSLUG5 +**************************************************/ + +const device_type NEOGEO_PVC_MSLUG5_CART = &device_creator<neogeo_pvc_mslug5_cart>; + +neogeo_pvc_mslug5_cart::neogeo_pvc_mslug5_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_pvc_cart(mconfig, NEOGEO_PVC_MSLUG5_CART, "NEOGEO PCM2 mslug5 Cart", tag, owner, clock, "p2_mslug5_cart", __FILE__) {} + +void neogeo_pvc_mslug5_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG5_GFX_KEY); +} + +/************************************************* + SVC +**************************************************/ + +const device_type NEOGEO_PVC_SVC_CART = &device_creator<neogeo_pvc_svc_cart>; + +neogeo_pvc_svc_cart::neogeo_pvc_svc_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_pvc_cart(mconfig, NEOGEO_PVC_SVC_CART, "NEOGEO PCM2 svc Cart", tag, owner, clock, "p2_svc_cart", __FILE__) {} + +void neogeo_pvc_svc_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SVC_GFX_KEY); +} + + +/************************************************* + KOF2003 +**************************************************/ + +const device_type NEOGEO_PVC_KOF2003_CART = &device_creator<neogeo_pvc_kof2003_cart>; + +neogeo_pvc_kof2003_cart::neogeo_pvc_kof2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_pvc_cart(mconfig, NEOGEO_PVC_KOF2003_CART, "NEOGEO PCM2 kof2003 Cart", tag, owner, clock, "p2_kof2003_cart", __FILE__) {} + +void neogeo_pvc_kof2003_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); +} + +const device_type NEOGEO_PVC_KOF2003H_CART = &device_creator<neogeo_pvc_kof2003h_cart>; + +neogeo_pvc_kof2003h_cart::neogeo_pvc_kof2003h_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_pvc_cart(mconfig, NEOGEO_PVC_KOF2003H_CART, "NEOGEO PCM2 kof2003h Cart", tag, owner, clock, "p2_kof2003h_cart", __FILE__) {} + +void neogeo_pvc_kof2003h_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); +} diff --git a/docs/release/src/hbmame/bus/neogeo/pvc_cart.h b/docs/release/src/hbmame/bus/neogeo/pvc_cart.h new file mode 100644 index 00000000000..7d5e3aa22d5 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/pvc_cart.h @@ -0,0 +1,108 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_PVC_CART_H +#define __NEOGEO_PVC_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "pcm2_prot.h" +#include "cmc_prot.h" +#include "pvc_prot.h" + +// ======================> neogeo_pvc_cart + +class neogeo_pvc_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_pvc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_pvc_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override + { + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_pvc_prot->install_pvc_protection(maincpu,m_banked_cart); + } + + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} + virtual int get_fixed_bank_type(void) override { return 0; } + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<cmc_prot_device> m_cmc_prot; + required_device<pcm2_prot_device> m_pcm2_prot; + required_device<pvc_prot_device> m_pvc_prot; + +}; + + + +// device type definition +extern const device_type NEOGEO_PVC_CART; + + +/************************************************* + MSLUG5 +**************************************************/ + +class neogeo_pvc_mslug5_cart : public neogeo_pvc_cart +{ +public: + neogeo_pvc_mslug5_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_PVC_MSLUG5_CART; + +/************************************************* + SVC +**************************************************/ + +class neogeo_pvc_svc_cart : public neogeo_pvc_cart +{ +public: + neogeo_pvc_svc_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 2; } +}; +extern const device_type NEOGEO_PVC_SVC_CART; + + +/************************************************* + KOF2003 +**************************************************/ + +class neogeo_pvc_kof2003_cart : public neogeo_pvc_cart +{ +public: + neogeo_pvc_kof2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 2; } +}; +extern const device_type NEOGEO_PVC_KOF2003_CART; + + +/************************************************* + KOF2003H +**************************************************/ + +class neogeo_pvc_kof2003h_cart : public neogeo_pvc_cart +{ +public: + neogeo_pvc_kof2003h_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 2; } +}; +extern const device_type NEOGEO_PVC_KOF2003H_CART; + + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/pvc_prot.cpp b/docs/release/src/hbmame/bus/neogeo/pvc_prot.cpp new file mode 100644 index 00000000000..bef53153a5f --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/pvc_prot.cpp @@ -0,0 +1,317 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#include "emu.h" +#include "pvc_prot.h" + + + +extern const device_type PVC_PROT = &device_creator<pvc_prot_device>; + + +pvc_prot_device::pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, PVC_PROT, "NeoGeo Protection (PVC)", tag, owner, clock, "pvc_prot", __FILE__), + m_bankdev(nullptr) +{ +} + + +void pvc_prot_device::device_start() +{ + save_item(NAME(m_cartridge_ram)); +} + +void pvc_prot_device::device_reset() +{ +} + + + + +/************************ PVC Protection *********************** + mslug5, svcchaos, kof2003 +***************************************************************/ + +void pvc_prot_device::pvc_write_unpack_color() +{ + UINT16 pen = m_cartridge_ram[0xff0]; + + UINT8 b = ((pen & 0x000f) << 1) | ((pen & 0x1000) >> 12); + UINT8 g = ((pen & 0x00f0) >> 3) | ((pen & 0x2000) >> 13); + UINT8 r = ((pen & 0x0f00) >> 7) | ((pen & 0x4000) >> 14); + UINT8 s = (pen & 0x8000) >> 15; + + m_cartridge_ram[0xff1] = (g << 8) | b; + m_cartridge_ram[0xff2] = (s << 8) | r; +} + + +void pvc_prot_device::pvc_write_pack_color() +{ + UINT16 gb = m_cartridge_ram[0xff4]; + UINT16 sr = m_cartridge_ram[0xff5]; + + m_cartridge_ram[0xff6] = ((gb & 0x001e) >> 1) | + ((gb & 0x1e00) >> 5) | + ((sr & 0x001e) << 7) | + ((gb & 0x0001) << 12) | + ((gb & 0x0100) << 5) | + ((sr & 0x0001) << 14) | + ((sr & 0x0100) << 7); +} + + +void pvc_prot_device::pvc_write_bankswitch( address_space &space ) +{ + UINT32 bankaddress; + + bankaddress = ((m_cartridge_ram[0xff8] >> 8)|(m_cartridge_ram[0xff9] << 8)); + m_cartridge_ram[0xff8] = (m_cartridge_ram[0xff8] & 0xfe00) | 0x00a0; + m_cartridge_ram[0xff9] &= 0x7fff; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress + 0x100000); +} + + +READ16_MEMBER( pvc_prot_device::pvc_prot_r ) +{ + return m_cartridge_ram[offset]; +} + + +WRITE16_MEMBER( pvc_prot_device::pvc_prot_w ) +{ + COMBINE_DATA(&m_cartridge_ram[offset] ); + if (offset == 0xff0) + pvc_write_unpack_color(); + else if(offset >= 0xff4 && offset <= 0xff5) + pvc_write_pack_color(); + else if(offset >= 0xff8) + pvc_write_bankswitch(space); +} + + +void pvc_prot_device::install_pvc_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev) +{ + m_bankdev = bankdev; + maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(pvc_prot_device::pvc_prot_r),this), write16_delegate(FUNC(pvc_prot_device::pvc_prot_w),this)); +} + + + + +/* kf2k3pcb, kof2003, kof2003h, mslug5 and svc have updated P rom scramble */ +void pvc_prot_device::mslug5_decrypt_68k(UINT8* rom, UINT32 size) +{ + static const UINT8 xor1[ 0x20 ] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29, 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 }; + static const UINT8 xor2[ 0x20 ] = { 0x36, 0x09, 0xb0, 0x64, 0x95, 0x0f, 0x90, 0x42, 0x6e, 0x0f, 0x30, 0xf6, 0xe5, 0x08, 0x30, 0x64, 0x08, 0x04, 0x00, 0x2f, 0x72, 0x09, 0xa0, 0x13, 0xc9, 0x0b, 0xa0, 0x3e, 0xc2, 0x00, 0x40, 0x2b }; + int i; + int ofst; + int rom_size = 0x800000; + dynamic_buffer buf( rom_size ); + + for( i = 0; i < 0x100000; i++ ) + { + rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ]; + } + for( i = 0x100000; i < 0x800000; i++ ) + { + rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ]; + } + + for( i = 0x100000; i < 0x0800000; i += 4 ) + { + UINT16 rom16; + rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8; + rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 ); + rom[BYTE_XOR_LE(i+1)] = rom16&0xff; + rom[BYTE_XOR_LE(i+2)] = rom16>>8; + } + memcpy( &buf[0], rom, rom_size ); + for( i = 0; i < 0x0100000 / 0x10000; i++ ) + { + ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 ); + memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 ); + } + for( i = 0x100000; i < 0x800000; i += 0x100 ) + { + ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00700) + (BITSWAP8( ((i & 0x0ff000) >> 12), 5, 4, 7, 6, 1, 0, 3, 2 ) << 12); + memcpy( &rom[ i ], &buf[ ofst ], 0x100 ); + } + memcpy( &buf[0], rom, rom_size ); + memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 ); + memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 ); +} + + +void pvc_prot_device::svc_px_decrypt(UINT8* rom, UINT32 size) +{ + static const UINT8 xor1[ 0x20 ] = { 0x3b, 0x6a, 0xf7, 0xb7, 0xe8, 0xa9, 0x20, 0x99, 0x9f, 0x39, 0x34, 0x0c, 0xc3, 0x9a, 0xa5, 0xc8, 0xb8, 0x18, 0xce, 0x56, 0x94, 0x44, 0xe3, 0x7a, 0xf7, 0xdd, 0x42, 0xf0, 0x18, 0x60, 0x92, 0x9f }; + static const UINT8 xor2[ 0x20 ] = { 0x69, 0x0b, 0x60, 0xd6, 0x4f, 0x01, 0x40, 0x1a, 0x9f, 0x0b, 0xf0, 0x75, 0x58, 0x0e, 0x60, 0xb4, 0x14, 0x04, 0x20, 0xe4, 0xb9, 0x0d, 0x10, 0x89, 0xeb, 0x07, 0x30, 0x90, 0x50, 0x0e, 0x20, 0x26 }; + int i; + int ofst; + int rom_size = 0x800000; + dynamic_buffer buf( rom_size ); + + for( i = 0; i < 0x100000; i++ ) + { + rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ]; + } + for( i = 0x100000; i < 0x800000; i++ ) + { + rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ]; + } + + for( i = 0x100000; i < 0x0800000; i += 4 ) + { + UINT16 rom16; + rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8; + rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 ); + rom[BYTE_XOR_LE(i+1)] = rom16&0xff; + rom[BYTE_XOR_LE(i+2)] = rom16>>8; + } + memcpy( &buf[0], rom, rom_size ); + for( i = 0; i < 0x0100000 / 0x10000; i++ ) + { + ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 2, 3, 0, 1 ); + memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 ); + } + for( i = 0x100000; i < 0x800000; i += 0x100 ) + { + ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00a00) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12); + memcpy( &rom[ i ], &buf[ ofst ], 0x100 ); + } + memcpy( &buf[0], rom, rom_size ); + memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 ); + memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 ); +} + + +void pvc_prot_device::kf2k3pcb_decrypt_68k(UINT8* rom, UINT32 size) +{ + static const UINT8 xor2[ 0x20 ] = { 0xb4, 0x0f, 0x40, 0x6c, 0x38, 0x07, 0xd0, 0x3f, 0x53, 0x08, 0x80, 0xaa, 0xbe, 0x07, 0xc0, 0xfa, 0xd0, 0x08, 0x10, 0xd2, 0xf1, 0x03, 0x70, 0x7e, 0x87, 0x0b, 0x40, 0xf6, 0x2a, 0x0a, 0xe0, 0xf9 }; + int i; + int ofst; + int rom_size = 0x900000; + dynamic_buffer buf( rom_size ); + + for (i = 0; i < 0x100000; i++) + { + rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ]; + } + for( i = 0x100000; i < 0x800000; i++ ) + { + rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ]; + } + for( i = 0x100000; i < 0x800000; i += 4 ) + { + UINT16 rom16; + rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8; + rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11, 3, 2, 1, 0 ); + rom[BYTE_XOR_LE(i+1)] = rom16&0xff; + rom[BYTE_XOR_LE(i+2)] = rom16>>8; + } + for( i = 0; i < 0x0100000 / 0x10000; i++ ) + { + ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 ); + memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 ); + } + for( i = 0x100000; i < 0x900000; i += 0x100 ) + { + ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00300) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12); + memcpy( &buf[ i ], &rom[ ofst ], 0x100 ); + } + memcpy (&rom[0x000000], &buf[0x000000], 0x100000); + memcpy (&rom[0x100000], &buf[0x800000], 0x100000); + memcpy (&rom[0x200000], &buf[0x100000], 0x700000); +} + + +void pvc_prot_device::kof2003_decrypt_68k(UINT8* rom, UINT32 size) +{ + static const UINT8 xor1[0x20] = { 0x3b, 0x6a, 0xf7, 0xb7, 0xe8, 0xa9, 0x20, 0x99, 0x9f, 0x39, 0x34, 0x0c, 0xc3, 0x9a, 0xa5, 0xc8, 0xb8, 0x18, 0xce, 0x56, 0x94, 0x44, 0xe3, 0x7a, 0xf7, 0xdd, 0x42, 0xf0, 0x18, 0x60, 0x92, 0x9f }; + static const UINT8 xor2[0x20] = { 0x2f, 0x02, 0x60, 0xbb, 0x77, 0x01, 0x30, 0x08, 0xd8, 0x01, 0xa0, 0xdf, 0x37, 0x0a, 0xf0, 0x65, 0x28, 0x03, 0xd0, 0x23, 0xd3, 0x03, 0x70, 0x42, 0xbb, 0x06, 0xf0, 0x28, 0xba, 0x0f, 0xf0, 0x7a }; + int i; + int ofst; + int rom_size = 0x900000; + dynamic_buffer buf( rom_size ); + + for (i = 0; i < 0x100000; i++) + { + rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ]; + } + for( i = 0; i < 0x100000; i++) + { + rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ]; + } + for( i = 0x100000; i < 0x800000; i++) + { + rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ]; + } + for( i = 0x100000; i < 0x800000; i += 4) + { + UINT16 rom16; + rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8; + rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 5, 4, 7, 6, 9, 8, 11, 10, 3, 2, 1, 0 ); + rom[BYTE_XOR_LE(i+1)] = rom16&0xff; + rom[BYTE_XOR_LE(i+2)] = rom16>>8; + } + for( i = 0; i < 0x0100000 / 0x10000; i++ ) + { + ofst = (i & 0xf0) + BITSWAP8((i & 0x0f), 7, 6, 5, 4, 0, 1, 2, 3); + memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 ); + } + for( i = 0x100000; i < 0x900000; i += 0x100) + { + ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00800) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12); + memcpy( &buf[ i ], &rom[ ofst ], 0x100 ); + } + memcpy (&rom[0x000000], &buf[0x000000], 0x100000); + memcpy (&rom[0x100000], &buf[0x800000], 0x100000); + memcpy (&rom[0x200000], &buf[0x100000], 0x700000); +} + + +void pvc_prot_device::kof2003h_decrypt_68k(UINT8* rom, UINT32 size) +{ + static const UINT8 xor1[0x20] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29, 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 }; + static const UINT8 xor2[0x20] = { 0x2b, 0x09, 0xd0, 0x7f, 0x51, 0x0b, 0x10, 0x4c, 0x5b, 0x07, 0x70, 0x9d, 0x3e, 0x0b, 0xb0, 0xb6, 0x54, 0x09, 0xe0, 0xcc, 0x3d, 0x0d, 0x80, 0x99, 0x87, 0x03, 0x90, 0x82, 0xfe, 0x04, 0x20, 0x18 }; + int i; + int ofst; + int rom_size = 0x900000; + dynamic_buffer buf( rom_size ); + + for (i = 0; i < 0x100000; i++) + { + rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ]; + } + for( i = 0; i < 0x100000; i++) + { + rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ]; + } + for( i = 0x100000; i < 0x800000; i++) + { + rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ]; + } + for( i = 0x100000; i < 0x800000; i += 4) + { + UINT16 rom16; + rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8; + rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 ); + rom[BYTE_XOR_LE(i+1)] = rom16&0xff; + rom[BYTE_XOR_LE(i+2)] = rom16>>8; + } + for( i = 0; i < 0x0100000 / 0x10000; i++ ) + { + ofst = (i & 0xf0) + BITSWAP8((i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2); + memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 ); + } + for( i = 0x100000; i < 0x900000; i += 0x100) + { + ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00400) + (BITSWAP8( ((i & 0x0ff000) >> 12), 6, 7, 4, 5, 0, 1, 2, 3 ) << 12); + memcpy( &buf[ i ], &rom[ ofst ], 0x100 ); + } + memcpy (&rom[0x000000], &buf[0x000000], 0x100000); + memcpy (&rom[0x100000], &buf[0x800000], 0x100000); + memcpy (&rom[0x200000], &buf[0x100000], 0x700000); +} diff --git a/docs/release/src/hbmame/bus/neogeo/pvc_prot.h b/docs/release/src/hbmame/bus/neogeo/pvc_prot.h new file mode 100644 index 00000000000..db853285a28 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/pvc_prot.h @@ -0,0 +1,44 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + +#pragma once + +#include "banked_cart.h" + +#ifndef __PVC_PROT__ +#define __PVC_PROT__ + +extern const device_type PVC_PROT; + +#define MCFG_PVC_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, PVC_PROT, 0) + + +class pvc_prot_device : public device_t +{ +public: + // construction/destruction + pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + void pvc_write_unpack_color(); + void pvc_write_pack_color(); + void pvc_write_bankswitch(address_space &space); + DECLARE_READ16_MEMBER(pvc_prot_r); + DECLARE_WRITE16_MEMBER(pvc_prot_w); + void install_pvc_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev); + neogeo_banked_cart_device* m_bankdev; + + UINT16 m_cartridge_ram[0x1000]; + + void mslug5_decrypt_68k(UINT8* rom, UINT32 size); + void svc_px_decrypt(UINT8* rom, UINT32 size); + void kf2k3pcb_decrypt_68k(UINT8* rom, UINT32 size); + void kof2003_decrypt_68k(UINT8* rom, UINT32 size); + void kof2003h_decrypt_68k(UINT8* rom, UINT32 size); + +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/rom.cpp b/docs/release/src/hbmame/bus/neogeo/rom.cpp new file mode 100644 index 00000000000..085e68edec2 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/rom.cpp @@ -0,0 +1,70 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "rom.h" + + +//------------------------------------------------- +// neogeo_rom_device - constructor +//------------------------------------------------- + +const device_type NEOGEO_ROM = &device_creator<neogeo_rom_device>; + + +neogeo_rom_device::neogeo_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface( mconfig, *this ), + m_banked_cart(*this, "banked_cart") +{ +} + +neogeo_rom_device::neogeo_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_ROM, "NEOGEO ROM Carts", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface( mconfig, *this ), + m_banked_cart(*this, "banked_cart") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_rom_device::device_start() +{ +} + +void neogeo_rom_device::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_rom_device::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( banked_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_rom_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( banked_cart ); +} + +void neogeo_rom_device::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); +} diff --git a/docs/release/src/hbmame/bus/neogeo/rom.h b/docs/release/src/hbmame/bus/neogeo/rom.h new file mode 100644 index 00000000000..7a1135a3e7c --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/rom.h @@ -0,0 +1,38 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_ROM_H +#define __NEOGEO_ROM_H + +#include "neogeo_slot.h" +#include "banked_cart.h" + +// ======================> neogeo_rom_device + +class neogeo_rom_device : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + + required_device<neogeo_banked_cart_device> m_banked_cart; +}; + + + +// device type definition +extern const device_type NEOGEO_ROM; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/sbp_prot.cpp b/docs/release/src/hbmame/bus/neogeo/sbp_prot.cpp new file mode 100644 index 00000000000..b913eba75d9 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/sbp_prot.cpp @@ -0,0 +1,87 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#include "emu.h" +#include "sbp_prot.h" + + + +extern const device_type SBP_PROT = &device_creator<sbp_prot_device>; + + +sbp_prot_device::sbp_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, SBP_PROT, "NeoGeo Protection (Super Bubble Pop)", tag, owner, clock, "sbp_prot", __FILE__), + m_mainrom(nullptr) +{ +} + + +void sbp_prot_device::device_start() +{ +} + +void sbp_prot_device::device_reset() +{ +} + + + +READ16_MEMBER( sbp_prot_device::sbp_lowerrom_r ) +{ + UINT16* rom = (UINT16*)m_mainrom; + UINT16 origdata = rom[(offset+(0x200/2))]; + UINT16 data = BITSWAP16(origdata, 11,10,9,8,15,14,13,12,3,2,1,0,7,6,5,4); + int realoffset = 0x200+(offset*2); + logerror("sbp_lowerrom_r offset %08x data %04x\n", realoffset, data ); + + // there is actually data in the rom here already, maybe we should just return it 'as is' + if (realoffset==0xd5e) return origdata; + + return data; +} + +WRITE16_MEMBER( sbp_prot_device::sbp_lowerrom_w ) +{ + int realoffset = 0x200+(offset*2); + + // the actual data written is just pulled from the end of the rom, and unused space + // maybe this is just some kind of watchdog for the protection device and it doesn't + // matter? + if (realoffset == 0x1080) + { + if (data==0x4e75) + { + return; + } + else if (data==0xffff) + { + return; + } + } + + printf("sbp_lowerrom_w offset %08x data %04x\n", realoffset, data ); +} + + +void sbp_prot_device::sbp_install_protection(cpu_device* maincpu, UINT8* cpurom, UINT32 cpurom_size) +{ + m_mainrom = cpurom; + + // there seems to be a protection device living around here.. + // if you nibble swap the data in the rom the game will boot + // there are also writes to 0x1080.. + // + // other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work + maincpu->space(AS_PROGRAM).install_read_handler(0x00200, 0x001fff, read16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_r), this)); + maincpu->space(AS_PROGRAM).install_write_handler(0x00200, 0x001fff, write16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_w), this)); + + /* the game code clears the text overlay used ingame immediately after writing it.. why? protection? sloppy code that the hw ignores? imperfect emulation? */ + { + UINT16* rom = (UINT16*)cpurom; + + rom[0x2a6f8 / 2] = 0x4e71; + rom[0x2a6fa / 2] = 0x4e71; + rom[0x2a6fc / 2] = 0x4e71; + } +} diff --git a/docs/release/src/hbmame/bus/neogeo/sbp_prot.h b/docs/release/src/hbmame/bus/neogeo/sbp_prot.h new file mode 100644 index 00000000000..702bb9c42e0 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/sbp_prot.h @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#ifndef __SBP_PROT__ +#define __SBP_PROT__ + +extern const device_type SBP_PROT; + +#define MCFG_SBP_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, SBP_PROT, 0) + + +class sbp_prot_device : public device_t +{ +public: + // construction/destruction + sbp_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + + UINT8* m_mainrom; + + void sbp_install_protection(cpu_device* maincpu, UINT8* cpurom, UINT32 cpurom_size); + DECLARE_WRITE16_MEMBER(sbp_lowerrom_w); + DECLARE_READ16_MEMBER(sbp_lowerrom_r); + +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/sma_cart.cpp b/docs/release/src/hbmame/bus/neogeo/sma_cart.cpp new file mode 100644 index 00000000000..61e07b962f3 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/sma_cart.cpp @@ -0,0 +1,177 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +/*********************************************************************************************************** + + NEOGEO ROM cart emulation + + ***********************************************************************************************************/ + + +#include "emu.h" +#include "sma_cart.h" + + +//------------------------------------------------- +// neogeo_sma_cart - constructor +//------------------------------------------------- + +const device_type NEOGEO_SMA_CART = &device_creator<neogeo_sma_cart>; + + +neogeo_sma_cart::neogeo_sma_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source) + : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_sma_prot(*this, "sma_prot"), + m_cmc_prot(*this, "cmc_prot") + +{ +} + +neogeo_sma_cart::neogeo_sma_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock) + : device_t(mconfig, NEOGEO_SMA_CART, "NEOGEO SMA Cart", tag, owner, clock, "neogeo_rom", __FILE__), + device_neogeo_cart_interface(mconfig, *this), + m_banked_cart(*this, "banked_cart"), + m_sma_prot(*this, "sma_prot"), + m_cmc_prot(*this, "cmc_prot") +{ +} + + +//------------------------------------------------- +// mapper specific start/reset +//------------------------------------------------- + +void neogeo_sma_cart::device_start() +{ +} + +void neogeo_sma_cart::device_reset() +{ +} + + +/*------------------------------------------------- + mapper specific handlers + -------------------------------------------------*/ + +READ16_MEMBER(neogeo_sma_cart::read_rom) +{ + return m_rom[offset]; +} + +static MACHINE_CONFIG_FRAGMENT( sma_cart ) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + MCFG_SMA_PROT_ADD("sma_prot") + MCFG_CMC_PROT_ADD("cmc_prot") +MACHINE_CONFIG_END + +machine_config_constructor neogeo_sma_cart::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( sma_cart ); +} + + + +/* Individual cartridge types (mirror DRIVER_INIT functionality) */ + +/************************************************* + KOF 99 +**************************************************/ + +const device_type NEOGEO_SMA_KOF99_CART = &device_creator<neogeo_sma_kof99_cart>; + +neogeo_sma_kof99_cart::neogeo_sma_kof99_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_KOF99_CART, "NEOGEO SMA Kof99 Cart", tag, owner, clock, "sma_kof99_cart", __FILE__) {} + +void neogeo_sma_kof99_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_sma_prot->kof99_decrypt_68k(cpuregion); + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY); +} + +void neogeo_sma_kof99_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_sma_prot->kof99_install_protection(maincpu, m_banked_cart); +} + + + + +/************************************************* + Garou +**************************************************/ + +const device_type NEOGEO_SMA_GAROU_CART = &device_creator<neogeo_sma_garou_cart>; + +neogeo_sma_garou_cart::neogeo_sma_garou_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_GAROU_CART, "NEOGEO SMA Garou Cart", tag, owner, clock, "sma_garou_cart", __FILE__) {} + +void neogeo_sma_garou_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_sma_prot->garou_decrypt_68k(cpuregion); + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GAROU_GFX_KEY); +} + +void neogeo_sma_garou_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_sma_prot->garou_install_protection(maincpu, m_banked_cart); +} + +const device_type NEOGEO_SMA_GAROUH_CART = &device_creator<neogeo_sma_garouh_cart>; + +neogeo_sma_garouh_cart::neogeo_sma_garouh_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_GAROU_CART, "NEOGEO SMA Garou (alt) Cart", tag, owner, clock, "sma_garouh_cart", __FILE__) {} + +void neogeo_sma_garouh_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_sma_prot->garouh_decrypt_68k(cpuregion); + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GAROU_GFX_KEY); +} + +void neogeo_sma_garouh_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_sma_prot->garouh_install_protection(maincpu, m_banked_cart); +} + + +/************************************************* + Metal Slug 3 +**************************************************/ + +const device_type NEOGEO_SMA_MSLUG3_CART = &device_creator<neogeo_sma_mslug3_cart>; + +neogeo_sma_mslug3_cart::neogeo_sma_mslug3_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_MSLUG3_CART, "NEOGEO SMA Mslug3 Cart", tag, owner, clock, "sma_mslug3_cart", __FILE__) {} + +void neogeo_sma_mslug3_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_sma_prot->mslug3_decrypt_68k(cpuregion); + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY); +} + +void neogeo_sma_mslug3_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_sma_prot->mslug3_install_protection(maincpu, m_banked_cart); +} + +/************************************************* + KOF2000 +**************************************************/ + +const device_type NEOGEO_SMA_KOF2000_CART = &device_creator<neogeo_sma_kof2000_cart>; + +neogeo_sma_kof2000_cart::neogeo_sma_kof2000_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_KOF2000_CART, "NEOGEO SMA KOF2000 Cart", tag, owner, clock, "sma_kof2000_cart", __FILE__) {} + +void neogeo_sma_kof2000_cart::decrypt_all(DECRYPT_ALL_PARAMS) +{ + m_sma_prot->kof2000_decrypt_68k(cpuregion); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2000_GFX_KEY); +} + +void neogeo_sma_kof2000_cart::activate_cart(ACTIVATE_CART_PARAMS) +{ + m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); + m_sma_prot->kof2000_install_protection(maincpu, m_banked_cart); +} diff --git a/docs/release/src/hbmame/bus/neogeo/sma_cart.h b/docs/release/src/hbmame/bus/neogeo/sma_cart.h new file mode 100644 index 00000000000..04df0b1217a --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/sma_cart.h @@ -0,0 +1,112 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#ifndef __NEOGEO_SMA_CART_H +#define __NEOGEO_SMA_CART_H + +#include "neogeo_slot.h" +#include "banked_cart.h" +#include "sma_prot.h" +#include "cmc_prot.h" + +// ======================> neogeo_sma_cart + +class neogeo_sma_cart : public device_t, + public device_neogeo_cart_interface +{ +public: + // construction/destruction + neogeo_sma_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT16 clock, const char *shortname, const char *source); + neogeo_sma_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT16 clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + // reading and writing + virtual DECLARE_READ16_MEMBER(read_rom) override; + + virtual void activate_cart(ACTIVATE_CART_PARAMS) override {} + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} + virtual int get_fixed_bank_type(void) override { return 0; } + + required_device<neogeo_banked_cart_device> m_banked_cart; + required_device<sma_prot_device> m_sma_prot; + required_device<cmc_prot_device> m_cmc_prot; +}; + + + +// device type definition +extern const device_type NEOGEO_SMA_CART; + + +/************************************************* + KOF 99 +**************************************************/ + +class neogeo_sma_kof99_cart : public neogeo_sma_cart +{ +public: + neogeo_sma_kof99_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_SMA_KOF99_CART; + +/************************************************* + Garou +**************************************************/ + +class neogeo_sma_garou_cart : public neogeo_sma_cart +{ +public: + neogeo_sma_garou_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_SMA_GAROU_CART; + +class neogeo_sma_garouh_cart : public neogeo_sma_cart +{ +public: + neogeo_sma_garouh_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_SMA_GAROUH_CART; + +/************************************************* + Metal Slug 3 +**************************************************/ + +class neogeo_sma_mslug3_cart : public neogeo_sma_cart +{ +public: + neogeo_sma_mslug3_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 1; } +}; +extern const device_type NEOGEO_SMA_MSLUG3_CART; + + +/************************************************* + KOF2000 +**************************************************/ + +class neogeo_sma_kof2000_cart : public neogeo_sma_cart +{ +public: + neogeo_sma_kof2000_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void activate_cart(ACTIVATE_CART_PARAMS) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; + virtual int get_fixed_bank_type(void) override { return 2; } +}; +extern const device_type NEOGEO_SMA_KOF2000_CART; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo/sma_prot.cpp b/docs/release/src/hbmame/bus/neogeo/sma_prot.cpp new file mode 100644 index 00000000000..1c91212c416 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/sma_prot.cpp @@ -0,0 +1,464 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood +#include "emu.h" +#include "sma_prot.h" + + + +extern const device_type SMA_PROT = &device_creator<sma_prot_device>; + + +sma_prot_device::sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, SMA_PROT, "NeoGeo SMA Cartridge", tag, owner, clock, "sma_prot", __FILE__), + m_bankdev(nullptr), + m_sma_rng(0) +{ +} + + +void sma_prot_device::device_start() +{ + save_item(NAME(m_sma_rng)); +} + +void sma_prot_device::device_reset() +{ + reset_sma_rng(); +} + + + + + +/************************ SMA Protection************************ + thanks to Razoola +***************************************************************/ + +WRITE16_MEMBER( sma_prot_device::kof99_bankswitch_w ) +{ + int bankaddress; + static const int bankoffset[64] = + { + 0x000000, 0x100000, 0x200000, 0x300000, + 0x3cc000, 0x4cc000, 0x3f2000, 0x4f2000, + 0x407800, 0x507800, 0x40d000, 0x50d000, + 0x417800, 0x517800, 0x420800, 0x520800, + 0x424800, 0x524800, 0x429000, 0x529000, + 0x42e800, 0x52e800, 0x431800, 0x531800, + 0x54d000, 0x551000, 0x567000, 0x592800, + 0x588800, 0x581800, 0x599800, 0x594800, + 0x598000, /* rest not used? */ + }; + + /* unscramble bank number */ + data = + (((data>>14)&1)<<0)+ + (((data>> 6)&1)<<1)+ + (((data>> 8)&1)<<2)+ + (((data>>10)&1)<<3)+ + (((data>>12)&1)<<4)+ + (((data>> 5)&1)<<5); + + bankaddress = 0x100000 + bankoffset[data]; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress); +} + + +WRITE16_MEMBER( sma_prot_device::garou_bankswitch_w ) +{ + /* thanks to Razoola and Mr K for the info */ + int bankaddress; + static const int bankoffset[64] = + { + 0x000000, 0x100000, 0x200000, 0x300000, // 00 + 0x280000, 0x380000, 0x2d0000, 0x3d0000, // 04 + 0x2f0000, 0x3f0000, 0x400000, 0x500000, // 08 + 0x420000, 0x520000, 0x440000, 0x540000, // 12 + 0x498000, 0x598000, 0x4a0000, 0x5a0000, // 16 + 0x4a8000, 0x5a8000, 0x4b0000, 0x5b0000, // 20 + 0x4b8000, 0x5b8000, 0x4c0000, 0x5c0000, // 24 + 0x4c8000, 0x5c8000, 0x4d0000, 0x5d0000, // 28 + 0x458000, 0x558000, 0x460000, 0x560000, // 32 + 0x468000, 0x568000, 0x470000, 0x570000, // 36 + 0x478000, 0x578000, 0x480000, 0x580000, // 40 + 0x488000, 0x588000, 0x490000, 0x590000, // 44 + 0x5d0000, 0x5d8000, 0x5e0000, 0x5e8000, // 48 + 0x5f0000, 0x5f8000, 0x600000, /* rest not used? */ + }; + + /* unscramble bank number */ + data = + (((data>> 5)&1)<<0)+ + (((data>> 9)&1)<<1)+ + (((data>> 7)&1)<<2)+ + (((data>> 6)&1)<<3)+ + (((data>>14)&1)<<4)+ + (((data>>12)&1)<<5); + + bankaddress = 0x100000 + bankoffset[data]; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress); +} + + +WRITE16_MEMBER( sma_prot_device::garouh_bankswitch_w ) +{ + /* thanks to Razoola and Mr K for the info */ + int bankaddress; + static const int bankoffset[64] = + { + 0x000000, 0x100000, 0x200000, 0x300000, // 00 + 0x280000, 0x380000, 0x2d0000, 0x3d0000, // 04 + 0x2c8000, 0x3c8000, 0x400000, 0x500000, // 08 + 0x420000, 0x520000, 0x440000, 0x540000, // 12 + 0x598000, 0x698000, 0x5a0000, 0x6a0000, // 16 + 0x5a8000, 0x6a8000, 0x5b0000, 0x6b0000, // 20 + 0x5b8000, 0x6b8000, 0x5c0000, 0x6c0000, // 24 + 0x5c8000, 0x6c8000, 0x5d0000, 0x6d0000, // 28 + 0x458000, 0x558000, 0x460000, 0x560000, // 32 + 0x468000, 0x568000, 0x470000, 0x570000, // 36 + 0x478000, 0x578000, 0x480000, 0x580000, // 40 + 0x488000, 0x588000, 0x490000, 0x590000, // 44 + 0x5d8000, 0x6d8000, 0x5e0000, 0x6e0000, // 48 + 0x5e8000, 0x6e8000, 0x6e8000, 0x000000, // 52 + 0x000000, 0x000000, 0x000000, 0x000000, // 56 + 0x000000, 0x000000, 0x000000, 0x000000, // 60 + }; + + /* unscramble bank number */ + data = + (((data>> 4)&1)<<0)+ + (((data>> 8)&1)<<1)+ + (((data>>14)&1)<<2)+ + (((data>> 2)&1)<<3)+ + (((data>>11)&1)<<4)+ + (((data>>13)&1)<<5); + + bankaddress = 0x100000 + bankoffset[data]; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress); +} + + +WRITE16_MEMBER( sma_prot_device::mslug3_bankswitch_w ) +{ + /* thanks to Razoola and Mr K for the info */ + int bankaddress; + static const int bankoffset[64] = + { + 0x000000, 0x020000, 0x040000, 0x060000, // 00 + 0x070000, 0x090000, 0x0b0000, 0x0d0000, // 04 + 0x0e0000, 0x0f0000, 0x120000, 0x130000, // 08 + 0x140000, 0x150000, 0x180000, 0x190000, // 12 + 0x1a0000, 0x1b0000, 0x1e0000, 0x1f0000, // 16 + 0x200000, 0x210000, 0x240000, 0x250000, // 20 + 0x260000, 0x270000, 0x2a0000, 0x2b0000, // 24 + 0x2c0000, 0x2d0000, 0x300000, 0x310000, // 28 + 0x320000, 0x330000, 0x360000, 0x370000, // 32 + 0x380000, 0x390000, 0x3c0000, 0x3d0000, // 36 + 0x400000, 0x410000, 0x440000, 0x450000, // 40 + 0x460000, 0x470000, 0x4a0000, 0x4b0000, // 44 + 0x4c0000, /* rest not used? */ + }; + + /* unscramble bank number */ + data = + (((data>>14)&1)<<0)+ + (((data>>12)&1)<<1)+ + (((data>>15)&1)<<2)+ + (((data>> 6)&1)<<3)+ + (((data>> 3)&1)<<4)+ + (((data>> 9)&1)<<5); + + bankaddress = 0x100000 + bankoffset[data]; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress); +} + + +WRITE16_MEMBER( sma_prot_device::kof2000_bankswitch_w ) +{ + /* thanks to Razoola and Mr K for the info */ + int bankaddress; + static const int bankoffset[64] = + { + 0x000000, 0x100000, 0x200000, 0x300000, // 00 + 0x3f7800, 0x4f7800, 0x3ff800, 0x4ff800, // 04 + 0x407800, 0x507800, 0x40f800, 0x50f800, // 08 + 0x416800, 0x516800, 0x41d800, 0x51d800, // 12 + 0x424000, 0x524000, 0x523800, 0x623800, // 16 + 0x526000, 0x626000, 0x528000, 0x628000, // 20 + 0x52a000, 0x62a000, 0x52b800, 0x62b800, // 24 + 0x52d000, 0x62d000, 0x52e800, 0x62e800, // 28 + 0x618000, 0x619000, 0x61a000, 0x61a800, // 32 + }; + + /* unscramble bank number */ + data = + (((data>>15)&1)<<0)+ + (((data>>14)&1)<<1)+ + (((data>> 7)&1)<<2)+ + (((data>> 3)&1)<<3)+ + (((data>>10)&1)<<4)+ + (((data>> 5)&1)<<5); + + bankaddress = 0x100000 + bankoffset[data]; + m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress); +} + + +READ16_MEMBER( sma_prot_device::prot_9a37_r ) +{ + return 0x9a37; +} + + +/* information about the sma random number generator provided by razoola */ +/* this RNG is correct for KOF99, other games might be different */ + +READ16_MEMBER( sma_prot_device::sma_random_r ) +{ + UINT16 old = m_sma_rng; + + UINT16 newbit = ((m_sma_rng >> 2) ^ + (m_sma_rng >> 3) ^ + (m_sma_rng >> 5) ^ + (m_sma_rng >> 6) ^ + (m_sma_rng >> 7) ^ + (m_sma_rng >>11) ^ + (m_sma_rng >>12) ^ + (m_sma_rng >>15)) & 1; + + m_sma_rng = (m_sma_rng << 1) | newbit; + + return old; +} + + +void sma_prot_device::reset_sma_rng() +{ + m_sma_rng = 0x2345; +} + + +void sma_prot_device::sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 ) +{ + maincpu->space(AS_PROGRAM).install_read_handler(addr1, addr1 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this)); + maincpu->space(AS_PROGRAM).install_read_handler(addr2, addr2 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this)); +} + + +void sma_prot_device::kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev) +{ + maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(sma_prot_device::kof99_bankswitch_w),this)); + maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this)); + m_bankdev = bankdev; + + sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa); +} + + +void sma_prot_device::garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev) +{ + maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garou_bankswitch_w),this)); + maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this)); + m_bankdev = bankdev; + + sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0); +} + + +void sma_prot_device::garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev) +{ + maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garouh_bankswitch_w),this)); + maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this)); + m_bankdev = bankdev; + + sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0); +} + + +void sma_prot_device::mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev) +{ + maincpu->space(AS_PROGRAM).install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(FUNC(sma_prot_device::mslug3_bankswitch_w),this)); + maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this)); + m_bankdev = bankdev; + +// sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa); +} + + +void sma_prot_device::kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev) +{ + maincpu->space(AS_PROGRAM).install_write_handler(0x2fffec, 0x2fffed, write16_delegate(FUNC(sma_prot_device::kof2000_bankswitch_w),this)); + maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this)); + m_bankdev = bankdev; + + sma_install_random_read_handler(maincpu, 0x2fffd8, 0x2fffda); +} + + + +/* kof99, garou, garouh, mslug3 and kof2000 have and SMA chip which contains program code and decrypts the 68k roms */ +void sma_prot_device::kof99_decrypt_68k(UINT8* base) +{ + UINT16 *rom; + int i,j; + + rom = (UINT16 *)(base + 0x100000); + /* swap data lines on the whole ROMs */ + for (i = 0;i < 0x800000/2;i++) + { + rom[i] = BITSWAP16(rom[i],13,7,3,0,9,4,5,6,1,12,8,14,10,11,2,15); + } + + /* swap address lines for the banked part */ + for (i = 0;i < 0x600000/2;i+=0x800/2) + { + UINT16 buffer[0x800/2]; + memcpy(buffer,&rom[i],0x800); + for (j = 0;j < 0x800/2;j++) + { + rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,13,12,11,10,6,2,4,9,8,3,1,7,0,5)]; + } + } + + /* swap address lines & relocate fixed part */ + rom = (UINT16 *)base; + for (i = 0;i < 0x0c0000/2;i++) + { + rom[i] = rom[0x700000/2 + BITSWAP24(i,23,22,21,20,19,18,11,6,14,17,16,5,8,10,12,0,4,3,2,7,9,15,13,1)]; + } +} + + +void sma_prot_device::garou_decrypt_68k(UINT8* base) +{ + UINT16 *rom; + int i,j; + + /* thanks to Razoola and Mr K for the info */ + rom = (UINT16 *)(base + 0x100000); + /* swap data lines on the whole ROMs */ + for (i = 0;i < 0x800000/2;i++) + { + rom[i] = BITSWAP16(rom[i],13,12,14,10,8,2,3,1,5,9,11,4,15,0,6,7); + } + + /* swap address lines & relocate fixed part */ + rom = (UINT16 *)base; + for (i = 0;i < 0x0c0000/2;i++) + { + rom[i] = rom[0x710000/2 + BITSWAP24(i,23,22,21,20,19,18,4,5,16,14,7,9,6,13,17,15,3,1,2,12,11,8,10,0)]; + } + + /* swap address lines for the banked part */ + rom = (UINT16 *)(base + 0x100000); + for (i = 0;i < 0x800000/2;i+=0x8000/2) + { + UINT16 buffer[0x8000/2]; + memcpy(buffer,&rom[i],0x8000); + for (j = 0;j < 0x8000/2;j++) + { + rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,9,4,8,3,13,6,2,7,0,12,1,11,10,5)]; + } + } +} + + +void sma_prot_device::garouh_decrypt_68k(UINT8* base) +{ + UINT16 *rom; + int i,j; + + /* thanks to Razoola and Mr K for the info */ + rom = (UINT16 *)(base + 0x100000); + /* swap data lines on the whole ROMs */ + for (i = 0;i < 0x800000/2;i++) + { + rom[i] = BITSWAP16(rom[i],14,5,1,11,7,4,10,15,3,12,8,13,0,2,9,6); + } + + /* swap address lines & relocate fixed part */ + rom = (UINT16 *)base; + for (i = 0;i < 0x0c0000/2;i++) + { + rom[i] = rom[0x7f8000/2 + BITSWAP24(i,23,22,21,20,19,18,5,16,11,2,6,7,17,3,12,8,14,4,0,9,1,10,15,13)]; + } + + /* swap address lines for the banked part */ + rom = (UINT16 *)(base + 0x100000); + for (i = 0;i < 0x800000/2;i+=0x8000/2) + { + UINT16 buffer[0x8000/2]; + memcpy(buffer,&rom[i],0x8000); + for (j = 0;j < 0x8000/2;j++) + { + rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,12,8,1,7,11,3,13,10,6,9,5,4,0,2)]; + } + } +} + + +void sma_prot_device::mslug3_decrypt_68k(UINT8* base) +{ + UINT16 *rom; + int i,j; + + /* thanks to Razoola and Mr K for the info */ + rom = (UINT16 *)(base + 0x100000); + /* swap data lines on the whole ROMs */ + for (i = 0;i < 0x800000/2;i++) + { + rom[i] = BITSWAP16(rom[i],4,11,14,3,1,13,0,7,2,8,12,15,10,9,5,6); + } + + /* swap address lines & relocate fixed part */ + rom = (UINT16 *)base; + for (i = 0;i < 0x0c0000/2;i++) + { + rom[i] = rom[0x5d0000/2 + BITSWAP24(i,23,22,21,20,19,18,15,2,1,13,3,0,9,6,16,4,11,5,7,12,17,14,10,8)]; + } + + /* swap address lines for the banked part */ + rom = (UINT16 *)(base + 0x100000); + for (i = 0;i < 0x800000/2;i+=0x10000/2) + { + UINT16 buffer[0x10000/2]; + memcpy(buffer,&rom[i],0x10000); + for (j = 0;j < 0x10000/2;j++) + { + rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,2,11,0,14,6,4,13,8,9,3,10,7,5,12,1)]; + } + } +} + + +void sma_prot_device::kof2000_decrypt_68k(UINT8* base) +{ + UINT16 *rom; + int i,j; + + /* thanks to Razoola and Mr K for the info */ + rom = (UINT16 *)(base + 0x100000); + /* swap data lines on the whole ROMs */ + for (i = 0;i < 0x800000/2;i++) + { + rom[i] = BITSWAP16(rom[i],12,8,11,3,15,14,7,0,10,13,6,5,9,2,1,4); + } + + /* swap address lines for the banked part */ + for (i = 0;i < 0x63a000/2;i+=0x800/2) + { + UINT16 buffer[0x800/2]; + memcpy(buffer,&rom[i],0x800); + for (j = 0;j < 0x800/2;j++) + { + rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,13,12,11,10,4,1,3,8,6,2,7,0,9,5)]; + } + } + + /* swap address lines & relocate fixed part */ + rom = (UINT16 *)base; + for (i = 0;i < 0x0c0000/2;i++) + { + rom[i] = rom[0x73a000/2 + BITSWAP24(i,23,22,21,20,19,18,8,4,15,13,3,14,16,2,6,17,7,12,10,0,5,11,1,9)]; + } +} diff --git a/docs/release/src/hbmame/bus/neogeo/sma_prot.h b/docs/release/src/hbmame/bus/neogeo/sma_prot.h new file mode 100644 index 00000000000..37f7e82fbc1 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo/sma_prot.h @@ -0,0 +1,52 @@ +// license:BSD-3-Clause +// copyright-holders:S. Smith,David Haywood + + +#pragma once + +#include "banked_cart.h" + +#ifndef __SMA_PROT__ +#define __SMA_PROT__ + +extern const device_type SMA_PROT; + +#define MCFG_SMA_PROT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, SMA_PROT, 0) + + +class sma_prot_device : public device_t +{ +public: + // construction/destruction + sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + + DECLARE_WRITE16_MEMBER( kof99_bankswitch_w ); + DECLARE_WRITE16_MEMBER( garou_bankswitch_w ); + DECLARE_WRITE16_MEMBER( garouh_bankswitch_w ); + DECLARE_WRITE16_MEMBER( mslug3_bankswitch_w ); + DECLARE_WRITE16_MEMBER( kof2000_bankswitch_w ); + DECLARE_READ16_MEMBER( prot_9a37_r ); + DECLARE_READ16_MEMBER( sma_random_r ); + void reset_sma_rng(); + void sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 ); + void kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev); + void garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev); + void garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev); + void mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev); + void kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev); + neogeo_banked_cart_device* m_bankdev; + void kof99_decrypt_68k(UINT8* base); + void garou_decrypt_68k(UINT8* base); + void garouh_decrypt_68k(UINT8* base); + void mslug3_decrypt_68k(UINT8* base); + void kof2000_decrypt_68k(UINT8* base); + + UINT16 m_sma_rng; +protected: + virtual void device_start() override; + virtual void device_reset() override; +}; + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp new file mode 100644 index 00000000000..d79410c060b --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp @@ -0,0 +1,221 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Controller Port emulation + + This actually covers two separate piece of hardware of Neo Geo system: + - The 15-pin controller ports that are used for controllers in the + AES home system and for mahjong controllers in the MVS arcade PCB + - The controller part of the main edge connector that is used for + joystick inputs in the MVS arcade PCB + + Technically, the latter is not a configurable slot, because it's not + a component that arcade operators could simply change with a different + controller, but this implementation allows for simpler code. + +**********************************************************************/ + +#include "ctrl.h" +// slot devices +#include "joystick.h" +#include "mahjong.h" +#include "dial.h" +#include "irrmaze.h" +#include "kizuna4p.h" + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +const device_type NEOGEO_CONTROL_PORT = &device_creator<neogeo_control_port_device>; +const device_type NEOGEO_CTRL_EDGE_CONNECTOR = &device_creator<neogeo_ctrl_edge_port_device>; + + +//************************************************************************** +// CARD INTERFACE +//************************************************************************** + +//------------------------------------------------- +// device_neogeo_control_port_interface - constructor +//------------------------------------------------- + +device_neogeo_control_port_interface::device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device) + : device_slot_card_interface(mconfig,device) +{ + m_port = dynamic_cast<neogeo_control_port_device *>(device.owner()); +} + + +//------------------------------------------------- +// ~device_neogeo_control_port_interface - destructor +//------------------------------------------------- + +device_neogeo_control_port_interface::~device_neogeo_control_port_interface() +{ +} + +//------------------------------------------------- +// device_neogeo_ctrl_edge_interface - constructor +//------------------------------------------------- + +device_neogeo_ctrl_edge_interface::device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device) + : device_slot_card_interface(mconfig,device) +{ + m_port = dynamic_cast<neogeo_ctrl_edge_port_device *>(device.owner()); +} + + +//------------------------------------------------- +// ~device_neogeo_ctrl_edge_interface - destructor +//------------------------------------------------- + +device_neogeo_ctrl_edge_interface::~device_neogeo_ctrl_edge_interface() +{ +} + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// neogeo_control_port_device - constructor +//------------------------------------------------- + +neogeo_control_port_device::neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, NEOGEO_CONTROL_PORT, "SNK Neo Geo control port", tag, owner, clock, "neogeo_control_port", __FILE__), + device_slot_interface(mconfig, *this), m_device(nullptr) +{ +} + + +//------------------------------------------------- +// ~neogeo_control_port_device - destructor +//------------------------------------------------- + +neogeo_control_port_device::~neogeo_control_port_device() +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_control_port_device::device_start() +{ + m_device = dynamic_cast<device_neogeo_control_port_interface *>(get_card_device()); +} + + +UINT8 neogeo_control_port_device::read_ctrl() +{ + UINT8 data = 0xff; + if (m_device) + data &= m_device->read_ctrl(); + return data; +} + +UINT8 neogeo_control_port_device::read_start_sel() +{ + UINT8 data = 0xff; + if (m_device) + data &= m_device->read_start_sel(); + return data; +} + + +void neogeo_control_port_device::write_ctrlsel(UINT8 data) +{ + if (m_device) + m_device->write_ctrlsel(data); +} + + +//------------------------------------------------- +// neogeo_ctrl_edge_port_device - constructor +//------------------------------------------------- + +neogeo_ctrl_edge_port_device::neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, NEOGEO_CTRL_EDGE_CONNECTOR, "SNK Neo Geo Edge Connector (Controller)", tag, owner, clock, "neogeo_ctrl_edge", __FILE__), + device_slot_interface(mconfig, *this), m_device(nullptr) +{ +} + + +//------------------------------------------------- +// ~neogeo_ctrl_edge_port_device - destructor +//------------------------------------------------- + +neogeo_ctrl_edge_port_device::~neogeo_ctrl_edge_port_device() +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_ctrl_edge_port_device::device_start() +{ + m_device = dynamic_cast<device_neogeo_ctrl_edge_interface *>(get_card_device()); +} + + +READ8_MEMBER(neogeo_ctrl_edge_port_device::in0_r) +{ + UINT8 data = 0xff; + if (m_device) + data &= m_device->in0_r(space, offset, mem_mask); + return data; +} + +READ8_MEMBER(neogeo_ctrl_edge_port_device::in1_r) +{ + UINT8 data = 0xff; + if (m_device) + data &= m_device->in1_r(space, offset, mem_mask); + return data; +} + +UINT8 neogeo_ctrl_edge_port_device::read_start_sel() +{ + UINT8 data = 0xff; + if (m_device) + data &= m_device->read_start_sel(); + return data; +} + +void neogeo_ctrl_edge_port_device::write_ctrlsel(UINT8 data) +{ + if (m_device) + m_device->write_ctrlsel(data); +} + + + +//------------------------------------------------- +// SLOT_INTERFACE( neogeo_control_port_devices ) +//------------------------------------------------- + +SLOT_INTERFACE_START( neogeo_controls ) + SLOT_INTERFACE("joy", NEOGEO_JOY) + SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL) +SLOT_INTERFACE_END + +SLOT_INTERFACE_START( neogeo_arc_edge ) + SLOT_INTERFACE("joy", NEOGEO_JOY_AC) +SLOT_INTERFACE_END + +SLOT_INTERFACE_START( neogeo_arc_edge_fixed ) + SLOT_INTERFACE("joy", NEOGEO_JOY_AC) + SLOT_INTERFACE("dial", NEOGEO_DIAL) + SLOT_INTERFACE("irrmaze", NEOGEO_IRRMAZE) + SLOT_INTERFACE("kiz4p", NEOGEO_KIZ4P) +SLOT_INTERFACE_END + +SLOT_INTERFACE_START( neogeo_arc_pin15 ) + SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL) +SLOT_INTERFACE_END diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h new file mode 100644 index 00000000000..1d61e6753d1 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h @@ -0,0 +1,130 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo controller port emulation + +**********************************************************************/ + + +#pragma once + +#ifndef __NEOGEO_CONTROL_PORT__ +#define __NEOGEO_CONTROL_PORT__ + +#include "emu.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +class neogeo_control_port_device; +class neogeo_ctrl_edge_port_device; + +// ======================> device_neogeo_control_port_interface + +class device_neogeo_control_port_interface : public device_slot_card_interface +{ +public: + // construction/destruction + device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device); + virtual ~device_neogeo_control_port_interface(); + + virtual UINT8 read_ctrl() { return 0xff; }; + virtual UINT8 read_start_sel() { return 0xff; }; + virtual void write_ctrlsel(UINT8 data) { }; + +protected: + neogeo_control_port_device *m_port; +}; + +// ======================> neogeo_control_port_device + +class neogeo_control_port_device : public device_t, + public device_slot_interface +{ +public: + // construction/destruction + neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual ~neogeo_control_port_device(); + + UINT8 read_ctrl(); + UINT8 read_start_sel(); + void write_ctrlsel(UINT8 data); + DECLARE_READ8_MEMBER( ctrl_r ) { return read_ctrl(); } + +protected: + // device-level overrides + virtual void device_start() override; + + device_neogeo_control_port_interface *m_device; +}; + + +// ======================> device_neogeo_ctrl_edge_interface + +class device_neogeo_ctrl_edge_interface : public device_slot_card_interface +{ +public: + // construction/destruction + device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device); + virtual ~device_neogeo_ctrl_edge_interface(); + + virtual UINT8 read_start_sel() { return 0xff; } + virtual DECLARE_READ8_MEMBER( in0_r ) { return 0xff; } + virtual DECLARE_READ8_MEMBER( in1_r ) { return 0xff; } + virtual void write_ctrlsel(UINT8 data) { } + +protected: + neogeo_ctrl_edge_port_device *m_port; +}; + +// ======================> neogeo_ctrl_edge_port_device + +class neogeo_ctrl_edge_port_device : public device_t, + public device_slot_interface +{ +public: + // construction/destruction + neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual ~neogeo_ctrl_edge_port_device(); + + UINT8 read_start_sel(); + DECLARE_READ8_MEMBER( in0_r ); + DECLARE_READ8_MEMBER( in1_r ); + void write_ctrlsel(UINT8 data); + +protected: + // device-level overrides + virtual void device_start() override; + + device_neogeo_ctrl_edge_interface *m_device; +}; + + +// device type definition +extern const device_type NEOGEO_CONTROL_PORT; +extern const device_type NEOGEO_CTRL_EDGE_CONNECTOR; + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_NEOGEO_CONTROL_PORT_ADD(_tag, _slot_intf, _def_slot, _fixed) \ + MCFG_DEVICE_ADD(_tag, NEOGEO_CONTROL_PORT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed) + +#define MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD(_tag, _slot_intf, _def_slot, _fixed) \ + MCFG_DEVICE_ADD(_tag, NEOGEO_CTRL_EDGE_CONNECTOR, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed) + + + +SLOT_INTERFACE_EXTERN( neogeo_controls ); +SLOT_INTERFACE_EXTERN( neogeo_arc_edge ); +SLOT_INTERFACE_EXTERN( neogeo_arc_edge_fixed ); +SLOT_INTERFACE_EXTERN( neogeo_arc_pin15 ); + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp new file mode 100644 index 00000000000..d73a7b6c8de --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp @@ -0,0 +1,131 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Dial Controller emulation + +**********************************************************************/ + +#include "dial.h" + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +const device_type NEOGEO_DIAL = &device_creator<neogeo_dial_device>; + + +static INPUT_PORTS_START( neogeo_dial ) + PORT_START("JOY1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* note it needs it from 0x80 when using paddle */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + + PORT_START("JOY2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* note it needs it from 0x80 when using paddle */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + + PORT_START("DIAL1") + PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(1) + + PORT_START("DIAL2") + PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2) +INPUT_PORTS_END + + +//------------------------------------------------- +// input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor neogeo_dial_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( neogeo_dial ); +} + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// neogeo_dial_device - constructor +//------------------------------------------------- + +neogeo_dial_device::neogeo_dial_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, NEOGEO_DIAL, "SNK Neo Geo Dial Controller", tag, owner, clock, "neogeo_dial", __FILE__), + device_neogeo_ctrl_edge_interface(mconfig, *this), + m_joy1(*this, "JOY1"), + m_joy2(*this, "JOY2"), + m_dial1(*this, "DIAL1"), + m_dial2(*this, "DIAL2") +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_dial_device::device_start() +{ + save_item(NAME(m_ctrl_sel)); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void neogeo_dial_device::device_reset() +{ + m_ctrl_sel = 0; +} + + +//------------------------------------------------- +// in0_r +//------------------------------------------------- + +READ8_MEMBER(neogeo_dial_device::in0_r) +{ + UINT8 res = 0; + if (m_ctrl_sel & 0x01) + res = m_joy1->read(); + else + res = m_dial1->read(); + + return res; +} + +//------------------------------------------------- +// in1_r +//------------------------------------------------- + +READ8_MEMBER(neogeo_dial_device::in1_r) +{ + UINT8 res = 0; + if (m_ctrl_sel & 0x01) + res = m_joy2->read(); + else + res = m_dial2->read(); + + return res; +} + +//------------------------------------------------- +// write_ctrlsel +//------------------------------------------------- + +void neogeo_dial_device::write_ctrlsel(UINT8 data) +{ + m_ctrl_sel = data; +} diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h new file mode 100644 index 00000000000..5727c540637 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h @@ -0,0 +1,58 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Dial controller emulation + +**********************************************************************/ + +#pragma once + +#ifndef __NEOGEO_DIAL__ +#define __NEOGEO_DIAL__ + + +#include "emu.h" +#include "ctrl.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> neogeo_dial_device + +class neogeo_dial_device : public device_t, + public device_neogeo_ctrl_edge_interface +{ +public: + // construction/destruction + neogeo_dial_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_neogeo_control_port_interface overrides + virtual DECLARE_READ8_MEMBER( in0_r ) override; + virtual DECLARE_READ8_MEMBER( in1_r ) override; + virtual void write_ctrlsel(UINT8 data) override; + +private: + required_ioport m_joy1; + required_ioport m_joy2; + required_ioport m_dial1; + required_ioport m_dial2; + UINT8 m_ctrl_sel; +}; + + + +// device type definition +extern const device_type NEOGEO_DIAL; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp new file mode 100644 index 00000000000..e22941e5d09 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp @@ -0,0 +1,113 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Irritation Maze Analog Controller emulation + +**********************************************************************/ + +#include "irrmaze.h" + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +const device_type NEOGEO_IRRMAZE = &device_creator<neogeo_irrmaze_device>; + + +static INPUT_PORTS_START( neogeo_irrmaze ) + PORT_START("BUTTONS") + PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + + PORT_START("TRACK_X") + PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE + + PORT_START("TRACK_Y") + PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE +INPUT_PORTS_END + + +//------------------------------------------------- +// input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor neogeo_irrmaze_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( neogeo_irrmaze ); +} + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// neogeo_irrmaze_device - constructor +//------------------------------------------------- + +neogeo_irrmaze_device::neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, NEOGEO_IRRMAZE, "SNK Neo Geo Irritating Maze Analog Controller", tag, owner, clock, "neogeo_irrmaze", __FILE__), + device_neogeo_ctrl_edge_interface(mconfig, *this), + m_tx(*this, "TRACK_X"), + m_ty(*this, "TRACK_Y"), + m_buttons(*this, "BUTTONS") +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_irrmaze_device::device_start() +{ + save_item(NAME(m_ctrl_sel)); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void neogeo_irrmaze_device::device_reset() +{ + m_ctrl_sel = 0; +} + + +//------------------------------------------------- +// in0_r +//------------------------------------------------- + +READ8_MEMBER(neogeo_irrmaze_device::in0_r) +{ + UINT8 res = 0; + if (m_ctrl_sel & 0x01) + res = m_ty->read(); + else + res = m_tx->read(); + + return res; +} + +//------------------------------------------------- +// in1_r +//------------------------------------------------- + +READ8_MEMBER(neogeo_irrmaze_device::in1_r) +{ + return m_buttons->read(); +} + +//------------------------------------------------- +// write_ctrlsel +//------------------------------------------------- + +void neogeo_irrmaze_device::write_ctrlsel(UINT8 data) +{ + m_ctrl_sel = data; +} diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h new file mode 100644 index 00000000000..0eeecfb8a11 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h @@ -0,0 +1,57 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Dial controller emulation + +**********************************************************************/ + +#pragma once + +#ifndef __NEOGEO_IRRMAZE__ +#define __NEOGEO_IRRMAZE__ + + +#include "emu.h" +#include "ctrl.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> neogeo_dial_device + +class neogeo_irrmaze_device : public device_t, + public device_neogeo_ctrl_edge_interface +{ +public: + // construction/destruction + neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_neogeo_control_port_interface overrides + virtual DECLARE_READ8_MEMBER( in0_r ) override; + virtual DECLARE_READ8_MEMBER( in1_r ) override; + virtual void write_ctrlsel(UINT8 data) override; + +private: + required_ioport m_tx; + required_ioport m_ty; + required_ioport m_buttons; + UINT8 m_ctrl_sel; +}; + + + +// device type definition +extern const device_type NEOGEO_IRRMAZE; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp new file mode 100644 index 00000000000..f30b4fa2102 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp @@ -0,0 +1,205 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Joystick emulation + +**********************************************************************/ + +#include "joystick.h" + + + +/********************************************************************** + + Implementation through the 15-pin controller port (used by AES) + + **********************************************************************/ + + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +const device_type NEOGEO_JOY = &device_creator<neogeo_joystick_device>; + + +static INPUT_PORTS_START( neogeo_joy ) + PORT_START("JOY") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) + + PORT_START("START_SELECT") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SELECT ) +INPUT_PORTS_END + + +//------------------------------------------------- +// input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor neogeo_joystick_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( neogeo_joy ); +} + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// neogeo_joystick_device - constructor +//------------------------------------------------- + +neogeo_joystick_device::neogeo_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, NEOGEO_JOY, "SNK Neo Geo Joystick", tag, owner, clock, "neogeo_joy", __FILE__), + device_neogeo_control_port_interface(mconfig, *this), + m_joy(*this, "JOY"), + m_ss(*this, "START_SELECT") +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_joystick_device::device_start() +{ +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void neogeo_joystick_device::device_reset() +{ +} + + +//------------------------------------------------- +// read_ctrl +//------------------------------------------------- + +UINT8 neogeo_joystick_device::read_ctrl() +{ + return m_joy->read(); +} + +//------------------------------------------------- +// read_start_sel +//------------------------------------------------- + +UINT8 neogeo_joystick_device::read_start_sel() +{ + return m_ss->read(); +} + + + +/********************************************************************** + + Implementation through the edge connector (used by MVS) and + connecting two controllers + + **********************************************************************/ + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +const device_type NEOGEO_JOY_AC = &device_creator<neogeo_joy_ac_device>; + + +static INPUT_PORTS_START( neogeo_joy_ac ) + PORT_START("JOY1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) + + PORT_START("JOY2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) +INPUT_PORTS_END + + +//------------------------------------------------- +// input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor neogeo_joy_ac_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( neogeo_joy_ac ); +} + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// neogeo_joy_ac_device / neogeo_joystick_device - constructor +//------------------------------------------------- + +neogeo_joy_ac_device::neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, NEOGEO_JOY_AC, "SNK Neo Geo Arcade Joystick", tag, owner, clock, "neogeo_joyac", __FILE__), + device_neogeo_ctrl_edge_interface(mconfig, *this), + m_joy1(*this, "JOY1"), + m_joy2(*this, "JOY2") +{ +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_joy_ac_device::device_start() +{ +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void neogeo_joy_ac_device::device_reset() +{ +} + + +//------------------------------------------------- +// in0_r +//------------------------------------------------- + +READ8_MEMBER(neogeo_joy_ac_device::in0_r) +{ + return m_joy1->read(); +} + +//------------------------------------------------- +// in1_r +//------------------------------------------------- + +READ8_MEMBER(neogeo_joy_ac_device::in1_r) +{ + return m_joy2->read(); +} diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h new file mode 100644 index 00000000000..86cccd6fef8 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h @@ -0,0 +1,81 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Joystick emulation + +**********************************************************************/ + +#pragma once + +#ifndef __NEOGEO_JOYSTICK__ +#define __NEOGEO_JOYSTICK__ + + +#include "emu.h" +#include "ctrl.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> neogeo_joystick_device + +class neogeo_joystick_device : public device_t, + public device_neogeo_control_port_interface +{ +public: + // construction/destruction + neogeo_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_neogeo_control_port_interface overrides + virtual UINT8 read_ctrl() override; + virtual UINT8 read_start_sel() override; + +private: + required_ioport m_joy; + required_ioport m_ss; +}; + + +// ======================> neogeo_joy_ac_device + +class neogeo_joy_ac_device : public device_t, + public device_neogeo_ctrl_edge_interface +{ +public: + // construction/destruction + neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_neogeo_ctrl_edge_interface overrides + virtual DECLARE_READ8_MEMBER( in0_r ) override; + virtual DECLARE_READ8_MEMBER( in1_r ) override; + +private: + required_ioport m_joy1; + required_ioport m_joy2; +}; + + +// device type definition +extern const device_type NEOGEO_JOY; +extern const device_type NEOGEO_JOY_AC; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp new file mode 100644 index 00000000000..b6b93089fe4 --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp @@ -0,0 +1,171 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Kizuna 4Players Controller emulation + +**********************************************************************/ + +#include "kizuna4p.h" + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +const device_type NEOGEO_KIZ4P = &device_creator<neogeo_kizuna4p_device>; + + +static INPUT_PORTS_START( neogeo_kiz4p ) + PORT_START("JOY1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) + + PORT_START("JOY2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) + + PORT_START("JOY3") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3) + + PORT_START("JOY4") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) + + PORT_START("START13") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START3 ) + + PORT_START("START24") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 ) +INPUT_PORTS_END + + +//------------------------------------------------- +// input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor neogeo_kizuna4p_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( neogeo_kiz4p ); +} + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// neogeo_kizuna4p_device - constructor +//------------------------------------------------- + +neogeo_kizuna4p_device::neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, NEOGEO_KIZ4P, "SNK Neo Geo Kizuna 4P Controller", tag, owner, clock, "neogeo_kiz4p", __FILE__), + device_neogeo_ctrl_edge_interface(mconfig, *this), + m_joy1(*this, "JOY1"), + m_joy2(*this, "JOY2"), + m_joy3(*this, "JOY3"), + m_joy4(*this, "JOY4"), + m_ss1(*this, "START13"), + m_ss2(*this, "START24") +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_kizuna4p_device::device_start() +{ + save_item(NAME(m_ctrl_sel)); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void neogeo_kizuna4p_device::device_reset() +{ + m_ctrl_sel = 0; +} + + +//------------------------------------------------- +// in0_r +//------------------------------------------------- + +READ8_MEMBER(neogeo_kizuna4p_device::in0_r) +{ + UINT8 res = 0; + if (m_ctrl_sel & 0x01) + res = m_joy3->read(); + else + res = m_joy1->read(); + + if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10); + + return res; +} + +//------------------------------------------------- +// in1_r +//------------------------------------------------- + +READ8_MEMBER(neogeo_kizuna4p_device::in1_r) +{ + UINT8 res = 0; + if (m_ctrl_sel & 0x01) + res = m_joy4->read(); + else + res = m_joy2->read(); + + if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10); + + return res; +} + +//------------------------------------------------- +// read_start_sel +//------------------------------------------------- + +UINT8 neogeo_kizuna4p_device::read_start_sel() +{ + return (BIT(m_ss1->read(), m_ctrl_sel & 0x01)) | (BIT(m_ss2->read(), m_ctrl_sel & 0x01) << 2); +} + + +//------------------------------------------------- +// write_ctrlsel +//------------------------------------------------- + +void neogeo_kizuna4p_device::write_ctrlsel(UINT8 data) +{ + m_ctrl_sel = data; +} diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h new file mode 100644 index 00000000000..7a3907f98db --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h @@ -0,0 +1,61 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Kizuna 4Players controller emulation + +**********************************************************************/ + +#pragma once + +#ifndef __NEOGEO_KIZ4P__ +#define __NEOGEO_KIZ4P__ + + +#include "emu.h" +#include "ctrl.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> neogeo_kizuna4p_device + +class neogeo_kizuna4p_device : public device_t, + public device_neogeo_ctrl_edge_interface +{ +public: + // construction/destruction + neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_neogeo_control_port_interface overrides + virtual DECLARE_READ8_MEMBER( in0_r ) override; + virtual DECLARE_READ8_MEMBER( in1_r ) override; + virtual UINT8 read_start_sel() override; + virtual void write_ctrlsel(UINT8 data) override; + +private: + required_ioport m_joy1; + required_ioport m_joy2; + required_ioport m_joy3; + required_ioport m_joy4; + required_ioport m_ss1; + required_ioport m_ss2; + UINT8 m_ctrl_sel; +}; + + + +// device type definition +extern const device_type NEOGEO_KIZ4P; + + +#endif diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.cpp new file mode 100644 index 00000000000..5a58daf6bee --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.cpp @@ -0,0 +1,173 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Mahjong controller emulation + +**********************************************************************/ + +#include "mahjong.h" + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +const device_type NEOGEO_MJCTRL_AC = &device_creator<neogeo_mjctrl_ac_device>; +const device_type NEOGEO_MJCTRL = &device_creator<neogeo_mjctrl_device>; + + +static INPUT_PORTS_START( neogeo_mj_ac ) + PORT_START("MJ.0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_B ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_C ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_D ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_E ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_F ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_MAHJONG_G ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("MJ.1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_H ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_I ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_K ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_L ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_M ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_MAHJONG_N ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) + + // is this actually connected? + PORT_START("MJ.2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) + + PORT_START("MJ.3") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( neogeo_mj ) + PORT_INCLUDE( neogeo_mj_ac ) + + PORT_START("START_SELECT") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SELECT ) +INPUT_PORTS_END + + +//------------------------------------------------- +// input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor neogeo_mjctrl_ac_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( neogeo_mj_ac ); +} + +ioport_constructor neogeo_mjctrl_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( neogeo_mj ); +} + + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// neogeo_joystick_device - constructor +//------------------------------------------------- + +neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source): + device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_neogeo_control_port_interface(mconfig, *this), + m_mjpanel(*this, "MJ") +{ +} + +neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, NEOGEO_MJCTRL_AC, "SNK Neo Geo Arcade Mahjong panel", tag, owner, clock, "neogeo_mjac", __FILE__), + device_neogeo_control_port_interface(mconfig, *this), + m_mjpanel(*this, "MJ") +{ +} + +neogeo_mjctrl_device::neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL, "SNK Neo Geo Mahjong controller", tag, owner, clock, "neogeo_mjctrl", __FILE__), + m_ss(*this, "START_SELECT") +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void neogeo_mjctrl_ac_device::device_start() +{ + save_item(NAME(m_ctrl_sel)); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void neogeo_mjctrl_ac_device::device_reset() +{ + m_ctrl_sel = 0; +} + + +//------------------------------------------------- +// read_ctrl +//------------------------------------------------- + +UINT8 neogeo_mjctrl_ac_device::read_ctrl() +{ + UINT8 res = 0; + switch (m_ctrl_sel) + { + default: + case 0x00: res = 0xff; break; + case 0x09: res = m_mjpanel[0]->read(); break; + case 0x12: res = m_mjpanel[1]->read(); break; + case 0x1b: res = m_mjpanel[2]->read(); break; + case 0x24: res = m_mjpanel[3]->read(); break; + } + + return res; +} + +//------------------------------------------------- +// write_ctrlsel +//------------------------------------------------- + +void neogeo_mjctrl_ac_device::write_ctrlsel(UINT8 data) +{ + m_ctrl_sel = data; +} + +//------------------------------------------------- +// read_start_sel +//------------------------------------------------- + +UINT8 neogeo_mjctrl_device::read_start_sel() +{ + return m_ss->read(); +} diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.h b/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.h new file mode 100644 index 00000000000..52812a9917e --- /dev/null +++ b/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.h @@ -0,0 +1,75 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************** + + SNK Neo Geo Mahjong controller emulation + +**********************************************************************/ + +#pragma once + +#ifndef __NEOGEO_MJCTRL__ +#define __NEOGEO_MJCTRL__ + + +#include "emu.h" +#include "ctrl.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> neogeo_mjctrl_ac_device + +class neogeo_mjctrl_ac_device : public device_t, + public device_neogeo_control_port_interface +{ +public: + // construction/destruction + neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); + neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_neogeo_control_port_interface overrides + virtual UINT8 read_ctrl() override; + virtual void write_ctrlsel(UINT8 data) override; + +private: + required_ioport_array<4> m_mjpanel; + UINT8 m_ctrl_sel; +}; + +// ======================> neogeo_mjctrl_device + +class neogeo_mjctrl_device : public neogeo_mjctrl_ac_device +{ +public: + // construction/destruction + neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + +protected: + + // device_neogeo_control_port_interface overrides + virtual UINT8 read_start_sel() override; + +private: + required_ioport m_ss; +}; + + +// device type definition +extern const device_type NEOGEO_MJCTRL; +extern const device_type NEOGEO_MJCTRL_AC; + + +#endif diff --git a/docs/release/src/hbmame/drivers/1942.cpp b/docs/release/src/hbmame/drivers/1942.cpp new file mode 100644 index 00000000000..c7e369c78fe --- /dev/null +++ b/docs/release/src/hbmame/drivers/1942.cpp @@ -0,0 +1,126 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/1942.cpp" + +ROM_START( 1942c64 ) + ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "srb-03.m3", 0x00000, 0x4000, CRC(d9dafcc3) SHA1(a089a9bc55fb7d6d0ac53f91b258396d5d62677a) ) + ROM_LOAD( "srb-04.m4", 0x04000, 0x4000, CRC(da0cf924) SHA1(856fbb302c9a4ec7850a26ab23dab8467f79bba4) ) + ROM_LOAD( "srb-05.m5", 0x10000, 0x4000, CRC(d102911c) SHA1(35ba1d82bd901940f61d8619273463d02fc0a952) ) + ROM_LOAD( "srb-06.m6", 0x14000, 0x2000, CRC(466f8248) SHA1(2ccc8fc59962d3001fbc10e8d2f20a254a74f251) ) + ROM_LOAD( "srb-07.m7", 0x18000, 0x4000, CRC(0d31038c) SHA1(b588eaf6fddd66ecb2d9832dc197f286f1ccd846) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "1942c64.c11", 0x0000, 0x4000, CRC(4ee7ab6b) SHA1(609d2d9124da47d305c15ee034efd64a73adc1c0) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "sr-02.f2", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) ) + + ROM_REGION( 0xc000, "gfx2", 0 ) + ROM_LOAD( "sr-08.a1", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) ) + ROM_LOAD( "sr-09.a2", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) ) + ROM_LOAD( "sr-10.a3", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) ) + ROM_LOAD( "sr-11.a4", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) ) + ROM_LOAD( "sr-12.a5", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) ) + ROM_LOAD( "sr-13.a6", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "sr-14.l1", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) ) + ROM_LOAD( "sr-15.l2", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) ) + ROM_LOAD( "sr-16.n1", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) ) + ROM_LOAD( "sr-17.n2", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) ) + + ROM_REGION( 0x0a00, "proms", 0 ) + ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) ) + ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) ) + ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) ) + ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) ) + ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) ) + ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) ) + ROM_LOAD( "sb-2.d1", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) ) + ROM_LOAD( "sb-3.d2", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) ) + ROM_LOAD( "sb-1.k6", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) + ROM_LOAD( "sb-9.m11", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) ) +ROM_END + +ROM_START( 1942fpa ) + ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "1942fpa.m3", 0x00000, 0x4000, CRC(dcec86c9) SHA1(73ee4ca2d861eaa5805b4b8ff7db05cd6f06650a) ) + ROM_LOAD( "1942fpa.m4", 0x04000, 0x4000, CRC(cdd75d78) SHA1(6ee714f9d3dd1a0c9404a8e3c8ca96a74c08e1cf) ) + ROM_LOAD( "srb-05.m5", 0x10000, 0x4000, CRC(d102911c) SHA1(35ba1d82bd901940f61d8619273463d02fc0a952) ) + ROM_LOAD( "srb-06.m6", 0x14000, 0x2000, CRC(466f8248) SHA1(2ccc8fc59962d3001fbc10e8d2f20a254a74f251) ) + ROM_LOAD( "srb-07.m7", 0x18000, 0x4000, CRC(0d31038c) SHA1(b588eaf6fddd66ecb2d9832dc197f286f1ccd846) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "sr-01.c11", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "sr-02.f2", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) ) + + ROM_REGION( 0xc000, "gfx2", 0 ) + ROM_LOAD( "sr-08.a1", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) ) + ROM_LOAD( "sr-09.a2", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) ) + ROM_LOAD( "sr-10.a3", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) ) + ROM_LOAD( "sr-11.a4", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) ) + ROM_LOAD( "sr-12.a5", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) ) + ROM_LOAD( "sr-13.a6", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "sr-14.l1", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) ) + ROM_LOAD( "sr-15.l2", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) ) + ROM_LOAD( "sr-16.n1", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) ) + ROM_LOAD( "sr-17.n2", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) ) + + ROM_REGION( 0x0a00, "proms", 0 ) + ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) ) + ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) ) + ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) ) + ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) ) + ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) ) + ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) ) + ROM_LOAD( "sb-2.d1", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) ) + ROM_LOAD( "sb-3.d2", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) ) + ROM_LOAD( "sb-1.k6", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) + ROM_LOAD( "sb-9.m11", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) ) +ROM_END + +ROM_START( galagax ) + ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "galagax1.n3", 0x00000, 0x4000, CRC(c78cdc46) SHA1(50ac4ab7a884b8555f15d959dac2b33e317fcd16) ) + ROM_LOAD( "galagax1.n4", 0x04000, 0x4000, CRC(863f2f49) SHA1(dbe7d13bcaa3919e1be51ba04fbf50f898e5c76e) ) + ROM_LOAD( "galagax1.n5", 0x10000, 0x4000, CRC(0da115f9) SHA1(0517c60877a8067fb13c61c63a032a3f5ed16a57) ) + ROM_LOAD( "1-n6.bin", 0x14000, 0x2000, CRC(821c6481) SHA1(06becb6bf8b4bde3a458098498eecad566a87711) ) + ROM_LOAD( "1-n7.bin", 0x18000, 0x4000, CRC(5df525e1) SHA1(70cd2910e2945db76bd6ebfa0ff09a5efadc2d0b) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "sr-01.c11", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "galagax1.f2", 0x00000, 0x2000, CRC(b3e1862b) SHA1(736fbef1ef15892ba6ea87be5366abf520e3d5fd) ) + + ROM_REGION( 0xc000, "gfx2", 0 ) + ROM_LOAD( "galagax2.a1", 0x00000, 0x2000, CRC(21f3fee2) SHA1(2eed32063b808fae27255e9b026fb92209cfc214) ) + ROM_LOAD( "galagax2.a2", 0x02000, 0x2000, CRC(5542beae) SHA1(f37fad84fbeb2f98092bdb2f2a3bc80804392e07) ) + ROM_LOAD( "galagax2.a3", 0x04000, 0x2000, CRC(118e87ec) SHA1(0b79eee01bd6aef2e85409de16ff9cb032c457cb) ) + ROM_LOAD( "galagax2.a4", 0x06000, 0x2000, CRC(fc3db895) SHA1(bc469fd6f5634eca77728a24e4e6d83a2074c780) ) + ROM_LOAD( "galagax2.a5", 0x08000, 0x2000, CRC(4a336de1) SHA1(8359abb42fc9f774350524a7fbf561e6c8799822) ) + ROM_LOAD( "galagax2.a6", 0x0a000, 0x2000, CRC(1d4a69c9) SHA1(34d3ea5e7666fee1ecd0ac763f3114d9c8d60806) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "galagax2.l1", 0x00000, 0x4000, CRC(8408b932) SHA1(bea9d62156c566e7a3ae296e3e411d5542b7544b) ) + ROM_LOAD( "galagax2.l2", 0x04000, 0x4000, CRC(2218cb80) SHA1(5dd05b59a55804bedf637abb339188e9c9e6037a) ) + ROM_LOAD( "galagax2.n1", 0x08000, 0x4000, CRC(4d5ed5e5) SHA1(a66e979d8a6ed9cae77c8415130c5f17f8149eda) ) + ROM_LOAD( "galagax2.n2", 0x0c000, 0x4000, CRC(8f4a1688) SHA1(69bab8f167a47eee34dadf56b1727b414f3e6579) ) + + ROM_REGION( 0x0600, "proms", 0 ) + ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) ) + ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) ) + ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) ) + ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) ) + ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) ) + ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) ) +ROM_END + +GAME( 2015, 1942c64, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Minwah", "1942 with C64 music", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, 1942fpa, 1942, 1942, 1942, _1942_state, 1942, ROT270, "cmonkey", "1942 with attract mode in free play", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, galagax, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Jerky and Chris Moore", "Galaga X (1942 hack)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/1943.cpp b/docs/release/src/hbmame/drivers/1943.cpp new file mode 100644 index 00000000000..70fb499f425 --- /dev/null +++ b/docs/release/src/hbmame/drivers/1943.cpp @@ -0,0 +1,63 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/1943.cpp" + +ROM_START( 1943h ) + ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for the banked ROMs images */ + ROM_LOAD( "bme01addontext.12d", 0x00000, 0x08000, CRC(36ab7c07) SHA1(baa9342c6c509b96e3c28a79284300707461a0fc) ) + ROM_LOAD( "bme02.13d", 0x10000, 0x10000, CRC(073fc57c) SHA1(6824fa387badd3c420f5c9e2b68159ac8a3aaec7) ) + ROM_LOAD( "bme03.14d", 0x20000, 0x10000, CRC(835822c2) SHA1(2c2fad13f062069efa7721abb9d807fb5a7625b4) ) /* These 3 roms have a BLUE stripe on them */ + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "bm04.5h", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) ) + + ROM_REGION( 0x10000, "mcu", 0 ) /* C8751H-88 MCU Code */ + ROM_LOAD( "bm.7k", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */ + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "bm05.4k", 0x00000, 0x8000, CRC(46cb9d3d) SHA1(96fd0e714b91fe13a2ca0d185ada9e4b4baa0c0b) ) /* characters */ + + ROM_REGION( 0x40000, "gfx2", 0 ) + ROM_LOAD( "bm15.10f", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) ) /* bg tiles */ + ROM_LOAD( "bm16.11f", 0x08000, 0x8000, CRC(23c908c2) SHA1(42b83ff5781be9181802a21ff1b23c17ab1bc5a2) ) + ROM_LOAD( "bm17.12f", 0x10000, 0x8000, CRC(46bcdd07) SHA1(38feda668be25d1adc04aa36afc73b07c1545f89) ) + ROM_LOAD( "bm18.14f", 0x18000, 0x8000, CRC(e6ae7ba0) SHA1(959c306dc28b9be2adc54b3d46312d26764c7b8b) ) + ROM_LOAD( "bm19.10j", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) ) + ROM_LOAD( "bm20.11j", 0x28000, 0x8000, CRC(0917e5d4) SHA1(62dd277bc1fa54cfe168ae2380bc147bd17f4205) ) + ROM_LOAD( "bm21.12j", 0x30000, 0x8000, CRC(9bfb0d89) SHA1(f1bae7ec46edcf46c7af84c054e89b322f8c8972) ) + ROM_LOAD( "bm22.14j", 0x38000, 0x8000, CRC(04f3c274) SHA1(932780c04abe285e1ec67b726b145175f73eafe0) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "bm24.14k", 0x00000, 0x8000, CRC(11134036) SHA1(88da112ab9fc7e0d8f0e901f273715b950ae588c) ) /* fg tiles */ + ROM_LOAD( "bm25.14l", 0x08000, 0x8000, CRC(092cf9c1) SHA1(19fe3c714b1d52cbb21dea25cdee5af841f525db) ) + + ROM_REGION( 0x40000, "gfx4", 0 ) + ROM_LOAD( "bm06.10a", 0x00000, 0x8000, CRC(97acc8af) SHA1(c9fa07cb61f6905408b355edabfe453fb652ff0d) ) /* sprites */ + ROM_LOAD( "bm07.11a", 0x08000, 0x8000, CRC(d78f7197) SHA1(6367c7e80e80d4a0d33d7840b5c843c63c80123e) ) + ROM_LOAD( "bm08.12a", 0x10000, 0x8000, CRC(1a626608) SHA1(755c27a07728fd686168e9d9e4dee3d8f274892a) ) + ROM_LOAD( "bm09.14a", 0x18000, 0x8000, CRC(92408400) SHA1(3ab299bad1ba115efead53ebd92254abe7a092ba) ) + ROM_LOAD( "bm10.10c", 0x20000, 0x8000, CRC(8438a44a) SHA1(873629b00cf3f6d8976a7fdafe63cd16e47b7491) ) + ROM_LOAD( "bm11.11c", 0x28000, 0x8000, CRC(6c69351d) SHA1(c213d5c3e76a5749bc32539604716dcef6dcb694) ) + ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) ) + ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) ) + + ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */ + ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */ + ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */ + + ROM_REGION( 0x0c00, "proms", 0 ) + ROM_LOAD( "bm1.12a", 0x0000, 0x0100, CRC(74421f18) SHA1(5b8b59f6f4e5ad358611de50608f47f41a5b0e51) ) /* red component */ + ROM_LOAD( "bm2.13a", 0x0100, 0x0100, CRC(ac27541f) SHA1(1796c4c9041dfe28e6319576f21df1dbcb8d12bf) ) /* green component */ + ROM_LOAD( "bm3.14a", 0x0200, 0x0100, CRC(251fb6ff) SHA1(d1118159b3d429d841e4efa938728ebedadd7ec5) ) /* blue component */ + ROM_LOAD( "bm5.7f", 0x0300, 0x0100, CRC(206713d0) SHA1(fa609f6d675af18c379838583505724d28bcff0e) ) /* char lookup table */ + ROM_LOAD( "bm10.7l", 0x0400, 0x0100, CRC(33c2491c) SHA1(13da924e4b182759c4aae49034f3a7cbe556ea65) ) /* foreground lookup table */ + ROM_LOAD( "bm9.6l", 0x0500, 0x0100, CRC(aeea4af7) SHA1(98f4570ee061e9aa58d8ed2d2f8ae59ce2ec5795) ) /* foreground palette bank */ + ROM_LOAD( "bm12.12m", 0x0600, 0x0100, CRC(c18aa136) SHA1(684f04d9a5b94ae1db5fb95763e65271f4cf8e01) ) /* background lookup table */ + ROM_LOAD( "bm11.12l", 0x0700, 0x0100, CRC(405aae37) SHA1(94a06f81b775c4e49d57d42fc064d3072a253bbd) ) /* background palette bank */ + ROM_LOAD( "bm8.8c", 0x0800, 0x0100, CRC(c2010a9e) SHA1(be9852500209066e2f0ff2770e0c217d1636a0b5) ) /* sprite lookup table */ + ROM_LOAD( "bm7.7c", 0x0900, 0x0100, CRC(b56f30c3) SHA1(9f5e6db464d21457a33ec8bdfdff069632b791db) ) /* sprite palette bank */ + ROM_LOAD( "bm4.12c", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) ) /* priority encoder / palette selector (not used) */ + ROM_LOAD( "bm6.4b", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ +ROM_END + +GAME( 1987, 1943h, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: The Battle of Midway (US, Rev C) (hacked)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/arkanoid.cpp b/docs/release/src/hbmame/drivers/arkanoid.cpp new file mode 100644 index 00000000000..0686d386f92 --- /dev/null +++ b/docs/release/src/hbmame/drivers/arkanoid.cpp @@ -0,0 +1,73 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/arkanoid.cpp" + +ROM_START( akblc2dx ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "akblc2dx.bin", 0x0000, 0x10000, CRC(e8ca9820) SHA1(ac97ebf285d1b8dd216dfc7024f7630fceac50b6) ) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) + ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) + ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) + + ROM_REGION( 0x0600, "proms", 0 ) + ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ + ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ + ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ +ROM_END + +ROM_START( akgcdx ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "akgcdx.bin", 0x0000, 0x10000, CRC(6e6ba560) SHA1(477a68caa1a9d0ce6e21f1164f8ec01434011308) ) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) + ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) + ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) + + ROM_REGION( 0x0600, "proms", 0 ) + ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ + ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ + ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ +ROM_END + +ROM_START( aktaytdx ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "aktaytdx.bin", 0x0000, 0x10000, CRC(8606f0ee) SHA1(d1edb58a9b29a354023484089d0ca5f32e9985e4) ) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) + ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) + ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) + + ROM_REGION( 0x0600, "proms", 0 ) + ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ + ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ + ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ +ROM_END + +ROM_START( arkll32 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "lle_a75_01-1.rom", 0x0000, 0x8000, CRC(8e6d7e7f) SHA1(3682c548c1bc3ceea2ff685fc5b82e61ed0044d2) ) + ROM_LOAD( "lle_a75_11.rom", 0x8000, 0x8000, CRC(845fa7b0) SHA1(e89ab456281bcb83a61a89b347dc93303928d365) ) + + ROM_REGION( 0x0800, "mcu", 0 ) /* 8k for the microcontroller */ + ROM_LOAD( "arkanoid.uc", 0x0000, 0x0800, CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) ) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) + ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) + ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) + + ROM_REGION( 0x0600, "proms", 0 ) + ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ + ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ + ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ +ROM_END + + +GAME( 2000, akblc2dx, arkanoid, bootleg, arkangc, arkanoid_state, arkblock, ROT90, "[Hack]", "Block Deluxe (Game Corporation)", 0 ) +GAME( 2000, akgcdx, arkanoid, bootleg, arkangc, arkanoid_state, arkgcbl, ROT90, "[Hack]", "Arkanoid Deluxe (Game Corporation)", 0 ) +GAME( 2000, aktaytdx, arkanoid, bootleg, arktayt2, driver_device, 0, ROT90, "[Hack]", "Arkanoid Deluxe (Japan, Tayto)", 0 ) +GAME( 2000, arkll32, arkanoid, arkanoid, arkanoidj, driver_device, 0, ROT90, "[Hack]", "Arkanoid LL32", 0 ) diff --git a/docs/release/src/hbmame/drivers/asteroid.cpp b/docs/release/src/hbmame/drivers/asteroid.cpp new file mode 100644 index 00000000000..d44c0773a47 --- /dev/null +++ b/docs/release/src/hbmame/drivers/asteroid.cpp @@ -0,0 +1,145 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/asteroid.cpp" + +static INPUT_PORTS_START( astdelu4 ) + PORT_INCLUDE(astdelux) + PORT_MODIFY("IN1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) /* Coin Left */ + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) /* Coin Center */ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) /* Coin Right */ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_BUTTON2) /* thrust */ + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_X_RIGHT_SWITCH)/* right */ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_X_LEFT_SWITCH) /* left */ +INPUT_PORTS_END + + + +/************************************* + * + * ROM definitions + * + *************************************/ + +ROM_START( starslayer ) // This name does not appear anywhere, but it does say Star Destroyer at the end. + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "035145-02.ef2", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) ) + ROM_LOAD( "035144-02.h2", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) ) + ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) ) + /* Vector ROM */ + ROM_LOAD( "035127-02.ss", 0x5000, 0x0800, CRC(edf610a2) SHA1(bbbf62820a3b06488201137c735c0d8c03cf535c) ) + + /* DVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) +ROM_END + +ROM_START( asteroid6 ) + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "asteroi6.45", 0x6800, 0x0800, CRC(6cdf25a3) SHA1(96e7882e5e144757d3adc51de8bfd5f583c0302e) ) + ROM_LOAD( "asteroi6.44", 0x7000, 0x0800, CRC(b4dcfbde) SHA1(447e888c4af704c9f30801b2417617b7caa73921) ) + ROM_LOAD( "035143.02", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) ) + /* Vector ROM */ + ROM_LOAD( "035127.02", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) + + ROM_REGION( 0x0100, "user1", 0 ) + ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) +ROM_END + +ROM_START( astdelux4 ) + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "036430.02", 0x6000, 0x0800, CRC(cbcfba4f) SHA1(7e0ed90588e47c89182a18a8f5815ad052a42674) ) + ROM_LOAD( "036431.02", 0x6800, 0x0800, CRC(3249e623) SHA1(7dd7f4531680e4fe2efb14e22466458c2e2ea4e7) ) + ROM_LOAD( "036432.02", 0x7000, 0x0800, CRC(6d720c41) SHA1(198218cd2f43f8b83e4463b1f3a8aa49da5015e4) ) + ROM_LOAD( "036433.03", 0x7800, 0x0800, CRC(0dcc0be6) SHA1(bf10ffb0c4870e777d6b509cbede35db8bb6b0b8) ) + /* Vector ROM */ + ROM_LOAD( "036800.02", 0x4800, 0x0800, CRC(5c0ca7a6) SHA1(4abbac4a4974c89a0b44e1a92ea0c8b9095d9594) ) + ROM_LOAD( "036799.01", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) ) + /* DVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) +ROM_END + + +GAME( 1979, asteroid6, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "Clay Cowgill", "Asteroids (Six-Bullet Hack)", MACHINE_SUPPORTS_SAVE ) +GAMEL(1980, astdelux4, asteroid, astdelux, astdelu4, driver_device, 0, ROT0, "Atari", "Asteroids Deluxe (Unknown Revision) [h]", MACHINE_SUPPORTS_SAVE, layout_astdelux ) +GAME( 1979, starslayer, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "Nufekop", "Starslayer (hack of Asteroids (rev 2))", MACHINE_SUPPORTS_SAVE ) + + +/*********************************************************************************************************************/ + +#if 0 +/* Asteroids Multigame + +such a confusing pile of roms + +*/ + +class amg_state : public asteroid_state +{ +public: + amg_state(const machine_config &mconfig, device_type type, const char *tag) + : asteroid_state(mconfig, type, tag) +// , m_maincpu(*this, "maincpu") +// , m_p_ram(*this, "ram") + { } + + DECLARE_DRIVER_INIT(amg); +}; + +ROM_START( amg ) + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "035145-02.ef2", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) ) + ROM_LOAD( "035144-02.h2", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) ) + ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) ) + /* Vector ROM */ + ROM_LOAD( "035127.02", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) + + /* DVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) + + ROM_REGION( 0x20000, "user2", 0 ) + ROM_LOAD( "adla-11a.512", 0x0000, 0x10000, CRC(43ad0f95) SHA1(6105926b4d734ec12e23579faa4453b4d5a981f9) ) + ROM_LOAD( "adlv-11a.256", 0x10000, 0x8000, CRC(a03b957c) SHA1(45819fafdb34b9da0c3100e5ff143ba8e164c9d0) ) + + ROM_REGION( 0x20000, "user3", ROMREGION_ERASEFF ) +ROM_END + +DRIVER_INIT_MEMBER( amg_state, amg ) +{ + UINT8 *src = memregion("user2")->base(); +// int len = memregion("user1")->bytes(); + UINT8 *dest = memregion("user3")->base(); + + offs_t i,j; + + for (i = 0; i < 0x10000; i++) + src[i] = BITSWAP8(src[i], 3, 4, 5, 6, 7, 1, 2, 0); + + for (i = 0; i < 0x10000; i++) + { + j = BITSWAP16(i, 15, 5, 4, 7, 0, 10, 1, 11, 6, 2, 12, 3, 9, 8, 13, 14); + + if (!BIT(i, 10)) + j ^= 0x100; + + dest[j] = src[i]; + } + + for (i = 0x10000; i < 0x18000; i++) + src[i] = BITSWAP8(src[i], 3, 4, 5, 6, 7, 1, 2, 0); + + for (i = 0x10000; i < 0x18000; i++) + { + j = BITSWAP16(i, 15, 6, 5, 12, 11, 10, 9, 8, 7, 14, 13, 4, 3, 2, 1, 0); + dest[j|0x10000] = src[i]; + } +} + + +GAME( 2002, amg, asteroid, asteroid, asteroid, amg_state, amg, ROT0, "Braze", "Asteroids Multigame", 0 ) +#endif + diff --git a/docs/release/src/hbmame/drivers/astrocde.cpp b/docs/release/src/hbmame/drivers/astrocde.cpp new file mode 100644 index 00000000000..92de5afeca4 --- /dev/null +++ b/docs/release/src/hbmame/drivers/astrocde.cpp @@ -0,0 +1,37 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/astrocde.cpp" + + +//READ8_HANDLER(gorf_speech_r) { return 0; } +//READ8_HANDLER(wow_speech_r) { return 0; } +//CUSTOM_INPUT(gorf_speech_status_r) { return 0; } +//CUSTOM_INPUT(wow_speech_status_r) { return 0; } + +//const char *const gorf_sample_names[] = { 0, 0 } ; +//const char *const wow_sample_names[] = { 0, 0 } ; + +ROM_START( tst_gorf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "gorfmd.bin", 0x0000, 0x1000, CRC(3776a6a1) SHA1(bd6b0a1dd587e8d4b325ef4133b8e3797416d8d2) ) +ROM_END + +ROM_START( tst_gor1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "gorftest.bin", 0x0000, 0x0627, CRC(676137a2) SHA1(d99192a16add7b188b29db7f9497b6c129d81144) ) +ROM_END + +ROM_START( tst_wow2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "wowmd02b.x1", 0x0000, 0x1000, CRC(0af2f2c8) SHA1(e883afe696c2a444c8691041f1b9e0e015dff517) ) +ROM_END + +ROM_START( tst_wow3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "wowmd030.x1", 0x0000, 0x1000, CRC(f493ec4d) SHA1(030cd12e7a7e9ac346e8299df83b62480004c954) ) +ROM_END + +GAME( 2005, tst_gorf, 0, gorf, gorf, astrocde_state, gorf, ROT270, "David Turner", "Test Rom - Gorf", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, tst_gor1, 0, gorf, gorf, astrocde_state, gorf, ROT270, "Mark Spaeth", "Test Rom - Gorf Complete Memory Diagnostics", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, tst_wow2, 0, wow, wow, astrocde_state, wow, ROT0, "David Turner", "Test Rom - Wizard of Wor (ver 0.2b)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tst_wow3, 0, wow, wow, astrocde_state, wow, ROT0, "David Turner", "Test Rom - Wizard of Wor (ver 0.3)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/astrof.cpp b/docs/release/src/hbmame/drivers/astrof.cpp new file mode 100644 index 00000000000..d92b1f714bb --- /dev/null +++ b/docs/release/src/hbmame/drivers/astrof.cpp @@ -0,0 +1,19 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/astrof.cpp" + +ROM_START( astrf_bl ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "afii.6", 0xd000, 0x0800, CRC(d6cd13a4) SHA1(359b00b02f4256f1138c8526214c6a34d2e5b47a) ) + ROM_LOAD( "afii.5", 0xd800, 0x0800, CRC(6fd3c4df) SHA1(73aad03e2588ac9f249d5751eb4a7c7cd12fd3b9) ) + ROM_LOAD( "afii.4", 0xe000, 0x0800, CRC(9612dae3) SHA1(8ee1797c212e06c381972b7b555f240ff317d75d) ) + ROM_LOAD( "afii.3", 0xe800, 0x0800, CRC(5a0fef42) SHA1(92a575abdf17bbb5ed6bc67479049523a985aa75) ) + ROM_LOAD( "afii.2", 0xf000, 0x0800, CRC(69f8a4fc) SHA1(9f9a935f19187640018009ade92f8993912ef6c2) ) + ROM_LOAD( "afii.1", 0xf800, 0x0800, CRC(322c09d2) SHA1(89723e3d998ff9cb9b174bca4b072b412b290c04) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "astrf_bl.clr", 0x0000, 0x0020, CRC(6be69d4b) SHA1(4197cf9110db08e45b5d18aedb0fde96779491c1) ) +ROM_END + + +GAME( 1979, astrf_bl, 0, astrof, astrof, driver_device, 0, ROT90, "Hack", "Astro Fighter (Black Background)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/asuka.cpp b/docs/release/src/hbmame/drivers/asuka.cpp new file mode 100644 index 00000000000..e0294f6563e --- /dev/null +++ b/docs/release/src/hbmame/drivers/asuka.cpp @@ -0,0 +1,27 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/asuka.cpp" + +ROM_START( asukac ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "b68-13c.ic23", 0x00000, 0x20000, CRC(356a3151) SHA1(a2929a30bcd45962a4fc08a980e82d9914078c29) ) + ROM_LOAD16_BYTE( "b68-12c.ic8", 0x00001, 0x20000, CRC(8bd073d4) SHA1(53453cb0dd4aa606215922ad8363e536524dc0f3) ) + ROM_LOAD16_WORD( "b68-03c.ic30", 0x80000, 0x80000, CRC(3d0d7798) SHA1(a63d9fc043e8ba0b79a7606c17faac406e0b92ec) ) /* Fix ROM */ + + ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_LOAD( "b68-01c.ic3", 0x00000, 0x80000, CRC(d5dec087) SHA1(1f8888c15cb08c1c0d27ce29cb71106360c9c852) ) /* SCR tiles (8 x 8) */ + + ROM_REGION( 0xa0000, "gfx2", 0 ) + ROM_LOAD ( "b68-02c.ic6", 0x00000, 0x80000, CRC(09927d23) SHA1(b9761286feaa14c4eb6fc87ec35e7245c318d687) ) /* Sprites (16 x 16) */ + ROM_LOAD16_BYTE( "b68-07.ic5", 0x80000, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) ) + ROM_LOAD16_BYTE( "b68-06.ic4", 0x80001, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) ) + + ROM_REGION( 0x1c000, "audiocpu", 0 ) + ROM_LOAD( "b68-11.ic27", 0x00000, 0x04000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) ) + ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ + + ROM_REGION( 0x10000, "ymsnd", 0 ) + ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) ) +ROM_END + +GAME( 1988, asukac, asuka, asuka, asuka, driver_device, 0, ROT270, "Taito Corporation", "Asuka & Asuka (Chinese)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/atari_s1.cpp b/docs/release/src/hbmame/drivers/atari_s1.cpp new file mode 100644 index 00000000000..b6ec2ce695d --- /dev/null +++ b/docs/release/src/hbmame/drivers/atari_s1.cpp @@ -0,0 +1,20 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/atari_s1.cpp" + +/*------------------------------------------------------------------- + The Atarians (working bootleg) +Game modified to work in emulation from original set (atarians) + +Except, it doesn't work. +-------------------------------------------------------------------*/ +ROM_START(atarianb) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD("atarianb.e00", 0x7000, 0x0800, CRC(74fc86e4) SHA1(135d75e5c03feae0929fa84caa3c802353cdd94e)) + ROM_LOAD("atarian.e0", 0x7800, 0x0800, CRC(45cb0427) SHA1(e286930ca36bdd0f79acefd142d2a5431fa8005b)) + + ROM_REGION(0x0200, "proms", 0) + ROM_LOAD("82s130.bin", 0x0000, 0x0200, CRC(da1f77b4) SHA1(b21fdc1c6f196c320ec5404013d672c35f95890b)) +ROM_END + +GAME( 2002, atarianb, atarians, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari / Gaston", "The Atarians (modified for emulation)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL) diff --git a/docs/release/src/hbmame/drivers/bagman.cpp b/docs/release/src/hbmame/drivers/bagman.cpp new file mode 100644 index 00000000000..3857a516658 --- /dev/null +++ b/docs/release/src/hbmame/drivers/bagman.cpp @@ -0,0 +1,55 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/bagman.cpp" + +ROM_START( bagturbo ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bagt_a4_9e.bin", 0x0000, 0x1000, CRC(c070635c) SHA1(98c920f9ab377258d376e62337f14df3e51badaa) ) + ROM_LOAD( "a5-9f", 0x1000, 0x1000, CRC(2ddf6bb9) SHA1(151068dddc55163bb6f925f68e5d04e347ded6a5) ) + ROM_LOAD( "a4_9j.bin", 0x2000, 0x1000, CRC(b2da8b77) SHA1(ea36cd6be42c5548a9a91054aeebb4b985ba15c9) ) + ROM_LOAD( "a5-9k", 0x3000, 0x1000, CRC(f91d617b) SHA1(a3323b51277e08747701cc4e2d3a9c466e96d4c1) ) + ROM_LOAD( "bagt_a4_9m.bin", 0x4000, 0x1000, CRC(8cb278fe) SHA1(807a4f1d89dcbd7482ef86f4b2e88cc2f64abbf4) ) + ROM_LOAD( "a5-9n", 0x5000, 0x1000, CRC(68e4b64d) SHA1(55950d7c07c621cafa001d5d3bfec6bbc02712e2) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "a2_1e.bin", 0x0000, 0x1000, CRC(f217ac09) SHA1(a9716674401dff27344a01df8121b6b648688680) ) + ROM_LOAD( "j1_b04.bin", 0x1000, 0x1000, CRC(c680ef04) SHA1(79406bc786374abfcd9f548268c445b5c8d8858d) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "a2_1c.bin", 0x0000, 0x1000, CRC(f3e11bd7) SHA1(43ee00ff777008c89f619eb183e7c5e63f6c7694) ) + ROM_LOAD( "a2_1f.bin", 0x1000, 0x1000, CRC(d0f7105b) SHA1(fb382703850a4ded567706e02ebb7f3e22531b7c) ) + + ROM_REGION( 0x0060, "proms", 0 ) + ROM_LOAD( "p3.bin", 0x0000, 0x0020, CRC(2a855523) SHA1(91e032233fee397c90b7c1662934aca9e0671482) ) + ROM_LOAD( "r3.bin", 0x0020, 0x0020, CRC(ae6f1019) SHA1(fd711882b670380cb4bd909c840ba06277b8fbe3) ) + + ROM_REGION( 0x0020, "5110ctrl", 0) + ROM_LOAD( "r6.bin", 0x0000, 0x0020, CRC(c58a4f6a) SHA1(35ef244b3e94032df2610aa594ea5670b91e1449) ) /*state machine driving TMS5110*/ + + ROM_REGION( 0x2000, "tmsprom", 0 ) /* data for the TMS5110 speech chip */ + ROM_LOAD( "r9_b11.bin", 0x0000, 0x1000, CRC(2e0057ff) SHA1(33e3ffa6418f86864eb81e5e9bda4bf540c143a6) ) + ROM_LOAD( "t9_b12.bin", 0x1000, 0x1000, CRC(b2120edd) SHA1(52b89dbcc749b084331fa82b13d0876e911fce52) ) +ROM_END + +ROM_START( pickinpi ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "9e", 0x0000, 0x1000, CRC(efd0bd43) SHA1(b70a471a809c08286a82934046357fb46556f641) ) + ROM_LOAD( "9f", 0x1000, 0x1000, CRC(b5785a23) SHA1(9eddda5695981cb0470dfea68d5e2e8e220382b1) ) + ROM_LOAD( "9j", 0x2000, 0x1000, CRC(65ee9fd4) SHA1(2efa40c19a7b0644ef4f4b2ce6a025b2b880239d) ) + ROM_LOAD( "9k", 0x3000, 0x1000, CRC(7b23350e) SHA1(dff19602a0e46ca0bcdbdf2a1d61fd2c80ac70e7) ) + ROM_LOAD( "9m", 0x4000, 0x1000, CRC(935a7248) SHA1(d9af4405d51ce1ff6c4b84709dc85c0db88b1d54) ) + ROM_LOAD( "9n", 0x5000, 0x1000, CRC(52485d1d) SHA1(c309eec506f978388463f20d56d958e6639c31e8) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "1f", 0x0000, 0x1000, CRC(c5e96ac6) SHA1(b2d740b6d07c765e8eb2dce31fe285a15a9fe597) ) + ROM_LOAD( "1j", 0x1000, 0x1000, CRC(41c4ac1c) SHA1(aac58a9d675a9b70140d82341231bcf6c77c7b41) ) + + /* no gfx2 */ + + ROM_REGION( 0x0040, "proms", 0 ) + ROM_LOAD( "6331-1pi.3p", 0x0000, 0x0020, CRC(b1dd1e68) SHA1(059c5f6c43e62b9381f4a0fa322dbe59c29812f5) ) + ROM_LOAD( "6331-1pi.3r", 0x0020, 0x0020, CRC(47fadc93) SHA1(3ba46957e664a2ea639a97a0c199a9636861ca50) ) +ROM_END + +GAME(1991, bagturbo, 0, bagman, bagman, bagman_state, bagman, ROT270, "Tim Arcadecollecting", "Bagman Turbo (Stern set 1) [c]", 0 ) // http://www.arcadecollecting.com/hacks/bagman +GAME(1983, pickinpi, 0, pickin, pickin, driver_device, 0, ROT270, "Pi", "Pickin' (Color Hack)", 0 ) diff --git a/docs/release/src/hbmame/drivers/blktiger.cpp b/docs/release/src/hbmame/drivers/blktiger.cpp new file mode 100644 index 00000000000..9b53b0714ce --- /dev/null +++ b/docs/release/src/hbmame/drivers/blktiger.cpp @@ -0,0 +1,41 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/blktiger.cpp" + +ROM_START( blkdrgnk ) + ROM_REGION( 0x50000, "maincpu", 0 ) /* 64k for code + banked ROMs images */ + ROM_LOAD( "blkdrgnk.5e", 0x00000, 0x08000, CRC(e713b486) SHA1(468a75120080f9529f2b56d66c72c767e7ee86df) ) /* CODE */ + ROM_LOAD( "blkdrgon.6e", 0x10000, 0x10000, CRC(7d39c26f) SHA1(562a3f578e109ae020f65e341c876ad7e510a311) ) /* 0+1 */ + ROM_LOAD( "blkdrgon.8e", 0x20000, 0x10000, CRC(d1bf3757) SHA1(b19f8b986406bde65ac7f0d55d54f87b37f5e42f) ) /* 2+3 */ + ROM_LOAD( "blkdrgon.9e", 0x30000, 0x10000, CRC(4d1d6680) SHA1(e137624c59392de6aaffeded99b024938360bd25) ) /* 4+5 */ + ROM_LOAD( "blkdrgon.10e", 0x40000, 0x10000, CRC(c8d0c45e) SHA1(66c2e5a74c5875a2c8e28740fe944bd943246ce5) ) /* 6+7 */ + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "bd-06.1l", 0x0000, 0x8000, CRC(2cf54274) SHA1(87df100c65999ba1e9d358ffd0fe4bba23ae0efb) ) + + ROM_REGION( 0x10000, "mcu", 0 ) + ROM_LOAD( "bd.6k", 0x0000, 0x1000, CRC(ac7d14f1) SHA1(46fd6b43f10312e3e8d3c9e0c0fd616af98fdbad) ) + + ROM_REGION( 0x08000, "gfx1", 0 ) + ROM_LOAD( "blkdrgnk.2n", 0x00000, 0x08000, CRC(3b432217) SHA1(da0b3fe16fb5192f6514bdf5fef85a889c7b2f0a) ) /* characters */ + + ROM_REGION( 0x40000, "gfx2", 0 ) + ROM_LOAD( "blkdrgon.5b", 0x00000, 0x10000, CRC(22d0a4b0) SHA1(f9402ea9ffedcb280497a63c5eb352de9d4ca3fd) ) /* tiles */ + ROM_LOAD( "blkdrgon.4b", 0x10000, 0x10000, CRC(c8b5fc52) SHA1(621e899285ce6302e5b25d133d9cd52c09b7b202) ) + ROM_LOAD( "blkdrgon.9b", 0x20000, 0x10000, CRC(9498c378) SHA1(841934ddef724faf04162c4be4aea1684d8d8e0f) ) + ROM_LOAD( "blkdrgon.8b", 0x30000, 0x10000, CRC(5b0df8ce) SHA1(57d10b48bd61b0224ce21b36bde8d2479e8e5df4) ) + + ROM_REGION( 0x40000, "gfx3", 0 ) + ROM_LOAD( "bd-08.5a", 0x00000, 0x10000, CRC(e2f17438) SHA1(3e5fdae07d40febedc59c7c7c4d9c6f0d72b58b5) ) /* sprites */ + ROM_LOAD( "bd-07.4a", 0x10000, 0x10000, CRC(5fccbd27) SHA1(33c55aa9c12b3121ca5c3b4c39a9b152b6946461) ) + ROM_LOAD( "bd-10.9a", 0x20000, 0x10000, CRC(fc33ccc6) SHA1(d492626a88565c2626f98ecb1d74535f1ad68e4c) ) + ROM_LOAD( "bd-09.8a", 0x30000, 0x10000, CRC(f449de01) SHA1(f6b40e9eb2471b89c42ab84f4214295d284db0c3) ) + + ROM_REGION( 0x0400, "proms", 0 ) /* PROMs (function unknown) */ + ROM_LOAD( "bd01.8j", 0x0000, 0x0100, CRC(29b459e5) SHA1(0034734a533df3dea16b7b48e072485d7f26f850) ) + ROM_LOAD( "bd02.9j", 0x0100, 0x0100, CRC(8b741e66) SHA1(6c1fda59936a7217b05949f5c54b1f91f4b49dbe) ) + ROM_LOAD( "bd03.11k", 0x0200, 0x0100, CRC(27201c75) SHA1(c54d87f06bfe0b0908389c005014d97156e272c2) ) + ROM_LOAD( "bd04.11l", 0x0300, 0x0100, CRC(e5490b68) SHA1(40f9f92efe7dd97b49144aec02eb509834056915) ) +ROM_END + +GAME( 1987, blkdrgnk, 0, blktiger, blktiger, driver_device, 0, ROT0, "hack", "Black Dragon (Korean)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/bombjack.cpp b/docs/release/src/hbmame/drivers/bombjack.cpp new file mode 100644 index 00000000000..891ab23429e --- /dev/null +++ b/docs/release/src/hbmame/drivers/bombjack.cpp @@ -0,0 +1,96 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/bombjack.cpp" + +ROM_START( bmbjckgr ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "09_j01b.bin", 0x0000, 0x2000, CRC(c668dc30) SHA1(51dd6a2688b42e9f28f0882bd76f75be7ec3222a) ) + ROM_LOAD( "10_l01b.bin", 0x2000, 0x2000, CRC(52a1e5fb) SHA1(e1cdc4b4efbc6c7a1e4fa65019486617f2acba1b) ) + ROM_LOAD( "11_m01b.bin", 0x4000, 0x2000, CRC(b68a062a) SHA1(43bae56494ac0202aaa8f1ed5c1ed1bff775b2b8) ) + ROM_LOAD( "12g_n01b.bin", 0x6000, 0x2000, CRC(b457909f) SHA1(807b30742a89a327721596c4f5d091912f0ab4ec) ) + ROM_LOAD( "13g.1r", 0xc000, 0x2000, CRC(f8e14e2c) SHA1(a5dff87ad26eff6a07313594d9bce2ea568c8f26) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound board */ + ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) ) + + ROM_REGION( 0x3000, "chars", 0 ) + ROM_LOAD( "03g_e08t.bin", 0x0000, 0x1000, CRC(df120e35) SHA1(b389320cd95fe3ac7bfb613098140d169c0485b1) ) /* chars */ + ROM_LOAD( "04g_h08t.bin", 0x1000, 0x1000, CRC(2af09b2b) SHA1(4ce87353a941c6527c9426e578ed2a6c7286175e) ) + ROM_LOAD( "05g_k08t.bin", 0x2000, 0x1000, CRC(4362417c) SHA1(680a5c06c938e7cca33880bc18a2b592a4204ec8) ) + + ROM_REGION( 0x6000, "tiles", 0 ) + ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) ) /* background tiles */ + ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) ) + ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) ) + + ROM_REGION( 0x6000, "sprites", 0 ) + ROM_LOAD( "16g_m07b.bin", 0x0000, 0x2000, CRC(e33942bf) SHA1(a9fad16f9b83faf1c0948ad15186959ec17eb448) ) /* sprites */ + ROM_LOAD( "15g_l07b.bin", 0x2000, 0x2000, CRC(1bb8ec79) SHA1(14c8b6ee9f22491330bbf14356fa4ab3c62cb811) ) + ROM_LOAD( "14g_j07b.bin", 0x4000, 0x2000, CRC(0a9b3106) SHA1(bfd1c430e3e96896ebf4db962f755353a9a57be8) ) + + ROM_REGION( 0x1000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) ) +ROM_END + +/* E720 - rom 13 = the old rom11+rom12; rom 14 = the old rom09+rom10+alterations */ +ROM_START( bombjckb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bombjckb.14", 0x0000, 0x4000, CRC(129f94f7) SHA1(499625812166c5288efe74d75c8fbc7ce8f197eb) ) + ROM_LOAD( "bombjckb.13", 0x4000, 0x4000, CRC(87fa35ad) SHA1(42d82658609cbc88928fb2fdf579eb117d4b0cbc) ) + ROM_LOAD( "13.1r", 0xc000, 0x2000, CRC(70e0244d) SHA1(67654155e42821ea78a655f869fb81c8d6387f63) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound board */ + ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) ) + + ROM_REGION( 0x3000, "chars", 0 ) + ROM_LOAD( "03_e08t.bin", 0x0000, 0x1000, CRC(9f0470d5) SHA1(94ef52ef47b4399a03528fe3efeac9c1d6983446) ) /* chars */ + ROM_LOAD( "04_h08t.bin", 0x1000, 0x1000, CRC(81ec12e6) SHA1(e29ba193f21aa898499187603b25d2e226a07c7b) ) + ROM_LOAD( "05_k08t.bin", 0x2000, 0x1000, CRC(e87ec8b1) SHA1(a66808ef2d62fca2854396898b86bac9be5f17a3) ) + + ROM_REGION( 0x6000, "tiles", 0 ) + ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) ) /* background tiles */ + ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) ) + ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) ) + + ROM_REGION( 0x6000, "sprites", 0 ) + ROM_LOAD( "16_m07b.bin", 0x0000, 0x2000, CRC(94694097) SHA1(de71bcd67f97d05527f2504fc8430be333fb9ec2) ) /* sprites */ + ROM_LOAD( "15_l07b.bin", 0x2000, 0x2000, CRC(013f58f2) SHA1(20c64593ab9fcb04cefbce0cd5d17ce3ff26441b) ) + ROM_LOAD( "14_j07b.bin", 0x4000, 0x2000, CRC(101c858d) SHA1(ed1746c15cdb04fae888601d940183d5c7702282) ) + + ROM_REGION( 0x1000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) ) +ROM_END + +ROM_START( bombjred ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "09_j01b.bin", 0x0000, 0x2000, CRC(c668dc30) SHA1(51dd6a2688b42e9f28f0882bd76f75be7ec3222a) ) + ROM_LOAD( "10_l01b.bin", 0x2000, 0x2000, CRC(52a1e5fb) SHA1(e1cdc4b4efbc6c7a1e4fa65019486617f2acba1b) ) + ROM_LOAD( "11_m01b.bin", 0x4000, 0x2000, CRC(b68a062a) SHA1(43bae56494ac0202aaa8f1ed5c1ed1bff775b2b8) ) + ROM_LOAD( "12_n01b.bin", 0x6000, 0x2000, CRC(1d3ecee5) SHA1(8b3c49e21ea4952cae7042890d1be2115f7d6fda) ) + ROM_LOAD( "13.1r", 0xc000, 0x2000, CRC(70e0244d) SHA1(67654155e42821ea78a655f869fb81c8d6387f63) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound board */ + ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) ) + + ROM_REGION( 0x3000, "chars", 0 ) + ROM_LOAD( "bombjred.03", 0x0000, 0x1000, CRC(8732fa2b) SHA1(e9919bd812a44d6edaf7a08e6cb857cdee2af057) ) /* chars */ + ROM_LOAD( "bombjred.04", 0x1000, 0x1000, CRC(dc392a25) SHA1(8ace01ef128b92ff04d668fdd3c2be9cb9a25e4d) ) + ROM_LOAD( "bombjred.05", 0x2000, 0x1000, CRC(ad9d7a8c) SHA1(8ae81bf891544c825115925b38a53c89c1ca2f65) ) + + ROM_REGION( 0x6000, "tiles", 0 ) + ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) ) /* background tiles */ + ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) ) + ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) ) + + ROM_REGION( 0x6000, "sprites", 0 ) + ROM_LOAD( "bombjred.16", 0x0000, 0x2000, CRC(bdabd682) SHA1(3caf238295ba4d033d50b8e2a51e6c2bd0ad6bde) ) /* sprites */ + ROM_LOAD( "bombjred.15", 0x2000, 0x2000, CRC(a213f039) SHA1(67e247c4d3fe2b4791d3c5de9bb242c21f31c84d) ) + ROM_LOAD( "bombjred.14", 0x4000, 0x2000, CRC(498513fe) SHA1(81851994da287982a67a4e47231404f534b6b9df) ) + + ROM_REGION( 0x1000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) ) +ROM_END + +GAME( 1984, bmbjckgr, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "Hack", "Bomb Jack (Greek)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, bombjckb, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "bootleg", "Bomb Jack (Bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, bombjred, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "hack", "Bomb Jack Red", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/btime.cpp b/docs/release/src/hbmame/drivers/btime.cpp new file mode 100644 index 00000000000..415d9be1e5b --- /dev/null +++ b/docs/release/src/hbmame/drivers/btime.cpp @@ -0,0 +1,106 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/btime.cpp" + +ROM_START( bnjr ) + ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ + ROM_LOAD( "bnj12b.bin", 0xa000, 0x2000, CRC(ba3e3801) SHA1(56284076d938c33c1492a07281b936681eb09808) ) + ROM_LOAD( "bnj12c.bin", 0xc000, 0x2000, CRC(fb3a2cdd) SHA1(4a964389cc8035b9264d4cb133eb6d3826e74b95) ) + ROM_LOAD( "bnj12d.bin", 0xe000, 0x2000, CRC(b88bc99e) SHA1(08a4ddea4037f9e14d0d9f4262a1746b0a3a140c) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "bnj6c.bin", 0xe000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) + + ROM_REGION( 0x6000, "gfx1", 0 ) + ROM_LOAD( "bnjr4e.bin", 0x0000, 0x2000, CRC(876cc672) SHA1(860cfc92752f312ce167fdfb7752fb5e7d7d8817) ) + ROM_LOAD( "bnjr4f.bin", 0x2000, 0x2000, CRC(e5e95e3f) SHA1(c16e03e29229fa7dcc9ed01b43b645fbcc79cc97) ) + ROM_LOAD( "bnjr4h.bin", 0x4000, 0x2000, CRC(570ffa46) SHA1(e397fbca0cc7b8173476d34d4e651752937b7569) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "bnjr10e.bin", 0x0000, 0x1000, CRC(9e523e4c) SHA1(4d76696c7594d84d081d17220dc58c0e7e35a14c) ) + ROM_LOAD( "bnjr10f.bin", 0x1000, 0x1000, CRC(5cf10f28) SHA1(66b2d8cc27ff6dd340054290f6eb2d71c9a1052a) ) +ROM_END + +ROM_START( pnc ) + ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ + ROM_LOAD( "s3-3d", 0xc000, 0x1000, CRC(1ab4f2c2) SHA1(c5890b768172cd2e3912b84db5f71546969ad7e2) ) + ROM_LOAD( "s2-3c", 0xd000, 0x1000, CRC(5e46b789) SHA1(00b2510e07eb565cb373db798dd537191b0b7cc8) ) + ROM_LOAD( "s1-3b", 0xe000, 0x1000, CRC(1308a32e) SHA1(da64fe7b76f5ac8ac35460e6c789ab1e986c78ef) ) + ROM_LOAD( "s0-3a", 0xf000, 0x1000, CRC(beb4b1fc) SHA1(166a96b5757946231f3619844366218065412935) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "sa-1h", 0xe000, 0x1000, CRC(379387ec) SHA1(29d37f04c64ed53a2573962dfa9c0623b89e0045) ) + + ROM_REGION( 0x6000, "gfx1", 0 ) + ROM_LOAD( "pnc-s4-11l", 0x0000, 0x1000, CRC(38a40f50) SHA1(c5188fc3eeffb9843a22211b95ef6fec656dedb9) ) + ROM_LOAD( "pnc-s5-11m", 0x1000, 0x1000, CRC(c6c7236a) SHA1(da50b4066c6d39c1c860afdbd353de5576bf9fbf) ) + ROM_LOAD( "pnc-s6-13l", 0x2000, 0x1000, CRC(20779144) SHA1(f580db44ce870cb5945ef341ef5dd674b170ffc6) ) + ROM_LOAD( "pnc-s7-13m", 0x3000, 0x1000, CRC(8911a546) SHA1(e78ff510af33789e6a25227afa269008c049b553) ) + ROM_LOAD( "pnc-s8-15l", 0x4000, 0x1000, CRC(1c8f5112) SHA1(01601dc443e1db13f9fb9b32cc5180d5d19b4c10) ) + ROM_LOAD( "pnc-s9-15m", 0x5000, 0x1000, CRC(b919e43b) SHA1(1bb22f48a7914afc8b4eb8d90b9c6a4d93ae2b24) ) + + ROM_REGION( 0x0040, "proms", 0 ) + ROM_LOAD( "sc-5m", 0x0000, 0x0020, CRC(2a976ebe) SHA1(f3c1b0d98f431f9cd0d5fa009fafa1115aabe6e5) ) /* palette */ + ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) ) /* RAS/CAS logic - not used */ +ROM_END + +ROM_START( stictime ) + ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ + ROM_LOAD( "aa04.9b", 0xc000, 0x1000, CRC(368a25b5) SHA1(ed3f3712423979dcb351941fa85dce6a0a7bb16b) ) + ROM_LOAD( "aa06.13b", 0xd000, 0x1000, CRC(b4ba400d) SHA1(8c77397e934907bc47a739f263196a0f2f81ba3d) ) + ROM_LOAD( "aa05.10b", 0xe000, 0x1000, CRC(8005bffa) SHA1(d0da4e360039f6a8d8142a4e8e05c1f90c0af68a) ) + ROM_LOAD( "aa07.15b", 0xf000, 0x1000, CRC(086440ad) SHA1(4a32bc92f8ff5fbe112f56e62d2c03da8851a7b9) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) + + ROM_REGION( 0x6000, "gfx1", 0 ) + ROM_LOAD( "stic_aa12.7k", 0x0000, 0x1000, CRC(0550e118) SHA1(74ab46a307ea9d61e38ba0b541bf509436cd9290) ) /* charset #1 */ + ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) ) + ROM_LOAD( "stic_ab10.10k",0x2000, 0x1000, CRC(ba774d51) SHA1(68806bbe93aeea82d7aefc376b69af66858c6028) ) + ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) ) + ROM_LOAD( "stic_aa8.13k", 0x4000, 0x1000, CRC(00a15086) SHA1(e78047ebffdc642583d363b12dd8fbd1368eb3c4) ) + ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) ) + + ROM_REGION( 0x1800, "gfx2", 0 ) + ROM_LOAD( "stic_ab00.1b", 0x0000, 0x0800, CRC(4010c652) SHA1(418eae0ef70c62c3f69becf167bd40a4faba176b) ) /* charset #2 */ + ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) ) + ROM_LOAD( "stic_ab02.4b", 0x1000, 0x0800, CRC(1def5b40) SHA1(845a6b1105757d4d921a4d1f9378a3731f6460b3) ) + + ROM_REGION( 0x0800, "bg_map", 0 ) /* background tilemaps */ + ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) ) +ROM_END + +ROM_START( vecbtime ) + ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ + ROM_LOAD( "ab05a1.12b", 0xb000, 0x1000, CRC(0a98b230) SHA1(aeee4f6f0aaa27575b80261d03c5453cc6ebd646) ) + ROM_LOAD( "ab04.9b", 0xc000, 0x1000, CRC(797e5f75) SHA1(35ea5fa4b8f3494adf7774b3946ed2540ac826ff) ) + ROM_LOAD( "ab06.13b", 0xd000, 0x1000, CRC(c77f3f64) SHA1(f283087fad0a102fe92be7ce80ed18e64dc93b67) ) + ROM_LOAD( "ab05.10b", 0xe000, 0x1000, CRC(b0d3640f) SHA1(6ba28971714ece6f1c04fa2dbf1f9f216ded7cfa) ) + ROM_LOAD( "ab07.15b", 0xf000, 0x1000, CRC(a142f862) SHA1(39d7ef172d18874885f1b1542e885cc4287dc344) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) + + ROM_REGION( 0x6000, "gfx1", 0 ) + ROM_LOAD( "vec_ab12.7k", 0x0000, 0x1000, CRC(b02d859c) SHA1(0d506c52dd2a76d62bd980087fbb5c3808aedf56) ) /* charset #1 */ + ROM_LOAD( "vec_ab13.9k", 0x1000, 0x1000, CRC(d9757010) SHA1(fc70cfbd7bb7c23d0b5880f42ef92df711c6a46d) ) + ROM_LOAD( "vec_ab10.10k", 0x2000, 0x1000, CRC(2b71a1db) SHA1(424c3fceeeb030c0cf89e8f872957a75d5475cfb) ) + ROM_LOAD( "vec_ab11.12k", 0x3000, 0x1000, CRC(a98fea41) SHA1(1ddbb8b26bca2b8c6ab4d9b1bfd8b21db2b2d97b) ) + ROM_LOAD( "vec_ab8.13k", 0x4000, 0x1000, CRC(0ca7828f) SHA1(eb7db2607b10e8276a97a20030bdbeeeb7b6935b) ) + ROM_LOAD( "vec_ab9.15k", 0x5000, 0x1000, CRC(1e460ff7) SHA1(6ac3ec08e3c79490262324fd4a93a6eb1188554b) ) + + ROM_REGION( 0x1800, "gfx2", 0 ) + ROM_LOAD( "vec_ab00.1b", 0x0000, 0x0800, CRC(03dbe9b6) SHA1(4844d490a767d15ed5230868cbd25dadf70cf1e3) ) /* charset #2 */ + ROM_LOAD( "vec_ab01.3b", 0x0800, 0x0800, CRC(698089da) SHA1(6b6e61536d1247a8784a4657cdc50e48b002335d) ) + ROM_LOAD( "vec_ab02.4b", 0x1000, 0x0800, CRC(4464ccef) SHA1(1fa91178c55c1120910be89f724b909a356796e8) ) + + ROM_REGION( 0x0800, "bg_map", 0 ) /* background tilemaps */ + ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) ) +ROM_END + + +GAME( 2002, bnjr, 0, bnj, bnj, btime_state, lnc, ROT270, "DaveC", "Bump 'n' Jump Reverse Mod", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pnc, 0, lnc, lnc, btime_state, lnc, ROT270, "Data East Corporation", "Pac'n'Chase", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, stictime, btime, btime, btime, btime_state, btime, ROT270, "Marks", "Burger Time (Mr Sticky)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vecbtime, btime, btime, btime, btime_state, btime, ROT270, "T-Bone", "Burgertime (Vector sim)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/bublbobl.cpp b/docs/release/src/hbmame/drivers/bublbobl.cpp new file mode 100644 index 00000000000..3487b317f7e --- /dev/null +++ b/docs/release/src/hbmame/drivers/bublbobl.cpp @@ -0,0 +1,305 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/bublbobl.cpp" + +static INPUT_PORTS_START( bbaladar ) + PORT_INCLUDE( boblbobl ) + + PORT_MODIFY( "DSW1" ) + PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +ROM_START( bbaladar ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bbaladar.3", 0x00000, 0x8000, CRC(31bfc6fb) SHA1(6a72086d415a69b9e5c003ec6cf7858e8c4b346f) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "bbaladar.5", 0x10000, 0x8000, CRC(16386e9a) SHA1(77fa3f5ecce5c79ba52098c0870482459926b415) ) + ROM_LOAD( "bbaladar.4", 0x18000, 0x8000, CRC(0c4bcb07) SHA1(3e3f7fa098d6be61d265cab5258dbd0e279bd8ed) ) + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + /* 0x30000-0x3ffff empty */ + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + /* 0x70000-0x7ffff empty */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) ) + ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) ) + ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) +ROM_END + +ROM_START( bb2bmh ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "a78-06.51", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) ) + ROM_LOAD( "bb2bmh-05.52", 0x10000, 0x10000, CRC(d286f2e9) SHA1(ac293aa5bb3973738c7a48ce78c523154d650ded) ) + + ROM_REGION( 0x10000, "slave", 0 ) + ROM_LOAD( "bb2bmh-08.37", 0x0000, 0x08000, CRC(ebce6c5c) SHA1(bd99a67a044763567c443b174115aae89957a60c) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x0800, "mcu", 0 ) + ROM_LOAD( "68705.bin", 0x0000, 0x0800, CRC(78caa635) SHA1(a756e45b25b007843ba4f2204cad6081cf7260e9) ) /* from a pirate board */ + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ +ROM_END + +ROM_START( bbhackv1 ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "a78-06.51", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) ) + ROM_LOAD( "bbhackv1-05.52", 0x10000, 0x10000, CRC(8da82422) SHA1(385ccd427b101255bc865af0802672b4d8432339) ) + + ROM_REGION( 0x10000, "slave", 0 ) + ROM_LOAD( "bbhackv1-08.37", 0x0000, 0x08000, CRC(419caf60) SHA1(95d680c2be15e813081d3f78f17c5d97eda8b60b) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x0800, "mcu", 0 ) + ROM_LOAD( "68705.bin", 0x0000, 0x0800, CRC(78caa635) SHA1(a756e45b25b007843ba4f2204cad6081cf7260e9) ) /* from a pirate board */ + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ +ROM_END + +//Press P1+P2 while playing, to advance +ROM_START( bbredux1 ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bb3", 0x00000, 0x8000, CRC(b802046d) SHA1(93dba2507c67f3f61eca80908a7a4409d2cd1b75) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) ) + ROM_LOAD( "bb4", 0x18000, 0x8000, CRC(19a5a0fa) SHA1(e7fff3643d7922a494ad8118d1a0f74e52443f9f) ) + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + /* 0x30000-0x3ffff empty */ + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + /* 0x70000-0x7ffff empty */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) ) + ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) ) + ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) +ROM_END + +// When you die for the last time, it momentarily says says press P1. Do so, to continue. +ROM_START( bbredux2 ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bb3", 0x00000, 0x8000, CRC(198dc44e) SHA1(de9538b47703c468f85ba318deb8aa0b65174a26) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) ) + ROM_LOAD( "bb4", 0x18000, 0x8000, CRC(9b819b62) SHA1(79d7208cb81fa36ed317f4776b1eda3082b1a21c) ) + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + /* 0x30000-0x3ffff empty */ + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + /* 0x70000-0x7ffff empty */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) ) + ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) ) + ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) +ROM_END + +// High score save is not working as yet +ROM_START( bbredux3 ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bb3", 0x00000, 0x8000, CRC(959cafca) SHA1(9c541e45326d27f4d25a1fd9d66f234ce7f969c9) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) ) + ROM_LOAD( "bb4", 0x18000, 0x8000, CRC(3f350047) SHA1(7e23d1c9b1a29760d96dcc7f7784ae610ac860d9) ) + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + /* 0x30000-0x3ffff empty */ + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + /* 0x70000-0x7ffff empty */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ + + ROM_REGION( 0x0600, "plds", 0 ) + ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) ) + ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) ) + ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) +ROM_END + +ROM_START( sboblboblh ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bb3.u28", 0x00000, 0x08000, CRC(c23cd704) SHA1(a389ecc8d55d1b0c915fd3814d93338b9e402701) ) + /* ROMs banked at 8000-bfff */ + ROM_LOAD( "bb5", 0x10000, 0x08000, CRC(13118eb1) SHA1(5a5da40c2cc82420f70bc58ffa32de1088c6c82f) ) + ROM_LOAD( "bbb-4.rom", 0x18000, 0x08000, CRC(94c75591) SHA1(7698bc4b7d20e554a73a489cd3a15ae61b350e37) ) + /* 20000-2ffff empty */ + + ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + /* 0x30000-0x3ffff empty */ + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + /* 0x70000-0x7ffff empty */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ +ROM_END + +ROM_START( bublbobf ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "bublbobf-06.51", 0x00000, 0x08000, CRC(9ced3d8f) SHA1(d445f218fca822e7083a9347abd4a4e049b6555b) ) + ROM_LOAD( "bublbobf-05.52", 0x10000, 0x10000, CRC(56197d88) SHA1(b1b750df33835df012b2550585edcd6ea58db186) ) + + ROM_REGION( 0x10000, "slave", 0 ) + ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) + + ROM_REGION( 0x10000, "mcu", 0 ) + ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) ) + + ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ + ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) + ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) + ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) + ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) + ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) + ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ + ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) + ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) + ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) + ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) + ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ +ROM_END + + +GAME( 2012, bbaladar, bublbobl, boblbobl, bbaladar, bublbobl_state, bublbobl, ROT0, "Aladar", "Bubble Bobble Bootleg", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, bb2bmh, bublbobl, bub68705, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito", "Bubble Bobble (Memories Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, bbhackv1, bublbobl, bub68705, bublbobl, bublbobl_state, bublbobl, ROT0, "[Taito]", "Bubble Bobble (Level Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, bbredux1, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "Punji", "Bobble Bobble Redux (Level Skip)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, bbredux2, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "Punji", "Bobble Bobble Redux (Game Continue)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, bbredux3, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "Punji", "Bobble Bobble Redux (High Score)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, sboblboblh, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "hack", "Super Bobble Bobble (Level Select)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, bublbobf, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Arkatrad", "Bubble Bobble (French)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/bwidow.cpp b/docs/release/src/hbmame/drivers/bwidow.cpp new file mode 100644 index 00000000000..a83e8bb952c --- /dev/null +++ b/docs/release/src/hbmame/drivers/bwidow.cpp @@ -0,0 +1,45 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/bwidow.cpp" + +/************************************* + * + * ROM definitions + * + *************************************/ + + +ROM_START( spacwarp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + /* Vector ROM */ + ROM_LOAD( "spacwarp.106", 0x2800, 0x0800, CRC(23a25ff9) SHA1(e4117e6c453408079bd4a9e7b30a9b82e7b1712d) ) + ROM_LOAD( "136006.107", 0x3000, 0x1000, CRC(d8dd0461) SHA1(58060b20b2511d30d2ec06479d21840bdd0b53c6) ) + /* Program ROM */ + ROM_LOAD( "spacwarp.201", 0x4000, 0x1000, CRC(0acb38e9) SHA1(dcdeeedc798d7735d03249559556d55b8256abc6) ) + ROM_LOAD( "spacwarp.102", 0x5000, 0x1000, CRC(75fae2df) SHA1(7510e93781fe444ff10aac92abf4b882a65999aa) ) + ROM_LOAD( "136006.103", 0x6000, 0x1000, CRC(ee72da63) SHA1(d36d62cdf7fe76ee9cdbfc2e76ac5d90f22986ba) ) + ROM_LOAD( "spacwarp.104", 0x7000, 0x1000, CRC(aae05ec6) SHA1(14629e8375e1ae12dce96a742f1a0777e5114edb) ) + ROM_LOAD( "spacwarp.105", 0x8000, 0x1000, CRC(41cddb2d) SHA1(8dcd7f72ca1099b04f3d29730b5071d3cb55888e) ) + + ROM_RELOAD( 0x9000, 0x1000 ) + ROM_RELOAD( 0xa000, 0x1000 ) + ROM_RELOAD( 0xb000, 0x1000 ) + ROM_RELOAD( 0xc000, 0x1000 ) + ROM_RELOAD( 0xd000, 0x1000 ) + ROM_RELOAD( 0xe000, 0x1000 ) + ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ + // patch irq code to acknowledge the interrupt + ROM_COPY( "maincpu", 0x4003, 0x5353, 3 ) // move jump + ROM_FILL(0x4004, 1, 0x50) // new jump + ROM_FILL(0x4005, 1, 0x53) + ROM_FILL(0x5350, 1, 0x8D) // ack irq + ROM_FILL(0x5351, 1, 0x00) + ROM_FILL(0x5352, 1, 0x0E) + + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) +ROM_END + +GAME( 1999, spacwarp, 0, spacduel, spacduel, driver_device, 0, ROT0, "Jeff Hendrix", "Space War (Proto on Space Duel HW)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/cave.cpp b/docs/release/src/hbmame/drivers/cave.cpp new file mode 100644 index 00000000000..3048d3d9f85 --- /dev/null +++ b/docs/release/src/hbmame/drivers/cave.cpp @@ -0,0 +1,51 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/cave.cpp" + + +ROM_START( pwrinst2h ) + ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "pwrinst2h.u45", 0x000000, 0x80000, CRC(7b33bc43) SHA1(a68eb94e679f03c354932b8c5cd1bb2922fec0aa) ) + ROM_LOAD16_BYTE( "pwrinst2h.u44", 0x000001, 0x80000, CRC(8f6f6637) SHA1(024b12c0fe40e27c79e38bd7601a9183a62d75fd) ) + ROM_LOAD16_BYTE( "g02.u43", 0x100000, 0x80000, CRC(178e3d24) SHA1(926234f4196a5d5e3bd1438abbf73355f2c65b06) ) + ROM_LOAD16_BYTE( "g02.u42", 0x100001, 0x80000, CRC(a0b4ee99) SHA1(c6df4aa2543b04d8bda7683f503e5eb763e506af) ) + + ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* 68000 extra data roms */ + /* not used */ + + ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "g02.u3a", 0x00000, 0x20000, CRC(ebea5e1e) SHA1(4d3af9e5f29d0c1b26563f51250039c9e8bd3735) ) + + ROM_REGION( 0xe00000 * 2, "sprites0", 0 ) /* Sprites: * 2 */ + ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) ) + ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) ) + ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) ) + ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) ) + ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) ) + ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) ) + ROM_LOAD( "g02.u67", 0xc00000, 0x200000, CRC(52fe2b8b) SHA1(dd50aa62f7db995e28f47de9b3fb749aeeaaa5b0) ) + + ROM_REGION( 0x200000, "layer0", 0 ) /* Layer 0 */ + ROM_LOAD( "g02.u78", 0x000000, 0x200000, CRC(1eca63d2) SHA1(538942b43301f950e3d5139461331c54dc90129d) ) + + ROM_REGION( 0x100000, "layer1", 0 ) /* Layer 1 */ + ROM_LOAD( "g02.u81", 0x000000, 0x100000, CRC(8a3ff685) SHA1(4a59ec50ec4470453374fe10f76d3e894494b49f) ) + + ROM_REGION( 0x100000, "layer2", 0 ) /* Layer 2 */ + ROM_LOAD( "g02.u89", 0x000000, 0x100000, CRC(373e1f73) SHA1(ec1ae9fab37eee41be8e1bc6dad03809b62fdbce) ) + + ROM_REGION( 0x080000, "layer3", 0 ) /* Layer 3 */ + ROM_LOAD( "g02.82a", 0x000000, 0x080000, CRC(4b3567d6) SHA1(d3e14783b312d2bea9722a8e3c22bcec81e26166) ) + + ROM_REGION( 0x440000, "oki1", 0 ) /* OKIM6295 #1 Samples */ + /* Leave the 0x40000 bytes addressable by the chip empty */ + ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) ) + ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) ) + + ROM_REGION( 0x440000, "oki2", 0 ) /* OKIM6295 #2 Samples */ + /* Leave the 0x40000 bytes addressable by the chip empty */ + ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) ) + ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) ) +ROM_END + +GAME( 2013, pwrinst2h, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j,ROT0, "TT", "Power Instinct 2 (hack)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/cball.cpp b/docs/release/src/hbmame/drivers/cball.cpp new file mode 100644 index 00000000000..459012543e3 --- /dev/null +++ b/docs/release/src/hbmame/drivers/cball.cpp @@ -0,0 +1,37 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/cball.cpp" +/*************************************************************************** + + Atari Cannonball (prototype) driver + + Note: canballmash.6m is an approximate replacement created by MASH. + + The maincpu rom has heaps of illegal '02' opcodes. + +***************************************************************************/ + + +ROM_START( cballfix ) + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD_NIB_LOW ( "canball.1e", 0x7400, 0x0400, CRC(0b34823b) SHA1(0db6b9f78f7c07ee7d35f2bf048ba61fe43b1e26) ) + ROM_LOAD_NIB_HIGH( "canball.1l", 0x7400, 0x0400, CRC(b43ca275) SHA1(a03e03f6366877cfdcec71030a5fb2c5171c8d8a) ) + ROM_LOAD_NIB_LOW ( "canball.1f", 0x7800, 0x0400, CRC(29b4e1f7) SHA1(8cef944b6e0153c304aa2d4cfdc530b8a4eef021) ) + ROM_LOAD_NIB_HIGH( "canball.1k", 0x7800, 0x0400, CRC(a4d1cf12) SHA1(99de6470efd16e57d72019e065f55bc740f3c7fc) ) + ROM_LOAD_NIB_LOW ( "canball.1h", 0x7c00, 0x0400, CRC(13f55937) SHA1(7514c27e60944c4e00992c8ecbc5115f8ff948bb) ) + ROM_LOAD_NIB_HIGH( "canball.1j", 0x7c00, 0x0400, CRC(5b905d69) SHA1(2408dd6e44c51c0c9bdb82d2d33826c03f8308c4) ) + + ROM_REGION( 0x0200, "gfx1", 0 ) /* tiles */ + ROM_LOAD_NIB_LOW ( "canballmash.6m", 0x0000, 0x0200, BAD_DUMP CRC(bec9eb19) SHA1(8d84d783a4615e58fa4138e039658922ce50e967) ) + ROM_LOAD_NIB_HIGH( "canball.6l", 0x0000, 0x0200, CRC(5b1c9e88) SHA1(6e9630db9907170c53942a21302bcf8b721590a3) ) + + ROM_REGION( 0x0200, "gfx2", 0 ) /* sprites */ + ROM_LOAD_NIB_LOW ( "canball.5l", 0x0000, 0x0200, CRC(3d0d1569) SHA1(1dfcf5cf9468d476c4b7d76a261c6fec87a99f93) ) + ROM_LOAD_NIB_HIGH( "canball.5k", 0x0000, 0x0200, CRC(c5fdd3c8) SHA1(5aae148439683ff1cf0005a810c81fdcbed525c3) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "canball.6h", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* sync */ +ROM_END + + +GAME( 2004, cballfix, cball, cball, cball, driver_device, 0, ROT0, "MASH", "Cannonball (Atari, prototype) with new rom", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/cclimber.cpp b/docs/release/src/hbmame/drivers/cclimber.cpp new file mode 100644 index 00000000000..55b812a3057 --- /dev/null +++ b/docs/release/src/hbmame/drivers/cclimber.cpp @@ -0,0 +1,182 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/cclimber.cpp" + +INPUT_PORTS_START( ckonga2 ) /* one less life than normal */ + PORT_INCLUDE( ckong ) + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x02, "4" ) + PORT_DIPSETTING( 0x03, "5" ) +INPUT_PORTS_END + +INPUT_PORTS_START( ckonga4 ) /* two less lives than normal */ + PORT_INCLUDE( ckong ) + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x01, "2" ) + PORT_DIPSETTING( 0x02, "3" ) + PORT_DIPSETTING( 0x03, "4" ) +INPUT_PORTS_END + +ROM_START( cclimbrm ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "cc11m", 0x0000, 0x1000, CRC(a7d58b7e) SHA1(83a21b1a731895c84f1f3604f36b21b172bb144b) ) + ROM_LOAD( "cc10", 0x1000, 0x1000, CRC(b3c26cef) SHA1(f52cb5482c12a9c5fb56e2e2aec7cab0ed23e5a5) ) + ROM_LOAD( "cc09", 0x2000, 0x1000, CRC(6db0879c) SHA1(c0ba1976c1dcd6edadd78073173a26851ae8dd4f) ) + ROM_LOAD( "cc08", 0x3000, 0x1000, CRC(f48c5fe3) SHA1(79072bbbf37387998ffd031afe8eb569a16fa9bd) ) + ROM_LOAD( "cc07m", 0x4000, 0x1000, CRC(a417e7a3) SHA1(0cc8e306268119e11d8375749147cb7c1a831bd8) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "cc06", 0x0000, 0x0800, CRC(481b64cc) SHA1(3f35c545fc784ed4f969aba2d7be6e13a5ae32b7) ) + /* empty hole - Crazy Kong has an additional ROM here */ + ROM_LOAD( "cc04", 0x2000, 0x0800, CRC(332347cb) SHA1(4115ca32af73f1791635b7d9e093bf77088a8222) ) + /* empty hole - Crazy Kong has an additional ROM here */ + ROM_LOAD( "cc05", 0x1000, 0x0800, CRC(2c33b760) SHA1(2edea8fe13376fbd51a5586d97aba3b30d78e94b) ) + /* empty hole - Crazy Kong has an additional ROM here */ + ROM_LOAD( "cc03", 0x3000, 0x0800, CRC(4e4b3658) SHA1(0d39a8cb5cd6cf06008be60707f9b277a8a32a2d) ) + /* empty hole - Crazy Kong has an additional ROM here */ + + ROM_REGION( 0x1000, "gfx2", 0 ) + ROM_LOAD( "cc02", 0x0000, 0x0800, CRC(14f3ecc9) SHA1(a1b5121abfbe8f07580eb3fa6384352d239a3d75) ) + ROM_LOAD( "cc01", 0x0800, 0x0800, CRC(21c0f9fb) SHA1(44fad56d302a439257216ddac9fd62b3666589f1) ) + + ROM_REGION( 0x0060, "proms", 0 ) + ROM_LOAD( "cclimber.pr1", 0x0000, 0x0020, CRC(751c3325) SHA1(edce2bc883996c1d72dc6c1c9f62799b162d415a) ) + ROM_LOAD( "cclimber.pr2", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) ) + ROM_LOAD( "cclimber.pr3", 0x0040, 0x0020, CRC(71317756) SHA1(1195f0a037e379cc1a3c0314cb746f5cd2bffe50) ) + + ROM_REGION( 0x2000, "samples", 0 ) /* samples */ + ROM_LOAD( "cc13", 0x0000, 0x1000, CRC(e0042f75) SHA1(86cb31b110742a0f7ae33052c88f42d00deb5468) ) + ROM_LOAD( "cc12", 0x1000, 0x1000, CRC(5da13aaa) SHA1(b2d41e69435d09c456648a10e33f5e1fbb0bc64c) ) +ROM_END + +/* E376 and E449 are basically the same bootleg of "ckonga". One gfx rom in E376 is changed, and we use it here. + Changes: One less life than normal, and gfx corruptions on the stage with the incinerator in the middle. */ +ROM_START( ckonga2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ckonga2.07", 0x0000, 0x1000, CRC(1c21386f) SHA1(ce1a0c469dd09d81485cede6c8fbaf6299a9decf) ) + ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) ) + ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) ) + ROM_LOAD( "10.dat", 0x3000, 0x1000, CRC(c3beb501) SHA1(14f49c45fc7c91799034c5a51fca310f0a66b1d7) ) + ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) ) + ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) ) + ROM_LOAD( "ckonga2.05", 0x1000, 0x1000, CRC(cd3b5dde) SHA1(2319a2be04d70989b01f4fc703756ba6e1c1f388) ) + ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) ) + ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) ) + + ROM_REGION( 0x1000, "gfx2", 0 ) + ROM_LOAD( "c11-02.bin", 0x0000, 0x0800, CRC(d1352c31) SHA1(da726a63a8be830d695afeddc1717749af8c9d47) ) + ROM_LOAD( "a11-01.bin", 0x0800, 0x0800, CRC(a7a2fdbd) SHA1(529865f8bbfbdbbf34ac39c70ef17e6d5bd0f845) ) + + ROM_REGION( 0x0060, "proms", 0 ) + ROM_LOAD( "prom.v6", 0x0000, 0x0020, CRC(b3fc1505) SHA1(5b94adde0428a26b815c7eb9b3f3716470d349c7) ) + ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) ) + ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) ) + + ROM_REGION( 0x2000, "samples", 0 ) /* samples */ + ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) ) + ROM_LOAD( "cc12j.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) ) +ROM_END + +/* E448 and E589 are basically the same bootleg of "ckonga". One prom in E448 is changed, and we use it here. + Changes: Two less lives than normal. */ +ROM_START( ckonga3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ckonga4.07", 0x0000, 0x1000, CRC(9b5e7592) SHA1(c2b44765eef7d6a8f9f1fb8a7cefd011ebf2a330) ) + ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) ) + ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) ) + ROM_LOAD( "10.dat", 0x3000, 0x1000, CRC(c3beb501) SHA1(14f49c45fc7c91799034c5a51fca310f0a66b1d7) ) + ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) ) + ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) ) + ROM_LOAD( "l11-05.bin", 0x1000, 0x1000, CRC(fa7cbd91) SHA1(0208d2ebc59f3600005476b6987472685bc99d67) ) + ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) ) + ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) ) + + ROM_REGION( 0x1000, "gfx2", 0 ) + ROM_LOAD( "c11-02.bin", 0x0000, 0x0800, CRC(d1352c31) SHA1(da726a63a8be830d695afeddc1717749af8c9d47) ) + ROM_LOAD( "a11-01.bin", 0x0800, 0x0800, CRC(a7a2fdbd) SHA1(529865f8bbfbdbbf34ac39c70ef17e6d5bd0f845) ) + + ROM_REGION( 0x0060, "proms", 0 ) + ROM_LOAD( "ckonga4.v6", 0x0000, 0x0020, CRC(d3b84067) SHA1(1d025c28c47c4c7508b0dfd534de87e923262630) ) + ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) ) + ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) ) + + ROM_REGION( 0x2000, "samples", 0 ) /* samples */ + ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) ) + ROM_LOAD( "cc12j.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) ) +ROM_END + +ROM_START( ckongfix ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "d05-07.bin", 0x0000, 0x1000, CRC(b27df032) SHA1(57f9be139c610405e3c2fddd7093dfb1277e450e) ) + ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) ) + ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) ) + ROM_LOAD( "k05-10.bin", 0x3000, 0x1000, CRC(069c4797) SHA1(03be185e6914ec7f3770ce3da4eb49cdb97adc85) ) + ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) ) + ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) ) + ROM_LOAD( "l11-05.bin", 0x1000, 0x1000, CRC(fa7cbd91) SHA1(0208d2ebc59f3600005476b6987472685bc99d67) ) + ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) ) + ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) ) + + ROM_REGION( 0x1000, "gfx2", 0 ) + ROM_LOAD( "c11-02f.bin", 0x0000, 0x0800, CRC(881ed76e) SHA1(e516d898b68da7040f7fb8c7dbc47e0526349e4c) ) + ROM_LOAD( "a11-01f.bin", 0x0800, 0x0800, CRC(d49aa505) SHA1(7dec6d62e874fb23f827ffddb72d85777a5c39f7) ) + + ROM_REGION( 0x0060, "proms", 0 ) + ROM_LOAD( "prom.v6", 0x0000, 0x0020, CRC(b3fc1505) SHA1(5b94adde0428a26b815c7eb9b3f3716470d349c7) ) + ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) ) + ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) ) + + ROM_REGION( 0x2000, "samples", 0 ) /* samples */ + ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) ) + ROM_LOAD( "cc12j.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) ) +ROM_END + +/* This is a gfx hack of monkeyd. Should monkeyd get correct colours, it must be applied here too. */ +ROM_START( tongypac ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "ck7.bin", 0x0000, 0x1000, CRC(2171cac3) SHA1(7b18bfe44c32fb64b675bbbe2136344522c79b09) ) + ROM_LOAD( "ck8.bin", 0x1000, 0x1000, CRC(88b83ff7) SHA1(4afc494cc264aaa4614da6aed02ce062d9c20850) ) + ROM_LOAD( "ck9.bin", 0x2000, 0x1000, CRC(cff2af47) SHA1(1757428cefad13855a623162101ec01c04006c94) ) + ROM_LOAD( "ck10.bin", 0x3000, 0x1000, CRC(520fa4de) SHA1(6edbaf727756cd33bde94492d72654aa12dbd7e1) ) + ROM_LOAD( "md5l.bin", 0x4000, 0x1000, CRC(d1db1bb0) SHA1(fe7d700c7f9eca9c389be3717ebebf3e7dc63aa2) ) + /* no ROM at 5000 */ + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "tpac6.bin", 0x0000, 0x1000, CRC(918e3c52) SHA1(bc630759a525615aba1a06a0781e26a1a5c2c377) ) + ROM_LOAD( "tpac5.bin", 0x1000, 0x1000, CRC(2bbc69e7) SHA1(5741aa6944e9b936289368d533c2b19d34320260) ) + ROM_LOAD( "tpac4.bin", 0x2000, 0x1000, CRC(8d5890b6) SHA1(92d48d75084df2e2a3fa9d92a3c6c059f0781d81) ) + ROM_LOAD( "tpac3.bin", 0x3000, 0x1000, CRC(6b16145b) SHA1(ef17fad07b81c9dae5c6e16a86afc4a8f6a7ff8c) ) + + ROM_REGION( 0x1000, "gfx2", 0 ) + ROM_LOAD( "ck2.bin", 0x0000, 0x0800, CRC(f67c80f1) SHA1(d1fbcce1b6242f810e106ff50812636e3168ebc1) ) + ROM_LOAD( "ck1.bin", 0x0800, 0x0800, CRC(80eb517d) SHA1(fef4111f656c58b28e7eac5aa5b5cc7e07ccb2fd) ) + + ROM_REGION( 0x0060, "proms", 0 ) + ROM_LOAD( "ck6v.bin", 0x0000, 0x0020, BAD_DUMP CRC(751c3325) SHA1(edce2bc883996c1d72dc6c1c9f62799b162d415a) ) + ROM_LOAD( "ck6u.bin", 0x0020, 0x0020, BAD_DUMP CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) ) + ROM_LOAD( "ck6t.bin", 0x0040, 0x0020, BAD_DUMP CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) ) + + ROM_REGION( 0x2000, "samples", 0 ) /* samples */ + ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) ) + ROM_LOAD( "ck12.bin", 0x1000, 0x1000, CRC(2eb23b60) SHA1(c9e7dc584562aceb374193655fbacb7df6c9c731) ) +ROM_END + +GAME( 1980, cclimbrm, 0, cclimber, cclimber, cclimber_state, cclimber, ROT0, "Tim Arcadecollecting", "Crazy Climber (US - modded)", MACHINE_SUPPORTS_SAVE ) // http://www.arcadecollecting.com/crazy/cchack +GAME( 1981, ckonga2, ckong, cclimber, ckonga2, driver_device, 0, ROT270, "bootleg", "Crazy Kong Part II -1", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckonga3, ckong, cclimber, ckonga4, driver_device, 0, ROT270, "bootleg", "Crazy Kong Part II -2", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckongfix, ckong, cclimber, ckong, driver_device, 0, ROT270, "Pinny", "Crazy Kong Part II (Graphic Fix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, tongypac, ckong, cclimber, ckong, driver_device, 0, ROT270, "Grand Master Peter", "Tongy Paccy", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/centiped.cpp b/docs/release/src/hbmame/drivers/centiped.cpp new file mode 100644 index 00000000000..42715029260 --- /dev/null +++ b/docs/release/src/hbmame/drivers/centiped.cpp @@ -0,0 +1,165 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/centiped.cpp" + +ROM_START( astropd2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) ) + ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) ) + ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) ) + ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "astropd2.211", 0x0000, 0x0800, CRC(7bdb6861) SHA1(38e3f1827687e8a93ad66f69bee5a34f5f553fa4) ) + ROM_LOAD( "astropd2.212", 0x0800, 0x0800, CRC(043f9810) SHA1(954e55d6cc464f6f992f615b89b43d6cb29d35a9) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) +ROM_END + +ROM_START( astroped ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) ) + ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) ) + ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) ) + ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "astroped.211", 0x0000, 0x0800, CRC(47992235) SHA1(f200c55327edee86abb82a2c33f75a2cf1abbb1f) ) + ROM_LOAD( "astroped.212", 0x0800, 0x0800, CRC(1f877066) SHA1(7254765394c71bfcca8a1061b0544438f2783218) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) +ROM_END + +ROM_START( cemescry ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) ) + ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) ) + ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) ) + ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) ) + + ROM_REGION(0x1000, "gfx1", 0 ) + ROM_LOAD( "cemescry.211", 0x0000, 0x0800, CRC(dad550a7) SHA1(3a5067dac4d5fc5af01a9778654463f37f793606) ) + ROM_LOAD( "cemescry.212", 0x0800, 0x0800, CRC(47982803) SHA1(62b3aa80379fd71eb4efc5994b594b1eb69c0468) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) +ROM_END + +/* E418 - same as centipdb except for 2 roms */ +ROM_START( centipb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "d1", 0x2000, 0x0800, CRC(b17b8e0b) SHA1(01944cf040cf23aeb4c50d4f2e63181e08a07310) ) + ROM_LOAD( "e1", 0x2800, 0x0800, CRC(7684398e) SHA1(eea8e05506a7af2fec55c2689e3caafc62ea524f) ) + ROM_LOAD( "h1", 0x3000, 0x0800, CRC(74580fe4) SHA1(35b8a8675e4e020e234e51c3e4bd4ee5c24b79d2) ) + ROM_LOAD( "centipb.4", 0x3800, 0x0800, CRC(849b1614) SHA1(9060e39ec1d5c66e26c8d28a86818bcc1801c610) ) + ROM_LOAD( "centipb.5", 0x6000, 0x0800, CRC(9d3ad0e5) SHA1(ad7520b3c95d729bfd022553817f868485e9a191) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "136001-211.f7", 0x0000, 0x0800, CRC(880acfb9) SHA1(6c862352c329776f2f9974a0df9dbe41f9dbc361) ) + ROM_LOAD( "136001-212.hj7", 0x0800, 0x0800, CRC(b1397029) SHA1(974c03d29aeca672fffa4dfc00a06be6a851aacb) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) +ROM_END + +ROM_START( killiped ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) ) + ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) ) + ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) ) + ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) ) + + ROM_REGION(0x1000, "gfx1", 0 ) + ROM_LOAD( "killiped.211", 0x0000, 0x0800, CRC(6115917c) SHA1(ec9d7fc6503647a4bd13894c44584cb308232ecd) ) + ROM_LOAD( "killiped.212", 0x0800, 0x0800, CRC(3d545e5b) SHA1(098f714084ada6ea1f379da9783581bb6be20d2c) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) +ROM_END + +/* E626 - This dump has a bad "2" rom. Using the one from magworm for now. The coins aren't always detected. */ +ROM_START( magworm2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "magworm2.k0", 0x2000, 0x0800, CRC(22985495) SHA1(ad477b05d9303a03d99d110ff4546d1e5de165bd) ) + ROM_LOAD( "magworm2.k1", 0x2800, 0x0800, CRC(981e1ddc) SHA1(b7ba1d522cb45b646d2b26e06d9531196152722e) ) + ROM_LOAD( "11005-2.k2", 0x3000, 0x0800, CRC(f127f1c3) SHA1(3fddcd6f458ac60eaebacef921b522dd2c7b8141) ) + ROM_LOAD( "magworm2.k3", 0x3800, 0x0800, CRC(95029f45) SHA1(a341cf1a3bf91f24bf3ae87b2f5950228cc9379d) ) + + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "11005-4.c4", 0x0000, 0x0800, CRC(cea64e1a) SHA1(9022102124e1ad93f912ce8bdf85f8a886b0879b) ) + ROM_LOAD( "11005-5.c5", 0x0800, 0x0800, CRC(24558ea5) SHA1(8cd7131e19afd7a96191b1b3c3fba7ae9a140f4b) ) +ROM_END + +ROM_START( pacipede ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) ) + ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) ) + ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) ) + ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) ) + + ROM_REGION(0x1000, "gfx1", 0 ) + ROM_LOAD( "paciped.211", 0x0000, 0x0800, CRC(4d2a94c0) SHA1(6f07f86ec6b8fbd62a63a808b20ced5116765f11) ) + ROM_LOAD( "paciped.212", 0x0800, 0x0800, CRC(10fac52e) SHA1(80c4f9148b5310b81963960ddc8ad4ec3e26217b) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) +ROM_END + +ROM_START( silliped ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "136013-104.1mn", 0x4000, 0x1000, CRC(40711675) SHA1(b595d6a0f5d3c611ade1b83a94c3b909d2124dc4) ) + ROM_LOAD( "136013-103.1l", 0x5000, 0x1000, CRC(fb01baf2) SHA1(9c1d0bbc20bf25dd21761a311fd1ed80aa029241) ) + ROM_LOAD( "136013-102.1jk", 0x6000, 0x1000, CRC(62e137e0) SHA1(9fe40db55ba1d20d4f11704f7f5df9ff75b87f30) ) + ROM_LOAD( "136013-101.1h", 0x7000, 0x1000, CRC(46752c7d) SHA1(ab06b1fd80271849946f90757b3837b617394929) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "silliped.106", 0x0000, 0x0800, CRC(b946599e) SHA1(3bd7360c8b4e4bbda0ffcda6b8d5961430073d5c) ) + ROM_LOAD( "silliped.107", 0x0800, 0x0800, CRC(89442fbc) SHA1(450bedd9d09300191bbc31c4cc5b5ca0424661ef) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.7e", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) /* not used */ +ROM_END + +ROM_START( vectiped ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) ) + ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) ) + ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) ) + ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) ) + + ROM_REGION(0x1000, "gfx1", 0 ) + ROM_LOAD( "vectiped.211", 0x0000, 0x0800, CRC(33eccc59) SHA1(ab456577e4a4392abb35831a20e30e6314502367) ) + ROM_LOAD( "vectiped.212", 0x0800, 0x0800, CRC(bc71790c) SHA1(b5a69ee0cb5861a0b328f478a49d453716a8703d) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) +ROM_END + +ROM_START( vectrped ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) ) + ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) ) + ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) ) + ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) ) + + ROM_REGION(0x1000, "gfx1", 0 ) + ROM_LOAD( "vectrped.211", 0x0000, 0x0800, CRC(e65cd908) SHA1(ceb25e4850e5e7cbe2809c465313610b99321269) ) + ROM_LOAD( "vectrped.212", 0x0800, 0x0800, CRC(72616fcb) SHA1(c7617be0f28dbeae662738a0d8bba6c2e12a02aa) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) +ROM_END + +GAME( 2002, astropd2, centiped, centiped, centiped, driver_device, 0, ROT270, "Twisty", "Astropede II", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, astroped, centiped, centiped, centiped, driver_device, 0, ROT270, "Twisty", "Astropede", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, cemescry, centiped, centiped, centiped, driver_device, 0, ROT270, "NoSync", "Cemescary", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, centipb, centiped, centipdb, centiped, driver_device, 0, ROT270, "bootleg", "Centipede", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, killiped, centiped, centiped, centiped, driver_device, 0, ROT270, "The Dog", "Killipede", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, magworm2, centiped, magworm, magworm, driver_device, 0, ROT270, "bootleg", "Magic Worm", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacipede, centiped, centiped, centiped, driver_device, 0, ROT270, "Jeff Coleburn", "Pacipede", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, silliped, milliped, milliped, milliped, driver_device, 0, ROT270, "Andy", "Sillipede", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, vectiped, centiped, centiped, centiped, driver_device, 0, ROT270, "The Dog", "Vectipede", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, vectrped, centiped, centiped, centiped, driver_device, 0, ROT270, "T-Bone", "Vectorpede", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/cinemat.cpp b/docs/release/src/hbmame/drivers/cinemat.cpp new file mode 100644 index 00000000000..b43b81d75cf --- /dev/null +++ b/docs/release/src/hbmame/drivers/cinemat.cpp @@ -0,0 +1,47 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/* BBUGTEST NOTES + +With no documentation whatsoever, I have compiled what I know to share with you all. + +I do not know if the graphics are complete, or if all tests are working. + +Use the dipswitches to select a test pattern. + +Pressing any player key, or start button will make a slight change to the colours. + +If you move your mouse to the left, pressing the keys will alter the numbers across the bottom +of the screen. Moving the mouse to the right will revert to changing colours again. + +*/ + + +#include "../mame/drivers/cinemat.cpp" + +static MACHINE_CONFIG_DERIVED( bbugtest, cinemat_jmi_32k ) + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_VISIBLE_AREA(0, 1024, 0, 788) + MCFG_VIDEO_START_OVERRIDE(cinemat_state,cinemat_color) +MACHINE_CONFIG_END + +/************************************* + * + * Game drivers + * + *************************************/ + +ROM_START( bbugtest ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 16k for code */ + ROM_LOAD16_BYTE( "bbugtest.t7", 0x0000, 0x1000, CRC(92a460f1) SHA1(eaa8fea38d87f1fd6e2e52b92085fed43498e5ce) ) + ROM_LOAD16_BYTE( "bbugtest.p7", 0x0001, 0x1000, CRC(06d0bde2) SHA1(b0a224b7a74fa739b293ad7383236ffaa012f3c3) ) + + ROM_REGION( 0x1a0, "proms", 0 ) + ROM_LOAD("prom.f14", 0x000, 0x100, CRC(9edbf536) SHA1(036ad8a231284e05f44b1106d38fc0c7e041b6e8) ) + ROM_LOAD("prom.e14", 0x100, 0x020, CRC(29dbfb87) SHA1(d8c40ab010b2ea30f29b2c443819e2b69f376c04) ) + ROM_LOAD("prom.d14", 0x120, 0x020, CRC(9a05afbf) SHA1(5d806a42424942ba5ef0b70a1d629315b37f931b) ) + ROM_LOAD("prom.c14", 0x140, 0x020, CRC(07492cda) SHA1(32df9148797c23f70db47b840139c40e046dd710) ) + ROM_LOAD("prom.j14", 0x160, 0x020, CRC(a481ca71) SHA1(ce145d61686f600cc16b77febfd5c783bf8c13b0) ) + ROM_LOAD("prom.e8", 0x180, 0x020, CRC(791ec9e1) SHA1(6f7fcce4aa3be9020595235568381588adaab88e) ) +ROM_END + +GAME(1981, bbugtest, 0, bbugtest, boxingb, cinemat_state, boxingb, ORIENTATION_FLIP_Y, "Test Rom", "Test Rom - Boxing Bugs", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/commando.cpp b/docs/release/src/hbmame/drivers/commando.cpp new file mode 100644 index 00000000000..0e2bc7dd41d --- /dev/null +++ b/docs/release/src/hbmame/drivers/commando.cpp @@ -0,0 +1,78 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/commando.cpp" + +ROM_START( comdelux ) + ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ + ROM_LOAD( "cm04.9m", 0x0000, 0x8000, CRC(8438b694) SHA1(e154478d8f1b635355bd777370acabe49cb9d309) ) + ROM_LOAD( "cm03.8m", 0x8000, 0x4000, CRC(35486542) SHA1(531a85c9e03970ce037be84f2240c2df6f6e3ec1) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "cm02.9f", 0x0000, 0x4000, CRC(f9cc4a74) SHA1(ee8dd73919c6f47f62cc6d999de9510db9f79b8f) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "vt01.5d", 0x0000, 0x4000, CRC(505726e0) SHA1(2435c87c9c9d78a6e703cf0e1f6a0288207fcd4c) ) // characters + + ROM_REGION( 0x18000, "gfx2", 0 ) + ROM_LOAD( "vt11.5a", 0x00000, 0x4000, CRC(7b2e1b48) SHA1(5d49e1d8146e4ef744445b68f35677302e875a85) ) // SCR X (tiles) + ROM_LOAD( "vt12.6a", 0x04000, 0x4000, CRC(81b417d3) SHA1(5ec7e3f0c8069384a5f6eb39232c228b9d7b8c0c) ) // SCR X + ROM_LOAD( "vt13.7a", 0x08000, 0x4000, CRC(5612dbd2) SHA1(9e4e1a22b6cbf60607b9a81dae34482ae55f7c47) ) // SCR Y + ROM_LOAD( "vt14.8a", 0x0c000, 0x4000, CRC(2b2dee36) SHA1(8792278464fa3da47176582025f6673a15a581e2) ) // SCR Y + ROM_LOAD( "vt15.9a", 0x10000, 0x4000, CRC(de70babf) SHA1(6717e23baf55f84d3143fb432140a7c3e102ac26) ) // SCR Z + ROM_LOAD( "vt16.10a", 0x14000, 0x4000, CRC(14178237) SHA1(f896e71c7004349c9a46155edfd9f0aaa186065d) ) // SCR Z + + ROM_REGION( 0x18000, "gfx3", 0 ) + ROM_LOAD( "dx_vt05.7e", 0x00000, 0x4000, CRC(b1839dd4) SHA1(7172718a0a5f5ba1c6785545dea196e03d3c58c3) ) /* sprites */ + ROM_LOAD( "vt06.8e", 0x04000, 0x4000, CRC(26fee521) SHA1(2fbfc73ee860f72a20229a01d4da9f5cc2e858d3) ) + ROM_LOAD( "dx_vt07.9e", 0x08000, 0x4000, CRC(4cb1cd67) SHA1(317cfbbff00870b7f7d8023b135d3a96dc0e73fb) ) + ROM_LOAD( "dx_vt08.7h", 0x0c000, 0x4000, CRC(42ff8a11) SHA1(94d0fdbb98670953e586f75030ec48b5af2138a9) ) + ROM_LOAD( "vt09.8h", 0x10000, 0x4000, CRC(98703982) SHA1(ba9a9b0dcadd4f52502828408c4a19b0bd518351) ) + ROM_LOAD( "dx_vt10.9h", 0x14000, 0x4000, CRC(7650a262) SHA1(e4d59c2dda161d49849b1d20782a2126fa0743c7) ) + + ROM_REGION( 0x600, "proms", 0 ) + ROM_LOAD( "vtb1.1d", 0x0000, 0x0100, CRC(3aba15a1) SHA1(8b057f6e26155dd9e48bde182e680fce4519f600) ) /* red */ + ROM_LOAD( "vtb2.2d", 0x0100, 0x0100, CRC(88865754) SHA1(ca6dddca98baf00a65b2fb70b69cf4704ef8c831) ) /* green */ + ROM_LOAD( "vtb3.3d", 0x0200, 0x0100, CRC(4c14c3f6) SHA1(644ac17c7413f094ec9a15cba87bbd421b26321f) ) /* blue */ + ROM_LOAD( "vtb4.1h", 0x0300, 0x0100, CRC(b388c246) SHA1(038f9851699331ad887b6281a9df053dca3db8fd) ) /* palette selector (not used) */ + ROM_LOAD( "vtb5.6l", 0x0400, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */ + ROM_LOAD( "vtb6.6e", 0x0500, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ +ROM_END + +ROM_START( comdlux1 ) + ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ + ROM_LOAD( "cm04.9m", 0x0000, 0x8000, CRC(8438b694) SHA1(e154478d8f1b635355bd777370acabe49cb9d309) ) + ROM_LOAD( "cm03.8m", 0x8000, 0x4000, CRC(35486542) SHA1(531a85c9e03970ce037be84f2240c2df6f6e3ec1) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "cm02.9f", 0x0000, 0x4000, CRC(f9cc4a74) SHA1(ee8dd73919c6f47f62cc6d999de9510db9f79b8f) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "vt01.5d", 0x0000, 0x4000, CRC(505726e0) SHA1(2435c87c9c9d78a6e703cf0e1f6a0288207fcd4c) ) // characters + + ROM_REGION( 0x18000, "gfx2", 0 ) + ROM_LOAD( "vt11.5a", 0x00000, 0x4000, CRC(7b2e1b48) SHA1(5d49e1d8146e4ef744445b68f35677302e875a85) ) // SCR X (tiles) + ROM_LOAD( "vt12.6a", 0x04000, 0x4000, CRC(81b417d3) SHA1(5ec7e3f0c8069384a5f6eb39232c228b9d7b8c0c) ) // SCR X + ROM_LOAD( "vt13.7a", 0x08000, 0x4000, CRC(5612dbd2) SHA1(9e4e1a22b6cbf60607b9a81dae34482ae55f7c47) ) // SCR Y + ROM_LOAD( "vt14.8a", 0x0c000, 0x4000, CRC(2b2dee36) SHA1(8792278464fa3da47176582025f6673a15a581e2) ) // SCR Y + ROM_LOAD( "vt15.9a", 0x10000, 0x4000, CRC(de70babf) SHA1(6717e23baf55f84d3143fb432140a7c3e102ac26) ) // SCR Z + ROM_LOAD( "vt16.10a", 0x14000, 0x4000, CRC(14178237) SHA1(f896e71c7004349c9a46155edfd9f0aaa186065d) ) // SCR Z + + ROM_REGION( 0x18000, "gfx3", 0 ) + ROM_LOAD( "dx1_vt05.7e", 0x00000, 0x4000, CRC(91865879) SHA1(151b3202ea16141f53bf7ae96ac2171b70564ee5) ) /* sprites */ + ROM_LOAD( "vt06.8e", 0x04000, 0x4000, CRC(26fee521) SHA1(2fbfc73ee860f72a20229a01d4da9f5cc2e858d3) ) + ROM_LOAD( "dx_vt07.9e", 0x08000, 0x4000, CRC(4cb1cd67) SHA1(317cfbbff00870b7f7d8023b135d3a96dc0e73fb) ) + ROM_LOAD( "dx1_vt08.7h", 0x0c000, 0x4000, CRC(ba3a06f7) SHA1(9ae9fbd490308e27b71bc1dcd54f3e4e420feb3f) ) + ROM_LOAD( "vt09.8h", 0x10000, 0x4000, CRC(98703982) SHA1(ba9a9b0dcadd4f52502828408c4a19b0bd518351) ) + ROM_LOAD( "dx_vt10.9h", 0x14000, 0x4000, CRC(7650a262) SHA1(e4d59c2dda161d49849b1d20782a2126fa0743c7) ) + + ROM_REGION( 0x600, "proms", 0 ) + ROM_LOAD( "vtb1.1d", 0x0000, 0x0100, CRC(3aba15a1) SHA1(8b057f6e26155dd9e48bde182e680fce4519f600) ) /* red */ + ROM_LOAD( "vtb2.2d", 0x0100, 0x0100, CRC(88865754) SHA1(ca6dddca98baf00a65b2fb70b69cf4704ef8c831) ) /* green */ + ROM_LOAD( "vtb3.3d", 0x0200, 0x0100, CRC(4c14c3f6) SHA1(644ac17c7413f094ec9a15cba87bbd421b26321f) ) /* blue */ + ROM_LOAD( "vtb4.1h", 0x0300, 0x0100, CRC(b388c246) SHA1(038f9851699331ad887b6281a9df053dca3db8fd) ) /* palette selector (not used) */ + ROM_LOAD( "vtb5.6l", 0x0400, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */ + ROM_LOAD( "vtb6.6e", 0x0500, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ +ROM_END + +GAME( 2002, comdelux, commando, commando, commandou, commando_state, commando, ROT270, "Twisty", "Commando Deluxe", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, comdlux1, commando, commando, commandou, commando_state, commando, ROT270, "Twisty", "Commando Deluxe Again", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/cps1.cpp b/docs/release/src/hbmame/drivers/cps1.cpp new file mode 100644 index 00000000000..278627bfbcb --- /dev/null +++ b/docs/release/src/hbmame/drivers/cps1.cpp @@ -0,0 +1,11912 @@ +// license:??? +// copyright-holders:Paul Leaman +/*************************************************************************** + +Capcom System 1 +=============== + +Driver provided by: +Paul Leaman (paul@vortexcomputing.demon.co.uk) + +68000 for game, Z80, YM-2151 and OKIM6295 for sound. + +68000 clock speeds are unknown for all games (except where commented) + +todo: move the bootleg sets with modified hardware into their own + drivers, like fcrash.c + + +Notes +----- +- All original PALs are protected. The images loaded in the ROM definitions are + logically equivalent replacements with a GAL16V8 target. The actual pld types + found on the boards can also be PAL16P8, PAL16L8 etc. + +- There are five PALs on the A-Board, they are the same across all A-Board + revisions, but their location varies. + The A-Boards are interchangeable, so the IC locations are not specified in + the ROM definitions and are listed here instead: + + PAL ID 88617A 89626A + ------ ------ ------ + PRG1 12H 9K + IOA1 12F 4A + BUF1 16H 13K + ROM1 15H 14K + SOU1 13E 10F + + For Q-Sound games, the A-Board misses the Z80, Oki and amp, which are replaced + by the D-Board; the SOU1 PAL is missing as well, while PRG1 is replaced by + PRG2. The other PALs are the same. + +- The B-board usually has two PALs (later revisions have three). The first PAL + is used to map tile codes to the graphics ROMs, and changes from game to game. + The other doesn't change from game to game and there are only two versions, + called LWIO and IOB1, which are almost identical, the only difference being + that outputs o16 and o17 are R/W in IOB1 and Write only in LWIO. Since those + outputs are not used anyway except that in Forgotten Worlds, one wonders why + they were changed. + + SF2 revision "E" World and USA 910228 maps CPS-B at 8001C0 instead of 800140 + and seems to be the only one that uses the IOB2 and C632B PALs instead of the + IOB1 and C632, while STF29 PAL is confirmed to be the same as the other SF2 sets. + + pin 1 CN2 D9 = /IOCS (i.e. address 8xxxxx) + pin 2 CN2 D7 = /RDB + pin 3 CN2 C6 = /UDSWR + pin 4 CN2 D6 = /LDSWR + pin 5 CN2 C19 = A8 + pin 6 CN2 C20 = A7 + pin 7 CN2 C21 = A6 + pin 8 CN2 C22 = A5 + pin 9 CN2 C23 = A4 + pin 10 GND + pin 11 CN2 C24 = A3 + pin 12 CN2 C25 = A2 + + LWIO: + /o19 = /i1 * /i2 * /i5 * /i6 * i7 * i8 * /i9 800060-80006f R not used + /o18 = /i1 * /i2 * /i5 * /i6 * i7 * /i8 * i9 800050-80005f R forgotten worlds dial (on 88618B & 88621B B-boards) + o17 = /i1 * /i4 * /i5 * /i6 * i7 * /i8 * /i9 * /i11 800040-800047 W forgotten worlds dial (on 88618B & 88621B B-boards) + o16 = /i1 * /i4 * /i5 * /i6 * i7 * /i8 * /i9 * i11 800048-80004f W forgotten worlds dial (on 88618B & 88621B B-boards) + /o15 = /i1 * i5 * /i6 * i7 800140-80017f R/W CPS-B + /o14 = /i1 * /i4 * /i5 * /i6 * /i7 * i8 * i9 * /i11 800030-800037 W not used (overlaps coinctrl on A-board) + /o13 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * /i9 * i11 800008-80000f R not used + /o12 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * i9 * i11 800018-80001f R not used (overlaps system/dsw inputs on A-board) + + IOB1: + /o19 = /i1 * /i2 * /i5 * /i6 * i7 * i8 * /i9 800060-80006f R not used + /o18 = /i1 * /i2 * /i5 * /i6 * i7 * /i8 * i9 800050-80005f R not used + o17 = /i1 * /i5 * /i6 * i7 * /i8 * /i9 * /i11 800040-800047 R/W not used + o16 = /i1 * /i5 * /i6 * i7 * /i8 * /i9 * i11 800048-80004f R/W not used + /o15 = /i1 * i5 * /i6 * i7 800140-80017f R/W CPS-B + /o14 = /i1 * /i4 * /i5 * /i6 * /i7 * i8 * i9 * /i11 800030-800037 W not used (overlaps coinctrl on A-board) + /o13 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * /i9 * i11 800008-80000f R not used + /o12 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * i9 * i11 800018-80001f R not used (overlaps system/dsw inputs on A-board) + + + +Stephh's notes (based on the games M68000 code and some tests) : + +1) 'forgottn' and clones + + - Keys in the "scroll 1 test" screen : + * P1 UP : char code += 0x0200 + * P1 DOWN : char code -= 0x0200 + * P1 RIGHT : attribute ^= 0x20 ; also affects Hflip + * P1 LEFT : attribute ^= 0x40 ; also affects Vflip + * P1 button 1 : (attribute++) & 0x1f ; also affects color + * P1 button 2 : (attribute--) & 0x1f ; also affects color + +2) 'ghouls' and clones + +2a) 'ghouls' + + - NO debug features + +2b) 'ghoulsu' + + - How to activate the debug features : + * set "Game Mode" Dip Switch to "Game" + * set both "Coin A" and "Coin B" Dip Switches to 1C_1C + * reset the game (F3 key) + * insert a coin + * set "Game Mode" Dip Switch to "Test" + * set the debug Dip Switches to what you want + * start a 1 player game + - Some debug features : + * "Armor on New Life" is effective at the beginning of a new life + Note that even when you start without armor, you need to be hit twice + * "Starting Weapon" is effective only when you start a new game + or when you continue play + * "Starting Level" is effective only when you start a new game + (you must NOT continue play !) + * "Slow Motion" and "Invulnerability" can be changed at any time + +2c) 'daimakai' + + - NO debug features + - Different Dip Switches than in 'ghouls' + +3) 'strider' and clones + + - TO DO ! + +4) 'dynwar' and clones + +4a) 'dynwar' + + - According to code at 0x0125fa and 0x012634, bits 0 and 1 of DSWC also affect the energy cost + (table at 0x012662) when you press button 3 ("tactics" in the manual) : + + bit 0 bit 1 cost possible BCD values (based on kind of "tactics") + OFF OFF normal 0x10 (rockslide) 0x08 (ambush) 0x14 (flame) 0x12 (explosion) + ON OFF very low 0x03 0x02 0x05 0x04 + OFF ON low 0x06 0x04 0x10 0x08 + ON ON high 0x13 0x10 0x19 0x16 + + So IMO, there might be an ingame bug at 0x000c7e which should read bits 2 and 3 of DSWC + (instead of having them unused) : + 000C7E: 0240 0003 andi.w #$3, D0 + should be + 000C7E: 0240 000c andi.w #$c, D0 + However, only bits 4 to 7 are tested while you are in the "test mode". + + Note that code at 0x000c7e is only executed once when you reset the machine; + this means that you can change the "Freeze" and "Turbo Mode" Dip Switches before + reseting the game to change the energy cost settings, then put them back to "Off" + after the startup routine (when screen is black) so you can play the game. + - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make + this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C. + +4b) 'dynwarj' + + - The "energy cost" bug also exists in this version as well as code at 0x000c7e; + in fact, only code that reads these settings is at a different address : + check code at 0x01267a and 0x0126b4 and table at 0x0126e2. + - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make + this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C. + +5) 'willow' and clones + + - How to activate the debug features : + * set "Game Mode" Dip Switch to "Game" + * set both "Coin A" and "Coin B" Dip Switches to 1C_1C + * reset the game (F3 key) + * insert a coin + * set "Game Mode" Dip Switch to "Test" + * set the debug Dip Switches to what you want + * start a 1 player game + - Some debug features : + * "Starting Level" is effective only when you start a new game + (you must NOT continue play !) + * Once you set "Maximum magic/sword power" to "On", setting it to "Off" won't have + any effect until you start a new game (you must NOT continue play !) + * "Slow Motion Delay" is effective only when "Slow Motion" is set to "On" + * Even if "Freeze" Dip Switch is set to "On" a message will be displayed to its end. + * I can't tell what kind of infos are displayed when "Display Debug Infos" + Dip Switch is sry to "On" :( Any hint about them are welcome ! + - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make + this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C. + - When the "Stage Magic Continue" Dip Switch is set to "On", your magic and sword power + will be increased at the end of the level if you haven't bought the magic/sword item. + But you won't notice this before you use the character again. + For example, magic power will be increased at the end of level 1 but you won't notice + it before level 3, and sword power will be increased at the end of level 2 but you + won't notice it before level 4. + +6) 'ganbare' + + - Using the payout setting dip switch results in some occasional hopper errors, if this + happens, then the clear ram dip switch needs to be used. This needs to be resolved. + +TO DO (2006.09.20) : + + - Check 'strider' and its clones and add debug features + - Check other games to see if there are some debug or hidden features + - Add addresses from routines with debug features in the notes + - Look at what IN2 and IN3 do for the following sets : + * 'cworld2j' (IN2 only) + * 'qad' and 'qadjr' + * 'qtono2j' + - Check daimakar dip switches. E.g. changing the number of lives also changes the + starting level. + +Stephh's log (2006.09.20) : + + - Changed the "readinputport" reads by "readinputportbytag" reads. + This way, inputs and Dip Switch can be in any order + (and I don't have the nasty conditional Dip Switch bug). + BTW, I've slightly changed the read memory map : + * one handler for the 3 Dip Switches banks : cps1_dsw_r + * one handler for the system inputs (IN0) : cps1_in0_r + * one handler for the player inputs (IN1) : cps1_in1_r + * renamed cps1_input2_r to cps_in2_r + * renamed cps1_input3_r to cps_in3_r + - Applied these changes to src/drivers/fcrash.c as well. + - Added debug features in the following sets : + * 'ghoulsu' + * 'willowu', 'willowou' and 'willowj' + - Checked sets with no debug features : + * 'forgottnua' and 'lostwrld' + * 'ghouls' and 'daimakai' + * 'dynwar' and 'dynwarj' + +2008-07: + - replaced input read handler with direct AM_READ_PORT where suitable + +***************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "cpu/pic16c5x/pic16c5x.h" +#include "cpu/m68000/m68000.h" +#include "machine/eepromser.h" +#include "sound/2151intf.h" +#include "sound/okim6295.h" +#include "sound/qsound.h" +#include "machine/kabuki.h" +#include "includes/cps1.h" + + + +READ16_MEMBER(cps_state::cps1_dsw_r) +{ + static const char *const dswname[] = { "IN0", "DSWA", "DSWB", "DSWC" }; + int in = ioport(dswname[offset])->read(); + return (in << 8) | 0xff; +} + +READ16_MEMBER(cps_state::cps1_hack_dsw_r) +{ + static const char *const dswname[] = { "IN0", "DSWA", "DSWB", "DSWC" }; + int in = ioport(dswname[offset])->read(); + return (in << 8) | in; +} + +READ16_MEMBER(cps_state::cps1_in1_r) +{ + int in = ioport("IN1")->read(); + return (in << 8) | in; +} + +READ16_MEMBER(cps_state::cps1_in2_r) +{ + int in = ioport("IN2")->read(); + return (in << 8) | in; +} + +READ16_MEMBER(cps_state::cps1_in3_r) +{ + int in = ioport("IN3")->read(); + return (in << 8) | in; +} + +READ16_MEMBER(cps_state::forgottn_dial_0_r) +{ + return ((ioport("DIAL0")->read() - m_dial[0]) >> (8 * offset)) & 0xff; +} + +READ16_MEMBER(cps_state::forgottn_dial_1_r) +{ + return ((ioport("DIAL1")->read() - m_dial[1]) >> (8 * offset)) & 0xff; +} + +WRITE16_MEMBER(cps_state::forgottn_dial_0_reset_w) +{ + m_dial[0] = ioport("DIAL0")->read(); +} + +WRITE16_MEMBER(cps_state::forgottn_dial_1_reset_w) +{ + m_dial[1] = ioport("DIAL1")->read(); +} + + +WRITE8_MEMBER(cps_state::cps1_snd_bankswitch_w) +{ + membank("bank1")->set_entry(data & 0x01); +} + +WRITE8_MEMBER(cps_state::cps1_oki_pin7_w) +{ + m_oki->set_pin7(data & 1); +} + +WRITE16_MEMBER(cps_state::cps1_soundlatch_w) +{ + if (ACCESSING_BITS_0_7) + soundlatch_byte_w(space, 0, data & 0xff); + else + soundlatch_byte_w(space, 0, data >> 8); +} + +WRITE16_MEMBER(cps_state::cps1_soundlatch2_w) +{ + if (ACCESSING_BITS_0_7) + soundlatch2_byte_w(space, 0, data & 0xff); +} + +WRITE16_MEMBER(cps_state::cps1_coinctrl_w) +{ + if (ACCESSING_BITS_8_15) + { + machine().bookkeeping().coin_counter_w(0, data & 0x0100); + machine().bookkeeping().coin_counter_w(1, data & 0x0200); + machine().bookkeeping().coin_lockout_w(0, ~data & 0x0400); + machine().bookkeeping().coin_lockout_w(1, ~data & 0x0800); + + // bit 15 = CPS-A custom reset? + } +} + +WRITE16_MEMBER(cps_state::cpsq_coinctrl2_w) +{ + if (ACCESSING_BITS_0_7) + { + machine().bookkeeping().coin_counter_w(2, data & 0x01); + machine().bookkeeping().coin_lockout_w(2, ~data & 0x02); + machine().bookkeeping().coin_counter_w(3, data & 0x04); + machine().bookkeeping().coin_lockout_w(3, ~data & 0x08); + } +} + +INTERRUPT_GEN_MEMBER(cps_state::cps1_interrupt) +{ + /* Strider also has a IRQ4 handler. It is input port related, but the game */ + /* works without it. It is the *only* CPS1 game to have that. */ + /* ...until we found out that ganbare relies on it, see below */ + device.execute().set_input_line(2, HOLD_LINE); +} + +TIMER_DEVICE_CALLBACK_MEMBER(cps_state::ganbare_interrupt) +{ + /* not sure on the timing or source of this - the game needs it once per frame, */ + /* otherwise you get a "HARD ERROR" after boot */ + if (param == 0) + m_maincpu->set_input_line(4, HOLD_LINE); +} + + +/******************************************************************** +* +* Q Sound +* ======= +* +********************************************************************/ + +READ16_MEMBER(cps_state::qsound_rom_r) +{ + UINT8 *rom = memregion("user1")->base(); + + if (rom) + return rom[offset] | 0xff00; + else + { + popmessage("%06x: read sound ROM byte %04x", space.device().safe_pc(), offset); + return 0; + } +} + +READ16_MEMBER(cps_state::qsound_sharedram1_r) +{ + return m_qsound_sharedram1[offset] | 0xff00; +} + +WRITE16_MEMBER(cps_state::qsound_sharedram1_w) +{ + if (ACCESSING_BITS_0_7) + m_qsound_sharedram1[offset] = data; +} + +READ16_MEMBER(cps_state::qsound_sharedram2_r) +{ + return m_qsound_sharedram2[offset] | 0xff00; +} + +WRITE16_MEMBER(cps_state::qsound_sharedram2_w) +{ + if (ACCESSING_BITS_0_7) + m_qsound_sharedram2[offset] = data; +} + +WRITE8_MEMBER(cps_state::qsound_banksw_w) +{ + /* Z80 bank register for music note data. It's odd that it isn't encrypted though. */ + int bank = data & 0x0f; + if ((0x10000 + (bank * 0x4000)) >= memregion("audiocpu")->bytes()) + { + logerror("WARNING: Q sound bank overflow (%02x)\n", data); + bank = 0; + } + + membank("bank1")->set_entry(bank); +} + + +/******************************************************************** +* +* EEPROM +* ====== +* +* The EEPROM is accessed by a serial protocol using the register +* 0xf1c006 +* +********************************************************************/ + +/* +PAL PRG1 (16P8B @ 12H): + +I0 = AS +I1 = /BGACKB +I2 = A23 +I3 = A22 +I4 = A21 +I5 = A20 +I6 = A19 +I7 = A18 +I8 = A17 +I9 = A16 + +n.c. = pin19 = ( !I0 & I1 ) +n.c. = pin18 = ( !I0 & I1 ) +n.c. = pin17 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | !I6 | !I7) ) +n.c. = pin16 = ! ( I2 & I3 & I4 & I5 & I6 & I7 ) +/IOCS = pin15 = ! ( I0 & I1 & I2 & !I3 & !I4 & !I5 ) +/ONE WAIT = pin14 = ! ( I0 & I1 & ( I2 | !I3) ) +/databus = pin13 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | !I6 | !I7) ) +/workram = pin12 = ! ( I0 & I1 & I2 & I3 & I4 & I5 & I6 & I7 ) + + +In Q-Sound games, PRG1 is replaced by PRG2: + +/IOCS = pin 15 = ! ( I0 & I1 & I2 & !I3 & !I4 & !I5 ) +/ONE WAIT = pin 14 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | ( I6 & I7 & I8 & I9)) ) +/databus = pin 13 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | (!I6 & !I7 & !I8)) ) +/workram = pin 12 = ! ( I0 & I1 & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9 ) + + + + + +PAL IOA1 (16P8B @ 12F): + +I0 = /IOCS +I1 = /RDB +I2 = /UDSWR +I3 = /LDSWR +I4 = AB8 +I5 = AB7 +I6 = AB6 +I7 = AB5 +I8 = AB4 +I9 = AB3 + +player input = pin19 = ! ( !I0 & !I1 & !I4 & !I5 & !I6 & !I7 & !I8 & !I9 ) +system input/dips = pin18 = ! ( !I0 & !I1 & !I4 & !I5 & !I6 & !I7 & I8 & I9 ) +outputs = pin17 = ! ( !I0 & !I2 & !I4 & !I5 & !I6 & I7 & I8 & !I9 ) +sound 1B = pin16 = ! ( !I0 & !I3 & I4 & I5 & !I6 & !I7 & !I8 & I9 ) +sound 0B = pin15 = ! ( !I0 & !I3 & I4 & I5 & !I6 & !I7 & !I8 & !I9 ) +n.c. = pin14 = ( !I1 & !I2 ) +/PPU1 = pin13 = ! ( !I0 & I4 & !I5 & !I6 ) +n.c. = pin12 = ( !I1 & !I2 ) + + +PAL BUF1 (16P8B @ 16H): + +I0 = A23 (all address lines can come both from 68000 and CPS-A custom) +I1 = A22 +I2 = A21 +I3 = A20 +I4 = A19 +I5 = A18 +I6 = A17 +I7 = A16 +I8 = ASB + +BUF0 = pin19 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 ) +BUF1 = pin18 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & I7 ) +BUF2 = pin17 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & I6 & !I7 ) +BUF3 = pin16 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & I6 & I7 ) +BUF4 = pin15 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & !I6 & !I7 ) +BUF5 = pin14 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & !I6 & I7 ) +BUF6 = pin13 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & I6 & !I7 ) +/RDB = pin12 = ( I0 & !I1 & !I2 & I3 & !I8 ) + +BUF0-BUF2 are gfxram on A-board. BUF3-BUF6 go to B-board (provision for expansion, never used) + + +PAL ROM1 (16P8B @ 15H): + +I0 = A23 (all address lines can come both from 68000 and CPS-A custom) +I1 = A22 +I2 = A21 +I3 = A20 +I4 = A19 +I5 = A18 +I6 = A17 +I7 = A16 +I8 = ASB + +PRG0 = pin17 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & !I4 & !I5 ) +PRG1 = pin16 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & !I4 & I5 ) +PRG2 = pin15 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & I4 & !I5 ) +PRG3 = pin14 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & I4 & I5 ) +PRG4 = pin19 = ! ( !I8 & !I0 & !I1 & !I2 & I3 & !I4 ) +PRG5 = pin18 = ! ( !I8 & !I0 & !I1 & !I2 & I3 & I4 ) +PRG6 = pin13 = ! ( !I8 & !I0 & !I1 & I2 & !I3 & !I4 ) +/RDB = pin12 = ( !I8 & !I0 & !I1 ) + +All PRGx go to B-board. Provision for up to 4MB of ROM space, which was never used in full. + +*/ + +static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */ + /* forgottn, willow, cawing, nemo, varth read from 800010. Probably debug input leftover from development */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r) // HBMAME /* System input ports / Dip Switches */ + AM_RANGE(0x800020, 0x800021) AM_READNOP /* ? Used by Rockman ? not mapped according to PAL */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + /* Forgotten Worlds has dial controls on B-board mapped at 800040-80005f. See DRIVER_INIT */ + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + /* CPS-B custom is mapped by the PAL IOB2 on the B-board. SF2 revision "E" World and USA 910228 has it at a different + address, see DRIVER_INIT */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") /* SF2CE executes code from here */ + AM_RANGE(0xf1c000, 0xf1c001) AM_READ(cps1_in2_r) /* Player 3 controls (later games) HBMAME */ + AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram") +ADDRESS_MAP_END + +/* +PAL SOU1 (16P8 @ 13E): + +I0 = /MREQ +I1 = A15 +I2 = A14 +I3 = A13 +I4 = A12 +I5 = bank latch +I6 = /RD +I7 = /WR +I8 = /BANK + +bank latch = pin19 = ! ( !I0 & !I7 & !I8 ) +/SWR = pin18 = ! ( !I0 & !I7 ) +/SRD = pin17 = ! ( !I0 & !I6 ) +ls138 = pin16 = ! ( !I0 & I1 & I2 & I3 & I4 ) +workram = pin15 = ! ( !I0 & I1 & I2 & !I3 & I4 ) +SOUNDA14 = pin14 = ! ( !I0 & ((!I1 & !I2) | ( I1 & !I2 & !I5)) ) +SOUNDA15 = pin13 = ( I1 ) +/SOUNDCE = pin12 = ! ( !I0 & (!I1 | ( I1 & !I2)) ) +*/ + +static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") + AM_RANGE(0xd000, 0xd7ff) AM_RAM + AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write) + AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write) + AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w) + AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */ + AM_RANGE(0xf008, 0xf008) AM_READ(soundlatch_byte_r) /* Sound command */ + AM_RANGE(0xf00a, 0xf00a) AM_READ(soundlatch2_byte_r) /* Sound timer fade */ +ADDRESS_MAP_END + +static ADDRESS_MAP_START( qsound_main_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM // HBMAME for dinoz + AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom (mapped by LWIO/IOB1 PAL on B-board) */ + AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command HBMAME */ + AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade HBMAME */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") /* SF2CE executes code from here */ + AM_RANGE(0xf00000, 0xf0ffff) AM_READ(qsound_rom_r) /* Slammasters protection */ + AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */ + AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */ + AM_RANGE(0xf1c002, 0xf1c003) AM_READ_PORT("IN3") /* Player 4 controls ("Muscle Bombers") */ + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */ + AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram") +ADDRESS_MAP_END + +ADDRESS_MAP_START( qsound_sub_map, AS_PROGRAM, 8, cps_state ) // used by cps2.c too + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked (contains music data) */ + AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("qsound_ram1") + AM_RANGE(0xd000, 0xd002) AM_DEVWRITE("qsound", qsound_device, qsound_w) + AM_RANGE(0xd003, 0xd003) AM_WRITE(qsound_banksw_w) + AM_RANGE(0xd007, 0xd007) AM_DEVREAD("qsound", qsound_device, qsound_r) + AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("qsound_ram2") +ADDRESS_MAP_END + +ADDRESS_MAP_START( qsound_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, cps_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("decrypted") +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sf2m3_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800010, 0x800011) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800028, 0x80002f) AM_READ(cps1_hack_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */ + AM_RANGE(0x800186, 0x800187) AM_READ(cps1_in2_r) /* Buttons 4,5,6 for both players */ + AM_RANGE(0x800190, 0x800197) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800198, 0x80019f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */ + AM_RANGE(0x8001a0, 0x8001c3) AM_WRITE(cps1_cps_a_w) + AM_RANGE(0x8001c4, 0x8001c5) AM_WRITE(sf2m3_layer_w) + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +/*********************************************************** + INPUT PORTS, DIPs +***********************************************************/ + +#define CPS1_COINAGE_1(diploc) \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) \ + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) ) + +#define CPS1_COINAGE_2(diploc) \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) + +#define CPS1_COINAGE_3(diploc) \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \ + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \ + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \ + PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \ + PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) + +#define CPS1_DIFFICULTY_1(diploc) \ + PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x07, "0 (Easiest)" ) \ + PORT_DIPSETTING( 0x06, "1" ) \ + PORT_DIPSETTING( 0x05, "2" ) \ + PORT_DIPSETTING( 0x04, "3 (Normal)" ) \ + PORT_DIPSETTING( 0x03, "4" ) \ + PORT_DIPSETTING( 0x02, "5" ) \ + PORT_DIPSETTING( 0x01, "6" ) \ + PORT_DIPSETTING( 0x00, "7 (Hardest)" ) + +#define CPS1_DIFFICULTY_2(diploc) \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x04, "1 (Easiest)" ) \ + PORT_DIPSETTING( 0x05, "2" ) \ + PORT_DIPSETTING( 0x06, "3" ) \ + PORT_DIPSETTING( 0x07, "4 (Normal)" ) \ + PORT_DIPSETTING( 0x03, "5" ) \ + PORT_DIPSETTING( 0x02, "6" ) \ + PORT_DIPSETTING( 0x01, "7" ) \ + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + +/* CPS1 games with 2 players and 3 buttons each */ +static INPUT_PORTS_START( cps1_3b ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +/* CPS1 games with 2 players and 2 buttons each */ +static INPUT_PORTS_START( cps1_2b ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 3 + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 3 +INPUT_PORTS_END + +/* CPS1 games with 2 players and 1 button each */ +static INPUT_PORTS_START( cps1_1b ) + PORT_INCLUDE( cps1_2b ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 2 + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 2 +INPUT_PORTS_END + +/* CPS1 games with 3 players and 2 buttons each */ +static INPUT_PORTS_START( cps1_3players ) + PORT_INCLUDE( cps1_2b ) + + PORT_START("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) +INPUT_PORTS_END + +/* CPS1 games with 4 players and 2 buttons each */ +static INPUT_PORTS_START( cps1_4players ) + PORT_INCLUDE( cps1_3players ) + + PORT_START("IN3") /* Player 4 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN4 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) +INPUT_PORTS_END + +/* CPS1 games with 2 players and 6 buttons each */ +static INPUT_PORTS_START( cps1_6b) + PORT_INCLUDE( cps1_3b) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2) + + PORT_START("IN2") /* Extra buttons */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +/* CPS1 quiz games */ +static INPUT_PORTS_START( cps1_quiz ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN1") /* no joystick and 4th button */ + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) +INPUT_PORTS_END + + +static INPUT_PORTS_START( forgottn ) + PORT_INCLUDE( cps1_1b ) + + PORT_MODIFY("IN0") + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWC") // The manual only mentions two DIP switch banks. + PORT_DIPUNUSED( 0x80, 0x80 ) // Is this port brought out to DIP switches or not? + PORT_DIPUNKNOWN( 0x40, 0x40 ) // Check code at 0x013c78 (0x013690 in 'lostwrld') + PORT_DIPUNUSED( 0x20, 0x20 ) + PORT_DIPUNUSED( 0x10, 0x10 ) + PORT_DIPUNUSED( 0x08, 0x08 ) + PORT_DIPUNUSED( 0x04, 0x04 ) + PORT_DIPUNUSED( 0x02, 0x02 ) + PORT_DIPUNUSED( 0x01, 0x01 ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "DIP-B" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "DIP-B:4" ) + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "DIP-B:5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "DIP-B:6" ) // Check code at 0x00111c (0x00112c in 'lostwrld') + PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "DIP-B:7" ) + PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("DIP-B:8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "DIP-A" ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DIP-A:7") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DIP-A:8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DIAL0") + PORT_BIT( 0x0fff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_PLAYER(1) + + PORT_START("DIAL1") + PORT_BIT( 0x0fff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) +INPUT_PORTS_END + +static INPUT_PORTS_START( ghouls ) + PORT_INCLUDE( cps1_2b ) + /* Service1 doesn't give any credit */ + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x03, "3" ) + PORT_DIPSETTING( 0x02, "4" ) + PORT_DIPSETTING( 0x01, "5" ) + PORT_DIPSETTING( 0x00, "6" ) + PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(C):4" ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) // "Demo Sounds" in manual; doesn't work + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + + PORT_START("DSWB") /* Manual states default difficulty "B" (2) which differs from the normal macro */ + PORT_DIPNAME( 0x07, 0x05, DEF_STR( Difficulty ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x04, "1 (Easiest)" ) + PORT_DIPSETTING( 0x05, "2" ) + PORT_DIPSETTING( 0x06, "3" ) + PORT_DIPSETTING( 0x07, "4 (Normal)" ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x02, "6" ) + PORT_DIPSETTING( 0x01, "7" ) + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" ) + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6") + PORT_DIPSETTING( 0x20, "10K, 30K and every 30K" ) + PORT_DIPSETTING( 0x10, "20K, 50K and every 70K" ) + PORT_DIPSETTING( 0x30, "30K, 60K and every 70K" ) + PORT_DIPSETTING( 0x00, "40K, 70K and every 80K" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8") + PORT_DIPSETTING( 0xc0, "Upright 1 Player" ) + PORT_DIPSETTING( 0x80, "Upright 2 Players" ) +// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) // Manual says these are both valid settings + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) // for 2-player cocktail cabinet +INPUT_PORTS_END + +/* Same as 'ghouls' but additional "Freeze" Dip Switch, different "Lives" Dip Switch, + and LOTS of "debug" features (read the notes to know how to activate them) */ +static INPUT_PORTS_START( ghoulsu ) + PORT_INCLUDE( ghouls ) + + PORT_MODIFY("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPSETTING( 0x03, "3" ) + PORT_DIPSETTING( 0x02, "4" ) + PORT_DIPSETTING( 0x01, "5" ) + + PORT_MODIFY("DSWB") + /* Standard Dip Switches */ + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):5,6") + PORT_DIPSETTING( 0x20, "10K, 30K and every 30K" ) + PORT_DIPSETTING( 0x10, "20K, 50K and every 70K" ) + PORT_DIPSETTING( 0x30, "30K, 60K and every 70K" ) + PORT_DIPSETTING( 0x00, "40K, 70K and every 80K" ) +/* Manuals states the following bonus settings + PORT_DIPSETTING( 0x20, "20K, 50K and every 70K" ) + PORT_DIPSETTING( 0x10, "10K, 30K and every 30K" ) + PORT_DIPSETTING( 0x30, "40K, 70K and every 80K" ) + PORT_DIPSETTING( 0x00, "30K, 60K and every 70K" ) +*/ + /* Debug Dip Switches */ + PORT_DIPNAME( 0x07, 0x07, "Starting Weapon" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, "Spear" ) + PORT_DIPSETTING( 0x06, "Knife" ) + PORT_DIPSETTING( 0x05, "Torch" ) + PORT_DIPSETTING( 0x04, "Sword" ) + PORT_DIPSETTING( 0x03, "Axe" ) + PORT_DIPSETTING( 0x02, "Shield" ) + PORT_DIPSETTING( 0x01, "Super Weapon" ) +// PORT_DIPSETTING( 0x00, "INVALID !" ) + PORT_DIPNAME( 0x38, 0x30, "Armor on New Life" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):4,5,6") +// PORT_DIPSETTING( 0x38, "Silver Armor" ) + PORT_DIPSETTING( 0x18, "Golden Armor" ) + PORT_DIPSETTING( 0x30, "Silver Armor" ) + PORT_DIPSETTING( 0x28, "None (young man)" ) + PORT_DIPSETTING( 0x20, "None (old man)" ) +// PORT_DIPSETTING( 0x10, "INVALID !" ) +// PORT_DIPSETTING( 0x08, "INVALID !" ) +// PORT_DIPSETTING( 0x00, "INVALID !" ) + + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(B):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_MODIFY("DSWA") + /* Standard Dip Switches */ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):1,2,3") + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):4,5,6") + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) ) + /* Debug Dip Switches */ + PORT_DIPNAME( 0x0f, 0x0f, "Starting Level" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):1,2,3,4") + PORT_DIPSETTING( 0x0f, "Level 1 (1st half)" ) + PORT_DIPSETTING( 0x0e, "Level 1 (2nd half)" ) + PORT_DIPSETTING( 0x0d, "Level 2 (1st half)" ) + PORT_DIPSETTING( 0x0c, "Level 2 (2nd half)" ) + PORT_DIPSETTING( 0x0b, "Level 3 (1st half)" ) + PORT_DIPSETTING( 0x0a, "Level 3 (2nd half)" ) + PORT_DIPSETTING( 0x09, "Level 4 (1st half)" ) + PORT_DIPSETTING( 0x08, "Level 4 (2nd half)" ) + PORT_DIPSETTING( 0x07, "Level 5 (1st half)" ) + PORT_DIPSETTING( 0x06, "Level 5 (2nd half)" ) + PORT_DIPSETTING( 0x05, "Level 6" ) +// PORT_DIPSETTING( 0x04, "INVALID !" ) +// PORT_DIPSETTING( 0x03, "INVALID !" ) +// PORT_DIPSETTING( 0x02, "INVALID !" ) +// PORT_DIPSETTING( 0x01, "INVALID !" ) +// PORT_DIPSETTING( 0x00, "INVALID !" ) + PORT_DIPNAME( 0x10, 0x10, "Invulnerability" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, "Slow Motion" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8") + PORT_DIPSETTING( 0xc0, "Upright 1 Player" ) + PORT_DIPSETTING( 0x80, "Upright 2 Players" ) +// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) // Manual says these are both valid settings + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) // for 2-player cocktail cabinet +INPUT_PORTS_END + +/* Same as 'ghouls' but additional "Freeze" Dip Switch */ +static INPUT_PORTS_START( daimakai ) + PORT_INCLUDE(ghouls) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(B):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) // This switch isn't documented in the manual + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +/* "Debug" features to be implemented */ +static INPUT_PORTS_START( strider ) + PORT_INCLUDE( cps1_3b ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8") + PORT_DIPSETTING( 0xc0, "Upright 1 Player" ) // These switches are not documented in the manual + PORT_DIPSETTING( 0x80, "Upright 2 Players" ) +// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + + PORT_START("DSWB") /* Like Ghouls, Strider manual states "B" (or 2) as the recommended difficulty level. */ + PORT_DIPNAME( 0x07, 0x05, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x04, "1 (Easiest)" ) + PORT_DIPSETTING( 0x05, "2" ) + PORT_DIPSETTING( 0x06, "3" ) + PORT_DIPSETTING( 0x07, "4 (Normal)" ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x02, "6" ) + PORT_DIPSETTING( 0x01, "7" ) + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + /* In 'striderj', bit 3 is stored at 0xff8e77 ($e77,A5) via code at 0x000a2a, + but this address is never checked again. + In 'strider' and 'stridrjr', this code even doesn't exist ! */ + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(B):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) // Manual says this is 2c start/1c continue but it + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // doesn't work (see comment above) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6") +/* These show in test mode */ + PORT_DIPSETTING( 0x30, "20K, 40K then every 60K" ) + PORT_DIPSETTING( 0x20, "30K, 50K then every 70K" ) + PORT_DIPSETTING( 0x10, "20K & 60K only" ) + PORT_DIPSETTING( 0x00, "30K & 60K only" ) +/* According to manual, these are the proper settings + PORT_DIPSETTING( 0x30, "40K, 70K then every 80K" ) + PORT_DIPSETTING( 0x20, "20K, 50K then every 70K" ) + PORT_DIPSETTING( 0x10, "10k, 30k then every 30k" ) + PORT_DIPSETTING( 0x00, "30K, 60k then every 70k" ) +*/ + + PORT_DIPNAME( 0xc0, 0x80, "Internal Diff. on Life Loss" ) PORT_DIPLOCATION("SW(B):7,8") + PORT_DIPSETTING( 0xc0, "-3" ) // Check code at 0x00d15a +// PORT_DIPSETTING( 0x40, "-1" ) // These switches are not documented in the manual + PORT_DIPSETTING( 0x00, "-1" ) + PORT_DIPSETTING( 0x80, "Default" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x00, "2" ) // "6" in the "test mode" and manual + PORT_DIPSETTING( 0x03, "3" ) + PORT_DIPSETTING( 0x02, "4" ) + PORT_DIPSETTING( 0x01, "5" ) + PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features +INPUT_PORTS_END + +/* Same as 'strider' but additional "2 Coins to Start, 1 to Continue" Dip Switch */ +/* "Debug" features to be implemented */ +static INPUT_PORTS_START( stridrua ) + PORT_INCLUDE( strider ) + + PORT_MODIFY("DSWB") + /* In 'striderj', bit 3 is stored at 0xff8e77 ($e77,A5) via code at 0x000a2a, + but this address is never checked again. + In 'strider' and 'stridrjr', this code even doesn't exist ! */ + PORT_DIPNAME( 0x08, 0x08, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(B):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) // This works in this revision + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( dynwar ) + PORT_INCLUDE( cps1_3b ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW(C):1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) // Also affects energy cost - read notes + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // This switch is not documented in the manual + PORT_DIPNAME( 0x02, 0x02, "Turbo Mode" ) PORT_DIPLOCATION("SW(C):2") + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) // Also affects energy cost - read notes + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // This switch is not documented in the manual + PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" ) // This switch is not documented in the manual + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(C):4" ) // This switch is not documented in the manual + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // "ON" in the "test mode" + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) // "OFF" in the "test mode" + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) // "ON" in the "test mode" + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) // "OFF" in the "test mode" + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_2( "SW(B)" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" ) // These five switches are not documented in the + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" ) // manual + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWA") + /* According to the manual, ALL switches 1 to 6 must be ON to have + "2 Coins/1 Credit (1 to continue)" for both coin slots */ + CPS1_COINAGE_3( "SW(A)" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" ) // This switch is not documented in the manual + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(A):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) // This switch is not documented in the manual + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +/* Read the notes to know how to activate the "debug" features */ +static INPUT_PORTS_START( willow ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWC") + /* Standard Dip Switches */ + PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x02, "1" ) + PORT_DIPSETTING( 0x03, "2" ) + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPNAME( 0x0c, 0x08, "Vitality" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):3,4") + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPSETTING( 0x0c, "3" ) + PORT_DIPSETTING( 0x08, "4" ) + PORT_DIPSETTING( 0x04, "5" ) + /* Debug Dip Switches */ + PORT_DIPNAME( 0x01, 0x01, "Turbo Mode" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "Freeze" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):2") + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, "Slow Motion" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + /* Standard Dip Switches */ + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + /* Debug Dip Switches */ + PORT_DIPNAME( 0x20, 0x20, "Display Debug Infos" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features + + PORT_START("DSWB") + /* Standard Dip Switches */ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x04, "1 (Easiest)" ) + PORT_DIPSETTING( 0x05, "2" ) + PORT_DIPSETTING( 0x06, "3" ) + PORT_DIPSETTING( 0x07, "4 (Normal)" ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x02, "6" ) + PORT_DIPSETTING( 0x01, "7" ) + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + PORT_DIPNAME( 0x18, 0x18, "Nando Speed" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x10, "Slow" ) + PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x08, "Fast" ) + PORT_DIPSETTING( 0x00, "Very Fast" ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "Stage Magic Continue" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + /* Debug Dip Switches */ + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x1e, 0x1e, "Slow Motion Delay" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):2,3,4,5") + PORT_DIPSETTING( 0x1e, "2 Frames" ) + PORT_DIPSETTING( 0x1c, "3 Frames" ) + PORT_DIPSETTING( 0x1a, "4 Frames" ) + PORT_DIPSETTING( 0x18, "5 Frames" ) + PORT_DIPSETTING( 0x16, "6 Frames" ) + PORT_DIPSETTING( 0x14, "7 Frames" ) + PORT_DIPSETTING( 0x12, "8 Frames" ) + PORT_DIPSETTING( 0x10, "9 Frames" ) + PORT_DIPSETTING( 0x0e, "10 Frames" ) + PORT_DIPSETTING( 0x0c, "11 Frames" ) + PORT_DIPSETTING( 0x0a, "12 Frames" ) + PORT_DIPSETTING( 0x08, "13 Frames" ) + PORT_DIPSETTING( 0x06, "14 Frames" ) + PORT_DIPSETTING( 0x04, "15 Frames" ) + PORT_DIPSETTING( 0x02, "16 Frames" ) + PORT_DIPSETTING( 0x00, "17 Frames" ) + PORT_DIPNAME( 0xe0, 0xe0, "Starting Level" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):6,7,8") + PORT_DIPSETTING( 0xe0, "Level 1" ) + PORT_DIPSETTING( 0xc0, "Level 2" ) + PORT_DIPSETTING( 0xa0, "Level 3" ) + PORT_DIPSETTING( 0x80, "Level 4" ) + PORT_DIPSETTING( 0x60, "Level 5" ) + PORT_DIPSETTING( 0x40, "Level 6" ) +// PORT_DIPSETTING( 0x20, "INVALID !" ) +// PORT_DIPSETTING( 0x00, "INVALID !" ) + + PORT_START("DSWA") + /* Standard Dip Switches */ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):1,2,3") + PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):4,5,6") + PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) + PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):7,8") + PORT_DIPSETTING( 0xc0, "Upright 1 Player" ) + PORT_DIPSETTING( 0x80, "Upright 2 Players" ) +// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + /* Debug Dip Switches */ + PORT_DIPNAME( 0x3f, 0x3f, DEF_STR( Free_Play ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):1,2,3,4,5,6") + PORT_DIPSETTING( 0x3f, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x38, DEF_STR( On ) ) + /* Other values don't give free play */ + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, "Upright 1 Player" ) + PORT_DIPSETTING( 0x00, "Upright 2 Players" ) + PORT_DIPNAME( 0x80, 0x80, "Maximum magic/sword power" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +/* To enable extra choices in the "test mode", you must press "Coin 1" ('5') AND "Service Mode" ('F2') */ +static INPUT_PORTS_START( unsquad ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_3( "SW(A)" ) + /* According to the manual, ALL bits 0 to 5 must be ON to have + "2 Coins/1 Credit (1 to continue)" for both coin slots */ + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPNAME( 0x18, 0x18, "Damage" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x10, "Small" ) // Check code at 0x006f4e + PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x08, "Big" ) + PORT_DIPSETTING( 0x00, "Biggest" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +/* To enable other choices in the "test mode", you must press ("P1 Button 1" ('Ctrl') + or "P1 Button 2" ('Alt')) when "Service Mode" is ON */ +static INPUT_PORTS_START( ffight ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME ("P1 Button 3 (Cheat)") + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME ("P2 Button 3 (Cheat)") + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01" + PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02" + PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03" + PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04" + PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05" + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06" + PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07" + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08" + PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01" + PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02" + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03" + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04" + PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):6,7") + PORT_DIPSETTING( 0x60, "100k" ) + PORT_DIPSETTING( 0x40, "200k" ) + PORT_DIPSETTING( 0x20, "100k and every 200k" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x03, "2" ) + PORT_DIPSETTING( 0x02, "3" ) + PORT_DIPSETTING( 0x01, "4" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( 1941 ) + PORT_INCLUDE( cps1_2b ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPNAME( 0x18, 0x18, "Level Up Timer" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x18, "More Slowly" ) + PORT_DIPSETTING( 0x10, "Slowly" ) + PORT_DIPSETTING( 0x08, "Quickly" ) + PORT_DIPSETTING( 0x00, "More Quickly" ) + PORT_DIPNAME( 0x60, 0x60, "Bullet's Speed" ) PORT_DIPLOCATION("SW(B):6,7") + PORT_DIPSETTING( 0x60, "Very Slow" ) + PORT_DIPSETTING( 0x40, "Slow" ) + PORT_DIPSETTING( 0x20, "Fast" ) + PORT_DIPSETTING( 0x00, "Very Fast" ) + PORT_DIPNAME( 0x80, 0x80, "Initial Vitality" ) PORT_DIPLOCATION("SW(B):8") + PORT_DIPSETTING( 0x80, "3 Bars" ) + PORT_DIPSETTING( 0x00, "4 Bars" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x01, 0x01, "Throttle Game Speed" ) PORT_DIPLOCATION("SW(C):1") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // turning this off will break the game + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( mercs ) + PORT_INCLUDE( cps1_3players ) + + PORT_MODIFY("IN0") + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" ) // These three switches are not documented in + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" ) // the manual + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented in the manual + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(B):4") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x08, "3" ) // This setting can't be used in two-player mode + PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(B):5") + PORT_DIPSETTING( 0x00, "2 Players" ) + PORT_DIPSETTING( 0x10, "3 Players" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // These three switches are not documented in + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // the manual + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // These three switches are not documented in + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // the manual + PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW(C):8" ) +INPUT_PORTS_END + +/* According to code at 0x001c4e ('mtwins') or ('chikij') , ALL bits 0 to 5 of DSWA + must be ON to have "2 Coins/1 Credit (1 to continue)" for both coin slots. + But according to routine starting at 0x06b27c ('mtwins') or 0x06b4fa ('chikij'), + bit 6 of DSWA is tested to have the same "feature" in the "test mode". + + Bits 3 and 4 of DSWB affect the number of lives AND the level of damage when you get hit. + When bit 5 of DSWB is ON you ALWAYS have 1 life but more energy (0x38 instead of 0x20). + Useful addresses to know : + - 0xff147b.b : lives (player 1) + - 0xff153b.b : lives (player 2) + - 0xff14ab.w : energy (player 1) + - 0xff156b.w : energy (player 2) +*/ +static INPUT_PORTS_START( mtwins ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPNAME( 0x38, 0x18, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6") +// PORT_DIPSETTING( 0x30, "1" ) // 0x38 energy, smallest damage +// PORT_DIPSETTING( 0x38, "1" ) // 0x38 energy, small damage +// PORT_DIPSETTING( 0x28, "1" ) // 0x38 energy, big damage +// PORT_DIPSETTING( 0x20, "1" ) // 0x38 energy, biggest damage + PORT_DIPSETTING( 0x10, "1" ) // 0x20 energy, smallest damage + PORT_DIPSETTING( 0x18, "2" ) // 0x20 energy, small damage + PORT_DIPSETTING( 0x08, "3" ) // 0x20 energy, big damage + PORT_DIPSETTING( 0x00, "4" ) // 0x20 energy, biggest damage + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +/* I guess that bit 8 of DSWB was used for debug purpose : + - code at 0x001094 : move players during "attract mode" + - code at 0x019b62 ('msword' and 'mswordr1'), 0x019bde ('mswordu') or 0x019c26 ('mswordj') : unknown effect + - code at 0x01c322 ('msword' and 'mswordr1'), 0x01c39e ('mswordu') or 0x01c3e0 ('mswordj') : unknown effect + These features are not available because of the 'bra' instruction after the test of bit 7. */ +static INPUT_PORTS_START( msword ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Player's vitality consumption" ) PORT_DIPLOCATION("SW(B):1,2,3") // "Level 1" + PORT_DIPSETTING( 0x07, "1 (Easiest)" ) // "Easy 3" (-1 every 28 frames) + PORT_DIPSETTING( 0x06, "2" ) // "Easy 2" (-1 every 24 frames) + PORT_DIPSETTING( 0x05, "3" ) // "Easy 1" (-1 every 20 frames) + PORT_DIPSETTING( 0x04, "4 (Normal)" ) // DEF_STR( Normal ) (-1 every 18 frames) + PORT_DIPSETTING( 0x03, "5" ) // "Difficult 1" (-1 every 16 frames) + PORT_DIPSETTING( 0x02, "6" ) // "Difficult 2" (-1 every 14 frames) + PORT_DIPSETTING( 0x01, "7" ) // "Difficult 3" (-1 every 12 frames) + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) // "Difficult 4" (-1 every 8 frames) + PORT_DIPNAME( 0x38, 0x38, "Enemy's vitality and attacking power" ) PORT_DIPLOCATION("SW(B):4,5,6") // "Level 2" + PORT_DIPSETTING( 0x20, "1 (Easiest)" ) // "Easy 3" + PORT_DIPSETTING( 0x28, "2" ) // "Easy 2" + PORT_DIPSETTING( 0x30, "3" ) // "Easy 1" + PORT_DIPSETTING( 0x38, "4 (Normal)" ) // DEF_STR( Normal ) + PORT_DIPSETTING( 0x18, "5" ) // "Difficult 1" + PORT_DIPSETTING( 0x10, "6" ) // "Difficult 2" + PORT_DIPSETTING( 0x08, "7" ) // "Difficult 3" + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) // "Difficult 4" + PORT_DIPNAME( 0x40, 0x00, "Stage Select" ) PORT_DIPLOCATION("SW(B):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, "Vitality Packs" ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x00, "1" ) // 0x0320 + PORT_DIPSETTING( 0x03, "2" ) // 0x0640 + PORT_DIPSETTING( 0x02, "3 (2 when continue)" ) // 0x0960 (0x0640 when continue) + PORT_DIPSETTING( 0x01, "4 (3 when continue)" ) // 0x0c80 (0x0960 when continue) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( cawing ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) // Overrides all other coinage settings + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // according to manual + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Difficulty Level (Enemy's Strength)" ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, "1 (Easiest)" ) + PORT_DIPSETTING( 0x06, "2" ) + PORT_DIPSETTING( 0x05, "3" ) + PORT_DIPSETTING( 0x04, "4 (Normal)" ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x02, "6" ) + PORT_DIPSETTING( 0x01, "7" ) + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + PORT_DIPNAME( 0x18, 0x18, "Difficulty Level (Player's Strength)" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // This switch is not documented + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // This switch is not documented + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) // This switch is not documented + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // This switch is not documented + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // This switch is not documented + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +/* "Debug" features to be implemented */ +static INPUT_PORTS_START( nemo ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPNAME( 0x18, 0x18, "Life Bar" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x00, "Minimun" ) + PORT_DIPSETTING( 0x18, DEF_STR( Medium ) ) +// PORT_DIPSETTING( 0x10, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x08, "Maximum" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x02, "1" ) + PORT_DIPSETTING( 0x03, "2" ) + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features +INPUT_PORTS_END + +INPUT_PORTS_START( sf2 ) + PORT_INCLUDE( cps1_6b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" ) + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( sf2j ) + PORT_INCLUDE( sf2 ) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x08, 0x00, "2 Players Game" ) PORT_DIPLOCATION("SW(B):4") + PORT_DIPSETTING( 0x08, "1 Credit/No Continue" ) + PORT_DIPSETTING( 0x00, "2 Credits/Winner Continue" ) //Winner stays, loser pays, in other words. +INPUT_PORTS_END + +static INPUT_PORTS_START( sf2hack ) + PORT_INCLUDE( sf2 ) + + PORT_MODIFY("IN2") /* Extra buttons */ + PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +static INPUT_PORTS_START( sf2m2 ) + PORT_INCLUDE( sf2hack ) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x10, 0x00, "It needs to be High" ) PORT_DIPLOCATION("SW(B):5") + PORT_DIPSETTING( 0x10, DEF_STR ( Low ) ) + PORT_DIPSETTING( 0x00, DEF_STR ( High ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( sf2m4 ) + PORT_INCLUDE( sf2hack ) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x08, 0x00, "2 Players Game" ) PORT_DIPLOCATION("SW(B):4") + PORT_DIPSETTING( 0x08, "1 Credit/No Continue" ) + PORT_DIPSETTING( 0x00, "2 Credits/Winner Continue" ) //Winner stays, loser pays, in other words. +INPUT_PORTS_END + +/* SWB.4, SWB.5 and SWB.6 need to be enabled simultaneously for turbo mode */ +static INPUT_PORTS_START( sf2amf ) + PORT_INCLUDE( sf2hack ) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x08, 0x08, "Turbo Mode Switch 1 of 3" ) PORT_DIPLOCATION("SW(B):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, "Turbo Mode Switch 2 of 3" ) PORT_DIPLOCATION("SW(B):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, "Turbo Mode Switch 3 of 3" ) PORT_DIPLOCATION("SW(B):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( 3wonders ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_CONDITION("DSWA", 0x3f,NOTEQUALS,0x00) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_CONDITION("DSWA", 0x3f, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + /* Free Play: ALL bits 0 to 7 must be ON ; 4C_1C, 4C_1C, 2 Coins to Start, 1 to Continue ON */ + PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(A):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x03, 0x02, "Lives (Midnight Wanderers)" ) PORT_DIPLOCATION("SW(B):1,2") + PORT_DIPSETTING( 0x03, "1" ) + PORT_DIPSETTING( 0x02, "2" ) + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0x0c, 0x08, "Difficulty (Midnight Wanderers)" ) PORT_DIPLOCATION("SW(B):3,4") + PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x30, 0x10, "Lives (Chariot)" ) PORT_DIPLOCATION("SW(B):5,6") + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x20, "2" ) + PORT_DIPSETTING( 0x10, "3" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0xc0, 0x80, "Difficulty (Chariot)" ) PORT_DIPLOCATION("SW(B):7,8") + PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x01, "Lives (Don't Pull)" ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x03, "1" ) + PORT_DIPSETTING( 0x02, "2" ) + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0x0c, 0x08, "Difficulty (Don't Pull)" ) PORT_DIPLOCATION("SW(C):3,4") + PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( kod ) + PORT_INCLUDE( cps1_3players ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(A):5") + PORT_DIPSETTING( 0x00, "2 Players" ) + PORT_DIPSETTING( 0x10, "3 Players" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6") + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x38, "2" ) + PORT_DIPSETTING( 0x28, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x18, "5" ) + PORT_DIPSETTING( 0x10, "6" ) + PORT_DIPSETTING( 0x08, "7" ) + PORT_DIPSETTING( 0x00, "8" ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8") + PORT_DIPSETTING( 0x80, "80k and every 400k" ) + PORT_DIPSETTING( 0x40, "160k and every 450k" ) + PORT_DIPSETTING( 0xc0, "200k and every 450k" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +/* Needs further checking + Same as kod but different "Bonus_life" values */ +static INPUT_PORTS_START( kodr1 ) + PORT_INCLUDE( kod ) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8") + PORT_DIPSETTING( 0x80, "80k and every 400k" ) + PORT_DIPSETTING( 0xc0, "100k and every 450k" ) + PORT_DIPSETTING( 0x40, "160k and every 450k" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) +INPUT_PORTS_END + + +INPUT_PORTS_START( captcomm ) + PORT_INCLUDE( cps1_4players ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" ) // The manual says to leave these three + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" ) // switches off. Does turning them on cause + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) // any "undesirable" behaviour? + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // Unused according to manual + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Difficulty 1" ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, "1 (Easiest)" ) + PORT_DIPSETTING( 0x06, "2" ) + PORT_DIPSETTING( 0x05, "3" ) + PORT_DIPSETTING( 0x04, "4 (Normal)" ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x02, "6" ) + PORT_DIPSETTING( 0x01, "7" ) + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + PORT_DIPNAME( 0x18, 0x10, "Difficulty 2" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // Manual says to leave this switch off. + PORT_DIPNAME( 0xc0, 0xc0, "Play Mode" ) PORT_DIPLOCATION("SW(B):7,8") + PORT_DIPSETTING( 0x40, "1 Players" ) // Actual setting is 4 players + PORT_DIPSETTING( 0xc0, "2 Players" ) + PORT_DIPSETTING( 0x80, "3 Players" ) + PORT_DIPSETTING( 0x00, "4 Players" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x03, "2" ) + PORT_DIPSETTING( 0x02, "3" ) + PORT_DIPSETTING( 0x01, "4" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +INPUT_PORTS_START( knights ) + PORT_INCLUDE( cps1_3players ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" ) + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Enemy's attack frequency" ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, "1 (Easiest)" ) + PORT_DIPSETTING( 0x06, "2" ) + PORT_DIPSETTING( 0x05, "3" ) + PORT_DIPSETTING( 0x04, "4 (Normal)" ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x02, "6" ) + PORT_DIPSETTING( 0x01, "7" ) + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + PORT_DIPNAME( 0x38, 0x38, "Enemy's attack power" ) PORT_DIPLOCATION("SW(B):4,5,6") + PORT_DIPSETTING( 0x00, "1 (Easiest)" ) + PORT_DIPSETTING( 0x08, "2" ) + PORT_DIPSETTING( 0x10, "3" ) + PORT_DIPSETTING( 0x38, "4 (Normal)" ) + PORT_DIPSETTING( 0x30, "5" ) + PORT_DIPSETTING( 0x28, "6" ) + PORT_DIPSETTING( 0x20, "7" ) + PORT_DIPSETTING( 0x18, "8 (Hardest)" ) + PORT_DIPNAME( 0x40, 0x40, "Coin Slots" ) PORT_DIPLOCATION("SW(B):7") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x40, "3" ) + PORT_DIPNAME( 0x80, 0x80, "Play Mode" ) PORT_DIPLOCATION("SW(B):8") + PORT_DIPSETTING( 0x00, "2 Players" ) + PORT_DIPSETTING( 0x80, "3 Players" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x03, "2" ) + PORT_DIPSETTING( 0x02, "3" ) + PORT_DIPSETTING( 0x01, "4" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +INPUT_PORTS_START( varth ) // HBMAME + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_1( "SW(A)" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x18, "600k and every 1.400k" ) + PORT_DIPSETTING( 0x10, "600k 2.000k and 4500k" ) + PORT_DIPSETTING( 0x08, "1.200k 3.500k" ) + PORT_DIPSETTING( 0x00, "2000k only" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x02, "1" ) + PORT_DIPSETTING( 0x01, "2" ) + PORT_DIPSETTING( 0x03, "3" ) + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( cworld2j ) + PORT_INCLUDE( cps1_quiz ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "Extended Test Mode" ) PORT_DIPLOCATION("SW(A):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x06, "0" ) + PORT_DIPSETTING( 0x05, "1" ) + PORT_DIPSETTING( 0x04, "2" ) + PORT_DIPSETTING( 0x03, "3" ) + PORT_DIPSETTING( 0x02, "4" ) + PORT_DIPNAME( 0x18, 0x18, "Extend" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x18, "N" ) + PORT_DIPSETTING( 0x10, "E" ) + PORT_DIPSETTING( 0x00, "D" ) + PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x80, "2" ) + PORT_DIPSETTING( 0xe0, "3" ) + PORT_DIPSETTING( 0xa0, "4" ) + PORT_DIPSETTING( 0xc0, "5" ) + + PORT_START("DSWC") + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + + PORT_START("IN2") /* check code at 0x000614, 0x0008ac and 0x000e36 */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( wof ) + PORT_INCLUDE( cps1_3players ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWB") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN3") /* Player 4 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + +INPUT_PORTS_START( dino ) + PORT_INCLUDE( cps1_3players ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWB") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN3") /* Player 4 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + + +static INPUT_PORTS_START( dinoh ) + PORT_INCLUDE( dino ) + + PORT_MODIFY("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(B):4") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x08, "3" ) // This setting can't be used in two-player mode + PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(B):5") + PORT_DIPSETTING( 0x00, "2 Players" ) + PORT_DIPSETTING( 0x10, "3 Players" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) // This switch is not documented in the manual + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented in the manual + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01" + PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02" + PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03" + PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04" + PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05" + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06" + PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07" + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08" + PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01" + PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02" + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03" + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04" + PORT_DIPNAME( 0x60, 0x40, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):6,7") + PORT_DIPSETTING( 0x60, "300k and 700k" ) + PORT_DIPSETTING( 0x40, "500k and 1000k" ) + PORT_DIPSETTING( 0x20, "1000k" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_MODIFY("DSWC") + PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x02, "2" ) + PORT_DIPSETTING( 0x03, "1" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) +// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) +INPUT_PORTS_END + +INPUT_PORTS_START( punisher ) + PORT_INCLUDE( cps1_2b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWB") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN2") /* Player 3 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("IN3") /* Player 4 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + + +static INPUT_PORTS_START( punisherbz ) + PORT_INCLUDE( punisher ) + + PORT_MODIFY("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPNAME( 0x08, 0x08, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x30, 0x20, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(A):5,6") + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x20, "2" ) + PORT_DIPSETTING( 0x10, "3" ) + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPNAME( 0x40, 0x40, "Sound" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, "Q Sound" ) + PORT_DIPSETTING( 0x00, "Monaural" ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(A):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, "Extra Easy" ) + PORT_DIPSETTING( 0x06, DEF_STR( Very_Easy) ) + PORT_DIPSETTING( 0x05, DEF_STR( Easy) ) + PORT_DIPSETTING( 0x04, DEF_STR( Normal) ) + PORT_DIPSETTING( 0x03, DEF_STR( Hard) ) + PORT_DIPSETTING( 0x02, DEF_STR( Very_Hard) ) + PORT_DIPSETTING( 0x01, "Extra Hard" ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest) ) + PORT_DIPNAME( 0x18, 0x10, "Extend" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x18, "800000" ) + PORT_DIPSETTING( 0x10, "1800000" ) + PORT_DIPSETTING( 0x08, "2800000" ) + PORT_DIPSETTING( 0x00, "No Extend" ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(B):6") + PORT_DIPSETTING( 0x20, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(B):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_MODIFY("DSWC") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +/* Needs further checking */ +INPUT_PORTS_START( slammast ) + PORT_INCLUDE( cps1_4players ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) + + PORT_START("DSWA") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWB") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( pnickj ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4") + PORT_DIPSETTING( 0x08, "1" ) + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" ) + PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(A):7" ) + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPNAME( 0xc0, 0xc0, "Vs Play Mode" ) PORT_DIPLOCATION("SW(B):7,8") + PORT_DIPSETTING( 0xc0, "1 Game Match" ) + PORT_DIPSETTING( 0x80, "3 Games Match" ) + PORT_DIPSETTING( 0x40, "5 Games Match" ) + PORT_DIPSETTING( 0x00, "7 Games Match" ) + + PORT_START("DSWC") + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW(C):3" ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(C):7" ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( qad ) + PORT_INCLUDE( cps1_quiz ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" ) // Manual says these are for coin 2, but they + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" ) // coin to setting, but they clearly don't do + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" ) // that. + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3") +// PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // Controls overall difficulty + PORT_DIPSETTING( 0x06, DEF_STR( Easiest ) ) // Manual documents duplicate settings + PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x03, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Hardest ) ) +// PORT_DIPSETTING( 0x01, DEF_STR( Hardest ) ) +// PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x18, 0x10, "Wisdom (questions to win game)" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // Controls number of needed questions to finish + PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8") + PORT_DIPSETTING( 0x60, "1" ) + PORT_DIPSETTING( 0x80, "2" ) + PORT_DIPSETTING( 0xa0, "3" ) + PORT_DIPSETTING( 0xc0, "4" ) + PORT_DIPSETTING( 0xe0, "5" ) +// PORT_DIPSETTING( 0x40, "1" ) // These three settings are not documented +// PORT_DIPSETTING( 0x20, "1" ) +// PORT_DIPSETTING( 0x00, "1" ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + + PORT_START("IN2") /* check code at 0x01d2d2 */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( qadjr ) + PORT_INCLUDE( qad ) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, "0" ) + PORT_DIPSETTING( 0x06, "1" ) + PORT_DIPSETTING( 0x05, "2" ) + PORT_DIPSETTING( 0x04, "3" ) + PORT_DIPSETTING( 0x03, "4" ) +// PORT_DIPSETTING( 0x02, "4" ) +// PORT_DIPSETTING( 0x01, "4" ) +// PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" ) + PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8") + PORT_DIPSETTING( 0xa0, "1" ) + PORT_DIPSETTING( 0xc0, "2" ) + PORT_DIPSETTING( 0xe0, "3" ) +// PORT_DIPSETTING( 0x00, "1" ) +// PORT_DIPSETTING( 0x20, "1" ) +// PORT_DIPSETTING( 0x80, "1" ) +// PORT_DIPSETTING( 0x40, "2" ) +// PORT_DIPSETTING( 0x60, "3" ) + + PORT_MODIFY("IN2") /* check code at 0x000c48 */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN3") /* check code at 0x000c3e */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( qtono2j ) + PORT_INCLUDE( cps1_quiz ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" ) + PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8") + PORT_DIPSETTING( 0x60, "1" ) + PORT_DIPSETTING( 0x80, "2" ) + PORT_DIPSETTING( 0xe0, "3" ) + PORT_DIPSETTING( 0xa0, "4" ) + PORT_DIPSETTING( 0xc0, "5" ) +// PORT_DIPSETTING( 0x40, "?" ) +// PORT_DIPSETTING( 0x20, "?" ) +// PORT_DIPSETTING( 0x00, "?" ) + + PORT_START("DSWC") + PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPNAME( 0x02, 0x02, "Infinite Lives (Cheat)") PORT_DIPLOCATION("SW(C):2") + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + + PORT_START("IN2") /* check code at 0x000f80 */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN3") /* check code at 0x000f76 */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( pang3 ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWB") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWC") + PORT_DIPUNUSED( 0x01, 0x01 ) + PORT_DIPUNUSED( 0x02, 0x02 ) + PORT_DIPUNUSED( 0x04, 0x04 ) + PORT_DIPUNUSED( 0x08, 0x08 ) + PORT_DIPUNUSED( 0x10, 0x10 ) + PORT_DIPUNUSED( 0x20, 0x20 ) + PORT_DIPUNUSED( 0x40, 0x40 ) + PORT_DIPUNUSED( 0x80, 0x80 ) /* doubles up as an extra service switch */ + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( pang3b ) + PORT_INCLUDE( pang3 ) + + PORT_MODIFY("DSWC") + PORT_DIPUNUSED( 0x01, 0x01 ) + PORT_DIPUNUSED( 0x02, 0x02 ) + PORT_DIPUNUSED( 0x04, 0x04 ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED( 0x10, 0x10 ) + PORT_DIPUNUSED( 0x20, 0x20 ) + PORT_DIPUNUSED( 0x40, 0x40 ) + PORT_DIPUNUSED( 0x80, 0x80 ) +INPUT_PORTS_END + +/* Needs further checking */ +static INPUT_PORTS_START( megaman ) + PORT_INCLUDE( cps1_3b ) + + PORT_MODIFY("IN0") + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + + PORT_START("DSWA") + PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW(A):1,2,3,4,5") + PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 8C_1C ) ) + PORT_DIPSETTING( 0x11, DEF_STR( 7C_1C ) ) + PORT_DIPSETTING( 0x12, DEF_STR( 6C_1C ) ) + PORT_DIPSETTING( 0x13, DEF_STR( 5C_1C ) ) + PORT_DIPSETTING( 0x14, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x15, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x16, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x0e, "2 Coins to Start, 1 to Continue" ) + PORT_DIPSETTING( 0x1f, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x1e, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x1d, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x1c, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0x1b, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x1a, DEF_STR( 1C_6C ) ) + PORT_DIPSETTING( 0x19, DEF_STR( 1C_7C ) ) + PORT_DIPSETTING( 0x18, DEF_STR( 1C_8C ) ) + PORT_DIPSETTING( 0x17, DEF_STR( 1C_9C ) ) + PORT_DIPSETTING( 0x0d, DEF_STR( Free_Play ) ) + /* 0x00 to 0x0c 1 Coin/1 Credit */ + PORT_DIPNAME( 0x60, 0x60, "Coin slots" ) PORT_DIPLOCATION("SW(A):6,7") +// PORT_DIPSETTING( 0x00, "Invalid" ) + PORT_DIPSETTING( 0x20, "1, Common" ) + PORT_DIPSETTING( 0x60, "2, Common" ) + PORT_DIPSETTING( 0x40, "2, Individual" ) + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2") + PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x0c, 0x0c, "Time" ) PORT_DIPLOCATION("SW(B):3,4") + PORT_DIPSETTING( 0x0c, "100" ) + PORT_DIPSETTING( 0x08, "90" ) + PORT_DIPSETTING( 0x04, "70" ) + PORT_DIPSETTING( 0x00, "60" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPNAME( 0x40, 0x40, "Voice" ) PORT_DIPLOCATION("SW(B):7") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):2") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(C):4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(C):5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(C):6" ) + PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(C):7" ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + +/* Needs further checking */ +/* Same as 'megaman' but no "Voice" Dip Switch */ +static INPUT_PORTS_START( rockmanj ) + PORT_INCLUDE(megaman) + + PORT_MODIFY("DSWB") + PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(B):7" ) +INPUT_PORTS_END + +static INPUT_PORTS_START( wofhfh ) + PORT_INCLUDE( wof ) + + PORT_MODIFY("DSWA") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW(A):1,2") + PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, "Extra Easy" ) + PORT_DIPSETTING( 0x06, DEF_STR( Very_Easy) ) + PORT_DIPSETTING( 0x05, DEF_STR( Easy) ) + PORT_DIPSETTING( 0x04, DEF_STR( Normal) ) + PORT_DIPSETTING( 0x03, DEF_STR( Hard) ) + PORT_DIPSETTING( 0x02, DEF_STR( Very_Hard) ) + PORT_DIPSETTING( 0x01, "Extra Hard" ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest) ) + PORT_DIPNAME( 0x70, 0x60, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6") + PORT_DIPSETTING( 0x00, "Start 4 Continue 5" ) + PORT_DIPSETTING( 0x10, "Start 3 Continue 4" ) + PORT_DIPSETTING( 0x20, "Start 2 Continue 3" ) + PORT_DIPSETTING( 0x30, "Start 1 Continue 2" ) + PORT_DIPSETTING( 0x40, "Start 4 Continue 4" ) + PORT_DIPSETTING( 0x50, "Start 3 Continue 3" ) + PORT_DIPSETTING( 0x60, "Start 2 Continue 2" ) + PORT_DIPSETTING( 0x70, "Start 1 Continue 1" ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("DSWC") + PORT_DIPNAME( 0x03, 0x03, "Coin Slots" ) PORT_DIPLOCATION("SW(C):1,2") +// PORT_DIPSETTING( 0x00, "2 Players 1 Shooter" ) + PORT_DIPSETTING( 0x01, "2 Players 1 Shooter" ) + PORT_DIPSETTING( 0x02, "3 Players 1 Shooter" ) + PORT_DIPSETTING( 0x03, "3 Players 3 Shooters" ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + + PORT_MODIFY("IN2") /* Player 3 */ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Coin 3 (P3 Button 3 in-game)") +INPUT_PORTS_END + +static INPUT_PORTS_START( ganbare ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) /* definitely read here in test mode, coin lock prevents it though */ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWA") + PORT_DIPNAME( 0x01, 0x01, "Medal Setup" ) PORT_DIPLOCATION("SW(A):1") + PORT_DIPSETTING( 0x01, "1 Medal 1 Credit" ) + PORT_DIPSETTING( 0x00, "Don't use" ) + PORT_DIPNAME( 0x02, 0x02, "Coin Setup" ) PORT_DIPLOCATION("SW(A):2") + PORT_DIPSETTING( 0x02, "100 Yen" ) + PORT_DIPSETTING( 0x00, "10 Yen" ) + PORT_DIPNAME( 0x1c, 0x1c, "Change Setup" ) PORT_DIPLOCATION("SW(A):3,4,5") + PORT_DIPSETTING( 0x04, "12" ) + PORT_DIPSETTING( 0x00, "11" ) + PORT_DIPSETTING( 0x1c, "10" ) + PORT_DIPSETTING( 0x18, "8" ) + PORT_DIPSETTING( 0x14, "7" ) + PORT_DIPSETTING( 0x10, "6" ) + PORT_DIPSETTING( 0x0c, "5" ) + PORT_DIPSETTING( 0x08, "No change" ) + PORT_DIPNAME( 0x60, 0x60, "10 Yen Setup" ) PORT_DIPLOCATION("SW(A):6,7") + PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x00, "Don't use" ) + PORT_DIPNAME( 0x80, 0x80, "Payout Setup" ) PORT_DIPLOCATION("SW(A):8") + PORT_DIPSETTING( 0x80, "Credit Mode" ) + PORT_DIPSETTING( 0x00, "Payout Mode" ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x07, "Payout Rate Setup" ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x01, "90%" ) + PORT_DIPSETTING( 0x00, "85%" ) + PORT_DIPSETTING( 0x07, "80%" ) + PORT_DIPSETTING( 0x06, "75%" ) + PORT_DIPSETTING( 0x05, "70%" ) + PORT_DIPSETTING( 0x04, "65%" ) + PORT_DIPSETTING( 0x03, "60%" ) + PORT_DIPSETTING( 0x02, "55%" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):1,2") + PORT_DIPSETTING( 0x03, DEF_STR( On ) ) + PORT_DIPSETTING( 0x02, "Every second sound" ) + PORT_DIPSETTING( 0x01, "Every third sound" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW(C):3" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(C):4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(C):5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(C):6" ) + PORT_DIPNAME( 0x40, 0x40, "Clear RAM" ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Tes Mode Display" ) PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( sfzch ) + PORT_START("IN0") /* IN0 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE) PORT_NAME(DEF_STR(Pause)) PORT_CODE(KEYCODE_F1) /* pause */ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) /* pause */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_PLAYER(1) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_PLAYER(2) + + PORT_START("DSWA") + PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0xff, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSWB") + PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0xff, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSWC") + PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0xff, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("IN1") /* Player 1 & 2 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) PORT_8WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) PORT_8WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) PORT_8WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) PORT_8WAY + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(1) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(1) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) PORT_8WAY + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) PORT_8WAY + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) PORT_8WAY + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) PORT_8WAY + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(2) + + PORT_START("IN2") /* Read by wofch */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("IN3") /* Player 4 - not used */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + +INPUT_PORTS_END + +static INPUT_PORTS_START( wofch ) + PORT_INCLUDE( sfzch ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + +/* +A Final Fight board with mismatched USA and Japan GFX proves that the columns +of the 8x8 tilemap alternate between sides of the 16x16 tile resulting +in a corrupt WDUD screen. ffightub is now fixed since a genuine pcb surfaced. +*/ + +static const gfx_layout cps1_layout8x8 = +{ + 8,8, + RGN_FRAC(1,1), + 4, + { 24, 16, 8, 0 }, + { STEP8(0, 1) }, + { STEP8(0, 4*16) }, + 64*8 +}; + +static const gfx_layout cps1_layout8x8_2 = +{ + 8,8, + RGN_FRAC(1,1), + 4, + { 24, 16, 8, 0 }, + { STEP8(32, 1) }, + { STEP8(0, 4*16) }, + 64*8 +}; + +static const gfx_layout cps1_layout16x16 = +{ + 16,16, + RGN_FRAC(1,1), + 4, + { 24, 16, 8, 0 }, + { STEP8(0, 1), STEP8(32, 1) }, + { STEP16(0, 4*16) }, + 4*16*16 +}; + +static const gfx_layout cps1_layout32x32 = +{ + 32,32, + RGN_FRAC(1,1), + 4, + { 24, 16, 8, 0 }, + { STEP8(0, 1), STEP8(32, 1), STEP8(64, 1), STEP8(96, 1) }, + { STEP32(0, 4*32) }, + 4*32*32 +}; + +GFXDECODE_START( cps1 ) + GFXDECODE_ENTRY( "gfx", 0, cps1_layout8x8, 0, 0x100 ) + GFXDECODE_ENTRY( "gfx", 0, cps1_layout8x8_2, 0, 0x100 ) + GFXDECODE_ENTRY( "gfx", 0, cps1_layout16x16, 0, 0x100 ) + GFXDECODE_ENTRY( "gfx", 0, cps1_layout32x32, 0, 0x100 ) +GFXDECODE_END + + + +/******************************************************************** +* +* Machine Driver macro +* ==================== +* +* Abusing the pre-processor. +* +********************************************************************/ + +MACHINE_START_MEMBER(cps_state,common) +{ +} + +MACHINE_START_MEMBER(cps_state,cps1) +{ + MACHINE_START_CALL_MEMBER(common); + membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000); +} + +MACHINE_START_MEMBER(cps_state,qsound) +{ + MACHINE_START_CALL_MEMBER(common); + membank("bank1")->configure_entries(0, 6, memregion("audiocpu")->base() + 0x10000, 0x4000); +} + +static MACHINE_CONFIG_START( cps1_10MHz, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(main_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(sub_map) + + MCFG_MACHINE_START_OVERRIDE(cps_state,cps1) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + + MCFG_VIDEO_START_OVERRIDE(cps_state, cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */ + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + + /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +MACHINE_CONFIG_DERIVED( cps1_12MHz, cps1_10MHz ) + + /* basic machine hardware */ + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_CLOCK( XTAL_12MHz ) /* verified on pcb */ +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( pang3, cps1_12MHz ) + + /* basic machine hardware */ + MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( ganbare, cps1_10MHz ) + + /* basic machine hardware */ + MCFG_CPU_MODIFY("maincpu") + MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cps_state, ganbare_interrupt, "screen", 0, 1) // need to investigate more + + MCFG_M48T35_ADD("m48t35") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( qsound, cps1_12MHz ) + + /* basic machine hardware */ + MCFG_CPU_REPLACE("maincpu", M68000, XTAL_12MHz ) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(qsound_main_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_REPLACE("audiocpu", Z80, XTAL_8MHz) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(qsound_sub_map) + MCFG_CPU_DECRYPTED_OPCODES_MAP(qsound_decrypted_opcodes_map) + MCFG_CPU_PERIODIC_INT_DRIVER(cps_state, irq0_line_hold, 250) // measured (cps2.c) + + MCFG_MACHINE_START_OVERRIDE(cps_state, qsound) + + MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") + + /* sound hardware */ + MCFG_DEVICE_REMOVE("mono") + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + + MCFG_DEVICE_REMOVE("2151") + MCFG_DEVICE_REMOVE("oki") + + MCFG_QSOUND_ADD("qsound", QSOUND_CLOCK) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( wofhfh, cps1_12MHz ) + + /* basic machine hardware */ + MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sf2m3, cps1_12MHz) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(sf2m3_map) +MACHINE_CONFIG_END + + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + +#define CODE_SIZE 0x400000 + +/* B-Board 88621B-2 */ +/* + These ROMs read from a dead and very unique top board. All EPROMs are type 27C1000, except LW_00.13C which is a 27C512. + There are 5 surface mounted ROMs each on it's own small 88621B-sub satellite board, type HN62404FP-18 package is QFP44. + The ROMs on the satellite boards are named and located as follows: + + LW-02 @ 6B + LW-05 @ 6D + LW-08 @ 9B + LW-06 @ 9D + LW-07 @ 10G + + OTHER: + 2 PALs labeled LW621 (near LW_1.2A) and LWI0 (near LW_00.13C) + Custom chip - CAPCOM CPS-B-01 (QFP160) + NEC D4701AC +*/ +/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */ +ROM_START( forgottn ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "lw11.12f", 0x00000, 0x20000, CRC(73e920b7) SHA1(2df12fc1a66f488d06b0927db909da81466d7d07) ) + ROM_LOAD16_BYTE( "lw15.12h", 0x00001, 0x20000, CRC(50d7012d) SHA1(f82a28a835f0a83b26c2c8170b824447b1d7409f) ) + ROM_LOAD16_BYTE( "lw10.13f", 0x40000, 0x20000, CRC(bea45994) SHA1(c419f65c5e0c11ae7508ec54412bf6b62fac4f72) ) + ROM_LOAD16_BYTE( "lw14.13h", 0x40001, 0x20000, CRC(539b2339) SHA1(8a9e452ef8ed05e0b956d36990266657d3077470) ) + ROM_LOAD16_WORD_SWAP( "lw-07.10g", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) // == lw-07.13e + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "lw_2.2b", 0x000000, 0x20000, CRC(4bd75fee) SHA1(c27bfba951a0dc4f493937ceca335c50a1afeddf) , ROM_SKIP(7) ) // == lw-01.9d + ROMX_LOAD( "lw_1.2a", 0x000001, 0x20000, CRC(65f41485) SHA1(fb05dffc87ee2f2b1b6646d54b13671f8eee0429) , ROM_SKIP(7) ) // == lw-01.9d + ROMX_LOAD( "lw-08.9b", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-08.9f + ROMX_LOAD( "lw-05.6d", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-05.9e + ROMX_LOAD( "lw_30.8h", 0x000006, 0x20000, CRC(b385954e) SHA1(d33adb5842e7b85d304836bd92a7a96be4ff3694) , ROM_SKIP(7) ) // == lw-12.9g + ROMX_LOAD( "lw_29.8f", 0x000007, 0x20000, CRC(7bda1ac6) SHA1(5b8bd05f52798f98ae16efa2ff61c06e28a4e3a0) , ROM_SKIP(7) ) // == lw-12.9g + ROMX_LOAD( "lw_4.3b", 0x100000, 0x20000, CRC(50cf757f) SHA1(c70d7d34ac2d6671d40dd372e241ccb60bf3bf2b) , ROM_SKIP(7) ) // == lw-01.9d + ROMX_LOAD( "lw_3.3a", 0x100001, 0x20000, CRC(c03ef278) SHA1(ad33b01bd8194025a2ecf7755894d6d638da457a) , ROM_SKIP(7) ) // == lw-01.9d + ROMX_LOAD( "lw_32.9h", 0x100006, 0x20000, CRC(30967a15) SHA1(6f6c6ca2f40aa9beec63ed64f0571bebc7c1aa50) , ROM_SKIP(7) ) // == lw-12.9g + ROMX_LOAD( "lw_31.9f", 0x100007, 0x20000, CRC(c49d37fb) SHA1(ce400261a0f8d5a9b95d3823f8f52de87b8007f1) , ROM_SKIP(7) ) // == lw-12.9g + ROMX_LOAD( "lw-02.6b", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-02.12d + ROMX_LOAD( "lw_14.10b", 0x200002, 0x20000, CRC(82862cce) SHA1(727ca4ee55e076185b071a49afc87533fde9ec27) , ROM_SKIP(7) ) // == lw-09.12f + ROMX_LOAD( "lw_13.10a", 0x200003, 0x20000, CRC(b81c0e96) SHA1(09f4235786b8ff92a57112669c0385b64477eb01) , ROM_SKIP(7) ) // == lw-09.12f + ROMX_LOAD( "lw-06.9d", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-06.12e + ROMX_LOAD( "lw_26.10e", 0x200006, 0x20000, CRC(57bcd032) SHA1(6db0f96fb909ed02fe4b7ee25fe662ea23f884d2) , ROM_SKIP(7) ) // == lw-13.12g + ROMX_LOAD( "lw_25.10c", 0x200007, 0x20000, CRC(bac91554) SHA1(52f5de144193e0f78b9824cc8fd6f934dc19bab0) , ROM_SKIP(7) ) // == lw-13.12g + ROMX_LOAD( "lw_16.11b", 0x300002, 0x20000, CRC(40b26554) SHA1(b4b27573d6c329bc2bc4c64fd857475bf2a10877) , ROM_SKIP(7) ) // == lw-09.12f + ROMX_LOAD( "lw_15.11a", 0x300003, 0x20000, CRC(1b7d2e07) SHA1(0edf4d4b314fd9c29e7915d5d1adef6f9617f921) , ROM_SKIP(7) ) // == lw-09.12f + ROMX_LOAD( "lw_28.11e", 0x300006, 0x20000, CRC(a805ad30) SHA1(baded4ab5fe4e87d53233b5df88edc693c292fc4) , ROM_SKIP(7) ) // == lw-13.12g + ROMX_LOAD( "lw_27.11c", 0x300007, 0x20000, CRC(103c1bd2) SHA1(fc7ce74e108c30554139e55651c5348b11e9e3bd) , ROM_SKIP(7) ) // == lw-13.12g + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "lw_00.13c", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "lw-03u.12e", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) // == lw-03u.14c + ROM_LOAD( "lw-04u.13e", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) // == lw-04u.13c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) ) + ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88621B-2 */ +/* This set comes from a USA board with the same pcb layout of the parent forgottn, but uses one more surface mounted ROM + named LW-13 and located @ 10D instead of LW_25.10C, LW_26.10E, LW_27.11C, LW_28.11E EPROMs. */ +/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */ +ROM_START( forgottnu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "lw11c.12f", 0x00000, 0x20000, CRC(e62742b6) SHA1(39dd3bdd405a8217d8816567d4f2014fc77f5ce8) ) + ROM_LOAD16_BYTE( "lw15c.12h", 0x00001, 0x20000, CRC(1b70f216) SHA1(f200f615dca8aa23d166e74b8baa9a8863ee7a95) ) + ROM_LOAD16_BYTE( "lw10c.13f", 0x40000, 0x20000, CRC(8f5ea3f5) SHA1(c3e43659bd7e03ec3d5c79647db380bde391b0f1) ) + ROM_LOAD16_BYTE( "lw14c.13h", 0x40001, 0x20000, CRC(708e7472) SHA1(44f82db41ffd1eece2d3f3c977f481fd84dfdbf3) ) + ROM_LOAD16_WORD_SWAP( "lw-07.10g", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) // == lw-07.13e + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "lw_2.2b", 0x000000, 0x20000, CRC(4bd75fee) SHA1(c27bfba951a0dc4f493937ceca335c50a1afeddf) , ROM_SKIP(7) ) // == lw-01.9d + ROMX_LOAD( "lw_1.2a", 0x000001, 0x20000, CRC(65f41485) SHA1(fb05dffc87ee2f2b1b6646d54b13671f8eee0429) , ROM_SKIP(7) ) // == lw-01.9d + ROMX_LOAD( "lw-08.9b", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-08.9f + ROMX_LOAD( "lw-05.6d", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-05.9e + ROMX_LOAD( "lw_30.8h", 0x000006, 0x20000, CRC(b385954e) SHA1(d33adb5842e7b85d304836bd92a7a96be4ff3694) , ROM_SKIP(7) ) // == lw-12.9g + ROMX_LOAD( "lw_29.8f", 0x000007, 0x20000, CRC(7bda1ac6) SHA1(5b8bd05f52798f98ae16efa2ff61c06e28a4e3a0) , ROM_SKIP(7) ) // == lw-12.9g + ROMX_LOAD( "lw_4.3b", 0x100000, 0x20000, CRC(50cf757f) SHA1(c70d7d34ac2d6671d40dd372e241ccb60bf3bf2b) , ROM_SKIP(7) ) // == lw-01.9d + ROMX_LOAD( "lw_3.3a", 0x100001, 0x20000, CRC(c03ef278) SHA1(ad33b01bd8194025a2ecf7755894d6d638da457a) , ROM_SKIP(7) ) // == lw-01.9d + ROMX_LOAD( "lw_32.9h", 0x100006, 0x20000, CRC(30967a15) SHA1(6f6c6ca2f40aa9beec63ed64f0571bebc7c1aa50) , ROM_SKIP(7) ) // == lw-12.9g + ROMX_LOAD( "lw_31.9f", 0x100007, 0x20000, CRC(c49d37fb) SHA1(ce400261a0f8d5a9b95d3823f8f52de87b8007f1) , ROM_SKIP(7) ) // == lw-12.9g + ROMX_LOAD( "lw-02.6b", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-02.12d + ROMX_LOAD( "lw_14.10b", 0x200002, 0x20000, CRC(82862cce) SHA1(727ca4ee55e076185b071a49afc87533fde9ec27) , ROM_SKIP(7) ) // == lw-09.12f + ROMX_LOAD( "lw_13.10a", 0x200003, 0x20000, CRC(b81c0e96) SHA1(09f4235786b8ff92a57112669c0385b64477eb01) , ROM_SKIP(7) ) // == lw-09.12f + ROMX_LOAD( "lw-06.9d", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-06.12e + ROMX_LOAD( "lw-13.10d", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-13.12g + ROMX_LOAD( "lw_16.11b", 0x300002, 0x20000, CRC(40b26554) SHA1(b4b27573d6c329bc2bc4c64fd857475bf2a10877) , ROM_SKIP(7) ) // == lw-09.12f + ROMX_LOAD( "lw_15.11a", 0x300003, 0x20000, CRC(1b7d2e07) SHA1(0edf4d4b314fd9c29e7915d5d1adef6f9617f921) , ROM_SKIP(7) ) // == lw-09.12f + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "lw_00.13c", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "lw-03u.12e", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) // == lw-03u.14c + ROM_LOAD( "lw-04u.13e", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) // == lw-04u.13c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) ) + ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88618B-2 */ +/* Note that this set is equivalent to forgottnu, but ROMs use the 88618B-2 B-Board layout. */ +ROM_START( forgottnu1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "lw11c.14f", 0x00000, 0x20000, CRC(e62742b6) SHA1(39dd3bdd405a8217d8816567d4f2014fc77f5ce8) ) + ROM_LOAD16_BYTE( "lw15c.14g", 0x00001, 0x20000, CRC(1b70f216) SHA1(f200f615dca8aa23d166e74b8baa9a8863ee7a95) ) + ROM_LOAD16_BYTE( "lw10c.13f", 0x40000, 0x20000, CRC(8f5ea3f5) SHA1(c3e43659bd7e03ec3d5c79647db380bde391b0f1) ) + ROM_LOAD16_BYTE( "lw14c.13g", 0x40001, 0x20000, CRC(708e7472) SHA1(44f82db41ffd1eece2d3f3c977f481fd84dfdbf3) ) + ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "lw_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) + ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) ) + ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88618B-2 */ +ROM_START( forgottnua ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "lwu_11a.14f", 0x00000, 0x20000, CRC(ddf78831) SHA1(b9c815613efdfde933d4500b588798b7fb4c1854) ) + ROM_LOAD16_BYTE( "lwu_15a.14g", 0x00001, 0x20000, CRC(f7ce2097) SHA1(44c06fabdb6de7d8afc2164458c90b0be9cf945d) ) + ROM_LOAD16_BYTE( "lwu_10a.13f", 0x40000, 0x20000, CRC(8cb38c81) SHA1(1d36cab7d17ff778ee7dfcd9606a3a87f6906f21) ) + ROM_LOAD16_BYTE( "lwu_14a.13g", 0x40001, 0x20000, CRC(d70ef9fd) SHA1(b393aa2a7bea440fdcf057ffc6ff233fc0d35d4b) ) + ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "lwu_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) + ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) ) + ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88618B-2 */ +ROM_START( forgottnuaa ) /* 1 byte difference to parent set. Region byte or pointer to the US "warning" screen at boot */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "lwu_11aa.14f", 0x00000, 0x20000, CRC(73e920b7) SHA1(2df12fc1a66f488d06b0927db909da81466d7d07) ) // == lw11.12f + ROM_LOAD16_BYTE( "lwu_15aa.14g", 0x00001, 0x20000, CRC(e47524b9) SHA1(2fad1e59432cb63017caf691bb28eb7cbcecb3c6) ) // 1 byte difference to lw15.12h 0x8B6 == 0x07 + ROM_LOAD16_BYTE( "lwu_10aa.13f", 0x40000, 0x20000, CRC(bea45994) SHA1(c419f65c5e0c11ae7508ec54412bf6b62fac4f72) ) // == lw10.13f + ROM_LOAD16_BYTE( "lwu_14aa.13g", 0x40001, 0x20000, CRC(539b2339) SHA1(8a9e452ef8ed05e0b956d36990266657d3077470) ) // == lw14.13h + ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "lwu_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) + ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) ) + ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88618B-2 */ +ROM_START( lostwrld ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "lw_11c.14f", 0x00000, 0x20000, CRC(67e42546) SHA1(3e385661f71616180a26b74e443978077246fe66) ) + ROM_LOAD16_BYTE( "lw_15c.14g", 0x00001, 0x20000, CRC(402e2a46) SHA1(cbb7017e75a425706505717bf83c2615f53309f9) ) + ROM_LOAD16_BYTE( "lw_10c.13f", 0x40000, 0x20000, CRC(c46479d7) SHA1(84fd9ef33ae7d0af2110e8dc299de25c0f039cee) ) + ROM_LOAD16_BYTE( "lw_14c.13g", 0x40001, 0x20000, CRC(97670f4a) SHA1(f249977c814abdff85007216d7fa57db5684be0f) ) + ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "lw_00b.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "lw-03.14c", 0x00000, 0x20000, CRC(ce2159e7) SHA1(77d564f8b768c1cbd6e5b334f7ee86c4c3f9d62e) ) + ROM_LOAD( "lw-04.13c", 0x20000, 0x20000, CRC(39305536) SHA1(ad24d7b6df2dc5e84a35aecb9ba9b0aaa27ab6e5) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) ) + ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88618B-2 */ +ROM_START( lostwrldo ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "lw_11.14f", 0x00000, 0x20000, CRC(61e2cc56) SHA1(bc192e37806129dd00677ca2c2e4287aa670973d) ) + ROM_LOAD16_BYTE( "lw_15.14g", 0x00001, 0x20000, CRC(8a0c18d3) SHA1(7a4d80cefa0c2be427de43fbbbb906880876ed1d) ) + ROM_LOAD16_BYTE( "lw_10.13f", 0x40000, 0x20000, CRC(23bca4d5) SHA1(c9d356d052d82117b6c30e40aa02a5f1f5335a73) ) + ROM_LOAD16_BYTE( "lw_14.13g", 0x40001, 0x20000, CRC(3a023771) SHA1(30de9b76e104e897ddce64615f24bba0aa270d14) ) + ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "lw_00b.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "lw-03.14c", 0x00000, 0x20000, CRC(ce2159e7) SHA1(77d564f8b768c1cbd6e5b334f7ee86c4c3f9d62e) ) + ROM_LOAD( "lw-04.13c", 0x20000, 0x20000, CRC(39305536) SHA1(ad24d7b6df2dc5e84a35aecb9ba9b0aaa27ab6e5) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) ) + ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88620-B-? */ +/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */ +ROM_START( ghouls ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "dme_29.10h", 0x00000, 0x20000, CRC(166a58a2) SHA1(f21fcf88d2ebb7bc9e8885fde760a5d82f295c1a) ) + ROM_LOAD16_BYTE( "dme_30.10j", 0x00001, 0x20000, CRC(7ac8407a) SHA1(3613699213db47bfeabedf87f12eb0fa7e5973b6) ) + ROM_LOAD16_BYTE( "dme_27.9h", 0x40000, 0x20000, CRC(f734b2be) SHA1(fa230bf5503487ec11d767485a18f0a55dcc13d2) ) + ROM_LOAD16_BYTE( "dme_28.9j", 0x40001, 0x20000, CRC(03d3e714) SHA1(a07786062358c89f3b4634b8822173261802290b) ) + ROM_LOAD16_WORD( "dm-17.7j", 0x80000, 0x80000, CRC(3ea1b0f2) SHA1(c51f1c38cdaed77ad715cedd845617a291ab2441) ) + + ROM_REGION( 0x300000, "gfx", 0 ) + ROMX_LOAD( "dm-05.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dm-07.3f", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dm-06.3c", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dm-08.3g", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "09.4a", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) ) + ROMX_LOAD( "18.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) ) + ROMX_LOAD( "13.4e", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) ) + ROMX_LOAD( "22.7e", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) ) + ROMX_LOAD( "11.4c", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) ) + ROMX_LOAD( "20.7c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) ) + ROMX_LOAD( "15.4g", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) ) + ROMX_LOAD( "24.7g", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) ) + ROMX_LOAD( "10.4b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) ) + ROMX_LOAD( "19.7b", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) ) + ROMX_LOAD( "14.4f", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) ) + ROMX_LOAD( "23.7f", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) ) + ROMX_LOAD( "12.4d", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) ) + ROMX_LOAD( "21.7d", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) ) + ROMX_LOAD( "16.4h", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) ) + ROMX_LOAD( "25.7h", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "26.10a", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */ + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "dm620.2a", 0x0000, 0x0117, CRC(f6e5f727) SHA1(8d38c458721347272ccc14b2c0e9885c4f891477) ) + ROM_LOAD( "lwio.8i", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88620-B-2 */ +/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */ +ROM_START( ghoulsu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "dmu_29.10h", 0x00000, 0x20000, CRC(334d85b2) SHA1(89bacc28b7c799c7568420e3de5a99060baa7b0f) ) + ROM_LOAD16_BYTE( "dmu_30.10j", 0x00001, 0x20000, CRC(cee8ceb5) SHA1(fc8db1ce0c143dfda0b5989d02d5e5a872e27cd2) ) + ROM_LOAD16_BYTE( "dmu_27.9h", 0x40000, 0x20000, CRC(4a524140) SHA1(cebd651293c3570912d5506c1c223c39bcccc802) ) + ROM_LOAD16_BYTE( "dmu_28.9j", 0x40001, 0x20000, CRC(94aae205) SHA1(514b3c1b9b0b22300a94229825c3be66332ea5ed) ) + ROM_LOAD16_WORD( "dm-17.7j", 0x80000, 0x80000, CRC(3ea1b0f2) SHA1(c51f1c38cdaed77ad715cedd845617a291ab2441) ) + + ROM_REGION( 0x300000, "gfx", 0 ) + ROMX_LOAD( "dm-05.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dm-07.3f", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dm-06.3c", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dm-08.3g", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "09.4a", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) ) + ROMX_LOAD( "18.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) ) + ROMX_LOAD( "13.4e", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) ) + ROMX_LOAD( "22.7e", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) ) + ROMX_LOAD( "11.4c", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) ) + ROMX_LOAD( "20.7c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) ) + ROMX_LOAD( "15.4g", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) ) + ROMX_LOAD( "24.7g", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) ) + ROMX_LOAD( "10.4b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) ) + ROMX_LOAD( "19.7b", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) ) + ROMX_LOAD( "14.4f", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) ) + ROMX_LOAD( "23.7f", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) ) + ROMX_LOAD( "12.4d", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) ) + ROMX_LOAD( "21.7d", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) ) + ROMX_LOAD( "16.4h", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) ) + ROMX_LOAD( "25.7h", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "26.10a", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */ + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "dm620.2a", 0x0000, 0x0117, CRC(f6e5f727) SHA1(8d38c458721347272ccc14b2c0e9885c4f891477) ) + ROM_LOAD( "lwio.8i", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88622B-2 */ +/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */ +ROM_START( daimakai ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "dmj_38.12f", 0x00000, 0x20000, CRC(82fd1798) SHA1(7a199384659d8e6602384b1953339f221d61a9e6) ) + ROM_LOAD16_BYTE( "dmj_39.12h", 0x00001, 0x20000, CRC(35366ccc) SHA1(42c7004a641f34b9dd1333be51b50639a97e2be9) ) + ROM_LOAD16_BYTE( "dmj_40.13f", 0x40000, 0x20000, CRC(a17c170a) SHA1(62a9cb65df90827334d453a98e826dc1bfc27136) ) + ROM_LOAD16_BYTE( "dmj_41.13h", 0x40001, 0x20000, CRC(6af0b391) SHA1(5a2d74d207c04e24bcea7eeffa1c8b96b6df77e1) ) + ROM_LOAD16_BYTE( "dm_33.10f", 0x80000, 0x20000, CRC(384d60c4) SHA1(258f9e2334b7240cf665b530f2c69b8826850687) ) // == dm-17.7j + ROM_LOAD16_BYTE( "dm_34.10h", 0x80001, 0x20000, CRC(19abe30f) SHA1(aea7d5c8357201b68dec70d7cc8f87dfb8fce207) ) // == dm-17.7j + ROM_LOAD16_BYTE( "dm_35.11f", 0xc0000, 0x20000, CRC(c04b85c8) SHA1(f8659624bb9d418d02f63f43478d3b53cfe18718) ) // == dm-17.7j + ROM_LOAD16_BYTE( "dm_36.11h", 0xc0001, 0x20000, CRC(89be83de) SHA1(6dfd1380304a85dee7cac4d0b2cfd7625b9020bf) ) // == dm-17.7j + + ROM_REGION( 0x300000, "gfx", 0 ) + ROMX_LOAD( "dm_02.4b", 0x000000, 0x20000, CRC(8b98dc48) SHA1(e827881e2ba5cccd907d1692a1945c1b75d46f12) , ROM_SKIP(7) ) // == dm-05.3a + ROMX_LOAD( "dm_01.4a", 0x000001, 0x20000, CRC(80896c33) SHA1(20ffc427c596828005e34cdd8e4efa0d332262e9) , ROM_SKIP(7) ) // == dm-05.3a + ROMX_LOAD( "dm_10.9b", 0x000002, 0x20000, CRC(c2e7d9ef) SHA1(52aae6cf373f8c7150833047be28b74dd5eb5af6) , ROM_SKIP(7) ) // == dm-07.3f + ROMX_LOAD( "dm_09.9a", 0x000003, 0x20000, CRC(c9c4afa5) SHA1(34571e3e49c86b87fa34eefbc5f9fe258aba5f1a) , ROM_SKIP(7) ) // == dm-07.3f + ROMX_LOAD( "dm_18.5e", 0x000004, 0x20000, CRC(1aa0db99) SHA1(69ac302b2f6f0b96f78cb57b0b4cdae464086262) , ROM_SKIP(7) ) // == dm-06.3c + ROMX_LOAD( "dm_17.5c", 0x000005, 0x20000, CRC(dc6ed8ad) SHA1(1ffc4a48a7ff9b542ab6f63a60bea3c1a7a6e63b) , ROM_SKIP(7) ) // == dm-06.3c + ROMX_LOAD( "dm_30.8h", 0x000006, 0x20000, CRC(d9d3f8bd) SHA1(6c6853a384f8d60ca46a0607fd47c76a83700fba) , ROM_SKIP(7) ) // == dm-08.3g + ROMX_LOAD( "dm_29.8f", 0x000007, 0x20000, CRC(49a48796) SHA1(76c18c684dba4aa91ee6caae0f38fe3e1cc50832) , ROM_SKIP(7) ) // == dm-08.3g + ROMX_LOAD( "dm_04.5b", 0x100000, 0x20000, CRC(a4f4f8f0) SHA1(edca0f61b40a18afe279f7007c233064130cfb4f) , ROM_SKIP(7) ) // == dm-05.3a + ROMX_LOAD( "dm_03.5a", 0x100001, 0x20000, CRC(b1033e62) SHA1(547fc281dd9e7a74ac86c3692508c7bde9b6167b) , ROM_SKIP(7) ) // == dm-05.3a + ROMX_LOAD( "dm_12.10b", 0x100002, 0x20000, CRC(10fdd76a) SHA1(aee774d6323292799dff7a30ef9559c92fe5507a) , ROM_SKIP(7) ) // == dm-07.3f + ROMX_LOAD( "dm_11.10a", 0x100003, 0x20000, CRC(9040cb04) SHA1(b32e9056fc20a5162868eade10f3ef5efc167a28) , ROM_SKIP(7) ) // == dm-07.3f + ROMX_LOAD( "dm_20.7e", 0x100004, 0x20000, CRC(281d0b3e) SHA1(70e1813de184ad0ec164145b7b843b5e387494e3) , ROM_SKIP(7) ) // == dm-06.3c + ROMX_LOAD( "dm_19.7c", 0x100005, 0x20000, CRC(2623b52f) SHA1(fc4200924452bfbff687934782398ed345dc0aa0) , ROM_SKIP(7) ) // == dm-06.3c + ROMX_LOAD( "dm_32.9h", 0x100006, 0x20000, CRC(99692344) SHA1(67dc70618568b7c0adcb00a612aaf5501f6c8c0f) , ROM_SKIP(7) ) // == dm-08.3g + ROMX_LOAD( "dm_31.9f", 0x100007, 0x20000, CRC(54acb729) SHA1(d1fca43db36253fd19db4337c49272a6cadff597) , ROM_SKIP(7) ) // == dm-08.3g + ROMX_LOAD( "dm_06.7b", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) ) // == 09.4a + ROMX_LOAD( "dm_05.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) ) // == 18.7a + ROMX_LOAD( "dm_14.11b", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) ) // == 13.4e + ROMX_LOAD( "dm_13.11a", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) ) // == 22.7e + ROMX_LOAD( "dm_22.8e", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) ) // == 11.4c + ROMX_LOAD( "dm_21.8c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) ) // == 20.7c + ROMX_LOAD( "dm_26.10e", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) ) // == 15.4g + ROMX_LOAD( "dm_25.10c", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) ) // == 24.7g + ROMX_LOAD( "dm_08.8b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) ) // == 10.4b + ROMX_LOAD( "dm_07.8a", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) ) // == 19.7b + ROMX_LOAD( "dm_16.12b", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) ) // == 14.4f + ROMX_LOAD( "dm_15.12a", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) ) // == 23.7f + ROMX_LOAD( "dm_24.9e", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) ) // == 12.4d + ROMX_LOAD( "dm_23.9c", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) ) // == 21.7d + ROMX_LOAD( "dm_28.11e", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) ) // == 16.4h + ROMX_LOAD( "dm_27.11c", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) ) // == 25.7h + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "37.13c", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) ) // == 26.10a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */ + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "dm22a.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 91634B-2, Japan Resale Ver. */ +ROM_START( daimakair ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "damj_23.8f", 0x00000, 0x80000, CRC(c3b248ec) SHA1(5c016d2dcf882b2a9564e3c4502a0f51ee3d1803) ) + ROM_LOAD16_WORD_SWAP( "damj_22.7f", 0x80000, 0x80000, CRC(595ff2f3) SHA1(ac14b81e15f2c340526a03acbb4c28181d94d5b9) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "dam_01.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-05.3a + ROMX_LOAD( "dam_02.4a", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-07.3f + ROMX_LOAD( "dam_03.5a", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-06.3c + ROMX_LOAD( "dam_04.6a", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-08.3g + ROMX_LOAD( "dam_05.7a", 0x200000, 0x80000, CRC(7dc61b94) SHA1(7796bae7555c541b3c80aacfa24788aeb2ccdfd5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dam_06.8a", 0x200002, 0x80000, CRC(fde89758) SHA1(9a6192f629cd1e74e225ef7426338c2816c6b977) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dam_07.9a", 0x200004, 0x80000, CRC(ec351d78) SHA1(1005a83be4b5577612143ae7f64ca4a08aae7959) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dam_08.10a", 0x200006, 0x80000, CRC(ee2acc1e) SHA1(4628a9b2447266349d97132003992a21e2bb423a) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "dam_09.12a", 0x00000, 0x08000, CRC(0656ff53) SHA1(063a8124dbe73d014b11f72007f1b877afd1a661) ) // == 26.10a + garbage + ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is unused, not mapped in memory + + ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */ + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "dam63b.1a", 0x0000, 0x0117, CRC(474b3c8a) SHA1(da364581685067fc955ed43b982a7aa7a2648286) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 89624B-2 */ +ROM_START( strider ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) ) + ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) ) + ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) ) + ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) ) + ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // in "32" socket + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "st-2.8a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket + ROMX_LOAD( "st-11.10a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket + ROMX_LOAD( "st-5.4a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "st-9.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) ) + ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "st24m1.1a", 0x0000, 0x0117, CRC(a80d357e) SHA1(4cb79c99c62c8300e694f4cd26f41dab7818f17f) ) + ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( striderua ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(66aec273) SHA1(576b1e9062874e68d68f8725949c151509eb6d56) ) /* different CRC from strider, pcb verified */ + ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(50e0e865) SHA1(201ef385c228c124ed9412002233a501ea514efd) ) /* different CRC from strider, pcb verified */ + ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(eae93bd1) SHA1(b320a00b67ea3c7fffc6c37d57863163975f7b80) ) /* different CRC from strider, pcb verified */ + ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(b904a31d) SHA1(5509d1024151eb8548fd1b29e6c0c95775c61364) ) /* different CRC from strider, pcb verified */ + ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // in "32" socket + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "st-2.8a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket + ROMX_LOAD( "st-11.10a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket + ROMX_LOAD( "st-5.4a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "st-9.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(08d63519) SHA1(c120ecfe25c3c50bc51bc7d5a9ef1c8ca6591240) ) /* different CRC from strider, pcb verified */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) ) + ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "st24b2.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88622B-3 */ +ROM_START( striderj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sth_36.12f", 0x00000, 0x20000, CRC(53c7b006) SHA1(30daa256a32b209b907e5d916a82068017862a01) ) + ROM_LOAD16_BYTE( "sth_42.12h", 0x00001, 0x20000, CRC(4037f65f) SHA1(490b9fb15f80772316101ea15e61ab32f42feaec) ) + ROM_LOAD16_BYTE( "sth_37.13f", 0x40000, 0x20000, CRC(80e8877d) SHA1(806a62c03007efe6d58fb24dac467d4fc39bb96a) ) + ROM_LOAD16_BYTE( "sth_43.13h", 0x40001, 0x20000, CRC(6b3fa466) SHA1(6a3c9bd491eecf864971f7fdf02d01112d5ef7dd) ) + ROM_LOAD16_BYTE( "sth_34.10f", 0x80000, 0x20000, CRC(bea770b5) SHA1(b1d3111c8878708b6d0589d6bdfd3b380842d98b) ) // == st-14.8h + ROM_LOAD16_BYTE( "sth_40.10h", 0x80001, 0x20000, CRC(43b922dc) SHA1(441c932080ae2b19e3834e7173d46be2e8762119) ) // == st-14.8h + ROM_LOAD16_BYTE( "sth_35.11f", 0xc0000, 0x20000, CRC(5cc429da) SHA1(1d3593444d556fcb7b209ef254b7733cb32dc502) ) // == st-14.8h + ROM_LOAD16_BYTE( "sth_41.11h", 0xc0001, 0x20000, CRC(50af457f) SHA1(fb7248e41c09f137c929a2bd9ef17591f48b7009) ) // == st-14.8h + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "sth_09.4b", 0x000000, 0x20000, CRC(1ef6bfbd) SHA1(5e66168e2526b4b4569d9dabacd5602181b23874) , ROM_SKIP(7) ) // == st-2.8a + ROMX_LOAD( "sth_01.4a", 0x000001, 0x20000, CRC(1e21b0c1) SHA1(2ac543dccefa7e2438d7eb53cdf2e6aff09c735b) , ROM_SKIP(7) ) // == st-2.8a + ROMX_LOAD( "sth_13.9b", 0x000002, 0x20000, CRC(063263ae) SHA1(38ea256f9a0f3fd6786d21c8b540030b73742971) , ROM_SKIP(7) ) // == st-11.10a + ROMX_LOAD( "sth_05.9a", 0x000003, 0x20000, CRC(ec9f8714) SHA1(8eb2b92ad576849b8049f9c90b850f74c2a5cba2) , ROM_SKIP(7) ) // == st-11.10a + ROMX_LOAD( "sth_24.5e", 0x000004, 0x20000, CRC(6356f4d2) SHA1(8d6786e07dba3e59a609c1a13be8685e4fdb8879) , ROM_SKIP(7) ) // == st-5.4a + ROMX_LOAD( "sth_17.5c", 0x000005, 0x20000, CRC(b4f73d86) SHA1(0ffbcc93ce7eadfd29255a15bc5cbd6e24f98759) , ROM_SKIP(7) ) // == st-5.4a + ROMX_LOAD( "sth_38.8h", 0x000006, 0x20000, CRC(ee5abfc2) SHA1(1c162bc09991f1082b4d9d22fbce13f2c08e0ceb) , ROM_SKIP(7) ) // == st-9.6a + ROMX_LOAD( "sth_32.8f", 0x000007, 0x20000, CRC(44a206a3) SHA1(67ec4b9cf3ff181c8c4c4751a1d2e8ee8e56278a) , ROM_SKIP(7) ) // == st-9.6a + ROMX_LOAD( "sth_10.5b", 0x100000, 0x20000, CRC(df3dd3bc) SHA1(648218f94ecda25873103ac4e2d7132c79f1c5b2) , ROM_SKIP(7) ) // == st-2.8a + ROMX_LOAD( "sth_02.5a", 0x100001, 0x20000, CRC(c75f9ea0) SHA1(e9268bfa6f5254935fda726ab4b5d9acb0f1942a) , ROM_SKIP(7) ) // == st-2.8a + ROMX_LOAD( "sth_14.10b", 0x100002, 0x20000, CRC(6c03e19d) SHA1(83f892df551ea79534288643b07613a3c595d526) , ROM_SKIP(7) ) // == st-11.10a + ROMX_LOAD( "sth_06.10a", 0x100003, 0x20000, CRC(d84f5478) SHA1(c3812056ff2563a43d11746ec8327700f370a053) , ROM_SKIP(7) ) // == st-11.10a + ROMX_LOAD( "sth_25.7e", 0x100004, 0x20000, CRC(921e506a) SHA1(fd2b5e2121c2adedcb0325b4159273506dab27e8) , ROM_SKIP(7) ) // == st-5.4a + ROMX_LOAD( "sth_18.7c", 0x100005, 0x20000, CRC(5b318956) SHA1(b1415472bf45787219b3b7680057910b210d57f5) , ROM_SKIP(7) ) // == st-5.4a + ROMX_LOAD( "sth_39.9h", 0x100006, 0x20000, CRC(9321d6aa) SHA1(acec3c880d29692cf010540c120b9092d7dd8ce9) , ROM_SKIP(7) ) // == st-9.6a + ROMX_LOAD( "sth_33.9f", 0x100007, 0x20000, CRC(b47ddfc7) SHA1(12388c37abdde85d63305f86244fc3c07f8b6b0c) , ROM_SKIP(7) ) // == st-9.6a + ROMX_LOAD( "sth_11.7b", 0x200000, 0x20000, CRC(2484f241) SHA1(28c48526ec2577119cc3207e92138749124b5959) , ROM_SKIP(7) ) // == st-1.7a + ROMX_LOAD( "sth_03.7a", 0x200001, 0x20000, CRC(aaa07245) SHA1(64a1b75b7613c1949eee6f9ba865dbdd7ec34413) , ROM_SKIP(7) ) // == st-1.7a + ROMX_LOAD( "sth_15.11b", 0x200002, 0x20000, CRC(e415d943) SHA1(12069d02d3a6afa9241222b48420daaf97874271) , ROM_SKIP(7) ) // == st-10.9a + ROMX_LOAD( "sth_07.11a", 0x200003, 0x20000, CRC(97d072d2) SHA1(fb0e10464a878ec6c0f3e6c6ddb0ea542bfb87a8) , ROM_SKIP(7) ) // == st-10.9a + ROMX_LOAD( "sth_26.8e", 0x200004, 0x20000, CRC(0ebfcb02) SHA1(a7238e1c76dbc2de1b7ae0d2cc532170cd1ab6c2) , ROM_SKIP(7) ) // == st-4.3a + ROMX_LOAD( "sth_19.8c", 0x200005, 0x20000, CRC(257ce683) SHA1(762f22b5ba24864d69dda303310a310d8dbfcc1c) , ROM_SKIP(7) ) // == st-4.3a + ROMX_LOAD( "sth_28.10e", 0x200006, 0x20000, CRC(98ac8cd1) SHA1(53dbe418d5cb7af5ef4be91e5e6bcd4474d2fdfe) , ROM_SKIP(7) ) // == st-8.5a + ROMX_LOAD( "sth_21.10c", 0x200007, 0x20000, CRC(538d9423) SHA1(418ea54d6582723d3e568364787862a6df2d1523) , ROM_SKIP(7) ) // == st-8.5a + ROMX_LOAD( "sth_12.8b", 0x300000, 0x20000, CRC(f670a477) SHA1(de5154ca093a9e5f9adb836d9a933d14e939180d) , ROM_SKIP(7) ) // == st-1.7a + ROMX_LOAD( "sth_04.8a", 0x300001, 0x20000, CRC(853d3e01) SHA1(422cc9f539e79c2a9b3bda47eb1fc714d79838d1) , ROM_SKIP(7) ) // == st-1.7a + ROMX_LOAD( "sth_16.12b", 0x300002, 0x20000, CRC(4092019f) SHA1(2173e72a8325d12da70666bdc279409b23fb7024) , ROM_SKIP(7) ) // == st-10.9a + ROMX_LOAD( "sth_08.12a", 0x300003, 0x20000, CRC(2ce9b4c7) SHA1(f267d323c9310433852e3308b36100440bee33d7) , ROM_SKIP(7) ) // == st-10.9a + ROMX_LOAD( "sth_27.9e", 0x300004, 0x20000, CRC(f82c88d9) SHA1(200bd025800eb20c4a15af17e7c3effbfa6f00fa) , ROM_SKIP(7) ) // == st-4.3a + ROMX_LOAD( "sth_20.9c", 0x300005, 0x20000, CRC(eb584dd4) SHA1(aeee39c0fc9f234249253b14de88a8da494b18d0) , ROM_SKIP(7) ) // == st-4.3a + ROMX_LOAD( "sth_29.11e", 0x300006, 0x20000, CRC(34ae2997) SHA1(9449eb9c85b7cb4a12aa06cb65a9d849a528e633) , ROM_SKIP(7) ) // == st-8.5a + ROMX_LOAD( "sth_22.11c", 0x300007, 0x20000, CRC(78dd9c48) SHA1(35fbf3ca21f56c9899283ba08c89c0faf7a8f717) , ROM_SKIP(7) ) // == st-8.5a + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sth_23.13c", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) ) // == 09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sth_30.12e", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) ) // == 18.11c + ROM_LOAD( "sth_31.13e", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) ) // == 19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "st22b.1a", 0x0000, 0x0117, CRC(68fecc55) SHA1(238f6781f972e834f2c6054cfe925ffec579dec3) ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 91634B-2, Japan Resale Ver. */ +ROM_START( striderjr ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sthj_23.8f", 0x00000, 0x80000, CRC(046e7b12) SHA1(a5761f730f6844a7e93556a6aeae76240a99540c) ) + ROM_LOAD16_WORD_SWAP( "sthj_22.7f", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // == st-14.8h + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "sth_01.3a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-2.8a + ROMX_LOAD( "sth_02.4a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-11.10a + ROMX_LOAD( "sth_03.5a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-5.4a + ROMX_LOAD( "sth_04.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-9.6a + ROMX_LOAD( "sth_05.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-1.7a + ROMX_LOAD( "sth_06.8a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-10.9a + ROMX_LOAD( "sth_07.9a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-4.3a + ROMX_LOAD( "sth_08.10a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-8.5a + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sth_09.12a", 0x00000, 0x08000, CRC(08d63519) SHA1(c120ecfe25c3c50bc51bc7d5a9ef1c8ca6591240) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sth_18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) ) + ROM_LOAD( "sth_19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "sth63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(c706b773) SHA1(ddfe2e747637eec081a5125cfefcb478a4ba9e76) ) /* Handcrafted but works on actual PCB. Redump needed */ + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 89624B-? */ +ROM_START( dynwar ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(f9ec6d68) SHA1(02912db2b48f77489b0b841c2a5414bfb49b93f4) ) + ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(e41fff2f) SHA1(a960c39c69f97b46d5efcbcd3e2bc652888094c4) ) + ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(e3de76ff) SHA1(fdc552312e10c91dd00bfa72e4e686ac356d2244) ) + ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(7a13cfbf) SHA1(c6b4d775a2e507fdefbb895cc75bb5bdb442218d) ) + ROM_LOAD16_WORD_SWAP( "tkm-9.8h", 0x80000, 0x80000, CRC(93654bcf) SHA1(c72daeb2a98d350568555059a3225343c219a1d2) ) // in "32" socket + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tkm-5.7a", 0x000000, 0x80000, CRC(f64bb6a0) SHA1(8c0ae0305704ad876bb1938e46550c68b0de8e8e), ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "tkm-8.9a", 0x000002, 0x80000, CRC(21fe6274) SHA1(f92e509d88d5e264be9c7812966d64ad9ac518e7), ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "tkm-6.3a", 0x000004, 0x80000, CRC(0bf228cb) SHA1(e72957155cb459c4dee50df2e53256f271528964), ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "tkm-7.5a", 0x000006, 0x80000, CRC(1255dfb1) SHA1(c943e3c989d5b20fbe24e38e54ee8ca294b3d182), ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "tkm-1.8a", 0x200000, 0x80000, CRC(44f7661e) SHA1(f29b5ad0c5dfd91a56a4a1084ce578cfe496dd6f), ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket + ROMX_LOAD( "tkm-4.10a", 0x200002, 0x80000, CRC(a54c515d) SHA1(bfa457cef7e29ae56ee9b10f60e233d82b4efc61), ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket + ROMX_LOAD( "tkm-2.4a", 0x200004, 0x80000, CRC(ca5c687c) SHA1(de47cb5a071ffb3ff408f60d45b79345032232a7), ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "tkm-3.6a", 0x200006, 0x80000, CRC(f9fe6591) SHA1(260da5f9e305cccd621b8b5b2073c79e161ddeb0), ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "tke_17.12b", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // in "9" socket + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "tke_18.11c", 0x00000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) ) + ROM_LOAD( "tke_19.12c", 0x20000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk24b1.1a", 0x0000, 0x0117, CRC(ae4a7645) SHA1(593478a177ea1794c9dfff07c6c6d8624a883eae) ) + ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required +ROM_END + +/* B-Board 88622B-3 */ +ROM_START( dynwara ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "tke_36.12f", 0x00000, 0x20000, CRC(895991d1) SHA1(56b105b85ccab1c49c89ae8d4aa55c9374077df0) ) + ROM_LOAD16_BYTE( "tke_42.12h", 0x00001, 0x20000, CRC(c898d2e8) SHA1(c8b10685681bf155ea44e30f3cb0574df7d4f984) ) + ROM_LOAD16_BYTE( "tke_37.13f", 0x40000, 0x20000, CRC(b228d58c) SHA1(99a1f42d930f788c4f9b410addc95173fda801a2) ) + ROM_LOAD16_BYTE( "tke_43.13h", 0x40001, 0x20000, CRC(1a14375a) SHA1(2b1a62f7961dceabf98461266da37abfec13aaa9) ) + ROM_LOAD16_BYTE( "34.10f", 0x80000, 0x20000, CRC(8f663d00) SHA1(77811783c87c7aee058b8533e34049a01047258a) ) // == tkm-9.8h + ROM_LOAD16_BYTE( "40.10h", 0x80001, 0x20000, CRC(1586dbf3) SHA1(d9f03e001effdef021a9ceda512e73a24726fca1) ) // == tkm-9.8h + ROM_LOAD16_BYTE( "35.11f", 0xc0000, 0x20000, CRC(9db93d7a) SHA1(f75e3fb5273baef0cd5d8eea26f07d5acaa743ca) ) // == tkm-9.8h + ROM_LOAD16_BYTE( "41.11h", 0xc0001, 0x20000, CRC(1aae69a4) SHA1(56e4761818f7857bc7520f2b8de90eabd857c577) ) // == tkm-9.8h + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "09.4b", 0x000000, 0x20000, CRC(c3e83c69) SHA1(bd361a39dc6428fea8f56ebbe5cdcc4bf63a51f0) , ROM_SKIP(7) ) // == tkm-5.7a + ROMX_LOAD( "01.4a", 0x000001, 0x20000, CRC(187b2886) SHA1(b16121f57926d9fd2c3bc82ae6babf6a2297f140) , ROM_SKIP(7) ) // == tkm-5.7a + ROMX_LOAD( "13.9b", 0x000002, 0x20000, CRC(0273d87d) SHA1(7803b04d72eedb4c8b39f63fea458cfef0034813) , ROM_SKIP(7) ) // == tkm-8.9a + ROMX_LOAD( "05.9a", 0x000003, 0x20000, CRC(339378b8) SHA1(c3dfe7039e4572b9ef56166346f3cbc6f6ab07c1) , ROM_SKIP(7) ) // == tkm-8.9a + ROMX_LOAD( "24.5e", 0x000004, 0x20000, CRC(c6909b6f) SHA1(2828bd6bdc8e3f87a4a37d4e20bdff86cb6850c9) , ROM_SKIP(7) ) // == tkm-6.3a + ROMX_LOAD( "17.5c", 0x000005, 0x20000, CRC(2e2f8320) SHA1(7bcb80447d9ce7cc9a38e2506196acd6bf50b49f) , ROM_SKIP(7) ) // == tkm-6.3a + ROMX_LOAD( "38.8h", 0x000006, 0x20000, CRC(cd7923ed) SHA1(29187b99847a4b56f2f1763d086b8e7dc5cebed7) , ROM_SKIP(7) ) // == tkm-7.5a + ROMX_LOAD( "32.8f", 0x000007, 0x20000, CRC(21a0a453) SHA1(ace38c5943f9f744212cfdb7caa2caa43312e82c) , ROM_SKIP(7) ) // == tkm-7.5a + ROMX_LOAD( "10.5b", 0x100000, 0x20000, CRC(ff28f8d0) SHA1(c8c4851816f17a4a0494164f5e8cc910f16669e8) , ROM_SKIP(7) ) // == tkm-5.7a + ROMX_LOAD( "02.5a", 0x100001, 0x20000, CRC(cc83c02f) SHA1(915e9d7acec1ba7a2035ae140f576839eba8694f) , ROM_SKIP(7) ) // == tkm-5.7a + ROMX_LOAD( "14.10b", 0x100002, 0x20000, CRC(58d9b32f) SHA1(c13a12afcb83159b284b95053951dfa1841bb612) , ROM_SKIP(7) ) // == tkm-8.9a + ROMX_LOAD( "06.10a", 0x100003, 0x20000, CRC(6f9edd75) SHA1(e8d43c0ec2165e88aefbb5c92048fbcd06fe578b) , ROM_SKIP(7) ) // == tkm-8.9a + ROMX_LOAD( "25.7e", 0x100004, 0x20000, CRC(152ea74a) SHA1(c0c56b1bdfa0d7fdea040dbcc6ff871e5957a5b6) , ROM_SKIP(7) ) // == tkm-6.3a + ROMX_LOAD( "18.7c", 0x100005, 0x20000, CRC(1833f932) SHA1(81f94d26bdb6758736ca02d7b1772801be4da181) , ROM_SKIP(7) ) // == tkm-6.3a + ROMX_LOAD( "39.9h", 0x100006, 0x20000, CRC(bc09b360) SHA1(de2c9a42490db79c8e5fe57b9107f1adbe5dd241) , ROM_SKIP(7) ) // == tkm-7.5a + ROMX_LOAD( "33.9f", 0x100007, 0x20000, CRC(89de1533) SHA1(e48312e37c0f98faeec91546acde5daf0da8f6b3) , ROM_SKIP(7) ) // == tkm-7.5a + ROMX_LOAD( "11.7b", 0x200000, 0x20000, CRC(29eaf490) SHA1(42fcb67c7014e0ad62cde9e77c79e61268647528) , ROM_SKIP(7) ) // == tkm-1.8a + ROMX_LOAD( "03.7a", 0x200001, 0x20000, CRC(7bf51337) SHA1(c21938029641ebcbc484680cf8a57186cdde220f) , ROM_SKIP(7) ) // == tkm-1.8a + ROMX_LOAD( "15.11b", 0x200002, 0x20000, CRC(d36cdb91) SHA1(66ab873ce285e857f30294dd1c9b1dda0c6c6b76) , ROM_SKIP(7) ) // == tkm-4.10a + ROMX_LOAD( "07.11a", 0x200003, 0x20000, CRC(e04af054) SHA1(f227b8a0a3d8f41e1922d184eaec7a1243c7c3af) , ROM_SKIP(7) ) // == tkm-4.10a + ROMX_LOAD( "26.8e", 0x200004, 0x20000, CRC(07fc714b) SHA1(eda97a3c5596ebdfa61bdd01d39647c89b9a2f13) , ROM_SKIP(7) ) // == tkm-2.4a + ROMX_LOAD( "19.8c", 0x200005, 0x20000, CRC(7114e5c6) SHA1(2f2925b942af50781857f4fe74e9a58f2cf7b883) , ROM_SKIP(7) ) // == tkm-2.4a + ROMX_LOAD( "28.10e", 0x200006, 0x20000, CRC(af62bf07) SHA1(a6e0f598de1fa8a4960e89d655b7514572ed6310) , ROM_SKIP(7) ) // == tkm-3.6a + ROMX_LOAD( "21.10c", 0x200007, 0x20000, CRC(523f462a) SHA1(b0fc9e29d6ca44aafb20a62355bde9f4b4cf1e43) , ROM_SKIP(7) ) // == tkm-3.6a + ROMX_LOAD( "12.8b", 0x300000, 0x20000, CRC(38652339) SHA1(930a035bbe34c81c26d774d2ab45f53a3a9205fb) , ROM_SKIP(7) ) // == tkm-1.8a + ROMX_LOAD( "04.8a", 0x300001, 0x20000, CRC(4951bc0f) SHA1(07f424c147d787321b668d787216733c35e2cff9) , ROM_SKIP(7) ) // == tkm-1.8a + ROMX_LOAD( "16.12b", 0x300002, 0x20000, CRC(381608ae) SHA1(666e15e61c7c59df5a97bdc2d77db611d60b3ca8) , ROM_SKIP(7) ) // == tkm-4.10a + ROMX_LOAD( "08.12a", 0x300003, 0x20000, CRC(b475d4e9) SHA1(dc5d223bc2a27904e6e38b68507d2e87fbbde158) , ROM_SKIP(7) ) // == tkm-4.10a + ROMX_LOAD( "27.9e", 0x300004, 0x20000, CRC(a27e81fa) SHA1(b25854d4a7e52d500c19445badb4cfe745d88d23) , ROM_SKIP(7) ) // == tkm-2.4a + ROMX_LOAD( "20.9c", 0x300005, 0x20000, CRC(002796dc) SHA1(2dba0434916dd82c59a66e2f3ce8d3165713c308) , ROM_SKIP(7) ) // == tkm-2.4a + ROMX_LOAD( "29.11e", 0x300006, 0x20000, CRC(6b41f82d) SHA1(111af606d8107d377e3af618584a75ed6cfc9bbd) , ROM_SKIP(7) ) // == tkm-3.6a + ROMX_LOAD( "22.11c", 0x300007, 0x20000, CRC(52145369) SHA1(bd422f0c51cdd62b69229f926569ad05d430bd57) , ROM_SKIP(7) ) // == tkm-3.6a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "23.13c", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // == tke_17.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "tke_30.12e", 0x00000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) ) // == tke_18.11c + ROM_LOAD( "tke_31.13e", 0x20000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) ) // == tke_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk22b.1a", 0x0000, 0x0117, CRC(1a1ab6d7) SHA1(eacd3a21a09683e1d8ad36215c1f8ea96a1f7c12) ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88622B-3 */ +ROM_START( dynwarj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "36.12f", 0x00000, 0x20000, CRC(1a516657) SHA1(f5c7c3bfd482eb59221cfd3eec4d47e717b04efa) ) + ROM_LOAD16_BYTE( "42.12h", 0x00001, 0x20000, CRC(12a290a0) SHA1(29fd3f77c497ef8db48121301beab2862ca380b4) ) + ROM_LOAD16_BYTE( "37.13f", 0x40000, 0x20000, CRC(932fc943) SHA1(1bd1c696072e61db791c075fae8936dece73d1d8) ) + ROM_LOAD16_BYTE( "43.13h", 0x40001, 0x20000, CRC(872ad76d) SHA1(77cfb380dd358eb9e65894a026e0718918c5b68f) ) + ROM_LOAD16_BYTE( "34.10f", 0x80000, 0x20000, CRC(8f663d00) SHA1(77811783c87c7aee058b8533e34049a01047258a) ) // == tkm-9.8h + ROM_LOAD16_BYTE( "40.10h", 0x80001, 0x20000, CRC(1586dbf3) SHA1(d9f03e001effdef021a9ceda512e73a24726fca1) ) // == tkm-9.8h + ROM_LOAD16_BYTE( "35.11f", 0xc0000, 0x20000, CRC(9db93d7a) SHA1(f75e3fb5273baef0cd5d8eea26f07d5acaa743ca) ) // == tkm-9.8h + ROM_LOAD16_BYTE( "41.11h", 0xc0001, 0x20000, CRC(1aae69a4) SHA1(56e4761818f7857bc7520f2b8de90eabd857c577) ) // == tkm-9.8h + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "09.4b", 0x000000, 0x20000, CRC(c3e83c69) SHA1(bd361a39dc6428fea8f56ebbe5cdcc4bf63a51f0) , ROM_SKIP(7) ) // == tkm-5.7a + ROMX_LOAD( "01.4a", 0x000001, 0x20000, CRC(187b2886) SHA1(b16121f57926d9fd2c3bc82ae6babf6a2297f140) , ROM_SKIP(7) ) // == tkm-5.7a + ROMX_LOAD( "13.9b", 0x000002, 0x20000, CRC(0273d87d) SHA1(7803b04d72eedb4c8b39f63fea458cfef0034813) , ROM_SKIP(7) ) // == tkm-8.9a + ROMX_LOAD( "05.9a", 0x000003, 0x20000, CRC(339378b8) SHA1(c3dfe7039e4572b9ef56166346f3cbc6f6ab07c1) , ROM_SKIP(7) ) // == tkm-8.9a + ROMX_LOAD( "24.5e", 0x000004, 0x20000, CRC(c6909b6f) SHA1(2828bd6bdc8e3f87a4a37d4e20bdff86cb6850c9) , ROM_SKIP(7) ) // == tkm-6.3a + ROMX_LOAD( "17.5c", 0x000005, 0x20000, CRC(2e2f8320) SHA1(7bcb80447d9ce7cc9a38e2506196acd6bf50b49f) , ROM_SKIP(7) ) // == tkm-6.3a + ROMX_LOAD( "38.8h", 0x000006, 0x20000, CRC(cd7923ed) SHA1(29187b99847a4b56f2f1763d086b8e7dc5cebed7) , ROM_SKIP(7) ) // == tkm-7.5a + ROMX_LOAD( "32.8f", 0x000007, 0x20000, CRC(21a0a453) SHA1(ace38c5943f9f744212cfdb7caa2caa43312e82c) , ROM_SKIP(7) ) // == tkm-7.5a + ROMX_LOAD( "10.5b", 0x100000, 0x20000, CRC(ff28f8d0) SHA1(c8c4851816f17a4a0494164f5e8cc910f16669e8) , ROM_SKIP(7) ) // == tkm-5.7a + ROMX_LOAD( "02.5a", 0x100001, 0x20000, CRC(cc83c02f) SHA1(915e9d7acec1ba7a2035ae140f576839eba8694f) , ROM_SKIP(7) ) // == tkm-5.7a + ROMX_LOAD( "14.10b", 0x100002, 0x20000, CRC(18fb232c) SHA1(c690ca668a56c756c04ef5db4900eb3fd34897e7) , ROM_SKIP(7) ) /* 1 byte different from dynwara, pcb verified */ + ROMX_LOAD( "06.10a", 0x100003, 0x20000, CRC(6f9edd75) SHA1(e8d43c0ec2165e88aefbb5c92048fbcd06fe578b) , ROM_SKIP(7) ) // == tkm-8.9a + ROMX_LOAD( "25.7e", 0x100004, 0x20000, CRC(152ea74a) SHA1(c0c56b1bdfa0d7fdea040dbcc6ff871e5957a5b6) , ROM_SKIP(7) ) // == tkm-6.3a + ROMX_LOAD( "18.7c", 0x100005, 0x20000, CRC(1833f932) SHA1(81f94d26bdb6758736ca02d7b1772801be4da181) , ROM_SKIP(7) ) // == tkm-6.3a + ROMX_LOAD( "39.9h", 0x100006, 0x20000, CRC(bc09b360) SHA1(de2c9a42490db79c8e5fe57b9107f1adbe5dd241) , ROM_SKIP(7) ) // == tkm-7.5a + ROMX_LOAD( "33.9f", 0x100007, 0x20000, CRC(89de1533) SHA1(e48312e37c0f98faeec91546acde5daf0da8f6b3) , ROM_SKIP(7) ) // == tkm-7.5a + ROMX_LOAD( "11.7b", 0x200000, 0x20000, CRC(29eaf490) SHA1(42fcb67c7014e0ad62cde9e77c79e61268647528) , ROM_SKIP(7) ) // == tkm-1.8a + ROMX_LOAD( "03.7a", 0x200001, 0x20000, CRC(7bf51337) SHA1(c21938029641ebcbc484680cf8a57186cdde220f) , ROM_SKIP(7) ) // == tkm-1.8a + ROMX_LOAD( "15.11b", 0x200002, 0x20000, CRC(d36cdb91) SHA1(66ab873ce285e857f30294dd1c9b1dda0c6c6b76) , ROM_SKIP(7) ) // == tkm-4.10a + ROMX_LOAD( "07.11a", 0x200003, 0x20000, CRC(e04af054) SHA1(f227b8a0a3d8f41e1922d184eaec7a1243c7c3af) , ROM_SKIP(7) ) // == tkm-4.10a + ROMX_LOAD( "26.8e", 0x200004, 0x20000, CRC(07fc714b) SHA1(eda97a3c5596ebdfa61bdd01d39647c89b9a2f13) , ROM_SKIP(7) ) // == tkm-2.4a + ROMX_LOAD( "19.8c", 0x200005, 0x20000, CRC(7114e5c6) SHA1(2f2925b942af50781857f4fe74e9a58f2cf7b883) , ROM_SKIP(7) ) // == tkm-2.4a + ROMX_LOAD( "28.10e", 0x200006, 0x20000, CRC(af62bf07) SHA1(a6e0f598de1fa8a4960e89d655b7514572ed6310) , ROM_SKIP(7) ) // == tkm-3.6a + ROMX_LOAD( "21.10c", 0x200007, 0x20000, CRC(523f462a) SHA1(b0fc9e29d6ca44aafb20a62355bde9f4b4cf1e43) , ROM_SKIP(7) ) // == tkm-3.6a + ROMX_LOAD( "12.8b", 0x300000, 0x20000, CRC(38652339) SHA1(930a035bbe34c81c26d774d2ab45f53a3a9205fb) , ROM_SKIP(7) ) // == tkm-1.8a + ROMX_LOAD( "04.8a", 0x300001, 0x20000, CRC(4951bc0f) SHA1(07f424c147d787321b668d787216733c35e2cff9) , ROM_SKIP(7) ) // == tkm-1.8a + ROMX_LOAD( "16.12b", 0x300002, 0x20000, CRC(381608ae) SHA1(666e15e61c7c59df5a97bdc2d77db611d60b3ca8) , ROM_SKIP(7) ) // == tkm-4.10a + ROMX_LOAD( "08.12a", 0x300003, 0x20000, CRC(b475d4e9) SHA1(dc5d223bc2a27904e6e38b68507d2e87fbbde158) , ROM_SKIP(7) ) // == tkm-4.10a + ROMX_LOAD( "27.9e", 0x300004, 0x20000, CRC(a27e81fa) SHA1(b25854d4a7e52d500c19445badb4cfe745d88d23) , ROM_SKIP(7) ) // == tkm-2.4a + ROMX_LOAD( "20.9c", 0x300005, 0x20000, CRC(002796dc) SHA1(2dba0434916dd82c59a66e2f3ce8d3165713c308) , ROM_SKIP(7) ) // == tkm-2.4a + ROMX_LOAD( "29.11e", 0x300006, 0x20000, CRC(6b41f82d) SHA1(111af606d8107d377e3af618584a75ed6cfc9bbd) , ROM_SKIP(7) ) // == tkm-3.6a + ROMX_LOAD( "22.11c", 0x300007, 0x20000, CRC(52145369) SHA1(bd422f0c51cdd62b69229f926569ad05d430bd57) , ROM_SKIP(7) ) // == tkm-3.6a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "23.13c", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // == tke_17.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "30.12e", 0x00000, 0x20000, CRC(7e5f6cb4) SHA1(c7b6b7d6dfe5f9f0e1521e7ce990229f480cf68d) ) + ROM_LOAD( "31.13e", 0x20000, 0x20000, CRC(4a30c737) SHA1(426eb90f2edf73eb468c94b4a094da3d46acbab2) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk22b.1a", 0x0000, 0x0117, CRC(1a1ab6d7) SHA1(eacd3a21a09683e1d8ad36215c1f8ea96a1f7c12) ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 91634B-2, Japan Resale Ver. */ +ROM_START( dynwarjr ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk1j_23.8f", 0x00000, 0x80000, CRC(088a3009) SHA1(d4c8273d19291d278d2ff895712dfbd8dfda6c84) ) + ROM_LOAD16_WORD_SWAP( "tk1j_22.7f", 0x80000, 0x80000, CRC(93654bcf) SHA1(c72daeb2a98d350568555059a3225343c219a1d2) ) // == tkm-9.8h + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk1_01.3a", 0x000000, 0x80000, CRC(f64bb6a0) SHA1(8c0ae0305704ad876bb1938e46550c68b0de8e8e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-5.7a + ROMX_LOAD( "tk1_02.4a", 0x000002, 0x80000, CRC(21fe6274) SHA1(f92e509d88d5e264be9c7812966d64ad9ac518e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-8.9a + ROMX_LOAD( "tk1_03.5a", 0x000004, 0x80000, CRC(0bf228cb) SHA1(e72957155cb459c4dee50df2e53256f271528964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-6.3a + ROMX_LOAD( "tk1_04.6a", 0x000006, 0x80000, CRC(1255dfb1) SHA1(c943e3c989d5b20fbe24e38e54ee8ca294b3d182) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-7.5a + ROMX_LOAD( "tk1_05.7a", 0x200000, 0x80000, CRC(44f7661e) SHA1(f29b5ad0c5dfd91a56a4a1084ce578cfe496dd6f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-1.8a + ROMX_LOAD( "tk1_06.8a", 0x200002, 0x80000, CRC(a54c515d) SHA1(bfa457cef7e29ae56ee9b10f60e233d82b4efc61) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-4.10a + ROMX_LOAD( "tk1_07.9a", 0x200004, 0x80000, CRC(ca5c687c) SHA1(de47cb5a071ffb3ff408f60d45b79345032232a7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-2.4a + ROMX_LOAD( "tk1_08.10a", 0x200006, 0x80000, CRC(f9fe6591) SHA1(260da5f9e305cccd621b8b5b2073c79e161ddeb0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-3.6a + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "tk1_09.12a", 0x00000, 0x08000, CRC(db77d899) SHA1(314a8134ed15f603f1c7894fd50b14aef5c9fc7a) ) + ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "tk1_18.11c", 0x00000, 0x20000, CRC(7e5f6cb4) SHA1(c7b6b7d6dfe5f9f0e1521e7ce990229f480cf68d) ) + ROM_LOAD( "tk1_19.12c", 0x20000, 0x20000, CRC(4a30c737) SHA1(426eb90f2edf73eb468c94b4a094da3d46acbab2) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk163b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( willow ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "wle_30.11f", 0x00000, 0x20000, CRC(15372aa2) SHA1(ba8e1984180b0438255dfc68dc4eb560f3ecbe56) ) + ROM_LOAD16_BYTE( "wle_35.11h", 0x00001, 0x20000, CRC(2e64623b) SHA1(473f6fd10b2456553f1cbf92fd9a61ce94b1c59f) ) + ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) ) + ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) ) + ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) ) + ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) ) + ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( willowu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "wlu_30.11f", 0x00000, 0x20000, CRC(d604dbb1) SHA1(b5d78871011ff11a67f1a0cad147cd4de8d67f35) ) + ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(7a791e77) SHA1(fe1429588b7eceab1d369abe03f2cad8de727f71) ) + ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) ) + ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) ) /* seen the same pcb with WL_36.12H */ + ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) ) + ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) ) + ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 89624B-3 */ +/* Note that this set comes from a pcb running on an original Capcom USA Willow arcade cabinet, so even if there is + the Japan "warning" it's confirmed to be a genuine USA set and almost certainly the first USA release. Then Capcom + removed the incorrect "warning" releasing a new proper set of Willow (USA), as documented above. */ +ROM_START( willowuo ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "wlu_30.11f", 0x00000, 0x20000, CRC(d604dbb1) SHA1(b5d78871011ff11a67f1a0cad147cd4de8d67f35) ) + ROM_LOAD16_BYTE( "wlu_35.11h", 0x00001, 0x20000, CRC(daee72fe) SHA1(2ec62f44394fac2887821881f56b6f24d05234b3) ) + ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) ) + ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) ) + ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) ) + ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) ) + ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) ) + ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88622B-3 */ +ROM_START( willowj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "wl_36.12f", 0x00000, 0x20000, CRC(2b0d7cbc) SHA1(58172b4fdf856efa8d77abbde76738de2424f712) ) + ROM_LOAD16_BYTE( "wl_42.12h", 0x00001, 0x20000, CRC(1ac39615) SHA1(c9fa6d20418b9bdc5a08df1fb86368b40709280a) ) + ROM_LOAD16_BYTE( "wl_37.13f", 0x40000, 0x20000, CRC(30a717fa) SHA1(cb815e9ee2691761925898e3932b502f8f399cb4) ) + ROM_LOAD16_BYTE( "wl_43.13h", 0x40001, 0x20000, CRC(d0dddc9e) SHA1(1176b9a43b3355a5ba44e59abde01ee7eaa89c25) ) + ROM_LOAD16_BYTE( "wl_34.10f", 0x80000, 0x20000, CRC(23a84f7a) SHA1(f7667ffc85e2dfb78f5ed8ea54b6223e7375433a) ) // == wlm-32.8h + ROM_LOAD16_BYTE( "wl_40.10h", 0x80001, 0x20000, CRC(c7a0ed21) SHA1(190aec48a8f528652b434425f64ea2e52029ad3d) ) // == wlm-32.8h + ROM_LOAD16_BYTE( "wl_35.11f", 0xc0000, 0x20000, CRC(5eff7951) SHA1(f336bfd07f3083e3b3e72c61d03abb52d443204d) ) // == wlm-32.8h + ROM_LOAD16_BYTE( "wl_41.11h", 0xc0001, 0x20000, CRC(8d6477a3) SHA1(1bdb98f89ec8c2dcd47ab90bdd1be862ea59a16b) ) // == wlm-32.8h + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "wl_09.4b", 0x000000, 0x20000, CRC(05aa71b4) SHA1(791f845928ff164eace07cfcc35d0bd9d7cbb2d0) , ROM_SKIP(7) ) // == wlm-7.7a + ROMX_LOAD( "wl_01.4a", 0x000001, 0x20000, CRC(08c2df12) SHA1(269ca05ff6f9928e3b46f43b262c03ac3dd768b8) , ROM_SKIP(7) ) // == wlm-7.7a + ROMX_LOAD( "wl_13.9b", 0x000002, 0x20000, CRC(1f7c87cd) SHA1(6817c8b42ef4e8183fc2fbd2765e49ac955cca80) , ROM_SKIP(7) ) // == wlm-5.9a + ROMX_LOAD( "wl_05.9a", 0x000003, 0x20000, CRC(f5254bf2) SHA1(a53973b98b8e8903c731eb2514cb9ce4060d5164) , ROM_SKIP(7) ) // == wlm-5.9a + ROMX_LOAD( "wl_24.5e", 0x000004, 0x20000, CRC(d9d73ba1) SHA1(5f7b5e7e6fe64106cd96a968a54556e4f5ad9387) , ROM_SKIP(7) ) // == wlm-3.3a + ROMX_LOAD( "wl_17.5c", 0x000005, 0x20000, CRC(a652f30c) SHA1(b150d8978d37907c6d17042476c4608c76c4ea3f) , ROM_SKIP(7) ) // == wlm-3.3a + ROMX_LOAD( "wl_38.8h", 0x000006, 0x20000, CRC(f6f9111b) SHA1(bd44d1b6084fe2c09cdd91b5ad6eff7a84f3e601) , ROM_SKIP(7) ) // == wlm-1.5a + ROMX_LOAD( "wl_32.8f", 0x000007, 0x20000, CRC(10f64027) SHA1(abf387ba7d8f0530a562a984c08345a149cfa226) , ROM_SKIP(7) ) // == wlm-1.5a + ROMX_LOAD( "wl_10.5b", 0x100000, 0x20000, CRC(dbba0a3f) SHA1(38c0cdd87e6631721f35a0b85fd5165940454603) , ROM_SKIP(7) ) // == wlm-7.7a + ROMX_LOAD( "wl_02.5a", 0x100001, 0x20000, CRC(86fba7a5) SHA1(9389ad4e0968b3edd4baeac8b29637618f49dbfb) , ROM_SKIP(7) ) // == wlm-7.7a + ROMX_LOAD( "wl_14.10b", 0x100002, 0x20000, CRC(7d5798b2) SHA1(7dfcc172e5df0e8f4b9188381463f9eca00945dc) , ROM_SKIP(7) ) // == wlm-5.9a + ROMX_LOAD( "wl_06.10a", 0x100003, 0x20000, CRC(1f052948) SHA1(ca3a6be94ae50fa50604ee52704792b22cbbc083) , ROM_SKIP(7) ) // == wlm-5.9a + ROMX_LOAD( "wl_25.7e", 0x100004, 0x20000, CRC(857d17d2) SHA1(e6b383df9571df6743a7aa3087f0632dc4e6143b) , ROM_SKIP(7) ) // == wlm-3.3a + ROMX_LOAD( "wl_18.7c", 0x100005, 0x20000, CRC(316c7fbc) SHA1(631682c7f14fa73f5f5a4fb747bfb45d9613e507) , ROM_SKIP(7) ) // == wlm-3.3a + ROMX_LOAD( "wl_39.9h", 0x100006, 0x20000, CRC(e6fce9b0) SHA1(46d50cf32c3518ab3dc717553c5375f3cb022cde) , ROM_SKIP(7) ) // == wlm-1.5a + ROMX_LOAD( "wl_33.9f", 0x100007, 0x20000, CRC(a15d5517) SHA1(03a30e216f8240383d5fa9736b4fe5119d231685) , ROM_SKIP(7) ) // == wlm-1.5a + ROMX_LOAD( "wl_11.7b", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) ) // == wl_24.7d + ROMX_LOAD( "wl_03.7a", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) ) // == wl_14.7c + ROMX_LOAD( "wl_15.11b", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) ) // == wl_26.9d + ROMX_LOAD( "wl_07.11a", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) ) // == wl_16.9c + ROMX_LOAD( "wl_26.8e", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) ) // == wl_20.3d + ROMX_LOAD( "wl_19.8c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) ) // == wl_10.3c + ROMX_LOAD( "wl_28.10e", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) ) // == wl_22.5d + ROMX_LOAD( "wl_21.10c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) ) // == wl_12.5c + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "wl_23.13c", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) ) // == wl_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "wl_30.12e", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) ) // == wl_18.11c + ROM_LOAD( "wl_31.13e", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) ) // == wl_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "wl22b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 89624B-2 */ +ROM_START( unsquad ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "aru_30.11f", 0x00000, 0x20000, CRC(24d8f88d) SHA1(9c39aa1140e92307d6d9c0ca198003282bf78c78) ) + ROM_LOAD16_BYTE( "aru_35.11h", 0x00001, 0x20000, CRC(8b954b59) SHA1(33114f1417d48f60c6da3e14a094be7c0f0fd979) ) + ROM_LOAD16_BYTE( "aru_31.12f", 0x40000, 0x20000, CRC(33e9694b) SHA1(90db3052ac2ff859ede8473dd13e0f5be148590c) ) + ROM_LOAD16_BYTE( "aru_36.12h", 0x40001, 0x20000, CRC(7cc8fb9e) SHA1(f70118d1a368fd4795d9953c55d283305d1f9630) ) + ROM_LOAD16_WORD_SWAP( "ar-32m.8h", 0x80000, 0x80000, CRC(ae1d7fb0) SHA1(bb51e77574db5e2d807c4ca8e85a5d9661f5d3b3) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ar-5m.7a", 0x000000, 0x80000, CRC(bf4575d8) SHA1(1b268e1698be8ff9c16f80f7b9081b6be9f72601) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ar-7m.9a", 0x000002, 0x80000, CRC(a02945f4) SHA1(ff35cdbd6c1e43b16a906f68e416559cb3d5746b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ar-1m.3a", 0x000004, 0x80000, CRC(5965ca8d) SHA1(49abf80fc012a7f73306139a2871aeac7fd6a3d0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ar-3m.5a", 0x000006, 0x80000, CRC(ac6db17d) SHA1(78eef9ba6a392859f70467f6d7cb5aa91964abed) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ar_09.12b", 0x00000, 0x08000, CRC(f3dd1367) SHA1(09eef72e862ac6b1a5cce5a45938b45bf4e456ad) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "aru_18.11c", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) ) + /* 20000-3ffff empty */ + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ar24b.1a", 0x0000, 0x0117, CRC(09a51271) SHA1(147f53f426f258ad127157967fa59d4098e5ed16) ) + ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88622B-3 */ +ROM_START( area88 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ar_36.12f", 0x00000, 0x20000, CRC(65030392) SHA1(d9dea5cfde28345716b0e519ee033c475be0454b) ) + ROM_LOAD16_BYTE( "ar_42.12h", 0x00001, 0x20000, CRC(c48170de) SHA1(e968522dbdd217dd8e4cd6aaeaef801c63488c1d) ) + ROM_LOAD16_BYTE( "ar_37.13f", 0x40000, 0x20000, CRC(33e9694b) SHA1(90db3052ac2ff859ede8473dd13e0f5be148590c) ) // == aru_31.12f + ROM_LOAD16_BYTE( "ar_43.13h", 0x40001, 0x20000, CRC(7cc8fb9e) SHA1(f70118d1a368fd4795d9953c55d283305d1f9630) ) // == aru_36.12h + ROM_LOAD16_BYTE( "ar_34.10f", 0x80000, 0x20000, CRC(f6e80386) SHA1(462c1e9981b733df03e4d084df2d1fc58cf2022c) ) // == ar-32m.8h + ROM_LOAD16_BYTE( "ar_40.10h", 0x80001, 0x20000, CRC(be36c145) SHA1(9ada7ac7361ff8871e2ae61f75e4e5d98936cdc3) ) // == ar-32m.8h + ROM_LOAD16_BYTE( "ar_35.11f", 0xc0000, 0x20000, CRC(86d98ff3) SHA1(18137974fb7812b45f0d93e584ed14d0af2e6a3e) ) // == ar-32m.8h + ROM_LOAD16_BYTE( "ar_41.11h", 0xc0001, 0x20000, CRC(758893d3) SHA1(1245bfd35b0f12bd701cd28c9ce2e85e166a4de2) ) // == ar-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ar_09.4b", 0x000000, 0x20000, CRC(db9376f8) SHA1(501fc5543c66509f8fc1075c128fb01606ced2ad) , ROM_SKIP(7) ) // == ar-5m.7a + ROMX_LOAD( "ar_01.4a", 0x000001, 0x20000, CRC(392151b4) SHA1(ba3c69d852f750b43d8b4b2b58fcb7977cc0e5de) , ROM_SKIP(7) ) // == ar-5m.7a + ROMX_LOAD( "ar_13.9b", 0x000002, 0x20000, CRC(81436481) SHA1(85ceba63382959f7084bacb6aedcef80ddd8ad6b) , ROM_SKIP(7) ) // == ar-7m.9a + ROMX_LOAD( "ar_05.9a", 0x000003, 0x20000, CRC(e246ed9f) SHA1(aaaad5c81bf7c4ec4b2339fd8f0364096c86e903) , ROM_SKIP(7) ) // == ar-7m.9a + ROMX_LOAD( "ar_24.5e", 0x000004, 0x20000, CRC(9cd6e2a3) SHA1(186e756af496b0fb5b65cf7a106fe32c78d542c9) , ROM_SKIP(7) ) // == ar-1m.3a + ROMX_LOAD( "ar_17.5c", 0x000005, 0x20000, CRC(0b8e0df4) SHA1(ac8ab79e7237b72df9f42292a0c58aa56effe3a1) , ROM_SKIP(7) ) // == ar-1m.3a + ROMX_LOAD( "ar_38.8h", 0x000006, 0x20000, CRC(8b9e75b9) SHA1(eeeaa8f84167f7e8127b90318f052fe5e00c36ac) , ROM_SKIP(7) ) // == ar-3m.5a + ROMX_LOAD( "ar_32.8f", 0x000007, 0x20000, CRC(db6acdcf) SHA1(5842e29a0e29b4869b2c34a5f47f64c1a1f4609a) , ROM_SKIP(7) ) // == ar-3m.5a + ROMX_LOAD( "ar_10.5b", 0x100000, 0x20000, CRC(4219b622) SHA1(ecfc47687b466893b9c8587224830d600c754d17) , ROM_SKIP(7) ) // == ar-5m.7a + ROMX_LOAD( "ar_02.5a", 0x100001, 0x20000, CRC(bac5dec5) SHA1(e69f5c4e5c07db46f088d3eabfd394e7d639fea0) , ROM_SKIP(7) ) // == ar-5m.7a + ROMX_LOAD( "ar_14.10b", 0x100002, 0x20000, CRC(e6bae179) SHA1(31af958dedce5fcc1a7c159f96af4a3a1a4651fb) , ROM_SKIP(7) ) // == ar-7m.9a + ROMX_LOAD( "ar_06.10a", 0x100003, 0x20000, CRC(c8f04223) SHA1(c96eba0ce53e8505668dc646344e5b2456d60546) , ROM_SKIP(7) ) // == ar-7m.9a + ROMX_LOAD( "ar_25.7e", 0x100004, 0x20000, CRC(15ccf981) SHA1(2dd7a2d573089aa70b33586d6d9e6b8d816bd28e) , ROM_SKIP(7) ) // == ar-1m.3a + ROMX_LOAD( "ar_18.7c", 0x100005, 0x20000, CRC(9336db6a) SHA1(1704d6f0de08ed283c26ee0bcbb82a838060fe70) , ROM_SKIP(7) ) // == ar-1m.3a + ROMX_LOAD( "ar_39.9h", 0x100006, 0x20000, CRC(9b8e1363) SHA1(f830834305248446235cc6b17b17f7f0dd6baa03) , ROM_SKIP(7) ) // == ar-3m.5a + ROMX_LOAD( "ar_33.9f", 0x100007, 0x20000, CRC(3968f4b5) SHA1(42722c61c4b514b15f1594fdad688375e2c51e71) , ROM_SKIP(7) ) // == ar-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ar_23.13c", 0x00000, 0x08000, CRC(f3dd1367) SHA1(09eef72e862ac6b1a5cce5a45938b45bf4e456ad) ) // == ar_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ar_30.12e", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) ) // == aru_18.11c + /* 20000-3ffff empty */ + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ar22b.1a", 0x0000, 0x0117, CRC(f1db9030) SHA1(85a6eefb93e7bf7c7d3980737365a425c5324c08) ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 91634B-2, Japan Resale Ver. */ +ROM_START( area88r ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "araj_23.8f", 0x00000, 0x80000, CRC(7045d6cb) SHA1(5f8f3160e8e960ee67778232368d4f3430a0dade) ) + ROM_LOAD16_WORD_SWAP( "araj_22.7f", 0x80000, 0x80000, CRC(9913002e) SHA1(b2da8ad34bf4ea51679d35d91601faa91ef40ae5) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ara_01.3a", 0x000000, 0x80000, CRC(bf4575d8) SHA1(1b268e1698be8ff9c16f80f7b9081b6be9f72601) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-5m.7a + ROMX_LOAD( "ara_02.4a", 0x000002, 0x80000, CRC(a02945f4) SHA1(ff35cdbd6c1e43b16a906f68e416559cb3d5746b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-7m.9a + ROMX_LOAD( "ara_03.5a", 0x000004, 0x80000, CRC(5965ca8d) SHA1(49abf80fc012a7f73306139a2871aeac7fd6a3d0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-1m.3a + ROMX_LOAD( "ara_04.6a", 0x000006, 0x80000, CRC(ac6db17d) SHA1(78eef9ba6a392859f70467f6d7cb5aa91964abed) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-3m.5a + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ara_09.12a", 0x00000, 0x08000, CRC(af88359c) SHA1(5b7d872700a074fe1a4e11722e73374a23fa5e99) ) // == ar_09.12b + garbage + ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is unused, not mapped in memory + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ara_18.11c", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) ) // == aru_18.11c + /* 20000-3ffff empty */ + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ara63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(f5569c93) SHA1(7db7cf23639036590eef1e5e309f08560859efaf) ) /* Handcrafted but works on actual PCB. Redump needed */ + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( ffight ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket + ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket + ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket + ROM_LOAD16_BYTE( "ffe_43.12h", 0x40001, 0x20000, CRC(995e968a) SHA1(de16873d1639ac1738be0937270b108a9914f263) ) // in "36" socket + ROM_LOAD16_WORD_SWAP( "ff-32m.8h", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff-5m.7a", 0x000000, 0x80000, CRC(9c284108) SHA1(7868f5801347340867720255f8380548ad1a65a7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-7m.9a", 0x000002, 0x80000, CRC(a7584dfb) SHA1(f7b00a3ca8cb85264ab293089f9f540a8292b49c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-1m.3a", 0x000004, 0x80000, CRC(0b605e44) SHA1(5ce16af72858a57aefbf6efed820c2c51935882a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-3m.5a", 0x000006, 0x80000, CRC(52291cd2) SHA1(df5f3d3aa96a7a33ff22f2a31382942c4c4f1111) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_09.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s224b.1a", 0x0000, 0x0117, CRC(cdc4413e) SHA1(c74c60f8f4eb125ffb6414aefba270676d9b8a2d) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.11E */ +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( ffighta ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ffe_30.11f", 0x00000, 0x20000, CRC(2347bf51) SHA1(de05b347a8b4df4889d4e594e1abf741afdf0ab4) ) + ROM_LOAD16_BYTE( "ffe_35.11h", 0x00001, 0x20000, CRC(5f694ecc) SHA1(57c45ffcada0cdaf1f97c7e33c8300539828a238) ) + ROM_LOAD16_BYTE( "ffe_31.12f", 0x40000, 0x20000, CRC(6dc6b792) SHA1(553abebed2a1fa1ee2d85a4117f40d90e2321cea) ) + ROM_LOAD16_BYTE( "ffe_36.12h", 0x40001, 0x20000, CRC(b36a0b99) SHA1(cfb27987ee3d54c83c6fb73437a79dcdd96df22f) ) + ROM_LOAD16_WORD_SWAP( "ff-32m.8h", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff-5m.7a", 0x000000, 0x80000, CRC(9c284108) SHA1(7868f5801347340867720255f8380548ad1a65a7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-7m.9a", 0x000002, 0x80000, CRC(a7584dfb) SHA1(f7b00a3ca8cb85264ab293089f9f540a8292b49c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-1m.3a", 0x000004, 0x80000, CRC(0b605e44) SHA1(5ce16af72858a57aefbf6efed820c2c51935882a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-3m.5a", 0x000006, 0x80000, CRC(52291cd2) SHA1(df5f3d3aa96a7a33ff22f2a31382942c4c4f1111) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ffe_23.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b /* label is FFE_23, pcb verified */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s224b.1a", 0x0000, 0x0117, CRC(cdc4413e) SHA1(c74c60f8f4eb125ffb6414aefba270676d9b8a2d) ) + ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( ffightu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket + ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket + ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket + ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(4ca65947) SHA1(74ffe00df96273770a24d9a46f13e53ea8812670) ) // in "36" socket /* seen the same pcb with FF_43.12H */ + ROM_LOAD16_WORD_SWAP( "ff-32m.8h", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff-5m.7a", 0x000000, 0x80000, CRC(9c284108) SHA1(7868f5801347340867720255f8380548ad1a65a7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-7m.9a", 0x000002, 0x80000, CRC(a7584dfb) SHA1(f7b00a3ca8cb85264ab293089f9f540a8292b49c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-1m.3a", 0x000004, 0x80000, CRC(0b605e44) SHA1(5ce16af72858a57aefbf6efed820c2c51935882a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-3m.5a", 0x000006, 0x80000, CRC(52291cd2) SHA1(df5f3d3aa96a7a33ff22f2a31382942c4c4f1111) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_09.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) /* seen the same pcb with 23.12B */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s224b.1a", 0x0000, 0x0117, CRC(cdc4413e) SHA1(c74c60f8f4eb125ffb6414aefba270676d9b8a2d) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +/* Note that this set is equivalent to ffightu, but the 4Mbit MASK ROM FF-32M located @ 8H is replaced by 4 1Mbit EPROMs. */ +ROM_START( ffightu1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket + ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket + ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket + ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(4ca65947) SHA1(74ffe00df96273770a24d9a46f13e53ea8812670) ) // in "36" socket + ROM_LOAD16_BYTE( "ff_34.9f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // in "28" socket // == ff-32m.8h + ROM_LOAD16_BYTE( "ff_40.9h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // in "33" socket // == ff-32m.8h + ROM_LOAD16_BYTE( "ff_35.10f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // in "29" socket // == ff-32m.8h + ROM_LOAD16_BYTE( "ff_41.10h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // in "34" socket // == ff-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff-5m.7a", 0x000000, 0x80000, CRC(9c284108) SHA1(7868f5801347340867720255f8380548ad1a65a7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-7m.9a", 0x000002, 0x80000, CRC(a7584dfb) SHA1(f7b00a3ca8cb85264ab293089f9f540a8292b49c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-1m.3a", 0x000004, 0x80000, CRC(0b605e44) SHA1(5ce16af72858a57aefbf6efed820c2c51935882a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-3m.5a", 0x000006, 0x80000, CRC(52291cd2) SHA1(df5f3d3aa96a7a33ff22f2a31382942c4c4f1111) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_09.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s224b.1a", 0x0000, 0x0117, CRC(cdc4413e) SHA1(c74c60f8f4eb125ffb6414aefba270676d9b8a2d) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( ffightua ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ffu_36.11f", 0x00000, 0x20000, CRC(e2a48af9) SHA1(11e06f95bdf575af396dded2b84d858f6c7388f1) ) // in "30" socket + ROM_LOAD16_BYTE( "ffu_42.11h", 0x00001, 0x20000, CRC(f4bb480e) SHA1(32114df1d2f4f98a4a2280a330c7b6af8ab4d862) ) // in "35" socket + ROM_LOAD16_BYTE( "ffu_37.12f", 0x40000, 0x20000, CRC(c371c667) SHA1(633977c91a8ff09b7fe83128eced7c4dee9aee1d) ) // in "31" socket + ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(2f5771f9) SHA1(fb532402bc00b5619a23dfa7e4525f1717020303) ) // in "36" socket /* different CRC from ffightu, ffightu1, pcb verified */ + ROM_LOAD16_WORD_SWAP( "ff-32m.8h", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff-5m.7a", 0x000000, 0x80000, CRC(9c284108) SHA1(7868f5801347340867720255f8380548ad1a65a7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-7m.9a", 0x000002, 0x80000, CRC(a7584dfb) SHA1(f7b00a3ca8cb85264ab293089f9f540a8292b49c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-1m.3a", 0x000004, 0x80000, CRC(0b605e44) SHA1(5ce16af72858a57aefbf6efed820c2c51935882a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-3m.5a", 0x000006, 0x80000, CRC(52291cd2) SHA1(df5f3d3aa96a7a33ff22f2a31382942c4c4f1111) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_09.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s224b.1a", 0x0000, 0x0117, CRC(cdc4413e) SHA1(c74c60f8f4eb125ffb6414aefba270676d9b8a2d) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( ffightub ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ffu_30.11f", 0x00000, 0x20000, CRC(ed988977) SHA1(c718e989206bd2b68832c8fcb5667397d500ebac) ) + ROM_LOAD16_BYTE( "ffu_35.11h", 0x00001, 0x20000, CRC(07bf1c21) SHA1(f21a939fd92607c7f54816dedbcb3c5818cf4183) ) + ROM_LOAD16_BYTE( "ffu_31.12f", 0x40000, 0x20000, CRC(dba5a476) SHA1(2f0176dd050f9630b914f1c1ca5d96215bcf567f) ) + ROM_LOAD16_BYTE( "ffu_36.12h", 0x40001, 0x20000, CRC(4d89f542) SHA1(0b7d483a2c5759715f99f287cbd8a36165b59de7) ) + ROM_LOAD16_WORD_SWAP( "ff-32m.8h", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff-5m.7a", 0x000000, 0x80000, CRC(9c284108) SHA1(7868f5801347340867720255f8380548ad1a65a7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-7m.9a", 0x000002, 0x80000, CRC(a7584dfb) SHA1(f7b00a3ca8cb85264ab293089f9f540a8292b49c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-1m.3a", 0x000004, 0x80000, CRC(0b605e44) SHA1(5ce16af72858a57aefbf6efed820c2c51935882a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff-3m.5a", 0x000006, 0x80000, CRC(52291cd2) SHA1(df5f3d3aa96a7a33ff22f2a31382942c4c4f1111) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_23.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b /* label is FF_23, pcb verified */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s224b.1a", 0x0000, 0x0117, CRC(cdc4413e) SHA1(c74c60f8f4eb125ffb6414aefba270676d9b8a2d) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* FIXME B-Board uncertain but should be 88622B/89625B from the program ROM names */ +ROM_START( ffightj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ff36.bin", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // == ff_36.11f + ROM_LOAD16_BYTE( "ff42.bin", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // == ff_42.11h + ROM_LOAD16_BYTE( "ff37.bin", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // == ff_37.12f + ROM_LOAD16_BYTE( "ff43.bin", 0x40001, 0x20000, CRC(b6dee1c3) SHA1(3a85312a2e9d8e06259b73d91ccb5e66a6bad62d) ) + ROM_LOAD16_BYTE( "ffj_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ffj_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ffj_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_23.bin", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ffj_30.bin", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c + ROM_LOAD( "ffj_31.bin", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal & position verification required +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( ffightj1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ffj_36.12f", 0x00000, 0x20000, CRC(e2a48af9) SHA1(11e06f95bdf575af396dded2b84d858f6c7388f1) ) // == ffu_36.11f + ROM_LOAD16_BYTE( "ffj_42.12h", 0x00001, 0x20000, CRC(f4bb480e) SHA1(32114df1d2f4f98a4a2280a330c7b6af8ab4d862) ) // == ffu_42.11h + ROM_LOAD16_BYTE( "ffj_37.13f", 0x40000, 0x20000, CRC(c371c667) SHA1(633977c91a8ff09b7fe83128eced7c4dee9aee1d) ) // == ffu_37.12f + ROM_LOAD16_BYTE( "ffj_43.13h", 0x40001, 0x20000, CRC(6f81f194) SHA1(2cddf75a0a607cf57395583876cf81bcca005871) ) + ROM_LOAD16_BYTE( "ffj_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ffj_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ffj_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_23.13b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ffj_30.12c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c + ROM_LOAD( "ffj_31.13c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) ) + ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 88622B-3 */ +ROM_START( ffightj2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ffj_36a.12f", 0x00000, 0x20000, CRC(088ed1c9) SHA1(7b96cd45f4d3d2c0fe94904882652814b7790869) ) + ROM_LOAD16_BYTE( "ffj_42a.12h", 0x00001, 0x20000, CRC(c4c491e6) SHA1(d0e34d7b94f67c33615710ea721da8fefe832e3a) ) + ROM_LOAD16_BYTE( "ffj_37a.13f", 0x40000, 0x20000, CRC(708557ff) SHA1(89e56bfd9486623a18fdbf984a72bb52054ca0e6) ) + ROM_LOAD16_BYTE( "ffj_43a.13h", 0x40001, 0x20000, CRC(c004004a) SHA1(10ccf27972591f65645a8dd2bb65989176ac07d5) ) + ROM_LOAD16_BYTE( "ff_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ff_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ff_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ff_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_23.13c", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_30.12e", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c + ROM_LOAD( "ff_31.13e", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( ffightj3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ff_36.12f", 0x00000, 0x20000, CRC(ed988977) SHA1(c718e989206bd2b68832c8fcb5667397d500ebac) ) // == ffu_30.11f + ROM_LOAD16_BYTE( "ffj_42.12h", 0x00001, 0x20000, CRC(07bf1c21) SHA1(f21a939fd92607c7f54816dedbcb3c5818cf4183) ) // sldh - == ffu_35.11h + ROM_LOAD16_BYTE( "ff_37.13f", 0x40000, 0x20000, CRC(dba5a476) SHA1(2f0176dd050f9630b914f1c1ca5d96215bcf567f) ) // == ffu_31.12f + ROM_LOAD16_BYTE( "ffj_43.13h", 0x40001, 0x20000, CRC(fbeca028) SHA1(85eeed6a25b401d73d12896ca1e2bf7402c921ee) ) // sldh + ROM_LOAD16_BYTE( "ff_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ff_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h + ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) ) + ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) ) + ROMX_LOAD( "ff_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_23.13b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_30.12c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c + ROM_LOAD( "ff_31.13c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) ) + ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required +ROM_END + +/* B-Board 91634B-2 */ +/* This hack uses an official and original Final Fight JAP CPS-B-21 Board. The EPROMS have been modified and phoenixed. + The Board uses a GAL instead of the classic PAL located in position "1A". There is no ROM check at the start and no logo + Capcom (instead a chinese logo... maybe the bootleggers logo). Even if it's a JAP Board, the game intro is in english. */ +ROM_START( ffightjh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "ff_23.8f", 0x00000, 0x80000, CRC(ae3dda7f) SHA1(5f08ce1e6b6b0d45994d3354d59ef79f489c7ad7) ) + ROM_LOAD16_WORD_SWAP( "ff_22.7f", 0x80000, 0x80000, CRC(b2d5a3aa) SHA1(b60f7480d3d3ceebad4c21025394bacc154d7042) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff_1.3a", 0x000000, 0x80000, CRC(969d18e2) SHA1(7a30b7434e34ec98838a9ab8d953b2ef467d562e), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff_2.4a", 0x000002, 0x80000, CRC(02b59f99) SHA1(c1cb2bbf95c2006baad58b0a5a7278f1a8999901), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff_3.5a", 0x000004, 0x80000, CRC(01d507ae) SHA1(d7813daa5bd74bebdbbea578acb20ad3c8816997), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff_4.6a", 0x000006, 0x80000, CRC(f7c4ceb0) SHA1(3e9cf6379f06c5a736b4a0aadb7fbda914b91190), ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ff_9.12a", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "gal16v8a-15lp.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( 1941 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "41em_30.11f", 0x00000, 0x20000, CRC(4249ec61) SHA1(5323cfa6938e6d95db8469f09b2fb5b5c5068bfc) ) /* label is 41EM_30, pcb verified */ + ROM_LOAD16_BYTE( "41em_35.11h", 0x00001, 0x20000, CRC(ddbee5eb) SHA1(0fef53398f4e2cd6ccc7bc122dd893e0a4e2e052) ) /* label is 41EM_35, pcb verified */ + ROM_LOAD16_BYTE( "41em_31.12f", 0x40000, 0x20000, CRC(584e88e5) SHA1(af254408d939cc439b5653e60afbccdf59777085) ) /* label is 41EM_31, pcb verified */ + ROM_LOAD16_BYTE( "41em_36.12h", 0x40001, 0x20000, CRC(3cfc31d0) SHA1(7c0614e4e25502ff2d18aa4a97c91bf05ead875f) ) /* label is 41EM_36, pcb verified */ + ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "41_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) ) + ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( 1941r1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "41e_30.11f", 0x00000, 0x20000, CRC(9deb1e75) SHA1(68d9f91bef6a5c9e1bcbf286629aed6b37b4acb9) ) + ROM_LOAD16_BYTE( "41e_35.11h", 0x00001, 0x20000, CRC(d63942b3) SHA1(b4bc7d06dcefbc075d316f2d31abbd4c7a99dbae) ) + ROM_LOAD16_BYTE( "41e_31.12f", 0x40000, 0x20000, CRC(df201112) SHA1(d84f63bffeb9255cbabc02f23d7511f9b3c6a96c) ) + ROM_LOAD16_BYTE( "41e_36.12h", 0x40001, 0x20000, CRC(816a818f) SHA1(3e491a30352b71ddd775142f3a80cdde480b669f) ) + ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "41_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) ) + ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( 1941u ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "41u_30.11f", 0x00000, 0x20000, CRC(be5439d0) SHA1(a62e0aa4f13f504c0eded99d731f7c820c51cb3d) ) + ROM_LOAD16_BYTE( "41u_35.11h", 0x00001, 0x20000, CRC(6ac96595) SHA1(efff8185fd1aee29d9b5164a9aac61f77f769ae4) ) + ROM_LOAD16_BYTE( "41u_31.12f", 0x40000, 0x20000, CRC(9811d6eb) SHA1(6dda86a3a726a2b5459f0b90f58343966e9783cc) ) + ROM_LOAD16_BYTE( "41u_36.12h", 0x40001, 0x20000, CRC(a87e6137) SHA1(d4b63a0c14a35ebd61cddd01cdc6fc955d521ae2) ) + ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "41e_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) ) // == 41_18.11c /* label is 41E_18, pcb verified */ + ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( 1941j ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "41_36.12f", 0x00000, 0x20000, CRC(7fbd42ab) SHA1(4e52a599e3099bf3cccabb89152c69f216fde79e) ) + ROM_LOAD16_BYTE( "41_42.12h", 0x00001, 0x20000, CRC(c7781f89) SHA1(7e99c433de0c903791ae153a3cc8632042b0a90d) ) + ROM_LOAD16_BYTE( "41_37.13f", 0x40000, 0x20000, CRC(c6464b0b) SHA1(abef422d891d32334a858d49599f1ef7cf0db45d) ) + ROM_LOAD16_BYTE( "41_43.13h", 0x40001, 0x20000, CRC(440fc0b5) SHA1(e725535533c25a2c80a45a2200bbfd0dcda5ed97) ) + ROM_LOAD16_BYTE( "41_34.10f", 0x80000, 0x20000, CRC(b5f341ec) SHA1(95c740332e9e05250979a098e951600ca89cfde4) ) // == 41-32m.8h + ROM_LOAD16_BYTE( "41_40.10h", 0x80001, 0x20000, CRC(3979837d) SHA1(e35bca5cd6f7559447c553c7866a3934080ca018) ) // == 41-32m.8h + ROM_LOAD16_BYTE( "41_35.11f", 0xc0000, 0x20000, CRC(95cc979a) SHA1(96a22d2accdcd1ed3829ab0e1f17c1615f8bb2a9) ) // == 41-32m.8h + ROM_LOAD16_BYTE( "41_41.11h", 0xc0001, 0x20000, CRC(57496819) SHA1(fe705a25a2c6523c3bc0105f4b183931c5ffcc81) ) // == 41-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "41_09.4b", 0x000000, 0x20000, CRC(be1b6bc2) SHA1(0b11efb7adf6bb9c5fdef702171edd38c149e338) , ROM_SKIP(7) ) // == 41-5m.7a + ROMX_LOAD( "41_01.4a", 0x000001, 0x20000, CRC(d8946fc1) SHA1(e18d2bd5517a9a74973f5a505e59e400db3843e2) , ROM_SKIP(7) ) // == 41-5m.7a + ROMX_LOAD( "41_13.9b", 0x000002, 0x20000, CRC(2e06d0ec) SHA1(b7c886dce6bc5eefa34e39faec658dd9df34f82c) , ROM_SKIP(7) ) // == 41-7m.9a + ROMX_LOAD( "41_05.9a", 0x000003, 0x20000, CRC(d8ba28e0) SHA1(dd1908166b32cf3bb3222f6d3febc21371463395) , ROM_SKIP(7) ) // == 41-7m.9a + ROMX_LOAD( "41_24.5e", 0x000004, 0x20000, CRC(5aa43cee) SHA1(15e1aa2fee8deb25eefba067395961fee3e4c84d) , ROM_SKIP(7) ) // == 41-1m.3a + ROMX_LOAD( "41_17.5c", 0x000005, 0x20000, CRC(bbeff902) SHA1(1bf421072387ab7d59b57ecd33cb5ae6fd8ecd06) , ROM_SKIP(7) ) // == 41-1m.3a + ROMX_LOAD( "41_38.8h", 0x000006, 0x20000, CRC(8889c0aa) SHA1(23b74cc78fe1057c1776ea1f7371801441125a85) , ROM_SKIP(7) ) // == 41-3m.5a + ROMX_LOAD( "41_32.8f", 0x000007, 0x20000, CRC(f0168249) SHA1(1ce2330ea4460e7e72f16a1f7edbfa8abba6b5a0) , ROM_SKIP(7) ) // == 41-3m.5a + ROMX_LOAD( "41_10.5b", 0x100000, 0x20000, CRC(b7eb6a6d) SHA1(444b49e81cd46e90a9e1dfcf465f19c38189b2d7) , ROM_SKIP(7) ) // == 41-5m.7a + ROMX_LOAD( "41_02.5a", 0x100001, 0x20000, CRC(802e8153) SHA1(baf19220c53949dac0d0b75368d5f1ee6c32b619) , ROM_SKIP(7) ) // == 41-5m.7a + ROMX_LOAD( "41_14.10b", 0x100002, 0x20000, CRC(5a33f676) SHA1(96794463ddfae7ce4a7d7e6b65ff1b8da7b3dd74) , ROM_SKIP(7) ) // == 41-7m.9a + ROMX_LOAD( "41_06.10a", 0x100003, 0x20000, CRC(4e53650b) SHA1(a5b19b1ce38f04296dee38d35015869607ecc260) , ROM_SKIP(7) ) // == 41-7m.9a + ROMX_LOAD( "41_25.7e", 0x100004, 0x20000, CRC(94add360) SHA1(6f3542f028bdc453d0254de599b124240ea98259) , ROM_SKIP(7) ) // == 41-1m.3a + ROMX_LOAD( "41_18.7c", 0x100005, 0x20000, CRC(a5e1c1f3) SHA1(1961ad3c8965c51da8a19a7283333f3a19bb2030) , ROM_SKIP(7) ) // == 41-1m.3a + ROMX_LOAD( "41_39.9h", 0x100006, 0x20000, CRC(5b5c3949) SHA1(485b1baecee6bb9a6667baf404375fc758bdfb76) , ROM_SKIP(7) ) // == 41-3m.5a + ROMX_LOAD( "41_33.9f", 0x100007, 0x20000, CRC(7a31b0e2) SHA1(f2eca12f4e89266d923a94d0837c555bc1c6cb29) , ROM_SKIP(7) ) // == 41-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "41_23.13b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) ) // == 41_9.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "41_30.12c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) ) // == 41_18.11c + ROM_LOAD( "41_31.13c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) ) // == 41_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "yi22b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( mercs ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "so2_30e.11f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) ) + ROM_LOAD16_BYTE( "so2_35e.11h", 0x00001, 0x20000, CRC(78e63575) SHA1(5776de0daaaedd0dec2cec8d088a0fd8bb3d4dbe) ) + ROM_LOAD16_BYTE( "so2_31e.12f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) ) + ROM_LOAD16_BYTE( "so2_36e.12h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) ) + ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) ) + + ROM_REGION( 0x300000, "gfx", 0 ) + ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) ) + ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( mercsu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "so2_30a.11f", 0x00000, 0x20000, CRC(e4e725d7) SHA1(b0454dedeb741a7dd4ceb18bac958417ca74a7e6) ) + ROM_LOAD16_BYTE( "so2_35a.11h", 0x00001, 0x20000, CRC(e7843445) SHA1(192c85ced637e05b37ed889246ebb73e792e984b) ) + ROM_LOAD16_BYTE( "so2_31a.12f", 0x40000, 0x20000, CRC(c0b91dea) SHA1(5c1d086ae09e4f66384a03994b3c5e12d80582ff) ) + ROM_LOAD16_BYTE( "so2_36a.12h", 0x40001, 0x20000, CRC(591edf6c) SHA1(68d77e21fe32e0b95d2fabe40bc1cadd419ab0bd) ) + ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) ) + + ROM_REGION( 0x300000, "gfx", 0 ) + ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) ) + ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( mercsur1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "so2_30.11f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) ) // == so2_30e.11f + ROM_LOAD16_BYTE( "so2_35.11h", 0x00001, 0x20000, CRC(4477df61) SHA1(e9b42357c7073c098e8fde7e7d0e4a6e3062fd0d) ) + ROM_LOAD16_BYTE( "so2_31.12f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) ) // == so2_31e.12f + ROM_LOAD16_BYTE( "so2_36.12h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) ) // == so2_36e.12h + ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) ) + + ROM_REGION( 0x300000, "gfx", 0 ) + ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) ) + ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) ) + ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( mercsj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "so2_36.12f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) ) // == so2_30e.11f + ROM_LOAD16_BYTE( "so2_42.12h", 0x00001, 0x20000, CRC(2c3884c6) SHA1(98c3e93741d2344fe0a699aacdc5038bdd9007a0) ) + ROM_LOAD16_BYTE( "so2_37.13f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) ) // == so2_31e.12f + ROM_LOAD16_BYTE( "so2_43.13h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) ) // == so2_36e.12h + ROM_LOAD16_BYTE( "so2_34.10f", 0x80000, 0x20000, CRC(b8dae95f) SHA1(2db4a20afd40b772a16f1bee999a0b82d3379ac7) ) // == so2-32m.8h + ROM_LOAD16_BYTE( "so2_40.10h", 0x80001, 0x20000, CRC(de37771c) SHA1(45e1e2ef4e46dbe8881e809d700fdd3d06a03c92) ) // == so2-32m.8h + ROM_LOAD16_BYTE( "so2_35.11f", 0xc0000, 0x20000, CRC(7d24394d) SHA1(2f4cf51fcfc1b960b68cfe3f1b75914402f2c702) ) // == so2-32m.8h + ROM_LOAD16_BYTE( "so2_41.11h", 0xc0001, 0x20000, CRC(914f85e0) SHA1(0b32adf2d3c83e187a5f670de18728726fabb731) ) // == so2-32m.8h + + ROM_REGION( 0x300000, "gfx", 0 ) + ROMX_LOAD( "so2_09.4b", 0x000000, 0x20000, CRC(690c261d) SHA1(27219101fb62a0c0378e6f5d2f9c0bb5c9397193) , ROM_SKIP(7) ) // == so2-6m.8a + ROMX_LOAD( "so2_01.4a", 0x000001, 0x20000, CRC(31fd2715) SHA1(d80b7a93c3b4e5e482fe6bb9ed9d261377980351) , ROM_SKIP(7) ) // == so2-6m.8a + ROMX_LOAD( "so2_13.9b", 0x000002, 0x20000, CRC(b5e48282) SHA1(5f387929b4f1ebb8cb8c24138317d4208e2cf7c2) , ROM_SKIP(7) ) // == so2-8m.10a + ROMX_LOAD( "so2_05.9a", 0x000003, 0x20000, CRC(54bed82c) SHA1(4a45ceaec3f6162443b2c62b816612c19a609341) , ROM_SKIP(7) ) // == so2-8m.10a + ROMX_LOAD( "so2_24.5e", 0x000004, 0x20000, CRC(78b6f0cb) SHA1(679c39d71d3b73db088d0ab017e80fd8316045b5) , ROM_SKIP(7) ) // == so2-2m.4a + ROMX_LOAD( "so2_17.5c", 0x000005, 0x20000, CRC(e78bb308) SHA1(7c0c2cf4c79e0bb3c401ba8fdcc88ccc3ed64246) , ROM_SKIP(7) ) // == so2-2m.4a + ROMX_LOAD( "so2_38.8h", 0x000006, 0x20000, CRC(0010a9a2) SHA1(03fedaaa939b56afb1b376243542e68da68e2690) , ROM_SKIP(7) ) // == so2-4m.6a + ROMX_LOAD( "so2_32.8f", 0x000007, 0x20000, CRC(75dffc9a) SHA1(ef296e1c0742e0b5a6e104032f0492151e631691) , ROM_SKIP(7) ) // == so2-4m.6a + ROMX_LOAD( "so2_10.5b", 0x100000, 0x20000, CRC(2f871714) SHA1(8a39f120e3f50fc9a7e6cee659260b2f823fb0e0) , ROM_SKIP(7) ) // == so2-6m.8a + ROMX_LOAD( "so2_02.5a", 0x100001, 0x20000, CRC(b4b2a0b7) SHA1(ee42ed3de9021e8d08d6c7115f2de73476b93452) , ROM_SKIP(7) ) // == so2-6m.8a + ROMX_LOAD( "so2_14.10b", 0x100002, 0x20000, CRC(737a744b) SHA1(8e1477a67862f7c0c598d3d1a1f633946e7ab31b) , ROM_SKIP(7) ) // == so2-8m.10a + ROMX_LOAD( "so2_06.10a", 0x100003, 0x20000, CRC(9d756f51) SHA1(4e9773ee25f6a952fb4f541d37e5e46e4089fd07) , ROM_SKIP(7) ) // == so2-8m.10a + ROMX_LOAD( "so2_25.7e", 0x100004, 0x20000, CRC(6d0e05d6) SHA1(47cbec235bd4b250db007218dc357101ae453d1a) , ROM_SKIP(7) ) // == so2-2m.4a + ROMX_LOAD( "so2_18.7c", 0x100005, 0x20000, CRC(96f61f4e) SHA1(954334bd8c2d2b02175de60d6a181a23e723d040) , ROM_SKIP(7) ) // == so2-2m.4a + ROMX_LOAD( "so2_39.9h", 0x100006, 0x20000, CRC(d52ba336) SHA1(49550d316e575a4e64ea6a5f769f3cd716be6df5) , ROM_SKIP(7) ) // == so2-4m.6a + ROMX_LOAD( "so2_33.9f", 0x100007, 0x20000, CRC(39b90d25) SHA1(1089cca168a4abeb398fa93eddd4d9fff70d5db5) , ROM_SKIP(7) ) // == so2-4m.6a + ROMX_LOAD( "so2_11.7b", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) ) // == so2_24.7d + ROMX_LOAD( "so2_03.7a", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) ) // == so2_14.7c + ROMX_LOAD( "so2_15.11b", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) ) // == so2_26.9d + ROMX_LOAD( "so2_07.11a", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) ) // == so2_16.9c + ROMX_LOAD( "so2_26.8e", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) ) // == so2_20.3d + ROMX_LOAD( "so2_19.8c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) ) // == so2_10.3c + ROMX_LOAD( "so2_28.10e", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) ) // == so2_22.5d + ROMX_LOAD( "so2_21.10c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) ) // == so2_12.5c + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "so2_23.13b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) ) // == so2_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "so2_30.12c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) ) // == so2_18.11c + ROM_LOAD( "so2_31.13c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) ) // == so2_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "o222b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( mtwins ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "che_30.11f", 0x00000, 0x20000, CRC(9a2a2db1) SHA1(57524e76311afc8ab5d5affa76c85cb1be5a1faf) ) + ROM_LOAD16_BYTE( "che_35.11h", 0x00001, 0x20000, CRC(a7f96b02) SHA1(b5fda02e5069f9e1cdafbacf98334510e9af8fcd) ) + ROM_LOAD16_BYTE( "che_31.12f", 0x40000, 0x20000, CRC(bbff8a99) SHA1(1f931fad9f43a1494f3b8dbcf910156d5b0bd458) ) + ROM_LOAD16_BYTE( "che_36.12h", 0x40001, 0x20000, CRC(0fa00c39) SHA1(6404d91590c5c521c8fe944a0aa7091e35b664ae) ) + ROM_LOAD16_WORD_SWAP( "ck-32m.8h", 0x80000, 0x80000, CRC(9b70bd41) SHA1(28ec37d9d0ace5b9fd212fdc02e0f13dc280c068) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ck-5m.7a", 0x000000, 0x80000, CRC(4ec75f15) SHA1(a4669e3864009b01894406db784116ad5cd2eced) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ck-7m.9a", 0x000002, 0x80000, CRC(d85d00d6) SHA1(ca6ddcbfbb0f9ad98dc19f09e879fdac5b62d168) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ck-1m.3a", 0x000004, 0x80000, CRC(f33ca9d4) SHA1(480d90ff16f27777cc7d7de6925ed6378b35dc27) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ck-3m.5a", 0x000006, 0x80000, CRC(0ba2047f) SHA1(efee13b955c2ded52700025cecbb9fb301098b61) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ch_09.12b", 0x00000, 0x08000, CRC(4d4255b7) SHA1(81a76b58043af7252a854b7efc4109957ef0e679) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ch_18.11c", 0x00000, 0x20000, CRC(f909e8de) SHA1(2dd5bd4076e7d5ded98b72919f868ea700df2e4f) ) + ROM_LOAD( "ch_19.12c", 0x20000, 0x20000, CRC(fc158cf7) SHA1(294b93d0aea60663ffe96364671552e944a1264b) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ck24b.1a", 0x0000, 0x0117, CRC(bd99c448) SHA1(2692c158f76769b0743103cc3a6d1c5d1f4f52ec) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( chikij ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "chj_36a.12f", 0x00000, 0x20000, CRC(ec1328d8) SHA1(a7111f9c264c56d1c6474ec3ad90e394a32a86f6) ) + ROM_LOAD16_BYTE( "chj_42a.12h", 0x00001, 0x20000, CRC(4ae13503) SHA1(c47db0445e107ad4fb62b74e277a7dc2b4d9b7ea) ) + ROM_LOAD16_BYTE( "chj_37a.13f", 0x40000, 0x20000, CRC(46d2cf7b) SHA1(5cb7ed3003d89a08882d4dcd326c8fd9430f0eac) ) + ROM_LOAD16_BYTE( "chj_43a.13h", 0x40001, 0x20000, CRC(8d387fe8) SHA1(7832ecd487b5ef4e49b5ea78e80e52f8e2dcaa17) ) + ROM_LOAD16_BYTE( "ch_34.10f", 0x80000, 0x20000, CRC(609ed2f9) SHA1(869924ff1bc78ac4b50bcfd37a8e76820a9fddf1) ) // == ck-32m.8h + ROM_LOAD16_BYTE( "ch_40.10h", 0x80001, 0x20000, CRC(be0d8301) SHA1(28dbbb4176800b31068b1beecf54a78085092e5a) ) // == ck-32m.8h + ROM_LOAD16_BYTE( "ch_35.11f", 0xc0000, 0x20000, CRC(b810867f) SHA1(c971d286c60a9b61f42ea3b792cf59847aacb965) ) // == ck-32m.8h + ROM_LOAD16_BYTE( "ch_41.11h", 0xc0001, 0x20000, CRC(8ad96155) SHA1(673a5b5eb7330fbbc02aabcdb164efea193613a3) ) // == ck-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ch_09.4b", 0x000000, 0x20000, CRC(567ab3ca) SHA1(b3d1531d9307285fcecff937dce0bed7ce9e4253) , ROM_SKIP(7) ) // == ck-5m.7a + ROMX_LOAD( "ch_01.4a", 0x000001, 0x20000, CRC(7f3b7b56) SHA1(cf78c3122628aa0e14f7b5017429aee35e9b266d) , ROM_SKIP(7) ) // == ck-5m.7a + ROMX_LOAD( "ch_13.9b", 0x000002, 0x20000, CRC(12a7a8ba) SHA1(22eaa1c667213a37b2c700c5c80dbf9cb81b9f5f) , ROM_SKIP(7) ) // == ck-7m.9a + ROMX_LOAD( "ch_05.9a", 0x000003, 0x20000, CRC(6c1afb9a) SHA1(cef28a63550c6ec3fe7cd7ec478a7fb726df4e27) , ROM_SKIP(7) ) // == ck-7m.9a + ROMX_LOAD( "ch_24.5e", 0x000004, 0x20000, CRC(9cb6e6bc) SHA1(af241438de5bd754e176eec8ad45941f9bf30523) , ROM_SKIP(7) ) // == ck-1m.3a + ROMX_LOAD( "ch_17.5c", 0x000005, 0x20000, CRC(fe490846) SHA1(0d1ddb79c1ee2a7ff4bcdb960e18fc3cfb115e75) , ROM_SKIP(7) ) // == ck-1m.3a + ROMX_LOAD( "ch_38.8h", 0x000006, 0x20000, CRC(6e5c8cb6) SHA1(438b897c14dccc0a185032b1ae2b93d71eed305a) , ROM_SKIP(7) ) // == ck-3m.5a + ROMX_LOAD( "ch_32.8f", 0x000007, 0x20000, CRC(317d27b0) SHA1(5d8a3ab24fcf65b30e1c0affd80301e29e3bf208) , ROM_SKIP(7) ) // == ck-3m.5a + ROMX_LOAD( "ch_10.5b", 0x100000, 0x20000, CRC(e8251a9b) SHA1(e0d5eaba20dc1132643b9ea334b36034ce97fc6d) , ROM_SKIP(7) ) // == ck-5m.7a + ROMX_LOAD( "ch_02.5a", 0x100001, 0x20000, CRC(7c8c88fb) SHA1(29d1e5d6780b7d6875efff6b086fd03bef779df7) , ROM_SKIP(7) ) // == ck-5m.7a + ROMX_LOAD( "ch_14.10b", 0x100002, 0x20000, CRC(4012ec4b) SHA1(041e08e1f407528da84b973d16c5f64f02bd14fe) , ROM_SKIP(7) ) // == ck-7m.9a + ROMX_LOAD( "ch_06.10a", 0x100003, 0x20000, CRC(81884b2b) SHA1(1e4682183c167c95b2fb3986887c31d3e8911484) , ROM_SKIP(7) ) // == ck-7m.9a + ROMX_LOAD( "ch_25.7e", 0x100004, 0x20000, CRC(1dfcbac5) SHA1(a7e419326a4bb7062c5bc7d0b3194b96e00a92d0) , ROM_SKIP(7) ) // == ck-1m.3a + ROMX_LOAD( "ch_18.7c", 0x100005, 0x20000, CRC(516a34d1) SHA1(6516fa19d251898c6f55ab0fda760fc5404bef06) , ROM_SKIP(7) ) // == ck-1m.3a + ROMX_LOAD( "ch_39.9h", 0x100006, 0x20000, CRC(872fb2a4) SHA1(1f5d12b78100dfba7f6c9a076f7923811467aa2b) , ROM_SKIP(7) ) // == ck-3m.5a + ROMX_LOAD( "ch_33.9f", 0x100007, 0x20000, CRC(30dc5ded) SHA1(34a7a6f9aa61ce47116d63c2feb7ea8a427b93e0) , ROM_SKIP(7) ) // == ck-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ch_23.13b", 0x00000, 0x08000, CRC(4d4255b7) SHA1(81a76b58043af7252a854b7efc4109957ef0e679) ) // == ch_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ch_30.12c", 0x00000, 0x20000, CRC(f909e8de) SHA1(2dd5bd4076e7d5ded98b72919f868ea700df2e4f) ) // == ch_18.11c + ROM_LOAD( "ch_31.13c", 0x20000, 0x20000, CRC(fc158cf7) SHA1(294b93d0aea60663ffe96364671552e944a1264b) ) // == ch_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ck22b.1a", 0x0000, 0x0117, CRC(24fdfdeb) SHA1(850b760de694dc5455e63c89983266ecda836400) ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) // pal verification required +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( msword ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "mse_30.11f", 0x00000, 0x20000, CRC(03fc8dbc) SHA1(a9e4e8a06e2d170faeae75a8b17fd65e6e5fecd4) ) + ROM_LOAD16_BYTE( "mse_35.11h", 0x00001, 0x20000, CRC(d5bf66cd) SHA1(37c5bc4deafd7037ec5cf09c88bb89f35ea3d95c) ) + ROM_LOAD16_BYTE( "mse_31.12f", 0x40000, 0x20000, CRC(30332bcf) SHA1(1c77c06028b77473276cb5dde5ecf414b43a7b78) ) + ROM_LOAD16_BYTE( "mse_36.12h", 0x40001, 0x20000, CRC(8f7d6ce9) SHA1(7694c940023c12520663593f973ddb4168a6bfa5) ) + ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) ) + ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( mswordr1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ms_30.11f", 0x00000, 0x20000, CRC(21c1f078) SHA1(f32bd3b462cc84466244b362a66510b9d40ac2fd) ) + ROM_LOAD16_BYTE( "ms_35.11h", 0x00001, 0x20000, CRC(a540a73a) SHA1(1c91241ba0d17d13adaa68e231b95dfd49d93b6d) ) + ROM_LOAD16_BYTE( "ms_31.12f", 0x40000, 0x20000, CRC(d7e762b5) SHA1(6977130e9c0cd36d8a67e242c132df38f7aea5b7) ) + ROM_LOAD16_BYTE( "ms_36.12h", 0x40001, 0x20000, CRC(66f2dcdb) SHA1(287508b1c96762d0048a10272cf2cbd39a7fba5c) ) + ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) ) + ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( mswordu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "msu_30.11f", 0x00000, 0x20000, CRC(d963c816) SHA1(e23844a60ddfc0a8a98c0ada9c3d58fce71c5484) ) + ROM_LOAD16_BYTE( "msu_35.11h", 0x00001, 0x20000, CRC(72f179b3) SHA1(8d31cdc84b02fc345fc78e8f231410adeb834c28) ) + ROM_LOAD16_BYTE( "msu_31.12f", 0x40000, 0x20000, CRC(20cd7904) SHA1(cea2db01be97f69dc10e9da80f3b46f6ddaa953a) ) + ROM_LOAD16_BYTE( "msu_36.12h", 0x40001, 0x20000, CRC(bf88c080) SHA1(b8cd0b127fd3e1afc45402e667ff4b4b01602384) ) + ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) ) + ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( mswordj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "msj_36.12f", 0x00000, 0x20000, CRC(04f0ef50) SHA1(76dac695732ade1873bb6da51834ef90c6595689) ) + ROM_LOAD16_BYTE( "msj_42.12h", 0x00001, 0x20000, CRC(9fcbb9cd) SHA1(bfbf805ddecd3fa9e209a658526e1430ad9e459a) ) + ROM_LOAD16_BYTE( "msj_37.13f", 0x40000, 0x20000, CRC(6c060d70) SHA1(7fe56f125bc11156955bf0defc956fe7c18a1c72) ) + ROM_LOAD16_BYTE( "msj_43.13h", 0x40001, 0x20000, CRC(aec77787) SHA1(3260f9a80b67394dd90dbabdd544c9b8b31e5817) ) + ROM_LOAD16_BYTE( "ms_34.10f", 0x80000, 0x20000, CRC(0e59a62d) SHA1(d109e5edfb32ce3dc7c32e10a78fc3e943029a73) ) // == ms-32m.8h + ROM_LOAD16_BYTE( "ms_40.10h", 0x80001, 0x20000, CRC(babade3a) SHA1(00acdcb5b316611a6df55e54f6ac4ec3503e1cac) ) // == ms-32m.8h + ROM_LOAD16_BYTE( "ms_35.11f", 0xc0000, 0x20000, CRC(03da99d1) SHA1(f21a27f1122e1ee237a53b06ecd24737ac0d2c0e) ) // == ms-32m.8h + ROM_LOAD16_BYTE( "ms_41.11h", 0xc0001, 0x20000, CRC(fadf99ea) SHA1(a3f3ef357f02c30b7f76941e5f854746774b0114) ) // == ms-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ms_09.4b", 0x000000, 0x20000, CRC(4adee6f6) SHA1(3becf055313f2fb90c42b839124d8ba4ccc047e0) , ROM_SKIP(7) ) // == ms-5m.7a + ROMX_LOAD( "ms_01.4a", 0x000001, 0x20000, CRC(f7ab1b88) SHA1(9dae1c21c5379413e173fb13521821339ef0852e) , ROM_SKIP(7) ) // == ms-5m.7a + ROMX_LOAD( "ms_13.9b", 0x000002, 0x20000, CRC(e01adc4b) SHA1(1eaf3511a3ffbd4b26a755d5f818e604cfd7764a) , ROM_SKIP(7) ) // == ms-7m.9a + ROMX_LOAD( "ms_05.9a", 0x000003, 0x20000, CRC(f62c2369) SHA1(568d05c256889a2450b53373e68858ea6ae52007) , ROM_SKIP(7) ) // == ms-7m.9a + ROMX_LOAD( "ms_24.5e", 0x000004, 0x20000, CRC(be64a3a1) SHA1(92a8f44a7f141fa189543f7b2564b9c0e44fb44f) , ROM_SKIP(7) ) // == ms-1m.3a + ROMX_LOAD( "ms_17.5c", 0x000005, 0x20000, CRC(0bc1665f) SHA1(4b92e4f1f423964ece9d5ecbe960be3a06c42565) , ROM_SKIP(7) ) // == ms-1m.3a + ROMX_LOAD( "ms_38.8h", 0x000006, 0x20000, CRC(904a2ed5) SHA1(8954c13f5c008ab6f28fa3adfba811c1173a2d88) , ROM_SKIP(7) ) // == ms-3m.5a + ROMX_LOAD( "ms_32.8f", 0x000007, 0x20000, CRC(3d89c530) SHA1(7a9d82e1ccd0dd3b27d91013ef127233a0dd42a1) , ROM_SKIP(7) ) // == ms-3m.5a + ROMX_LOAD( "ms_10.5b", 0x100000, 0x20000, CRC(f02c0718) SHA1(6055673fff3b57b7ba69eea8b45d7df36dfc5ba7) , ROM_SKIP(7) ) // == ms-5m.7a + ROMX_LOAD( "ms_02.5a", 0x100001, 0x20000, CRC(d071a405) SHA1(205d706a992efa4bd772699472ab40eedd70f686) , ROM_SKIP(7) ) // == ms-5m.7a + ROMX_LOAD( "ms_14.10b", 0x100002, 0x20000, CRC(dfb2e4df) SHA1(371c2a8d97eb0592b7b8767c1b992b4375933ac4) , ROM_SKIP(7) ) // == ms-7m.9a + ROMX_LOAD( "ms_06.10a", 0x100003, 0x20000, CRC(d3ce2a91) SHA1(21ed0f7d4a1e9d0b1eb6a1cf4e5d082b773eb36c) , ROM_SKIP(7) ) // == ms-7m.9a + ROMX_LOAD( "ms_25.7e", 0x100004, 0x20000, CRC(0f199d56) SHA1(0df4eda96b3327bd1d1fe6416e75e8b76b6593ac) , ROM_SKIP(7) ) // == ms-1m.3a + ROMX_LOAD( "ms_18.7c", 0x100005, 0x20000, CRC(1ba76df2) SHA1(db7c16e6fde29c764278bdf76fc04c05567666e5) , ROM_SKIP(7) ) // == ms-1m.3a + ROMX_LOAD( "ms_39.9h", 0x100006, 0x20000, CRC(01efce86) SHA1(665182bb61b1efb300422f7076d8538d2ca514ce) , ROM_SKIP(7) ) // == ms-3m.5a + ROMX_LOAD( "ms_33.9f", 0x100007, 0x20000, CRC(ce25defc) SHA1(885eef9bac1d401f3e49c46294e573dd9cfad3a1) , ROM_SKIP(7) ) // == ms-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ms_23.13b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) ) // == ms_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ms_30.12c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) ) // == ms_18.11c + ROM_LOAD( "ms_31.13c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) ) // == ms_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ms22b.1a", 0x0000, 0x0117, CRC(dde86cb0) SHA1(d0b93a0b62a7cc3c3473da31fc00043392bc8f75) ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( cawing ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "cae_30a.11f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) ) + ROM_LOAD16_BYTE( "cae_35a.11h", 0x00001, 0x20000, CRC(3ef03083) SHA1(297dfc9ec1e0f07d6083bf5efaa0de8d0fb361fa) ) + ROM_LOAD16_BYTE( "cae_31a.12f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) ) + ROM_LOAD16_BYTE( "cae_36a.12h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) ) + ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ca_9.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ca_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) + ROM_LOAD( "ca_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( cawingr1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "cae_30.11f", 0x00000, 0x20000, CRC(23305cd5) SHA1(59cbcb79c171b433f278e128c73cdd3635876370) ) + ROM_LOAD16_BYTE( "cae_35.11h", 0x00001, 0x20000, CRC(69419113) SHA1(cfbb6dbbe224ffaf7747fd70b65a7dbd4f696fe9) ) + ROM_LOAD16_BYTE( "cae_31.12f", 0x40000, 0x20000, CRC(9008dfb3) SHA1(81fdd21606caabe9e0df773fc33377c958ab80f6) ) + ROM_LOAD16_BYTE( "cae_36.12h", 0x40001, 0x20000, CRC(4dbf6f8e) SHA1(a2da49dce72c2366381bd8bea8ce4eba0b70d78c) ) + ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "cae_09.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "cae_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c + ROM_LOAD( "cae_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( cawingu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "cau_30a.11f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) ) // == cae_30a.11f + ROM_LOAD16_BYTE( "cau_35a.11h", 0x00001, 0x20000, CRC(f090d9b2) SHA1(261dc4ac79507299a7f9a1ad5edb8425345db06c) ) + ROM_LOAD16_BYTE( "cau_31a.12f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) ) // == cae_31a.12f + ROM_LOAD16_BYTE( "cau_36a.12h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) ) // == cae_36a.12h + ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "cau_09.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "cau_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c + ROM_LOAD( "cau_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( cawingj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "caj_36a.12f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) ) // == cae_30a.11f + ROM_LOAD16_BYTE( "caj_42a.12h", 0x00001, 0x20000, CRC(039f8362) SHA1(3fc7a642ddeaf94abdfdd5788a4b3c3b1f1b4c5e) ) + ROM_LOAD16_BYTE( "caj_37a.13f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) ) // == cae_31a.12f + ROM_LOAD16_BYTE( "caj_43a.13h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) ) // == cae_36a.12h + ROM_LOAD16_BYTE( "caj_34.10f", 0x80000, 0x20000, CRC(51ea57f4) SHA1(7d7080dbf4b6f9b801b796937e9c3c45afed602f) ) + ROM_LOAD16_BYTE( "caj_40.10h", 0x80001, 0x20000, CRC(2ab71ae1) SHA1(23814b58322902b23c4bdd744e60d819811462cc) ) + ROM_LOAD16_BYTE( "caj_35.11f", 0xc0000, 0x20000, CRC(01d71973) SHA1(1f5fc0d47f1456a6338284f883dabc89697f8aa5) ) + ROM_LOAD16_BYTE( "caj_41.11h", 0xc0001, 0x20000, CRC(3a43b538) SHA1(474a701500632cbd395ae404ede1d10a9969b342) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "caj_09.4b", 0x000000, 0x20000, CRC(41b0f9a6) SHA1(5a59df64d0c665d5d479ef2d9e7ec191ca0e7a92) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_01.4a", 0x000001, 0x20000, CRC(1002d0b8) SHA1(896bec683c1164c6f1fa1d81cadb8a1c549d4a4e) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_13.9b", 0x000002, 0x20000, CRC(6f3948b2) SHA1(942d37b84c727074941316b042679110594ae249) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_05.9a", 0x000003, 0x20000, CRC(207373d7) SHA1(4fa67c847f65e2657900f4fc93f1d8a7b95c12e6) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_24.5e", 0x000004, 0x20000, CRC(e356aad7) SHA1(55f1489044e70a57ad15e1f2c20567bd6c770f71) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_17.5c", 0x000005, 0x20000, CRC(540f2fd8) SHA1(4f500c7795aa41d472c59d2594fc84f6b17ed137) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_38.8h", 0x000006, 0x20000, CRC(2464d4ab) SHA1(092864551e7c1c6adbeb901a556f650ccf6ca2f4) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_32.8f", 0x000007, 0x20000, CRC(9b5836b3) SHA1(3fda5409d99104f355fa42ec413ccb799d1506c9) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_10.5b", 0x100000, 0x20000, CRC(bf8a5f52) SHA1(8cdd31a58de560d282e708c57cda0fefa7d6c92f) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_02.5a", 0x100001, 0x20000, CRC(125b018d) SHA1(edb3271f668e0328efd59e0929ee86efd5aa7b1f) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_14.10b", 0x100002, 0x20000, CRC(8458e7d7) SHA1(7ebe0a3597a7d8482c2d33640ed1b994fd3a02b2) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_06.10a", 0x100003, 0x20000, CRC(cf80e164) SHA1(d83573947fec01a9814919df719474aa3e6ae9a0) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_25.7e", 0x100004, 0x20000, CRC(cdd0204d) SHA1(7cbc129bc148718f8c36e27f05583cdecc57b63e) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_18.7c", 0x100005, 0x20000, CRC(29c1d4b1) SHA1(d0109ab2f521786a64548910947ca24976ec1218) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_39.9h", 0x100006, 0x20000, CRC(eea23b67) SHA1(79d35c15b4b4430d90cd6c270cdd3a064bc2e1a3) , ROM_SKIP(7) ) + ROMX_LOAD( "caj_33.9f", 0x100007, 0x20000, CRC(dde3891f) SHA1(25b8069a9c8615323b94157b1ce39805559b68f4) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "caj_23.13b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "caj_30.12c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c + ROM_LOAD( "caj_31.13c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ca22b.1a", 0x0000, 0x0117, CRC(5152e678) SHA1(ac61df30cd073b26f2145e3ea0c513ec804d047a) ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.12E */ +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( nemo ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "nme_30a.11f", 0x00000, 0x20000, CRC(d2c03e56) SHA1(df468e3b5deba01a6825b742f1cc87bfb26c1981) ) + ROM_LOAD16_BYTE( "nme_35a.11h", 0x00001, 0x20000, CRC(5fd31661) SHA1(12f92a7255e8cae6975452db956670cf72d51768) ) + ROM_LOAD16_BYTE( "nme_31a.12f", 0x40000, 0x20000, CRC(b2bd4f6f) SHA1(82a59b5f36cb4c23dca05297e2a643842fc12609) ) + ROM_LOAD16_BYTE( "nme_36a.12h", 0x40001, 0x20000, CRC(ee9450e3) SHA1(a5454268ef58533e71fe07167b4c3fd263363f77) ) + ROM_LOAD16_WORD_SWAP( "nm-32m.8h", 0x80000, 0x80000, CRC(d6d1add3) SHA1(61c3013d322dbb7622cca032adcd020ba318e885) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "nm-5m.7a", 0x000000, 0x80000, CRC(487b8747) SHA1(f14339b02b8f7ec2002632349e88fed4afc30050) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nm-7m.9a", 0x000002, 0x80000, CRC(203dc8c6) SHA1(d52577500e822b89904d1510d559f8575c2aaa78) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nm-1m.3a", 0x000004, 0x80000, CRC(9e878024) SHA1(9a5ce3a6a7952a8954d0709b9473db9253793d70) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nm-3m.5a", 0x000006, 0x80000, CRC(bb01e6b6) SHA1(3883e28f721d0278b2f4f877a804e95ee14f53e4) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "nme_09.12b", 0x00000, 0x08000, CRC(0f4b0581) SHA1(2e5a2885149c632abfaf4292a1bf032c13c8da6c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "nme_18.11c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) ) + ROM_LOAD( "nme_19.12c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "nm24b.1a", 0x0000, 0x0117, CRC(7b25bac6) SHA1(fa0083c59c8d6da07798cb3a4fc25d388065b7cd) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( nemor1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "nme_30.11f", 0x00000, 0x20000, CRC(71b333db) SHA1(8bd8b62d8fef2ad9d2788ccf46e89da953e5817c) ) + ROM_LOAD16_BYTE( "nme_35.11h", 0x00001, 0x20000, CRC(d153bc18) SHA1(2b4a9a50081d403a6485b7311e179a31b659b74d) ) + ROM_LOAD16_BYTE( "nme_31.12f", 0x40000, 0x20000, CRC(7e83dbd2) SHA1(d4c7e3786faab4dd9ded3c1a8f6fea114d423e64) ) + ROM_LOAD16_BYTE( "nme_36.12h", 0x40001, 0x20000, CRC(6aeeec81) SHA1(d7dce52d0f2225d844d852d2c3e81a48cb53a43d) ) + ROM_LOAD16_WORD_SWAP( "nm-32m.8h", 0x80000, 0x80000, CRC(d6d1add3) SHA1(61c3013d322dbb7622cca032adcd020ba318e885) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "nm-5m.7a", 0x000000, 0x80000, CRC(487b8747) SHA1(f14339b02b8f7ec2002632349e88fed4afc30050) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nm-7m.9a", 0x000002, 0x80000, CRC(203dc8c6) SHA1(d52577500e822b89904d1510d559f8575c2aaa78) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nm-1m.3a", 0x000004, 0x80000, CRC(9e878024) SHA1(9a5ce3a6a7952a8954d0709b9473db9253793d70) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nm-3m.5a", 0x000006, 0x80000, CRC(bb01e6b6) SHA1(3883e28f721d0278b2f4f877a804e95ee14f53e4) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "nme_09.12b", 0x00000, 0x08000, CRC(0f4b0581) SHA1(2e5a2885149c632abfaf4292a1bf032c13c8da6c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "nme_18.11c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) ) + ROM_LOAD( "nme_19.12c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "nm24b.1a", 0x0000, 0x0117, CRC(7b25bac6) SHA1(fa0083c59c8d6da07798cb3a4fc25d388065b7cd) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89625B-? */ +ROM_START( nemoj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "nmj_36a.12f", 0x00000, 0x20000, CRC(daeceabb) SHA1(ebd44922be9d07a3d3411af52edee8a60cb11dad) ) + ROM_LOAD16_BYTE( "nmj_42a.12h", 0x00001, 0x20000, CRC(55024740) SHA1(4bacbd191bb435de5dc548ac7fa16ed286bd2d3b) ) + ROM_LOAD16_BYTE( "nmj_37a.13f", 0x40000, 0x20000, CRC(619068b6) SHA1(2507c6f77a06a80f913c848dcb6816bcbf4bba8a) ) + ROM_LOAD16_BYTE( "nmj_43a.13h", 0x40001, 0x20000, CRC(a948a53b) SHA1(65c2abf321cf8b171bbfbb51ed57bc99eb552ca9) ) + ROM_LOAD16_BYTE( "nm_34.10f", 0x80000, 0x20000, CRC(5737feed) SHA1(2635715cc21381e9f0a4ae4227eb5896886ee3e2) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nm_40.10h", 0x80001, 0x20000, CRC(8a4099f3) SHA1(d1af73d8992aa9ef6dcd729675a2fbea8c290311) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nm_35.11f", 0xc0000, 0x20000, CRC(bd11a7f8) SHA1(1c09db7cbd132866d4f08720cdd60707069f8580) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nm_41.11h", 0xc0001, 0x20000, CRC(6309603d) SHA1(51bee785ddb87340ad56960ad816c0513bc93eb8) ) // == nm-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "nm_09.4b", 0x000000, 0x20000, CRC(9d60d286) SHA1(69ea9d584d735c3629e1c017cbd966df264e4324) , ROM_SKIP(7) ) // == nm-5m.7a + ROMX_LOAD( "nm_01.4a", 0x000001, 0x20000, CRC(8a83f7c4) SHA1(ef24f47517d22dfecd3e6b5ef76e38073f6b81ba) , ROM_SKIP(7) ) // == nm-5m.7a + ROMX_LOAD( "nm_13.9b", 0x000002, 0x20000, CRC(a4909fe0) SHA1(6b1a0e8c2bd2979f7fcc363a86de28d3e365709c) , ROM_SKIP(7) ) // == nm-7m.9a + ROMX_LOAD( "nm_05.9a", 0x000003, 0x20000, CRC(16db1e61) SHA1(76ff93edd4d40a2527744585a87052a3fc0c77f6) , ROM_SKIP(7) ) // == nm-7m.9a + ROMX_LOAD( "nm_24.5e", 0x000004, 0x20000, CRC(3312c648) SHA1(9e4f584fa360de16d42d65619dbe9426d4322c00) , ROM_SKIP(7) ) // == nm-1m.3a + ROMX_LOAD( "nm_17.5c", 0x000005, 0x20000, CRC(ccfc50e2) SHA1(a238f050d11e925b1c0037bb860289ab746b7039) , ROM_SKIP(7) ) // == nm-1m.3a + ROMX_LOAD( "nm_38.8h", 0x000006, 0x20000, CRC(ae98a997) SHA1(d2d499395e43aa85d9098966d04fde6bd055900b) , ROM_SKIP(7) ) // == nm-3m.5a + ROMX_LOAD( "nm_32.8f", 0x000007, 0x20000, CRC(b3704dde) SHA1(d107fecb45f34e877faabffcdaba437935754906) , ROM_SKIP(7) ) // == nm-3m.5a + ROMX_LOAD( "nm_10.5b", 0x100000, 0x20000, CRC(33c1388c) SHA1(cd1ec3e8d6d2b5a65648c749426ec4e254f93d8c) , ROM_SKIP(7) ) // == nm-5m.7a + ROMX_LOAD( "nm_02.5a", 0x100001, 0x20000, CRC(84c69469) SHA1(700cf7be644056b1dbc5d8bed37caf6383a81cfe) , ROM_SKIP(7) ) // == nm-5m.7a + ROMX_LOAD( "nm_14.10b", 0x100002, 0x20000, CRC(66612270) SHA1(0c996571459ac44d5ca5683bdcb6a6f08dd83480) , ROM_SKIP(7) ) // == nm-7m.9a + ROMX_LOAD( "nm_06.10a", 0x100003, 0x20000, CRC(8b9bcf95) SHA1(e03c6dc4946a37bdab68d929722b1e10a2aca31a) , ROM_SKIP(7) ) // == nm-7m.9a + ROMX_LOAD( "nm_25.7e", 0x100004, 0x20000, CRC(acfc84d2) SHA1(4cd9f3bc32ef62cb3b414de68db34f950d10f406) , ROM_SKIP(7) ) // == nm-1m.3a + ROMX_LOAD( "nm_18.7c", 0x100005, 0x20000, CRC(4347deed) SHA1(fdd9b3f1ddad42464dcc7298e5b740ffe1622343) , ROM_SKIP(7) ) // == nm-1m.3a + ROMX_LOAD( "nm_39.9h", 0x100006, 0x20000, CRC(6a274ecd) SHA1(66259fd6e71cfdb618c189b7f18749a996aacfdf) , ROM_SKIP(7) ) // == nm-3m.5a + ROMX_LOAD( "nm_33.9f", 0x100007, 0x20000, CRC(c469dc74) SHA1(d06956eef5f9b31779f218d597a1a504c1e16bad) , ROM_SKIP(7) ) // == nm-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "nm_23.13b", 0x00000, 0x08000, CRC(8d3c5a42) SHA1(cc7477da80f3d08cf014379318e39cb75b5d3205) ) /* 1 byte different from nemo, pcb verified */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "nm_30.12c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) ) // == nme_18.11c + ROM_LOAD( "nm_31.13c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) ) // == nme_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "nm22b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) // pal verification required +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2e_30g.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) + ROM_LOAD16_BYTE( "sf2e_37g.11f", 0x00001, 0x20000, CRC(fb92cd74) SHA1(bf1ccfe7cc1133f0f65556430311108722add1f2) ) + ROM_LOAD16_BYTE( "sf2e_31g.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) + ROM_LOAD16_BYTE( "sf2e_38g.12f", 0x40001, 0x20000, CRC(5e22db70) SHA1(6565946591a18eaf46f04c1aa449ee0ae9ac2901) ) + ROM_LOAD16_BYTE( "sf2e_28g.9e", 0x80000, 0x20000, CRC(8bf9f1e5) SHA1(bbcef63f35e5bff3f373968ba1278dd6bd86b593) ) + ROM_LOAD16_BYTE( "sf2e_35g.9f", 0x80001, 0x20000, CRC(626ef934) SHA1(507bda3e4519de237aca919cf72e543403ec9724) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-2 */ +ROM_START( sf2eb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2e_30b.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) ) + ROM_LOAD16_BYTE( "sf2e_37b.11f", 0x00001, 0x20000, CRC(62691cdd) SHA1(328703c3e737ada544e67c36119eeb4a100ca740) ) + ROM_LOAD16_BYTE( "sf2e_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) ) + ROM_LOAD16_BYTE( "sf2e_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) ) + ROM_LOAD16_BYTE( "sf2_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) ) + ROM_LOAD16_BYTE( "sf2_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2ed ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2e_30d.11e", 0x00000, 0x20000, CRC(4bb2657c) SHA1(b2d077296b77be7db371f953b7fc446a67d8a9d6) ) + ROM_LOAD16_BYTE( "sf2e_37d.11f", 0x00001, 0x20000, CRC(102f4561) SHA1(2fc77cd3b2ecf8fadc4f8614cb200cf2cba4c616) ) //only rom different from sf2ud + ROM_LOAD16_BYTE( "sf2e_31d.12e", 0x40000, 0x20000, CRC(d57b67d7) SHA1(43d0b47c9fada8d9b445caa4b96ac8493061aa8b) ) + ROM_LOAD16_BYTE( "sf2e_38d.12f", 0x40001, 0x20000, CRC(9c8916ef) SHA1(a4629356a816454bcc1d7b41e70e147d4769a682) ) + ROM_LOAD16_BYTE( "sf2e_28d.9e", 0x80000, 0x20000, CRC(175819d1) SHA1(c98b6b7af4e57735dbfb3d1e61ba1bfb9f145d33) ) + ROM_LOAD16_BYTE( "sf2e_35d.9f", 0x80001, 0x20000, CRC(82060da4) SHA1(7487cfc28cce3d76772ece657aef83b56034011e) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +/* Note that this revision seems to be the only one that uses the IOB2 and C632B PALs instead of the IOB1 and C632, + while STF29 PAL is confirmed to be the same as the other Street Fighter II: The World Warrior sets. */ +ROM_START( sf2ee ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2e_30e.11e", 0x00000, 0x20000, CRC(f37cd088) SHA1(48b71e44ce88d5f682ed679c737e7ec5262bb0df) ) + ROM_LOAD16_BYTE( "sf2e_37e.11f", 0x00001, 0x20000, CRC(c39468e6) SHA1(0b1ce83dbc4dcf9b205c67fa6a4b074570baf59b) ) + ROM_LOAD16_BYTE( "sf2e_31e.12e", 0x40000, 0x20000, CRC(7c4771b4) SHA1(6637b24194c86ec72a1775d4e976891243cd66fd) ) + ROM_LOAD16_BYTE( "sf2e_38e.12f", 0x40001, 0x20000, CRC(a4bd0cd9) SHA1(32a2bc18d1f860668141e53cbca862ceec238c19) ) + ROM_LOAD16_BYTE( "sf2e_28e.9e", 0x80000, 0x20000, CRC(e3b95625) SHA1(f7277f9980040f96434d1bd162eaf9ba0dfbb005) ) + ROM_LOAD16_BYTE( "sf2e_35e.9f", 0x80001, 0x20000, CRC(3648769a) SHA1(74e5934b0e3b4da35ff48086f41e7502b42731c6) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob2.11d", 0x0000, 0x0117, CRC(d26f0a27) SHA1(22bb5647ff98df22fd19ae079ff98b9d100855f9) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632.ic1 +ROM_END + +/* B-Board 90629B-2 */ +ROM_START( sf2ua ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30a.11e", 0x00000, 0x20000, CRC(08beb861) SHA1(d47f16d0d692dc6405df0aecd7d9fc3f9718c0d1) ) + ROM_LOAD16_BYTE( "sf2u_37a.11f", 0x00001, 0x20000, CRC(b7638d69) SHA1(b615a2e0e8772462fd875b2e8d2ccba82a8b3c47) ) + ROM_LOAD16_BYTE( "sf2u_31a.12e", 0x40000, 0x20000, CRC(0d5394e0) SHA1(e1d88ff3669f1dbe1e3fbdf8aa9e2c63adbbcb48) ) + ROM_LOAD16_BYTE( "sf2u_38a.12f", 0x40001, 0x20000, CRC(42d6a79e) SHA1(5f1e2c176d065325883a60767d05b1a542372b6a) ) + ROM_LOAD16_BYTE( "sf2u_28a.9e", 0x80000, 0x20000, CRC(387a175c) SHA1(2635bb82758cf217cee63b254a537b02275a6838) ) + ROM_LOAD16_BYTE( "sf2u_35a.9f", 0x80001, 0x20000, CRC(a1a5adcc) SHA1(47874e6d403256d828474b29e3d93c92efd9e1ce) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2ub ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30b.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) ) // == sf2e_30b.11e + ROM_LOAD16_BYTE( "sf2u_37b.11f", 0x00001, 0x20000, CRC(4a54d479) SHA1(eaff7a0d3c858a567c02086fde163850f0f5631e) ) + ROM_LOAD16_BYTE( "sf2u_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) ) // == sf2e_31b.12e + ROM_LOAD16_BYTE( "sf2u_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) ) // == sf2e_38b.12f + ROM_LOAD16_BYTE( "sf2u_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) ) // == sf2_28b.9e + ROM_LOAD16_BYTE( "sf2u_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) ) // == sf2_35b.9f + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2uc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30c.11e", 0x00000, 0x20000, CRC(6cb59385) SHA1(37750e8369298b597590d956f5fb7319301e6c7d) ) + ROM_LOAD16_BYTE( "sf2u_37c.11f", 0x00001, 0x20000, CRC(32e2c278) SHA1(6cc5e0a9179163136b8104a1583da85a53d537f4) ) + ROM_LOAD16_BYTE( "sf2u_31c.12e", 0x40000, 0x20000, CRC(c4fff4a9) SHA1(4b593ace201fe7f5a00b5cd7f4e8fc3f8dd4ceed) ) + ROM_LOAD16_BYTE( "sf2u_38c.12f", 0x40001, 0x20000, CRC(8210fc0e) SHA1(7d6cfb99afa89d0e6e991d9f7c1808b740def125) ) + ROM_LOAD16_BYTE( "sf2u_28c.9e", 0x80000, 0x20000, CRC(6eddd5e8) SHA1(62bd1c2fc0321809421c9a592f691b5b1a1d8807) ) + ROM_LOAD16_BYTE( "sf2u_35c.9f", 0x80001, 0x20000, CRC(6bcb404c) SHA1(b5f24556c633c521aadd94e016d78db6922e3dfa) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // could be sf2_09.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2ud ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30d.11e", 0x00000, 0x20000, CRC(4bb2657c) SHA1(b2d077296b77be7db371f953b7fc446a67d8a9d6) ) // == sf2e_30d.11e + ROM_LOAD16_BYTE( "sf2u_37d.11f", 0x00001, 0x20000, CRC(b33b42f2) SHA1(2e0babc8734c79dc2b51a6be64433bb2411c3da5) ) + ROM_LOAD16_BYTE( "sf2u_31d.12e", 0x40000, 0x20000, CRC(d57b67d7) SHA1(43d0b47c9fada8d9b445caa4b96ac8493061aa8b) ) // == sf2e_31d.12e + ROM_LOAD16_BYTE( "sf2u_38d.12f", 0x40001, 0x20000, CRC(9c8916ef) SHA1(a4629356a816454bcc1d7b41e70e147d4769a682) ) // == sf2e_38d.12f + ROM_LOAD16_BYTE( "sf2u_28d.9e", 0x80000, 0x20000, CRC(175819d1) SHA1(c98b6b7af4e57735dbfb3d1e61ba1bfb9f145d33) ) // == sf2e_28d.9e + ROM_LOAD16_BYTE( "sf2u_35d.9f", 0x80001, 0x20000, CRC(82060da4) SHA1(7487cfc28cce3d76772ece657aef83b56034011e) ) // == sf2e_35d.9f + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +/* Note that this revision seems to be the only one that uses the IOB2 and C632B PALs instead of the IOB1 and C632, + while STF29 PAL is confirmed to be the same as the other Street Fighter II: The World Warrior sets. */ +ROM_START( sf2ue ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30e.11e", 0x00000, 0x20000, CRC(f37cd088) SHA1(48b71e44ce88d5f682ed679c737e7ec5262bb0df) ) + ROM_LOAD16_BYTE( "sf2u_37e.11f", 0x00001, 0x20000, CRC(6c61a513) SHA1(6dc9ccd58fd5ef15ff9df20c865ff6c850f2b7dc) ) + ROM_LOAD16_BYTE( "sf2u_31e.12e", 0x40000, 0x20000, CRC(7c4771b4) SHA1(6637b24194c86ec72a1775d4e976891243cd66fd) ) + ROM_LOAD16_BYTE( "sf2u_38e.12f", 0x40001, 0x20000, CRC(a4bd0cd9) SHA1(32a2bc18d1f860668141e53cbca862ceec238c19) ) + ROM_LOAD16_BYTE( "sf2u_28e.9e", 0x80000, 0x20000, CRC(e3b95625) SHA1(f7277f9980040f96434d1bd162eaf9ba0dfbb005) ) + ROM_LOAD16_BYTE( "sf2u_35e.9f", 0x80001, 0x20000, CRC(3648769a) SHA1(74e5934b0e3b4da35ff48086f41e7502b42731c6) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob2.11d", 0x0000, 0x0117, CRC(d26f0a27) SHA1(22bb5647ff98df22fd19ae079ff98b9d100855f9) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632.ic1 +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2uf ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30f.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e + ROM_LOAD16_BYTE( "sf2u_37f.11f", 0x00001, 0x20000, CRC(169e7388) SHA1(c7cb2de529d94cea4a018ed3bd611037fe54abe7) ) + ROM_LOAD16_BYTE( "sf2u_31f.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e + ROM_LOAD16_BYTE( "sf2u_38f.12f", 0x40001, 0x20000, CRC(1510e4e2) SHA1(fbfdd4e42c4bc894592dbe5a84c88d5f13d21da4) ) + ROM_LOAD16_BYTE( "sf2u_28f.9e", 0x80000, 0x20000, CRC(acd8175b) SHA1(504991c46fa568d31ce69bd63e2a67926a06b5a9) ) + ROM_LOAD16_BYTE( "sf2u_35f.9f", 0x80001, 0x20000, CRC(c0a80bd1) SHA1(ac25a9ed488e03baf4115541fdcce3973ce6a442) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2ug ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30g.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e + ROM_LOAD16_BYTE( "sf2u_37g.11f", 0x00001, 0x20000, CRC(5886cae7) SHA1(8a621d267dfcf5d214b1bbec12b98a06153c86d3) ) + ROM_LOAD16_BYTE( "sf2u_31g.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e + ROM_LOAD16_BYTE( "sf2u_38g.12f", 0x40001, 0x20000, CRC(5e22db70) SHA1(6565946591a18eaf46f04c1aa449ee0ae9ac2901) ) // == sf2e_38g.12f + ROM_LOAD16_BYTE( "sf2u_28g.9e", 0x80000, 0x20000, CRC(8bf9f1e5) SHA1(bbcef63f35e5bff3f373968ba1278dd6bd86b593) ) // == sf2e_28g.9e + ROM_LOAD16_BYTE( "sf2u_35g.9f", 0x80001, 0x20000, CRC(626ef934) SHA1(507bda3e4519de237aca919cf72e543403ec9724) ) // == sf2e_35g.9f + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2ui ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30i.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e + ROM_LOAD16_BYTE( "sf2u_37i.11f", 0x00001, 0x20000, CRC(9df707dd) SHA1(b148ea450f9e96f3c20f487010a3c57f778e40c1) ) + ROM_LOAD16_BYTE( "sf2u_31i.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e + ROM_LOAD16_BYTE( "sf2u_38i.12f", 0x40001, 0x20000, CRC(4cb46daf) SHA1(dee103ae1391cd9ac150f787187233cd8c06ea1e) ) + ROM_LOAD16_BYTE( "sf2u_28i.9e", 0x80000, 0x20000, CRC(1580be4c) SHA1(d89ed0ff4bf14ff2eaae4609f55970b6b37c8e32) ) /* seen the same pcb with SF2_28I.9E */ + ROM_LOAD16_BYTE( "sf2u_35i.9f", 0x80001, 0x20000, CRC(1468d185) SHA1(750de0cad3859e4917aebb02c2e137dea619f201) ) + ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2uk ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2u_30k.11e", 0x00000, 0x20000, CRC(8f66076c) SHA1(f9653b36bb5012e6bde5fe3bcade4a6a7a7e7def) ) + ROM_LOAD16_BYTE( "sf2u_37k.11f", 0x00001, 0x20000, CRC(4e1f6a83) SHA1(ee679b79ff3c3165979d3de23e0f668839cf465f) ) + ROM_LOAD16_BYTE( "sf2u_31k.12e", 0x40000, 0x20000, CRC(f9f89f60) SHA1(c3b71482b85c83576518f300be768655412276b0) ) + ROM_LOAD16_BYTE( "sf2u_38k.12f", 0x40001, 0x20000, CRC(6ce0a85a) SHA1(567fd18cd626c94496d9123ecef87dc638f0041a) ) + ROM_LOAD16_BYTE( "sf2u_28k.9e", 0x80000, 0x20000, CRC(8e958f31) SHA1(81359bc988c4e9e375b5bbd960921d425b77f706) ) + ROM_LOAD16_BYTE( "sf2u_35k.9f", 0x80001, 0x20000, CRC(fce76fad) SHA1(66f881ba600c7e6bbe960cfd0772ed16208b79c8) ) + ROM_LOAD16_BYTE( "sf2u_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e + ROM_LOAD16_BYTE( "sf2u_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket + ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket + ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket + ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B */ +ROM_START( sf2j ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2j30.bin", 0x00000, 0x20000, CRC(79022b31) SHA1(b7cfe0498260cdd2779580c47829dd02435ffff4) ) + ROM_LOAD16_BYTE( "sf2j37.bin", 0x00001, 0x20000, CRC(516776ec) SHA1(4f8b63c4d4265a105751fa72b50bd0fa538bf881) ) + ROM_LOAD16_BYTE( "sf2j31.bin", 0x40000, 0x20000, CRC(fe15cb39) SHA1(383478524881ea70d9e04c9b6143b8735b637eee) ) + ROM_LOAD16_BYTE( "sf2j38.bin", 0x40001, 0x20000, CRC(38614d70) SHA1(39c58096f3a8e01fb439639b742b83102bbaa7f6) ) + ROM_LOAD16_BYTE( "sf2j28.bin", 0x80000, 0x20000, CRC(d283187a) SHA1(5ea83d2652e43e46b831b614d1fe06d465bac9a3) ) + ROM_LOAD16_BYTE( "sf2j35.bin", 0x80001, 0x20000, CRC(d28158e4) SHA1(bf2bca6068e374011afa95e99809d262f522df18) ) + ROM_LOAD16_BYTE( "sf2_29a.bin", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36a.bin", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-2 */ +ROM_START( sf2ja ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2j_30a.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) ) // == sf2e_30b.11e + ROM_LOAD16_BYTE( "sf2j_37a.11f", 0x00001, 0x20000, CRC(1e1f6844) SHA1(c80e5ac6a6cea39511c38e31ea55b6cd3888024f) ) + ROM_LOAD16_BYTE( "sf2j_31a.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) ) // == sf2e_31b.12e + ROM_LOAD16_BYTE( "sf2j_38a.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) ) // == sf2e_38b.12f + ROM_LOAD16_BYTE( "sf2j_28a.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) ) // == sf2_28b.9e + ROM_LOAD16_BYTE( "sf2j_35a.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) ) // == sf2_35b.9f + ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e + ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2j_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c + ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2jc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2j_30c.11e", 0x00000, 0x20000, CRC(8add35ec) SHA1(b08428ff262ca4feddd3c72058b4b674a5401aba) ) + ROM_LOAD16_BYTE( "sf2j_37c.11f", 0x00001, 0x20000, CRC(0d74a256) SHA1(587fd0ee1c2ef54554237486eb5b0d1ec30c2868) ) + ROM_LOAD16_BYTE( "sf2j_31c.12e", 0x40000, 0x20000, CRC(c4fff4a9) SHA1(4b593ace201fe7f5a00b5cd7f4e8fc3f8dd4ceed) ) // == sf2u_31c.12e + ROM_LOAD16_BYTE( "sf2j_38c.12f", 0x40001, 0x20000, CRC(8210fc0e) SHA1(7d6cfb99afa89d0e6e991d9f7c1808b740def125) ) // == sf2u_38c.12f + ROM_LOAD16_BYTE( "sf2j_28c.9e", 0x80000, 0x20000, CRC(6eddd5e8) SHA1(62bd1c2fc0321809421c9a592f691b5b1a1d8807) ) // == sf2u_28c.9e + ROM_LOAD16_BYTE( "sf2j_35c.9f", 0x80001, 0x20000, CRC(6bcb404c) SHA1(b5f24556c633c521aadd94e016d78db6922e3dfa) ) // == sf2u_35c.9f + ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e + ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c + ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2jf ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2j_30f.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e + ROM_LOAD16_BYTE( "sf2j_37f.11f", 0x00001, 0x20000, CRC(c1428cc6) SHA1(6a3f21de57c3dd60a7c991ca667dc2a77d813039) ) + ROM_LOAD16_BYTE( "sf2j_31f.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e + ROM_LOAD16_BYTE( "sf2j_38f.12f", 0x40001, 0x20000, CRC(1510e4e2) SHA1(fbfdd4e42c4bc894592dbe5a84c88d5f13d21da4) ) + ROM_LOAD16_BYTE( "sf2j_28f.9e", 0x80000, 0x20000, CRC(acd8175b) SHA1(504991c46fa568d31ce69bd63e2a67926a06b5a9) ) + ROM_LOAD16_BYTE( "sf2j_35f.9f", 0x80001, 0x20000, CRC(c0a80bd1) SHA1(ac25a9ed488e03baf4115541fdcce3973ce6a442) ) + ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e + ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( sf2jh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2j_30h.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e + ROM_LOAD16_BYTE( "sf2j_37h.11f", 0x00001, 0x20000, CRC(330304b0) SHA1(93bf761804228a79d16afa2fcfbe28e6942dff51) ) + ROM_LOAD16_BYTE( "sf2j_31h.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e + ROM_LOAD16_BYTE( "sf2j_38h.12f", 0x40001, 0x20000, CRC(a659f678) SHA1(f3b99ebaa59edb889498cf5c9d7ceb939da1dedc) ) + ROM_LOAD16_BYTE( "sf2j_28h.9e", 0x80000, 0x20000, CRC(8a5c8ee0) SHA1(a6df46e96bf7596665177b18213a3aee4cc7c378) ) + ROM_LOAD16_BYTE( "sf2j_35h.9f", 0x80001, 0x20000, CRC(c828fc4d) SHA1(0025630bef45862d8b72a2d19a6c5adf96905bd5) ) + ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e + ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-2 */ +ROM_START( sf2jl ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf-2_30l.11e", 0x00000, 0x20000, CRC(34a1ce02) SHA1(6875813c49a92b8650f444c1857459adc86bc0d0) ) // These "L" revision roms are verified as being + ROM_LOAD16_BYTE( "sf-2_37l.11f", 0x00001, 0x20000, CRC(5b630ed2) SHA1(b14ef94b86f55c82391db8aca4d6f9487b9758a7) ) // labeled "SF-2" without "J" for Japan region + ROM_LOAD16_BYTE( "sf-2_31l.12e", 0x40000, 0x20000, CRC(64ebc8d2) SHA1(1817de5dcca47a1bb94838d26a9a3adf6b75c911) ) + ROM_LOAD16_BYTE( "sf-2_38l.12f", 0x40001, 0x20000, CRC(73847443) SHA1(72fb5472a04061e4a50cb57e4f65ba8ec022a965) ) + ROM_LOAD16_BYTE( "sf-2_28l.9e", 0x80000, 0x20000, CRC(eee2b426) SHA1(1d7b5073b9473d3c92fc95c0d0625716c82fc944) ) + ROM_LOAD16_BYTE( "sf-2_35l.9f", 0x80001, 0x20000, CRC(eca8b452) SHA1(f3d06bd32ef2649a8278d8a0517372067e3f99b7) ) + ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e + ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2j_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c + ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* Bootleg manufactured by TAB Austria + + ------------------------------------------------------- + | ROM1 *2 *3 ROM5 ROM9 | + | ROM2 ROM6 ROM8 | + | *1 1B 1D | + | 6295 1A 1C | + | YM ROM4 1F 1H | + | ROM3 1E 1G | +-- Z80 1J 1L | +-- 1I 1K | +-- | +-- | +-- TAB | +-- AUSTRIA | + | DIP8 6 | + | 8 ROM10 ROM9 | + | DIP8 0 ROM12 ROM11 | + | 0 | + | DIP8 0 | + |------------------------------------------------------ + + *1 = 12.000 Mhz + *2 = 3.579545 Mhz + *3 = 16.000 Mhz + +*/ +ROM_START( sf2ebbl ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) ) + ROM_LOAD16_BYTE( "09.bin", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) ) + ROM_LOAD16_BYTE( "11.bin", 0x80000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) ) + ROM_LOAD16_BYTE( "10.bin", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + /* The 12 MASK roms on this PCB match the original roms exactly */ + ROMX_LOAD( "1b_yf082.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1d_yf028.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1a_yf087.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1c_yf088.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1f_yf085.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1h_yf115.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1e_yf111.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1g_yf002.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1j_yf117.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1l_ye040.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1i_yf038.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1k_ye039.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) + /* These map over the MASK roms on this bootleg to get rid of the CAPCOM logo (wasteful, but correct) */ + ROMX_LOAD( "05.bin", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6) , ROM_SKIP(7) ) + ROM_CONTINUE( 0x400004, 0x10000 ) + ROMX_LOAD( "07.bin", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7) , ROM_SKIP(7) ) + ROM_CONTINUE( 0x400006, 0x10000 ) + ROMX_LOAD( "06.bin", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0) , ROM_SKIP(7) ) + ROM_CONTINUE( 0x400005, 0x10000 ) + ROMX_LOAD( "08.bin", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a) , ROM_SKIP(7) ) + ROM_CONTINUE( 0x400007, 0x10000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "03.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */ + ROM_LOAD( "04.bin", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "02.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "01.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2ebbl2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "27c020.7", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) ) + ROM_LOAD16_BYTE( "27c020.5", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) ) + ROM_LOAD16_BYTE( "27c020.6", 0x80000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) ) + ROM_LOAD16_BYTE( "27c020.4", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + /* 5 MASK roms on this PCB match the original roms exactly, */ + ROMX_LOAD( "a-se235.bin", 0x000000, 0x80000, CRC(a258de13) SHA1(2e477948c4c8a2fb7cfdc4a739766bc4a4e01c49) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000) + ROMX_LOAD( "c-se005.bin", 0x000002, 0x80000, CRC(c781bf87) SHA1(034baa9807c2ce8dc800200963a38cd9262b21fb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000) + ROMX_LOAD( "b-se194.bin", 0x200000, 0x80000, CRC(5726cab8) SHA1(0b2243a9a7184d53d42ddab7a8c51b63001c2f56) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200004, 0x80000) + ROMX_LOAD( "d-se064.bin", 0x200002, 0x80000, CRC(4dd24197) SHA1(548beaa0a6f1c3c88f4fc83169d1a3c86e0755d4) , ROM_GROUPWORD | ROM_SKIP(6) ) //sf2-8m.6c 99.999809% + ROM_CONTINUE( 0x200006, 0x80000) + ROMX_LOAD( "e-sf004.bin", 0x400000, 0x80000, CRC(187667cc) SHA1(fae65bf23f49a32903fda8080659ccf8d42b911f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x400004, 0x80000) + ROMX_LOAD( "f-sf001.bin", 0x400002, 0x80000, CRC(5b585071) SHA1(ad3371b1ba0441c67d9fcbb23b09464710e4e28a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x400006, 0x80000) + + // These map over the MASK roms on this bootleg why? isn't it a waste of eprom? + ROMX_LOAD( "27c1024.10", 0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )//e-sf004.bin [1/8] IDENTICAL + ROMX_LOAD( "27c1024.12", 0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )//f-sf001.bin [1/8] IDENTICAL + ROMX_LOAD( "27c1024.9", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )//e-sf004.bin [5/8] IDENTICAL + ROMX_LOAD( "27c1024.11", 0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )//f-sf001.bin [5/8] IDENTICAL + + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "27c512.3", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */ + ROM_LOAD( "27c512.8", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "27c010.2", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "27c010.1", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2ebbl3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ce91e-b.bin", 0x00000, 0x80000, CRC(963200d2) SHA1(3fa23fdee6d43f01066a94b4b01b1811168637a2) ) + ROM_LOAD16_BYTE( "ce91e-a.bin", 0x00001, 0x80000, CRC(02e88ec7) SHA1(1898e110108301a08686945f449fd084e394fc17) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + /* There are 8 mask and 8 otp eprom on this board, data match sf2 set in the end */ + ROMX_LOAD( "1-b-yf197.07", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1-d-yf207.12", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "27020.1", 0x000004, 0x40000, CRC(84afb959) SHA1(ff8f3fb39203d229552649b09046a509aa399b7d) , ROM_SKIP(7) ) + ROMX_LOAD( "27020.3", 0x000005, 0x40000, CRC(ab21635d) SHA1(c6294b06c482a43cc1736674b0c1bc790da8cc8c) , ROM_SKIP(7) ) + ROMX_LOAD( "27020.5", 0x000006, 0x40000, CRC(2ce56f9f) SHA1(5bd23823df52aeff8e84a6eb3199a5e75f38cd42) , ROM_SKIP(7) ) + ROMX_LOAD( "27020.7", 0x000007, 0x40000, CRC(0ad7fb2b) SHA1(51265b331cbbe9d133274bafdbf043151240a20d) , ROM_SKIP(7) ) + + ROMX_LOAD( "27020.2", 0x200000, 0x40000, CRC(031525cc) SHA1(65e280607c058cf9c005a6fc809ed375d379c0bf) , ROM_SKIP(7) ) + ROMX_LOAD( "27020.4", 0x200001, 0x40000, CRC(c97046a5) SHA1(88c7becaa2713c85e22ddd3e2305770525a9132b) , ROM_SKIP(7) ) + ROMX_LOAD( "1-h-yg010.10", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1-e-yg003.02", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "27020.6", 0x200006, 0x40000, CRC(dbbfd400) SHA1(fc25928b6ed025fa2397d924bae93fd28a4e728f) , ROM_SKIP(7) ) + ROMX_LOAD( "27020.8", 0x200007, 0x40000, CRC(37635e97) SHA1(b4e5dd6e93174af76aaeeb47471ded0d0bc253e2) , ROM_SKIP(7) ) + + ROMX_LOAD( "1-j-yf213.09", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wm91m-11-yd025.11", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1-i-yf224.03", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "1-k-yf036.06", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) + + /* These map over the MASK roms on this bootleg to get rid of the CAPCOM logo (wasteful, but correct) */ + ROMX_LOAD( "27010.09hi", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6) , ROM_SKIP(7) ) + ROM_CONTINUE( 0x400004, 0x10000 ) + ROMX_LOAD( "27010.11", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7) , ROM_SKIP(7) ) + ROM_CONTINUE( 0x400006, 0x10000 ) + ROMX_LOAD( "27010.09lo", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0) , ROM_SKIP(7) ) + ROM_CONTINUE( 0x400005, 0x10000 ) + ROMX_LOAD( "27010.06", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a) , ROM_SKIP(7) ) + ROM_CONTINUE( 0x400007, 0x10000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "27512.3", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */ + ROM_LOAD( "27512.8", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "27010.2", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "27010.1", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2stt ) + /* the PCB is not working on real hardware */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + /* do not move this outside comments, this is only for testing purpose + ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) ) + ROM_LOAD16_BYTE( "09.bin", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) ) + */ + ROM_LOAD16_BYTE( "prg part 1.stt", 0x00000, 0x40000, NO_DUMP ) + ROM_LOAD16_BYTE( "prg part 2.stt", 0x00001, 0x40000, NO_DUMP ) + /* missing first part of program roms, so it can not boot */ + ROM_LOAD16_BYTE( "ce91e-b", 0x80000, 0x40000, CRC(0862386e) SHA1(9fcfbcbbc17529de75d5419018e7b1dd90b397c0) ) + ROM_LOAD16_BYTE( "ce91e-a", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "stt-a", 0x000000, 0x80000, CRC(10a7036d) SHA1(5f7780154d12dc202ec4bf2f3666727820745ab0), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000002, 0x80000) + ROMX_LOAD( "stt-d", 0x000004, 0x80000, CRC(3580b124) SHA1(55b101e7be3d1244d0b9961ad3c6ff5d682214ce), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000) + ROMX_LOAD( "stt-b", 0x200000, 0x80000, CRC(7a09224e) SHA1(77a95b931f0a1ebd38c9aaf51a3b59139e0aedeb), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200002, 0x80000) + ROMX_LOAD( "stt-e", 0x200004, 0x80000, CRC(382a612c) SHA1(ecdcb66ed9d47d850501abc5f77eb5ad87b868d3), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200006, 0x80000) + ROMX_LOAD( "stt-c", 0x400000, 0x80000, CRC(11701b8f) SHA1(4f0c897349a0f1701a144ec64a75fa23fec32ae5), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x400002, 0x80000) + ROMX_LOAD( "stt-f", 0x400004, 0x80000, CRC(101a0b72) SHA1(9e166a4110a583e722566852e27cb0b074ec97c6), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x400006, 0x80000) + /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */ + ROMX_LOAD( "5.stt", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400004, 0x10000 ) + ROMX_LOAD( "7.stt", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400006, 0x10000 ) + ROMX_LOAD( "6.stt", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400005, 0x10000 ) + ROMX_LOAD( "8.stt", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400007, 0x10000 ) + /* end of extra gfx layer roms */ + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "3.stt", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */ + ROM_LOAD( "4.stt", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "2.stt", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "1.stt", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2rk ) /* unidentified bootleg, name based only on gfx chips label */ + /* the PCB is not working on real hardware */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + /* do not move this outside comments, this is only for testing purpose + ROM_LOAD16_BYTE( "12.bin", 0x000000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) ) + ROM_LOAD16_BYTE( "09.bin", 0x000001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) ) + ROM_LOAD16_BYTE( "11.bin", 0x080000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) ) + ROM_LOAD16_BYTE( "10.bin", 0x080001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) ) + */ + ROM_LOAD16_BYTE( "prg part 1.rk", 0x00000, 0x80000, NO_DUMP ) + ROM_LOAD16_BYTE( "prg part 2.rk", 0x00001, 0x80000, NO_DUMP ) + /* missing first part of program roms, so it can not boot */ + ROM_LOAD16_BYTE( "w-6", 0x100000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "w-5", 0x100001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "01 rk098", 0x000000, 0x80000, CRC(4296de4d) SHA1(2bd5a0ebe2a20c745b11da9c7dc4f13f20efdda7), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000002, 0x80000) + ROMX_LOAD( "03 rk097", 0x000004, 0x80000, CRC(16cf11d0) SHA1(e1adf34467e0a6902bcda63718885fe0bea831b1), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000) + ROMX_LOAD( "02 rk037", 0x200000, 0x80000, CRC(68ca7fce) SHA1(f6a37e0ca4d9490f66c3d29308c531f2134fd7aa), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200002, 0x80000) + ROMX_LOAD( "04 rk033", 0x200004, 0x80000, CRC(9f46f926) SHA1(f1ddf8ce6d895358979631fbdecbeff51376b604), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200006, 0x80000) + ROMX_LOAD( "05 rk116", 0x400000, 0x80000, CRC(4c161fa9) SHA1(c3b2f642d3d3be5aab6ff1482d82c2858944d07a), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x400002, 0x80000) + ROMX_LOAD( "06 rk077", 0x400004, 0x80000, CRC(ec949f8c) SHA1(34ea3d6d85486a5ff25c774dbc6a4b16037a7347), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x400006, 0x80000) + /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */ + ROMX_LOAD( "w-1", 0x400000, 0x08000, CRC(124b9ffc) SHA1(299368e0f95475cf575bc3b041c6179d243b9b81), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400004, 0x08000 ) + ROMX_LOAD( "w-3", 0x400002, 0x08000, CRC(5992783a) SHA1(69c90621c72c7889978442009a4ddbbfb1f3444f), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400006, 0x08000 ) + ROMX_LOAD( "w-2", 0x400001, 0x08000, CRC(11d715f7) SHA1(cdec16ba16ca1ec6b0ab94addf4cfeeddeff5063), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400005, 0x08000 ) + ROMX_LOAD( "w-4", 0x400003, 0x08000, CRC(db0dd977) SHA1(c34ed40709001423325b7b7fad3f4ffeb38c3e7e), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400007, 0x08000 ) + /* end of extra gfx layer roms */ + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "1.rk", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */ + ROM_LOAD( "2.rk", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sample part 1.rk", 0x20000, 0x20000, NO_DUMP ) + /* do not move this outside comments, this is only for testing purpose + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + */ + ROM_LOAD( "w-7", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2qp1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "stfii-qkn-cps-17.33", 0x000000, 0x40000, CRC(3a9458ee) SHA1(cbf56115c22a45e5ce1cde313fa5a5ba496316eb) ) + ROM_CONTINUE( 0xc0000, 0x40000 ) + ROM_LOAD16_WORD_SWAP( "stfii-qkn-cps-17.34", 0x080000, 0x40000, CRC(4ed215d8) SHA1(b09075f883c3a4976ab47203acc04f8f993969a8) ) + ROM_CONTINUE( 0x40000, 0x40000 ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) +ROM_END + +ROM_START( sf2thndr ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "17_30.11e", 0x00000, 0x20000, CRC(d3cd6d18) SHA1(c7efe9e7a7dee29bfe40a571960145efa26ac22e) ) + ROM_LOAD16_BYTE( "17_37.11f", 0x00001, 0x20000, CRC(e892716e) SHA1(b3836b33bc026a0bccc5ed7cdecf8d2ba2b5607a) ) + ROM_LOAD16_BYTE( "sf2u_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) ) + ROM_LOAD16_BYTE( "sf2u_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) ) + ROM_LOAD16_BYTE( "sf2u_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) ) + ROM_LOAD16_BYTE( "sf2u_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) ) + ROM_LOAD16_BYTE( "17_29.10e", 0xc0000, 0x20000, CRC(8830b54d) SHA1(fe5e958f69d52fa12c31c1a7ccf0dcfd340045cb) ) + ROM_LOAD16_BYTE( "17_36.10f", 0xc0001, 0x20000, CRC(3f13ada3) SHA1(412572f220f64e5b0ee2cad0a9204142ae2f7c90) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( 3wonders ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "rte_30a.11f", 0x00000, 0x20000, CRC(ef5b8b33) SHA1(2313168e5f10505ceece5fdaada0d30df3ca146c) ) + ROM_LOAD16_BYTE( "rte_35a.11h", 0x00001, 0x20000, CRC(7d705529) SHA1(b456629b5755b701cca8a438d24957367a260ec5) ) + ROM_LOAD16_BYTE( "rte_31a.12f", 0x40000, 0x20000, CRC(32835e5e) SHA1(9ec530561030a75a1283ff2aacc21e55613b682b) ) + ROM_LOAD16_BYTE( "rte_36a.12h", 0x40001, 0x20000, CRC(7637975f) SHA1(56935032eebd3e1c5059f6842b97001dae0aa55f) ) + ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) + ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) + ROM_LOAD16_BYTE( "rte_29a.10f", 0xc0000, 0x20000, CRC(cddaa919) SHA1(0c98e95ad5033d2c5ade7651243e7ccdb4e35463) ) + ROM_LOAD16_BYTE( "rte_34a.10h", 0xc0001, 0x20000, CRC(ed52e7e5) SHA1(352433ae484967d26376141e3a8a0f968b98fde6) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) ) + ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.11E */ + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( 3wondersr1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "rte_30.11f", 0x00000, 0x20000, CRC(0d541519) SHA1(ce0f9ebaea038c98f8866624d3061c65c84cf20d) ) + ROM_LOAD16_BYTE( "rte_35.11h", 0x00001, 0x20000, CRC(73dd0e20) SHA1(b4f4086574176befa70863a85a3c0a8fd6e4bd90) ) + ROM_LOAD16_BYTE( "rte_31.12f", 0x40000, 0x20000, CRC(33e0337d) SHA1(53e5795baf307a789b4337f081a932359e569a98) ) + ROM_LOAD16_BYTE( "rte_36.12h", 0x40001, 0x20000, CRC(a8865243) SHA1(0a4d7e8e07d88104aa01457a10a8a9abd3ed4ce1) ) + ROM_LOAD16_BYTE( "rte_28.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) // == rt_28a.9f + ROM_LOAD16_BYTE( "rte_33.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) // == rt_33a.9h + ROM_LOAD16_BYTE( "rte_29.10f", 0xc0000, 0x20000, CRC(9a8df1e4) SHA1(5b61d2d729145d524e23036bb27ba3ba75c208fe) ) + ROM_LOAD16_BYTE( "rte_34.10h", 0xc0001, 0x20000, CRC(6348a79d) SHA1(2e4b58f9c6c1ad6a89c90d8ebb46cee2613f1397) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(7d5a77a7) SHA1(4f2a6534d7a9e518061102c1dd7d7aca39600c33) ) /* 1 byte different from 3wonders, pcb verified */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(f6dc0d3d) SHA1(9959fc3339613042c95b90aad2bc1c3dafdb605e) ) /* 6 bytes different from 3wonders, pcb verified */ + ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( 3wondersu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "rtu_30a.11f", 0x00000, 0x20000, CRC(0b156fd8) SHA1(1ec811cd7cbd12066f876db7255394e754ceb25e) ) + ROM_LOAD16_BYTE( "rtu_35a.11h", 0x00001, 0x20000, CRC(57350bf4) SHA1(33e8685cce82eee7bcb7c2787318a130764e97e2) ) + ROM_LOAD16_BYTE( "rtu_31a.12f", 0x40000, 0x20000, CRC(0e723fcc) SHA1(91eeab6376a5aa852152af9920aef60bc7c689dd) ) + ROM_LOAD16_BYTE( "rtu_36a.12h", 0x40001, 0x20000, CRC(523a45dc) SHA1(6d6743803016fa5ba713e0d6f61affce8a3255ec) ) + ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) + ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) + ROM_LOAD16_BYTE( "rtu_29a.10f", 0xc0000, 0x20000, CRC(37ba3e20) SHA1(a128b1a17639b06a4fd8acffe0357f1dbd1d4fe9) ) + ROM_LOAD16_BYTE( "rtu_34a.10h", 0xc0001, 0x20000, CRC(f99f46c0) SHA1(cda24a6baa3f861e7078fb2fa91328cc1cddc866) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) ) + ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.11E */ + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( wonder3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "rtj_36.12f", 0x00000, 0x20000, CRC(e3741247) SHA1(4deb0f667697631693fbefddaeb8cf98fd0b90ce) ) + ROM_LOAD16_BYTE( "rtj_42.12h", 0x00001, 0x20000, CRC(b4baa117) SHA1(44486b3d50f9b0a8c32c2c2dc5f1a046aface7b6) ) + ROM_LOAD16_BYTE( "rtj_37.13f", 0x40000, 0x20000, CRC(a1f677b0) SHA1(e1511ea0fa4a689d1355119ac37c075192880dde) ) + ROM_LOAD16_BYTE( "rtj_43.13h", 0x40001, 0x20000, CRC(85337a47) SHA1(0a247aa56c5cc17b1e888df7b502f65e88715469) ) + ROM_LOAD16_BYTE( "rt_34.10f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) // == rt_28a.9f + ROM_LOAD16_BYTE( "rt_40.10h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) // == rt_33a.9h + ROM_LOAD16_BYTE( "rtj_35.11f", 0xc0000, 0x20000, CRC(e72f9ea3) SHA1(c63df200416bd61af73e8589204f7daef743041e) ) + ROM_LOAD16_BYTE( "rtj_41.11h", 0xc0001, 0x20000, CRC(a11ee998) SHA1(b892398e2ff4e40e51b858cfdbce866a75c670e6) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "rt_09.4b", 0x000000, 0x20000, CRC(2c40e480) SHA1(823a36aa6dba7a028d4da5faef752366aa18fe57) , ROM_SKIP(7) ) // == rt-5m.7a + ROMX_LOAD( "rt_01.4a", 0x000001, 0x20000, CRC(3e11f8cd) SHA1(88d7edd7102b1abec2b6f87029d39414f3ebc094) , ROM_SKIP(7) ) // == rt-5m.7a + ROMX_LOAD( "rt_13.9b", 0x000002, 0x20000, CRC(51009117) SHA1(55549a2bd1abb3aea5dc17f17a2bd4a46c6cf12a) , ROM_SKIP(7) ) // == rt-7m.9a + ROMX_LOAD( "rt_05.9a", 0x000003, 0x20000, CRC(283fd470) SHA1(2d7ff9c5a747565f2186b9252b703ebac3117beb) , ROM_SKIP(7) ) // == rt-7m.9a + ROMX_LOAD( "rt_24.5e", 0x000004, 0x20000, CRC(ee4484ce) SHA1(5bb27c119a4e69cb50425ca73556a2e4e4482728) , ROM_SKIP(7) ) // == rt-1m.3a + ROMX_LOAD( "rt_17.5c", 0x000005, 0x20000, CRC(e5dcddeb) SHA1(9a1c740cdd66ee2f58737eda613e79ff6357142a) , ROM_SKIP(7) ) // == rt-1m.3a + ROMX_LOAD( "rt_38.8h", 0x000006, 0x20000, CRC(b2940c2d) SHA1(62ea57fb0203dd8f0e123e55eef7637702f8466d) , ROM_SKIP(7) ) // == rt-3m.5a + ROMX_LOAD( "rt_32.8f", 0x000007, 0x20000, CRC(08e2b758) SHA1(f56a4f16454fe528c358fd212449a1ecb0f826e0) , ROM_SKIP(7) ) // == rt-3m.5a + ROMX_LOAD( "rt_10.5b", 0x100000, 0x20000, CRC(e3f3ff94) SHA1(d5e46da2d25ca5347037b9859227c949209b30a6) , ROM_SKIP(7) ) // == rt-5m.7a + ROMX_LOAD( "rt_02.5a", 0x100001, 0x20000, CRC(fcffd73c) SHA1(64830ffc053bd97f22b406f53b1e2e4a78db6a97) , ROM_SKIP(7) ) // == rt-5m.7a + ROMX_LOAD( "rt_14.10b", 0x100002, 0x20000, CRC(5c546d9a) SHA1(1e0d0451e83dddb3371bffae6af7e17908816aec) , ROM_SKIP(7) ) // == rt-7m.9a + ROMX_LOAD( "rt_06.10a", 0x100003, 0x20000, CRC(d9650bc4) SHA1(d28d85595bee9f6d4a697486a9db3a71ce60de50) , ROM_SKIP(7) ) // == rt-7m.9a + ROMX_LOAD( "rt_25.7e", 0x100004, 0x20000, CRC(11b28831) SHA1(bb8f97871ca15184dbed3a90f8968a40b83a4480) , ROM_SKIP(7) ) // == rt-1m.3a + ROMX_LOAD( "rt_18.7c", 0x100005, 0x20000, CRC(ce1afb7c) SHA1(50a330bb2d748f1a738fa7895aba81d9f0c14579) , ROM_SKIP(7) ) // == rt-1m.3a + ROMX_LOAD( "rt_39.9h", 0x100006, 0x20000, CRC(ea7ac9ee) SHA1(bc21d8e59eb190608a87072c22be9cb1cf1227cc) , ROM_SKIP(7) ) // == rt-3m.5a + ROMX_LOAD( "rt_33.9f", 0x100007, 0x20000, CRC(d6a99384) SHA1(552b012eb911b8739ee859af13e176a8396cecf2) , ROM_SKIP(7) ) // == rt-3m.5a + ROMX_LOAD( "rt_11.7b", 0x200000, 0x20000, CRC(04f3c298) SHA1(1f3f8713ed8a2ad2bf4afce4c733eb9cb850ca9f) , ROM_SKIP(7) ) // == rt-6m.8a + ROMX_LOAD( "rt_03.7a", 0x200001, 0x20000, CRC(98087e08) SHA1(6a13786a62e11d77c4da8469422e402df1299162) , ROM_SKIP(7) ) // == rt-6m.8a + ROMX_LOAD( "rt_15.11b", 0x200002, 0x20000, CRC(b6aba565) SHA1(a166c853a5b4bc2602ce14974c11f570ba29df6a) , ROM_SKIP(7) ) // == rt-8m.10a + ROMX_LOAD( "rt_07.11a", 0x200003, 0x20000, CRC(c62defa1) SHA1(2533f39251c99d5a184d72a5b96b5603466c0d11) , ROM_SKIP(7) ) // == rt-8m.10a + ROMX_LOAD( "rt_26.8e", 0x200004, 0x20000, CRC(532f542e) SHA1(c894b385aa10a5e80b548c01817958739e2afa89) , ROM_SKIP(7) ) // == rt-2m.4a + ROMX_LOAD( "rt_19.8c", 0x200005, 0x20000, CRC(1f0f72bd) SHA1(ad1afcde397a3273afc7c7a0b084a9b68e9e736e) , ROM_SKIP(7) ) // == rt-2m.4a + ROMX_LOAD( "rt_28.10e", 0x200006, 0x20000, CRC(6064e499) SHA1(3bc30b9d8dde5f5e8dda31afbdadb5b2e4d50932) , ROM_SKIP(7) ) // == rt-4m.6a + ROMX_LOAD( "rt_21.10c", 0x200007, 0x20000, CRC(20012ddc) SHA1(4389f2554c429f0a421425a6645dd8e719f4995f) , ROM_SKIP(7) ) // == rt-4m.6a + ROMX_LOAD( "rt_12.8b", 0x300000, 0x20000, CRC(e54664cc) SHA1(e3b5ff0e9af20580cb4228f644f23a05aad20478) , ROM_SKIP(7) ) // == rt-6m.8a + ROMX_LOAD( "rt_04.8a", 0x300001, 0x20000, CRC(4d7b9a1a) SHA1(1a9dd66bb97e2a02f3264d5766b674b588ad7dfc) , ROM_SKIP(7) ) // == rt-6m.8a + ROMX_LOAD( "rt_16.12b", 0x300002, 0x20000, CRC(37c96cfc) SHA1(270f824757c0f536b02fef147d8e0af07e8d7147) , ROM_SKIP(7) ) // == rt-8m.10a + ROMX_LOAD( "rt_08.12a", 0x300003, 0x20000, CRC(75f4975b) SHA1(1cd78828db97931ab0bfe0339e7051c58b3eff60) , ROM_SKIP(7) ) // == rt-8m.10a + ROMX_LOAD( "rt_27.9e", 0x300004, 0x20000, CRC(ec6edc0f) SHA1(6dc13d692ca7bc989cd9b40bab8a2943425b7d61) , ROM_SKIP(7) ) // == rt-2m.4a + ROMX_LOAD( "rt_20.9c", 0x300005, 0x20000, CRC(4fe52659) SHA1(1bf22ae192b57cd62e92f290313cc9d3234b2700) , ROM_SKIP(7) ) // == rt-2m.4a + ROMX_LOAD( "rt_29.11e", 0x300006, 0x20000, CRC(8fa77f9f) SHA1(2f6b37d8e5eed38a8847c9ad736a7cdbe9958a70) , ROM_SKIP(7) ) // == rt-4m.6a + ROMX_LOAD( "rt_22.11c", 0x300007, 0x20000, CRC(228a0d4a) SHA1(bcaf12d01abe1d3cd5731bd5341cb22c4ca6139e) , ROM_SKIP(7) ) // == rt-4m.6a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "rt_23.13b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) ) // == rt_9.12b +// ROM_LOAD( "rt_23.13b", 0x00000, 0x08000, CRC(7d5a77a7) SHA1(4f2a6534d7a9e518061102c1dd7d7aca39600c33) ) /* dumped from another board, 1 byte different, pcb verified */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rt_30.12c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) ) // == rt_18.11c + ROM_LOAD( "rt_31.13c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) ) // == rt_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "rt22b.1a", 0x0000, 0x0117, CRC(89560d6a) SHA1(0f88920536eb131948339becb14557d77e02b9f8) ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* Three Wonders (bootleg) */ +ROM_START( 3wondersb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "274001.4", 0x00000, 0x80000, CRC(47887cf3) SHA1(cdb2df67c99fd698845484869608bfaafa782bd6) ) + ROM_LOAD16_BYTE( "274001.3", 0x00001, 0x80000, CRC(e79eacb3) SHA1(cb2712b4e566d7d2ab5639f2e62f6e15244a7f09) ) + + // The remainder of the roms in this set have the same content as those from '3wondersh'. + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "274001.12", 0x000000, 0x80000, CRC(47cf8dfb) SHA1(05fed8e61d8f8c0382d820e7bdef36db85ad416b) , ROM_SKIP(7) ) + ROMX_LOAD( "274001.8", 0x000001, 0x80000, CRC(3bc2ef5e) SHA1(6864838e8f116bc56e7d205674240763a55d7907) , ROM_SKIP(7) ) + ROMX_LOAD( "274001.10", 0x000002, 0x80000, CRC(a0d27605) SHA1(7f2a7d3cc8802e778a98a29a4992a223932bff2c) , ROM_SKIP(7) ) + ROMX_LOAD( "274001.6", 0x000003, 0x80000, CRC(312d790c) SHA1(8739ba0784447f4050da1e6de8e31df3537b307d) , ROM_SKIP(7) ) + ROMX_LOAD( "274001.11", 0x000004, 0x80000, CRC(8112bbb4) SHA1(5a93cee8627afeb255eec1d26ec043cd2c4d2218) , ROM_SKIP(7) ) + ROMX_LOAD( "274001.7", 0x000005, 0x80000, CRC(58307167) SHA1(e253b64e144ccf3c4a0268e4be68468f11b2b071) , ROM_SKIP(7) ) + ROMX_LOAD( "274001.9", 0x000006, 0x80000, CRC(cb73759d) SHA1(e6fa263bcd7876f83f499fb95fbbc45ebce950fe) , ROM_SKIP(7) ) + ROMX_LOAD( "274001.5", 0x000007, 0x80000, CRC(3f765ae8) SHA1(a37cccbf2212eaa38a77b2f712688ce45b17e3b5) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "27512.2", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "27020.1", 0x00000, 0x40000, CRC(3c4348cf) SHA1(cfa9fd2f9692ddfef856106de191d3bdb5289297) ) +ROM_END + +/* Three Wonders (hack) */ +ROM_START( 3wondersh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "22.bin", 0x00000, 0x20000, CRC(e6071884) SHA1(5cf1a859739cf98846cb049b64fd083733acb29c) ) + ROM_LOAD16_BYTE( "26.bin", 0x00001, 0x20000, CRC(a28447b7) SHA1(e3f11911f1d3d115c03edf1bb6c8a68fccd9e9b3) ) + ROM_LOAD16_BYTE( "23.bin", 0x40000, 0x20000, CRC(fd3d6509) SHA1(0824ec397d12c2b832c9e694c23b59c2e489ed3b) ) + ROM_LOAD16_BYTE( "27.bin", 0x40001, 0x20000, CRC(999cba3d) SHA1(99dfb902c0c77f798a868eb13340eb54fb4a84d3) ) + ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) + ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) + ROM_LOAD16_BYTE( "rte_29a.10f", 0xc0000, 0x20000, CRC(cddaa919) SHA1(0c98e95ad5033d2c5ade7651243e7ccdb4e35463) ) + ROM_LOAD16_BYTE( "rte_34a.10h", 0xc0001, 0x20000, CRC(ed52e7e5) SHA1(352433ae484967d26376141e3a8a0f968b98fde6) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "16.bin", 0x000000, 0x40000, CRC(c997bca2) SHA1(6b6cd9c2fc56690c42a3368cd5e6c98d6bff5b5b) , ROM_SKIP(7) ) + ROMX_LOAD( "6.bin", 0x000001, 0x40000, CRC(3eea321a) SHA1(4368aaf8a532c29f4b950adb2daedd3069d84cf1) , ROM_SKIP(7) ) + ROMX_LOAD( "18.bin", 0x000002, 0x40000, CRC(98acdfd4) SHA1(910dfd6742e166530388c700c0797e692e501f97) , ROM_SKIP(7) ) + ROMX_LOAD( "8.bin", 0x000003, 0x40000, CRC(dc9ca6f9) SHA1(77549e9a128d1b7ca0c4547cdc56f43450d426e0) , ROM_SKIP(7) ) + ROMX_LOAD( "12.bin", 0x000004, 0x40000, CRC(0d8a6007) SHA1(48d61cbd91df01ba4b2f0e80e60375a50ddb065e) , ROM_SKIP(7) ) + ROMX_LOAD( "2.bin", 0x000005, 0x40000, CRC(d75563b9) SHA1(7b7b105b84dc5d7b17838961fdd8be5bac90cbc6) , ROM_SKIP(7) ) + ROMX_LOAD( "14.bin", 0x000006, 0x40000, CRC(84369a28) SHA1(3877186371fe289522133fd99be034b141a974ca) , ROM_SKIP(7) ) + ROMX_LOAD( "4.bin", 0x000007, 0x40000, CRC(d4831578) SHA1(9ff5860f22976e9e4c023946f35e24fde84fe8ea) , ROM_SKIP(7) ) + ROMX_LOAD( "17.bin", 0x200000, 0x40000, CRC(040edff5) SHA1(9747d67b980cc357c6fa732300a84ae55150bc51) , ROM_SKIP(7) ) + ROMX_LOAD( "7.bin", 0x200001, 0x40000, CRC(c7c0468c) SHA1(e7a14cf579b023e8954b7e06aa2337db4f53bedc) , ROM_SKIP(7) ) + ROMX_LOAD( "19.bin", 0x200002, 0x40000, CRC(9fef114f) SHA1(394afb083ce7c46d9a39097d0040f9e18aaab508) , ROM_SKIP(7) ) + ROMX_LOAD( "9.bin", 0x200003, 0x40000, CRC(48cbfba5) SHA1(74047433e50795e29d8299526ae2c424610f0a5e) , ROM_SKIP(7) ) + ROMX_LOAD( "13.bin", 0x200004, 0x40000, CRC(8fc3d7d1) SHA1(e2784e0fccfe062ea8dc440e4a884fc665f4a846) , ROM_SKIP(7) ) + ROMX_LOAD( "3.bin", 0x200005, 0x40000, CRC(c65e9a86) SHA1(359ab1e2dd0fcf38ed9815a6a50294cbeca8223c) , ROM_SKIP(7) ) + ROMX_LOAD( "15.bin", 0x200006, 0x40000, CRC(f239341a) SHA1(b1858f5f7a5d210c5327b84a797ed7e898250596) , ROM_SKIP(7) ) + ROMX_LOAD( "5.bin", 0x200007, 0x40000, CRC(947ac944) SHA1(d962f49ba532fc60209bb3957ff8a456855ef67f) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) ) + ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( kod ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "kde_30a.11e", 0x00000, 0x20000, CRC(fcb5efe2) SHA1(6122e4852633876ff2ccd4b72296fce96446b3ee) ) + ROM_LOAD16_BYTE( "kde_37a.11f", 0x00001, 0x20000, CRC(f22e5266) SHA1(2fbadce701218f4a56bfd6dfd758abacb34a2181) ) + ROM_LOAD16_BYTE( "kde_31a.12e", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) ) + ROM_LOAD16_BYTE( "kde_38a.12f", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) ) + ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) + ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) + ROM_LOAD16_BYTE( "kd_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) + ROM_LOAD16_BYTE( "kd_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) /* seen the same pcb with KDE_36A.10F */ + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) ) + ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kd29b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( kodr1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "kde_30.11e", 0x00000, 0x20000, CRC(c7414fd4) SHA1(37d27fbe7c617a26b53bfdfcd532cf573d42f33b) ) + ROM_LOAD16_BYTE( "kde_37.11f", 0x00001, 0x20000, CRC(a5bf40d2) SHA1(cd34dbeabd0974709411579e669f01d0d799c2a1) ) + ROM_LOAD16_BYTE( "kde_31.12e", 0x40000, 0x20000, CRC(1fffc7bd) SHA1(822c9ad996ca51a99a2bb1fe08fa19e18413030d) ) + ROM_LOAD16_BYTE( "kde_38.12f", 0x40001, 0x20000, CRC(89e57a82) SHA1(aad35f86a8b1b7e3a0b5f3e6efd0e844b3d3d82f) ) + ROM_LOAD16_BYTE( "kde_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_28.9e + ROM_LOAD16_BYTE( "kde_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_35.9f + ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) ) + ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) ) /* different CRC from kod, pcb verified */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) ) /* different CRC from kod, pcb verified */ + ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) ) /* different CRC from kod, pcb verified */ + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kd29b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( kodu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "kdu_30b.11e", 0x00000, 0x20000, CRC(825817f9) SHA1(250f61effcbe59f8b70baaf26eb8aef419fed66b) ) + ROM_LOAD16_BYTE( "kdu_37b.11f", 0x00001, 0x20000, CRC(d2422dfb) SHA1(6e369a62012f3c480755b700d4d4f4c112c79483) ) + ROM_LOAD16_BYTE( "kdu_31b.12e", 0x40000, 0x20000, CRC(9af36039) SHA1(f2645178a042689a387f916b4ecd7d1d859d758a) ) + ROM_LOAD16_BYTE( "kdu_38b.12f", 0x40001, 0x20000, CRC(be8405a1) SHA1(8d4f9a0489dc4b2971b20170713284151bc10eb7) ) + ROM_LOAD16_BYTE( "kdu_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_28.9e + ROM_LOAD16_BYTE( "kdu_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_35.9f + ROM_LOAD16_BYTE( "kdu_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) // == kd_29.10e + ROM_LOAD16_BYTE( "kdu_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) // == kd_36a.10f + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket + ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket + ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket + ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kd_09.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_9.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) ) + ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kd29b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( kodj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "kdj_30a.11e", 0x00000, 0x20000, CRC(ebc788ad) SHA1(f4a297e409fcdbb2c15a13b39a16e4a83e7e060b) ) + ROM_LOAD16_BYTE( "kdj_37a.11f", 0x00001, 0x20000, CRC(e55c3529) SHA1(a5254895499a53b4fbaac6fd50464b9e08175b8d) ) + ROM_LOAD16_BYTE( "kdj_31a.12e", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) ) // == kde_31a.12e + ROM_LOAD16_BYTE( "kdj_38a.12f", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) ) // == kde_38a.12f + ROM_LOAD16_WORD_SWAP("kd_33.6f", 0x80000, 0x80000, CRC(9bd7ad4b) SHA1(7bece5d408fd13116bd5518014b632ecc9a2feaa) ) // incorrect label, could be kdj_33a, kdj_33, kd_33a + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kd_06.8a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-5m.4a + ROMX_LOAD( "kd_08.10a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-7m.6a + ROMX_LOAD( "kd_05.7a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-1m.3a + ROMX_LOAD( "kd_07.9a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-3m.5a + ROMX_LOAD( "kd_15.8c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-6m.4c + ROMX_LOAD( "kd_17.10c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-8m.6c + ROMX_LOAD( "kd_14.7c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-2m.3c + ROMX_LOAD( "kd_16.9c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-4m.5c + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kd_09.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_9.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) ) + ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kd29b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 89625B-1 */ +/* Note that this set is equivalent to kodj, but each 4Mbit EPROM is replaced by 4 1Mbit EPROMs. */ +ROM_START( kodja ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "kdj_36a.12f", 0x00000, 0x20000, CRC(ebc788ad) SHA1(f4a297e409fcdbb2c15a13b39a16e4a83e7e060b) ) // == kdj_30a.11e + ROM_LOAD16_BYTE( "kdj_42a.12h", 0x00001, 0x20000, CRC(e55c3529) SHA1(a5254895499a53b4fbaac6fd50464b9e08175b8d) ) // == kdj_37a.11f + ROM_LOAD16_BYTE( "kdj_37a.13f", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) ) // == kdj_31a.12e + ROM_LOAD16_BYTE( "kdj_43a.13h", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) ) // == kdj_38a.12f + ROM_LOAD16_BYTE( "kd_34.10f", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_33.6f + ROM_LOAD16_BYTE( "kd_40.10h", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_33.6f + ROM_LOAD16_BYTE( "kd_35.11f", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) // == kd_33.6f + ROM_LOAD16_BYTE( "kd_41a.11h", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) // == kd_33.6f + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kd_9.4b", 0x000000, 0x20000, CRC(401a98e3) SHA1(b762d0f0e38ad33b5135646a107c1d4279c02193) , ROM_SKIP(7) ) // == kd_06.8a + ROMX_LOAD( "kd_1.4a", 0x000001, 0x20000, CRC(5894399a) SHA1(ee0bff29d313b4d5a318bc7345cc356d6e7318fc) , ROM_SKIP(7) ) // == kd_06.8a + ROMX_LOAD( "kd_13.9b", 0x000002, 0x20000, CRC(b6685131) SHA1(c1fa66cb695cfcb61e8495031ce18e4c6736b561) , ROM_SKIP(7) ) // == kd_08.10a + ROMX_LOAD( "kd_5.9a", 0x000003, 0x20000, CRC(c29b9ab3) SHA1(3ffa906d22563c9ad29b9ba4cd22b4ce5605b66a) , ROM_SKIP(7) ) // == kd_08.10a + ROMX_LOAD( "kd_24.5e", 0x000004, 0x20000, CRC(97008fdb) SHA1(150a7907f48dede2de0c40f1bea46e95d2e31e9c) , ROM_SKIP(7) ) // == kd_05.7a + ROMX_LOAD( "kd_17.5c", 0x000005, 0x20000, CRC(dc9a83d3) SHA1(6ceb5e6b11e7a57933c03fb308e1c6a850cf5ac7) , ROM_SKIP(7) ) // == kd_05.7a + ROMX_LOAD( "kd_38.8h", 0x000006, 0x20000, CRC(9c3dd2d1) SHA1(3ab77954fbde45797fcb1c5d8a500b5ec2673e5f) , ROM_SKIP(7) ) // == kd_07.9a + ROMX_LOAD( "kd_32.8f", 0x000007, 0x20000, CRC(1b2a802a) SHA1(f9b9e6da6a49aaf7c88b7b806c273b464a584a7b) , ROM_SKIP(7) ) // == kd_07.9a + ROMX_LOAD( "kd_10.5b", 0x100000, 0x20000, CRC(e788ae96) SHA1(1c257a4c20842b8750e3ba3cf78adad0bc5e6f2c) , ROM_SKIP(7) ) // == kd_06.8a + ROMX_LOAD( "kd_2.5a", 0x100001, 0x20000, CRC(b022e3e3) SHA1(a1e3700638e99677d4ee9aea5a250eb2380413c2) , ROM_SKIP(7) ) // == kd_06.8a + ROMX_LOAD( "kd_14.10b", 0x100002, 0x20000, CRC(4840c5ef) SHA1(fcd7ee778ab4519887bd37ced5e04f7aa8748e5e) , ROM_SKIP(7) ) // == kd_08.10a + ROMX_LOAD( "kd_6.10a", 0x100003, 0x20000, CRC(519faee4) SHA1(038afb9d2df872a0b45a7a6a43f7bb1389e8539a) , ROM_SKIP(7) ) // == kd_08.10a + ROMX_LOAD( "kd_25.7e", 0x100004, 0x20000, CRC(5d0fa853) SHA1(81e69bfac5ad6909d47db0927b7387bd392b4ef3) , ROM_SKIP(7) ) // == kd_05.7a + ROMX_LOAD( "kd_18.7c", 0x100005, 0x20000, CRC(6ad3b2bb) SHA1(c8d3bd2ce6305772224b5419301b59b9e78e7d44) , ROM_SKIP(7) ) // == kd_05.7a + ROMX_LOAD( "kd_39.9h", 0x100006, 0x20000, CRC(d7920213) SHA1(ac7de3f6c8503e06ae27f7db43bf9884f244bf7a) , ROM_SKIP(7) ) // == kd_07.9a + ROMX_LOAD( "kd_33.9f", 0x100007, 0x20000, CRC(65c2bed6) SHA1(932be92a418a2d3960f0b071eb5ffe6dae60d933) , ROM_SKIP(7) ) // == kd_07.9a + ROMX_LOAD( "kd_11.7b", 0x200000, 0x20000, CRC(147e3310) SHA1(e371db6c6621d09c43325edf9e3e40777afb830c) , ROM_SKIP(7) ) // == kd_15.8c + ROMX_LOAD( "kd_3.7a", 0x200001, 0x20000, CRC(5d18bc83) SHA1(49191e1073cdfb32272e6daeddedc4b309cf9fe6) , ROM_SKIP(7) ) // == kd_15.8c + ROMX_LOAD( "kd_15.11b", 0x200002, 0x20000, CRC(57359746) SHA1(2f83b77e6ebbceffab10653018a1b54a91d39a3f) , ROM_SKIP(7) ) // == kd_17.10c + ROMX_LOAD( "kd_7.11a", 0x200003, 0x20000, CRC(7fe03079) SHA1(be3be96d63a53cd8b6dc67eadc718c4b3b182123) , ROM_SKIP(7) ) // == kd_17.10c + ROMX_LOAD( "kd_26.8e", 0x200004, 0x20000, CRC(57e5fab5) SHA1(e665ab581372b48b6a7a494fd65ed6c807b5c00a) , ROM_SKIP(7) ) // == kd_14.7c + ROMX_LOAD( "kd_19.8c", 0x200005, 0x20000, CRC(b1f30f7c) SHA1(80308091a0af6ca46011a9174838c4d9dbeb96ee) , ROM_SKIP(7) ) // == kd_14.7c + ROMX_LOAD( "kd_28.10e", 0x200006, 0x20000, CRC(3a424135) SHA1(05d77253f454d69553a39a5dca0798f6ccea6da0) , ROM_SKIP(7) ) // == kd_16.9c + ROMX_LOAD( "kd_21.10c", 0x200007, 0x20000, CRC(ce10d2c3) SHA1(b694325b370d451cb3bcfe7d753c53ef68b83276) , ROM_SKIP(7) ) // == kd_16.9c + ROMX_LOAD( "kd_12.8b", 0x300000, 0x20000, CRC(a6042aa2) SHA1(daa4e52574b53d125414401ad0fca6eea36abe64) , ROM_SKIP(7) ) // == kd_15.8c + ROMX_LOAD( "kd_4.8a", 0x300001, 0x20000, CRC(0ce0ba30) SHA1(a19049b5fc58921452bf7b69d2d86d0faa5362bf) , ROM_SKIP(7) ) // == kd_15.8c + ROMX_LOAD( "kd_16.12b", 0x300002, 0x20000, CRC(63dcb7e0) SHA1(1524321f31813452aabfef133fb64fd0cef165cf) , ROM_SKIP(7) ) // == kd_17.10c + ROMX_LOAD( "kd_8.12a", 0x300003, 0x20000, CRC(c69b77ae) SHA1(31cacace828d4e376347ecd896f3454f79285a8b) , ROM_SKIP(7) ) // == kd_17.10c + ROMX_LOAD( "kd_27.9e", 0x300004, 0x20000, CRC(40d7bfed) SHA1(924d3f981d85434d2a22d4ede45131720d7521c0) , ROM_SKIP(7) ) // == kd_14.7c + ROMX_LOAD( "kd_20.9c", 0x300005, 0x20000, CRC(01c1f399) SHA1(ea25d4efc9e538ee8ed09acb6e467c5b444bf728) , ROM_SKIP(7) ) // == kd_14.7c + ROMX_LOAD( "kd_29.11e", 0x300006, 0x20000, CRC(a1eeac03) SHA1(fdec33ec0becc4badf89c9019f3217c22e54e842) , ROM_SKIP(7) ) // == kd_16.9c + ROMX_LOAD( "kd_22.11c", 0x300007, 0x20000, CRC(5ade98eb) SHA1(5d2474864bf0e41e89fe44c69025101b8ef2b482) , ROM_SKIP(7) ) // == kd_16.9c + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kd_23.13b", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_09.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd_30.12c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) ) // == kd_18.11c + ROM_LOAD( "kd_31.13c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) ) // == kd_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kd22b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( captcomm ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cce_23f.8f", 0x000000, 0x80000, CRC(42c814c5) SHA1(60e6ae6b8a89cdaa1abf1749c60a5e3b3972e1ab) ) + ROM_LOAD16_WORD_SWAP( "cc_22f.7f", 0x080000, 0x80000, CRC(0fd34195) SHA1(fb2b9a53af43507f13c4f94eaebbf0b538b2e754) ) + ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) ) + ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket + ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) + ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( captcommr1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cce_23d.8f", 0x000000, 0x80000, CRC(19c58ece) SHA1(6e23e87db29b2c5698b7cead99d1106a2e190648) ) + ROM_LOAD16_WORD_SWAP( "cc_22d.7f", 0x080000, 0x80000, CRC(a91949b7) SHA1(c027af89cd8f6bd3aaed61114582322c42e0c74f) ) + ROM_LOAD16_BYTE( "cc_24d.9e", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) ) + ROM_LOAD16_BYTE( "cc_28d.9f", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket + ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) + ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "ccprg.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) // == ccprg1.11d + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1 +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( captcommu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "ccu_23b.8f", 0x000000, 0x80000, CRC(03da44fd) SHA1(0bf382933b4b44082bbaf63e96acd83ab8808a34) ) + ROM_LOAD16_WORD_SWAP( "ccu_22c.7f", 0x080000, 0x80000, CRC(9b82a052) SHA1(8247fe45fea8c47072a66d6707202bcdb8c62923) ) + ROM_LOAD16_BYTE( "ccu_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) ) + ROM_LOAD16_BYTE( "ccu_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket + ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ccu_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ccu_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c + ROM_LOAD( "ccu_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) /* seen the same pcb with CCPRG.11D */ + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1 +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( captcommj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "ccj_23f.8f", 0x000000, 0x80000, CRC(5b482b62) SHA1(c871aa1eb9ecc117c3079995d1f5212193bd2e12) ) + ROM_LOAD16_WORD_SWAP( "ccj_22f.7f", 0x080000, 0x80000, CRC(0fd34195) SHA1(fb2b9a53af43507f13c4f94eaebbf0b538b2e754) ) // == cc_22f.7f + ROM_LOAD16_BYTE( "ccj_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) ) // == cc_24f.9e + ROM_LOAD16_BYTE( "ccj_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) ) // == cc_28f.9f + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc_01.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a + ROMX_LOAD( "cc_02.4a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a + ROMX_LOAD( "cc_03.5a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a + ROMX_LOAD( "cc_04.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a + ROMX_LOAD( "cc_05.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a + ROMX_LOAD( "cc_06.8a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a + ROMX_LOAD( "cc_07.9a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a + ROMX_LOAD( "cc_08.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ccj_09.12a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ccj_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c + ROM_LOAD( "ccj_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) /* seen the same pcb with CCPRG.11D */ + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) /* seen the same pcb with C632.IC1 */ +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( captcommjr1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "ccj_23b.8f", 0x000000, 0x80000, CRC(e2a2d80e) SHA1(ec3c455974b77cd2e4357546aea4cb25690a041f) ) + ROM_LOAD16_WORD_SWAP( "ccj_22c.7f", 0x080000, 0x80000, CRC(9b82a052) SHA1(8247fe45fea8c47072a66d6707202bcdb8c62923) ) // == ccu_22c.7f + ROM_LOAD16_BYTE( "ccj_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) ) // == ccu_24b.9e + ROM_LOAD16_BYTE( "ccj_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) ) // == ccu_28b.9f + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc_01.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a + ROMX_LOAD( "cc_02.4a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a + ROMX_LOAD( "cc_03.5a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a + ROMX_LOAD( "cc_04.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a + ROMX_LOAD( "cc_05.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a + ROMX_LOAD( "cc_06.8a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a + ROMX_LOAD( "cc_07.9a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a + ROMX_LOAD( "cc_08.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ccj_09.12a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ccj_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c + ROM_LOAD( "ccj_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "ccprg.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) // == ccprg1.11d + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1 +ROM_END + +/* Captain Commando bootleg + - there are 2 dumps of this, one has bad (half size) gfx roms tho, otherwise identical + +ROMs from a Captain Commando bootleg PCB + +Large single PCB containing..... +68000 @ 10MHz +Z80 @ 3.579545MHz +YM2151 @ 3.579545MHz +M6295 @ 1MHz (16/16), pin 7 HIGH +xtals 10MHz, 3.579545MHz, 16MHz +8-position DSWs x3 +6116 (2kx8) SRAM x6 +62256 (32kx8) SRAM x6 +681000 (128kx8) SRAM x2 +a few PALs +LOTS of logic +no special chips +no custom chips +no PLD/CPLD/FPGA +no PROMs + +*/ + +ROM_START( captcommb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "25.bin", 0x000000, 0x80000, CRC(cb71ed7a) SHA1(84f76b4861a3c7a59e67f38777f2d68749f19337) ) + ROM_LOAD16_BYTE( "27.bin", 0x000001, 0x80000, CRC(47cb2e87) SHA1(8a990a3a122045b50dd73d2e7b02fe60ab9af0a3) ) + ROM_LOAD16_BYTE( "24.bin", 0x100000, 0x40000, CRC(79794279) SHA1(5a43a4cef6653454ba9a81f2dd7f3f91c8a3354c) ) + ROM_LOAD16_BYTE( "26.bin", 0x100001, 0x40000, CRC(b01077ba) SHA1(0698fbfca7beea8e6a676aa19fcbf5ddea3defb1) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "c91e-01.bin", 0x000000, 0x40000, CRC(f863071c) SHA1(c5154c4001f8e447623f9d71bf3e68a16f039e8f), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000) + ROM_CONTINUE( 0x200000, 0x40000) + ROM_CONTINUE( 0x200004, 0x40000) + ROMX_LOAD( "c91e-02.bin", 0x000001, 0x40000, CRC(4b03c308) SHA1(d28d3ebba2571bea56b057cb3e09315a17d78b42), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000) + ROM_CONTINUE( 0x200001, 0x40000) + ROM_CONTINUE( 0x200005, 0x40000) + ROMX_LOAD( "c91e-03.bin", 0x000002, 0x40000, CRC(3383ea96) SHA1(2a583d87c6d80919c97640f6f2e756cecc3e38ec), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000) + ROM_CONTINUE( 0x200002, 0x40000) + ROM_CONTINUE( 0x200006, 0x40000) + ROMX_LOAD( "c91e-04.bin", 0x000003, 0x40000, CRC(b8e1f4cf) SHA1(6686df700c7ce49fe4ac7007aa4d622645e0e348), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000) + ROM_CONTINUE( 0x200003, 0x40000) + ROM_CONTINUE( 0x200007, 0x40000) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "l.bin", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "c91e-05.bin", 0x00000, 0x40000, CRC(096115fb) SHA1(b496550f61b3d4b54ba43522d31efd0b09057493)) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( knights ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "kr_23e.8f", 0x00000, 0x80000, CRC(1b3997eb) SHA1(724b68eff319fcdf0dd3bc1eb6662996c1f6ecd9) ) + ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket + ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( knightsu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "kr_23u.8f", 0x00000, 0x80000, CRC(252bc2ba) SHA1(4f4901c253bd64bbe68ea01994ae663fe2ccd056) ) + ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket + ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket + ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket + ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket + ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket + ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket + ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket + ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( knightsj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "kr_23j.8f", 0x00000, 0x80000, CRC(eae7417f) SHA1(2ec808265a9a231922e2397d7e8f3c3841a90859) ) + ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr_01.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-5m.3a + ROMX_LOAD( "kr_02.4a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-7m.5a + ROMX_LOAD( "kr_03.5a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-1m.4a + ROMX_LOAD( "kr_04.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-3m.6a + ROMX_LOAD( "kr_05.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-6m.7a + ROMX_LOAD( "kr_06.8a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-8m.9a + ROMX_LOAD( "kr_07.9a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-2m.8a + ROMX_LOAD( "kr_08.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-4m.10a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kr_09.12a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) // == kr_09.11a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 89625B-1 */ +/* Note that this set is equivalent to knightsj, but each 4Mbit EPROM is replaced by 4 1Mbit EPROMs. */ +ROM_START( knightsja ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "krj_36.12f", 0x00000, 0x20000, CRC(ad3d1a8e) SHA1(327f9e818f1500836fc549afeffbb2a3c5aafe8c) ) // == kr_23j.8f + ROM_LOAD16_BYTE( "krj_42.12h", 0x00001, 0x20000, CRC(e694a491) SHA1(5a4d27c879c10032c49880019501de3e45ab1b35) ) // == kr_23j.8f + ROM_LOAD16_BYTE( "krj_37.13f", 0x40000, 0x20000, CRC(85596094) SHA1(74ad294de63aa6b60aa8b885c45c3d41a07ce19a) ) // == kr_23j.8f + ROM_LOAD16_BYTE( "krj_43.13h", 0x40001, 0x20000, CRC(9198bf8f) SHA1(aa3610600286ab25ce81705ea1319d42e7cc7f6c) ) // == kr_23j.8f + ROM_LOAD16_BYTE( "kr_34.10f", 0x80000, 0x20000, CRC(fe6eb08d) SHA1(a67ca33895ff7f41e8521ff7b39e629048d04d30) ) // == kr_22.7f + ROM_LOAD16_BYTE( "kr_40.10h", 0x80001, 0x20000, CRC(1172806d) SHA1(5ad08bf9bada036d89a55f5a542ee1db22df45b2) ) // == kr_22.7f + ROM_LOAD16_BYTE( "kr_35.11f", 0xc0000, 0x20000, CRC(f854b020) SHA1(3d8bd0ab5e0fa2da3c868b591edff5c66f1f08ed) ) // == kr_22.7f + ROM_LOAD16_BYTE( "kr_41.11h", 0xc0001, 0x20000, CRC(eb52e78d) SHA1(b9462c9d97848a6dc4d55475053824df8c9e7f02) ) // == kr_22.7f + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr_09.4b", 0x000000, 0x20000, CRC(08b76e10) SHA1(b18833c4794ef59f8eaf7aef4d62790c3fec9d4d) , ROM_SKIP(7) ) // == kr_01.3a + ROMX_LOAD( "kr_01.4a", 0x000001, 0x20000, CRC(40cecf5c) SHA1(a628199e1808664c403d0de183d1c6ae01670c57) , ROM_SKIP(7) ) // == kr_01.3a + ROMX_LOAD( "kr_13.9b", 0x000002, 0x20000, CRC(435aaa03) SHA1(60af266dccab12220d7efce68887b64826aba37d) , ROM_SKIP(7) ) // == kr_02.4a + ROMX_LOAD( "kr_05.9a", 0x000003, 0x20000, CRC(5b8a615b) SHA1(42aebdb7f338eac9a29380cb0b7553f0d3eaac04) , ROM_SKIP(7) ) // == kr_02.4a + ROMX_LOAD( "kr_24.5e", 0x000004, 0x20000, CRC(de65153e) SHA1(f28fcde0d08634d036d07c2a699026007d19718f) , ROM_SKIP(7) ) // == kr_03.5a + ROMX_LOAD( "kr_17.5c", 0x000005, 0x20000, CRC(b171c968) SHA1(cdbd7b0dc9fd2f3f027796d8f5cabf0a92a11941) , ROM_SKIP(7) ) // == kr_03.5a + ROMX_LOAD( "kr_38.8h", 0x000006, 0x20000, CRC(f4466bf4) SHA1(86e1ffc354b189504ca8f96143a62344a530d267) , ROM_SKIP(7) ) // == kr_04.6a + ROMX_LOAD( "kr_32.8f", 0x000007, 0x20000, CRC(87380ddd) SHA1(01e864060adcdafad987c5758db593525faed589) , ROM_SKIP(7) ) // == kr_04.6a + ROMX_LOAD( "kr_10.5b", 0x100000, 0x20000, CRC(37006d66) SHA1(0efec364ed5b0e121023bc3424d51241a4b208e0) , ROM_SKIP(7) ) // == kr_01.3a + ROMX_LOAD( "kr_02.5a", 0x100001, 0x20000, CRC(b54612e3) SHA1(1d33cf99fdaf3bf5c8d212d1a7c71f085c6c2cd4) , ROM_SKIP(7) ) // == kr_01.3a + ROMX_LOAD( "kr_14.10b", 0x100002, 0x20000, CRC(0ae88766) SHA1(5e3954b51b030d6e7cabd8f94cb849e963cc7d52) , ROM_SKIP(7) ) // == kr_02.4a + ROMX_LOAD( "kr_06.10a", 0x100003, 0x20000, CRC(ecb1a09a) SHA1(bbd96260774f52e50377ad020fc94d1b120f0a37) , ROM_SKIP(7) ) // == kr_02.4a + ROMX_LOAD( "kr_25.7e", 0x100004, 0x20000, CRC(9aace189) SHA1(95332a14dbe9d24a7e294a26530913b8cb5237f2) , ROM_SKIP(7) ) // == kr_03.5a + ROMX_LOAD( "kr_18.7c", 0x100005, 0x20000, CRC(09fa14a5) SHA1(36e7412a317d5f8b528d914d7e6c3c1872eb8533) , ROM_SKIP(7) ) // == kr_03.5a + ROMX_LOAD( "kr_39.9h", 0x100006, 0x20000, CRC(fd8a9aeb) SHA1(a38ea74de95a78fc72c6ad165157e4c22aaa5aed) , ROM_SKIP(7) ) // == kr_04.6a + ROMX_LOAD( "kr_33.9f", 0x100007, 0x20000, CRC(11803e95) SHA1(71603ba4a85967dd434d8499738014a9227d1d26) , ROM_SKIP(7) ) // == kr_04.6a + ROMX_LOAD( "kr_11.7b", 0x200000, 0x20000, CRC(a967ceb3) SHA1(43cdc0e0114f7ccedc7db5cd49b9041ed1a2614f) , ROM_SKIP(7) ) // == kr_05.7a + ROMX_LOAD( "kr_03.7a", 0x200001, 0x20000, CRC(ea10db07) SHA1(e537f3983ac32abcef06fa45afe51f82c87bfa86) , ROM_SKIP(7) ) // == kr_05.7a + ROMX_LOAD( "kr_15.11b", 0x200002, 0x20000, CRC(8140b83b) SHA1(e9cec517d84aa688d60f4201bcee00dbcdd44798) , ROM_SKIP(7) ) // == kr_06.8a + ROMX_LOAD( "kr_07.11a", 0x200003, 0x20000, CRC(6af10648) SHA1(b1d6c908496b1197e23571f5230f017502d5018c) , ROM_SKIP(7) ) // == kr_06.8a + ROMX_LOAD( "kr_26.8e", 0x200004, 0x20000, CRC(8865d86b) SHA1(a79b528d2f94ee350a39eb59860189809267cfad) , ROM_SKIP(7) ) // == kr_07.9a + ROMX_LOAD( "kr_19.8c", 0x200005, 0x20000, CRC(029f4abe) SHA1(e0f02d18e2a51eb02cabe507fbe77031ee3e67e7) , ROM_SKIP(7) ) // == kr_07.9a + ROMX_LOAD( "kr_28.10e", 0x200006, 0x20000, CRC(5f84f92f) SHA1(77b254e8159024490497533073fe302a82531835) , ROM_SKIP(7) ) // == kr_08.10a + ROMX_LOAD( "kr_21.10c", 0x200007, 0x20000, CRC(01b35065) SHA1(8a98860ec453ac88a3c0fc19c117bd4131d0c97c) , ROM_SKIP(7) ) // == kr_08.10a + ROMX_LOAD( "kr_12.8b", 0x300000, 0x20000, CRC(03d945b1) SHA1(88588891422247e6ab42f35a1b91a5801b8fd5b0) , ROM_SKIP(7) ) // == kr_05.7a + ROMX_LOAD( "kr_04.8a", 0x300001, 0x20000, CRC(e30c8388) SHA1(aa519f298f4156b339eb81767ca585e62dc9f4b5) , ROM_SKIP(7) ) // == kr_05.7a + ROMX_LOAD( "kr_16.12b", 0x300002, 0x20000, CRC(40c39d1b) SHA1(578d081f5e1bbfdc30b286cdd5165474b3ed79f7) , ROM_SKIP(7) ) // == kr_06.8a + ROMX_LOAD( "kr_08.12a", 0x300003, 0x20000, CRC(d310c9e8) SHA1(e23a4b318e7d3d6ea3bc6dd4509f49cd656d3d63) , ROM_SKIP(7) ) // == kr_06.8a + ROMX_LOAD( "kr_27.9e", 0x300004, 0x20000, CRC(3e041444) SHA1(7f84158bf2466625ff50befed7e3008b8fe09f70) , ROM_SKIP(7) ) // == kr_07.9a + ROMX_LOAD( "kr_20.9c", 0x300005, 0x20000, CRC(bd4bffb8) SHA1(b8f1162427a46ca9d2833390edc5723d28817a08) , ROM_SKIP(7) ) // == kr_07.9a + ROMX_LOAD( "kr_29.11e", 0x300006, 0x20000, CRC(1387a076) SHA1(5fe32ee8e8557c5bc6c865b2054f3c6c2a1eae7d) , ROM_SKIP(7) ) // == kr_08.10a + ROMX_LOAD( "kr_22.11c", 0x300007, 0x20000, CRC(fd351922) SHA1(7e08a9b23bf524d5fd566d81745aee1cd3a0f026) , ROM_SKIP(7) ) // == kr_08.10a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "kr_23.13b", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) // == kr_09.12a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_30.12c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) // == kr_18.11c + ROM_LOAD( "kr_31.13c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) // == kr_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "kr22b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( sf2ce ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s92e_23b.8f", 0x000000, 0x80000, CRC(0aaa1a3a) SHA1(774a2b52f7c1876c0e10d8d57a0850ad2d016cf6) ) + ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( sf2ceea ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s92e_23a.8f", 0x000000, 0x80000, CRC(3f846b74) SHA1(c8d7a01b626771870123f1663a01a81f9c8fe582) ) + ROM_LOAD16_WORD_SWAP( "s92_22a.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( sf2ceua ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s92u_23a.8f", 0x000000, 0x80000, CRC(ac44415b) SHA1(218f8b1886eb72b8547127042b5ae47600e18944) ) + ROM_LOAD16_WORD_SWAP( "s92_22a.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( sf2ceub ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s92u_23b.8f", 0x000000, 0x80000, CRC(996a3015) SHA1(fdf45da54b1c14478a60f2b86e37ffe32a98b135) ) + ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( sf2ceuc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s92u_23c.8f", 0x000000, 0x80000, CRC(0a8b6aa2) SHA1(a19871271172119e1cf1ff47700bb1917b08514b) ) + ROM_LOAD16_WORD_SWAP( "s92_22c.7f", 0x080000, 0x80000, CRC(5fd8630b) SHA1(f0ef9c5ab91a4b421fb4b1747eef99c964c15de3) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( sf2ceja ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s92j_23a.8f", 0x000000, 0x80000, CRC(4f42bb5a) SHA1(59d0587c554e06ea45d4092ea4299ff086509d4b) ) + ROM_LOAD16_WORD_SWAP( "s92j_22a.7f", 0x080000, 0x80000, CRC(c4f64bcd) SHA1(262c0419bf727da80c2ac52b877a19276d9aac3c) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a + ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a + ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a + ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a + ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a + ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a + ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a + ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a + ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c + ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c + ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c + ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( sf2cejb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s92j_23b.8f", 0x000000, 0x80000, CRC(140876c5) SHA1(304630e6d8bae9f8d29090e05f7e013c7dafe9cc) ) + ROM_LOAD16_WORD_SWAP( "s92j_22b.7f", 0x080000, 0x80000, CRC(2fbb3bfe) SHA1(e364564a12022730c2c0d0e8fd435e2c30ef9410) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) // could be s92j_21a.6f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a + ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a + ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a + ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a + ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a + ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a + ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a + ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a + ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c + ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c + ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c + ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( sf2cejc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s92j_23c.8f", 0x000000, 0x80000, CRC(f0120635) SHA1(5e4a9a4b0f65c6139e76ee4ffa02b9db245b1858) ) + ROM_LOAD16_WORD_SWAP( "s92j_22c.7f", 0x080000, 0x80000, CRC(8c0b2ed6) SHA1(408db039b4dad72b41458723575ed5352b71e10b) ) + ROM_LOAD16_WORD_SWAP( "s92j_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) // == s92_21a.6f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a + ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a + ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a + ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a + ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a + ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a + ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a + ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a + ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c + ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c + ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c + ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( sf2bhh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "23", 0x000000, 0x40000, CRC(5cf63a9e) SHA1(af26165cacb4838572ddf1cd7a2ff22a5dddbf3c) ) // sldh + ROM_CONTINUE( 0x0c0000, 0x40000 ) + ROM_LOAD16_WORD_SWAP( "22", 0x080000, 0x40000, CRC(3ed72bca) SHA1(5565aee82e6b4734c4c0d06a73d8141abb1e4119) ) // sldh + ROM_CONTINUE( 0x040000, 0x40000 ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( sf2rb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD( "sf2d__23.rom", 0x000000, 0x80000, CRC(450532b0) SHA1(14d5ff44ce97247ef4c42147157856d16c5fb4b8) ) + ROM_LOAD16_WORD( "sf2d__22.rom", 0x080000, 0x80000, CRC(fe9d9cf5) SHA1(91afb25d8c0fd1a721f982cebf8fdf563fe11760) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2rb2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "27.bin", 0x000000, 0x20000, CRC(40296ecd) SHA1(6006b9bc7e2e8ccec47f87b51791d3c0512620df) ) + ROM_LOAD16_BYTE( "31.bin", 0x000001, 0x20000, CRC(87954a41) SHA1(67225f180e1f954f0bebba49b618f793a973af14) ) + ROM_LOAD16_BYTE( "26.bin", 0x040000, 0x20000, CRC(a6974195) SHA1(f7e0fd43bd75229d49d5c330820bdc5c3b11ab03) ) + ROM_LOAD16_BYTE( "30.bin", 0x040001, 0x20000, CRC(8141fe32) SHA1(e6ea1ee331f674c64e63a776ad4e428f6081c79c) ) + ROM_LOAD16_BYTE( "25.bin", 0x080000, 0x20000, CRC(9ef8f772) SHA1(3ee271413521cc2d6ac9544e401ff38eff8a1347) ) + ROM_LOAD16_BYTE( "29.bin", 0x080001, 0x20000, CRC(7d9c479c) SHA1(a1195444caac5230a1f74f3444b024ceaf1d0667) ) + ROM_LOAD16_BYTE( "24.bin", 0x0c0000, 0x20000, CRC(93579684) SHA1(9052b46f635cae7843e9d37a601db0189a89e0f9) ) + ROM_LOAD16_BYTE( "28.bin", 0x0c0001, 0x20000, CRC(ff728865) SHA1(ad4522294ff2e02b594d960b45940a3e57a5d1ec) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +/* this rainbow set DOES NOT require a custom PLD to work, runs on standard board with roms replaced */ +ROM_START( sf2rb3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2_ce_rb.23", 0x000000, 0x80000, CRC(202f9e50) SHA1(8f0259ade1bc4df65abf4ad0961db24ca27e3f4b) ) + ROM_LOAD16_WORD_SWAP( "sf2_ce_rb.22", 0x080000, 0x80000, CRC(145e5219) SHA1(0b1251ad817a395f37f6c9acee393c3fce07777a) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2red ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2red.23", 0x000000, 0x80000, CRC(40276abb) SHA1(a991661f5a1a3116445594bcfed3150e36971dd7) ) + ROM_LOAD16_WORD_SWAP( "sf2red.22", 0x080000, 0x80000, CRC(18daf387) SHA1(1a9e4c04ca54e8b33f19dd7bedbe05a200249701) ) + ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2v004 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2v004.23", 0x000000, 0x80000, CRC(52d19f2c) SHA1(6a77b9244dc9b7d9a0ca8a642d4257cc944ac566) ) + ROM_LOAD16_WORD_SWAP( "sf2v004.22", 0x080000, 0x80000, CRC(4b26fde7) SHA1(48e3aacbf9147f2374a93e10f945291c87f24855) ) + ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2acc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2ca_23-c.bin", 0x000000, 0x80000, CRC(e7c8c5a6) SHA1(247fb38c041f4d516899db32545d8b4d8debc4cf) ) + ROM_LOAD16_WORD_SWAP( "sf2ca_22-c.bin", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) ) + ROM_LOAD16_WORD_SWAP( "sf2ca_21-c.bin", 0x100000, 0x40000, CRC(cf7fcc8c) SHA1(47d338634dd72d1ef912fbdb8c1a7ae945ca1a5f) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + + + +ROM_START( sf2acca ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "23-c.8f", 0x000000, 0x80000, CRC(35f9517b) SHA1(0976870c65d69a6d8ca0232a48e042588a9ec5d8) ) + ROM_LOAD16_WORD_SWAP( "22-c.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) ) + ROM_LOAD16_WORD_SWAP( "21-c.6f", 0x100000, 0x80000, CRC(2ab2034f) SHA1(4dc90ba524e76529700945605e02068d49b56aba) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2accp2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2ca-23.bin", 0x000000, 0x80000, CRC(36c3ba2f) SHA1(a3ddc479b725ddb3521757c8efa7aed125004997) ) + ROM_LOAD16_WORD_SWAP( "sf2ca-22.bin", 0x080000, 0x80000, CRC(0550453d) SHA1(f9efed86528dd10f142636278f098584d33ccde6) ) + ROM_LOAD16_WORD_SWAP( "sf2ca-21.bin", 0x100000, 0x40000, CRC(4c1c43ba) SHA1(16abce268373eddd7c3b93fe8d44b200a8c140fe) ) + /* ROM space ends at 13ffff, but the code checks 180ca6 and */ + /* crashes if it isn't 0 - protection? */ + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + + +/* +SF2' CE "bootleg" + +CPS1 motherboard (no dash) +Original 88622-c-2 C board + +Bootleg B board with + PIC16c55 near PRG roms seem protected + 8 dipswith near both sound roms and gfx roms + 1,4,5,8 ON + 2,3,6,7 OFF + +Sound rom match various romset +*/ + +ROM_START( sf2ceblp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + + ROM_LOAD16_BYTE( "prg31.bin", 0x00000, 0x20000, CRC(ea78f9b4) SHA1(967f84615f6ef4d046df3593d5ffce0d43a3ac64) ) + ROM_LOAD16_BYTE( "prg36.bin", 0x00001, 0x20000, CRC(d30c263e) SHA1(6d8b13f82dde3237115306d91f37ac95b8238e0a) ) + ROM_LOAD16_BYTE( "prg30.bin", 0x40000, 0x20000, CRC(005b54cc) SHA1(3d3d7742c11f31cc62d81931dc970cd1f4a26835) ) + ROM_LOAD16_BYTE( "prg35.bin", 0x40001, 0x20000, CRC(c184d26d) SHA1(b1011e869d0b84c1ab609fcf193b46c7d9cc3b28) ) + ROM_LOAD16_BYTE( "prg29.bin", 0x80000, 0x20000, CRC(524f5c55) SHA1(67adfd36bb325c4a6d3e1e5b668c4dc983ac0a62) ) + ROM_LOAD16_BYTE( "prg34.bin", 0x80001, 0x20000, CRC(f06a12f2) SHA1(ddc431ce01392d4a7562760743abd9ea73b06cf3) ) + ROM_LOAD16_BYTE( "prg28.bin", 0xc0000, 0x40000, CRC(b7ad5214) SHA1(17b05e0aa9a4eb5f1aaafe35fa029d2a9aea530d) ) + ROM_LOAD16_BYTE( "prg33.bin", 0xc0001, 0x40000, CRC(6340b914) SHA1(443e37a06058548c8ce7a15ecd10a6635e69d09f) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "24.bin", 0x000000, 0x40000, CRC(a8b5633a) SHA1(6548a89d616910d06db126eb1a9c6b5979baff03) , ROM_SKIP(7) ) // sldh + ROMX_LOAD( "14.bin", 0x000001, 0x40000, CRC(5db24ca7) SHA1(0543e89174fecc866a08e0ecc7c31a6efca15da5) , ROM_SKIP(7) ) + ROMX_LOAD( "26.bin", 0x000002, 0x40000, CRC(82e8e384) SHA1(a8849bdb97c496777ba87e8f1942585c0fc9a29b) , ROM_SKIP(7) ) // sldh + ROMX_LOAD( "16.bin", 0x000003, 0x40000, CRC(1fd98ad0) SHA1(c0edf8ad305d5f8ba72498024cacf28b08491a57) , ROM_SKIP(7) ) + ROMX_LOAD( "20.bin", 0x000004, 0x40000, CRC(8d5d0045) SHA1(74691132c740cc28585ebe9469fa36fea28c1cef) , ROM_SKIP(7) ) + ROMX_LOAD( "10.bin", 0x000005, 0x40000, CRC(eb48f7f2) SHA1(f1d269949a8e06434e2206842535d86a70bcf58f) , ROM_SKIP(7) ) + ROMX_LOAD( "22.bin", 0x000006, 0x40000, CRC(4109d637) SHA1(f7b0961ae3053a0751749ab77f27503e03ae1e5b) , ROM_SKIP(7) ) + ROMX_LOAD( "12.bin", 0x000007, 0x40000, CRC(5d21d8b3) SHA1(1e75a4bf8d750e0858d70a489b59b50839b8c720) , ROM_SKIP(7) ) + + ROMX_LOAD( "25.bin", 0x200000, 0x40000, CRC(72e923df) SHA1(f8db61f8a768fbf99a0be54af712aa19161978d1) , ROM_SKIP(7) ) // sldh + ROMX_LOAD( "15.bin", 0x200001, 0x40000, CRC(9a96be48) SHA1(c0a46aefba442196ead30d4f5de2b0370b1c03f0) , ROM_SKIP(7) ) + ROMX_LOAD( "27.bin", 0x200002, 0x40000, CRC(4a3a8d09) SHA1(eaa7307963c7a5381a4d84a4ebcc483b55cc1411) , ROM_SKIP(7) ) // sldh + ROMX_LOAD( "17.bin", 0x200003, 0x40000, CRC(a917a922) SHA1(2186095f8473538756ca22dbdb2c68d17cbf24ab) , ROM_SKIP(7) ) + ROMX_LOAD( "21.bin", 0x200004, 0x40000, CRC(55c2b455) SHA1(677ac8f988ea3c0564b2dd178ee2ab7077aeafc8) , ROM_SKIP(7) ) + ROMX_LOAD( "11.bin", 0x200005, 0x40000, CRC(ff36859e) SHA1(7f5ab9daacfdb338913d6bca723efe3128dc931f) , ROM_SKIP(7) ) + ROMX_LOAD( "23.bin", 0x200006, 0x40000, CRC(ef9c2d4d) SHA1(35c3ab5a3cc3ce2219b596c4c3e97d28b9cc2297) , ROM_SKIP(7) ) + ROMX_LOAD( "13.bin", 0x200007, 0x40000, CRC(bc937c96) SHA1(772ff4e06093043f693729d8e94e7f8e3f8e866f) , ROM_SKIP(7) ) + + ROMX_LOAD( "6.bin", 0x400000, 0x40000, CRC(023baa18) SHA1(671600e629aff1cc161567ee4a5ceb2228731a36) , ROM_SKIP(7) ) + ROMX_LOAD( "5.bin", 0x400001, 0x40000, CRC(a6ad6ef3) SHA1(c670931a98dfc6ca39d54d8cb8848421232d8c8c) , ROM_SKIP(7) ) + ROMX_LOAD( "8.bin", 0x400002, 0x40000, CRC(26fb340c) SHA1(270455c10a0c7e4ba95a38ab7d815faedfe51fde) , ROM_SKIP(7) ) + ROMX_LOAD( "7.bin", 0x400003, 0x40000, CRC(f56085ba) SHA1(ce8c33d7be271a501e770da5249778f62ca0e0a1) , ROM_SKIP(7) ) + ROMX_LOAD( "1.bin", 0x400004, 0x40000, CRC(877b2b18) SHA1(36ebef5b534d2449b163df38b9a98f769c1d85ed) , ROM_SKIP(7) ) + ROMX_LOAD( "2.bin", 0x400005, 0x40000, CRC(144aa4c9) SHA1(f00bf10f04ae774dda7e3a1c862aba67f70d61c3) , ROM_SKIP(7) ) + ROMX_LOAD( "4.bin", 0x400006, 0x40000, CRC(f2c400b4) SHA1(090ff7184cd2a1b992cc9f1f8c03f8832bc11416) , ROM_SKIP(7) ) + ROMX_LOAD( "3.bin", 0x400007, 0x40000, CRC(8053335d) SHA1(c653cb249401162fbf39f293e1999fe5e09c35c4) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x2000, "protectin_pic", 0 ) + ROM_LOAD( "pic16c55", 0x00000, 0x2000, BAD_DUMP CRC(f22e2311) SHA1(320edfba140728599e91c01e863a8b6d071e4bbf) ) +ROM_END + +ROM_START( sf2amf ) + /* the PCB is not working on real hardware */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "5.amf", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) ) + ROM_LOAD16_BYTE( "4.amf", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) ) + /* missing last part(s) of program roms, some gfx loading instructions are missing */ + ROM_LOAD16_BYTE( "prg part 3.amf", 0x100000, 0x40000, NO_DUMP ) + ROM_LOAD16_BYTE( "prg part 4.amf", 0x100001, 0x40000, NO_DUMP ) + /* do not move this outside comments, this is only for testing purpose + ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) ) + ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) ) + */ + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "y.c.e.c m.k.r-001", 0x000000, 0x80000, CRC(a258de13) SHA1(2e477948c4c8a2fb7cfdc4a739766bc4a4e01c49), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000) + ROMX_LOAD( "y.c.e.c m.k.r-003", 0x000002, 0x80000, CRC(c781bf87) SHA1(034baa9807c2ce8dc800200963a38cd9262b21fb), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000) + ROMX_LOAD( "y.c.e.c m.k.r-002", 0x200000, 0x80000, CRC(5726cab8) SHA1(0b2243a9a7184d53d42ddab7a8c51b63001c2f56), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200004, 0x80000) + ROMX_LOAD( "y.c.e.c d.w.c-011", 0x200002, 0x80000, CRC(bc90c12f) SHA1(ecdb776239b22bd56b7c3a87c9e561f650a4dfea), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200006, 0x80000) + ROMX_LOAD( "y.c.e.c d.w.c-012", 0x400000, 0x80000, CRC(187667cc) SHA1(fae65bf23f49a32903fda8080659ccf8d42b911f), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x400004, 0x80000) + ROMX_LOAD( "y.c.e.c d.w.c-013", 0x400002, 0x80000, CRC(5b585071) SHA1(ad3371b1ba0441c67d9fcbb23b09464710e4e28a), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x400006, 0x80000) + /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */ + ROMX_LOAD( "6.amf", 0x400000, 0x10000, CRC(3a85a275) SHA1(01907d69f912abffe3ad9745638ce3f282cfb2e8), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400004, 0x10000 ) + ROMX_LOAD( "9.amf", 0x400002, 0x10000, CRC(9156472f) SHA1(5db2acfc54308d4d26e0459f9486620a968c81d8), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400006, 0x10000 ) + ROMX_LOAD( "8.amf", 0x400001, 0x10000, CRC(ecdb083b) SHA1(899894c1db004e98f755ffbdf28d32296b9c0a86), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400005, 0x10000 ) + ROMX_LOAD( "10.amf", 0x400003, 0x10000, CRC(8fea8384) SHA1(8b31fd8d16cbafb5144f772653336b41db8f64fc), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400007, 0x10000 ) + /* end of extra gfx layer roms */ + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "3.amf", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */ + ROM_LOAD( "7.amf", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "2.amf", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "1.amf", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2amf2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "m5m27c401.u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) ) // == 5.amf sf2amf + ROM_LOAD16_BYTE( "m5m27c401.u196", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) ) // == 4.amf sf2amf + + ROM_LOAD16_BYTE( "27020.u221", 0x100000, 0x40000, CRC(aa4d55a6) SHA1(8fd1c21816886a7734aae42e9336d5f66ddab7bc) ) // different + ROM_LOAD16_BYTE( "27020.u195", 0x100001, 0x40000, CRC(2bffa6f9) SHA1(eb1222356d89849edb08ea1898399cf90cf127f5) ) // different + + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "fun-u70.bin", 0x000004, 0x80000, CRC(a94a8b19) SHA1(49ba9e6032a0b33d7db9fe609710575f2f75e695), ROM_GROUPWORD | ROM_SKIP(6) ) // different + ROM_CONTINUE( 0x000000, 0x80000) + ROMX_LOAD( "fun-u68.bin", 0x000006, 0x80000, CRC(0405f21f) SHA1(dbebd2c2c46d5aae8db905f2eb51abd4a5c4ea97), ROM_GROUPWORD | ROM_SKIP(6) ) // different + ROM_CONTINUE( 0x000002, 0x80000) + ROMX_LOAD( "fun-u69.bin", 0x200004, 0x80000, CRC(05dc2043) SHA1(d16b89a48d2dd7cdfafc79567ce1e230d4bd41c1), ROM_GROUPWORD | ROM_SKIP(6) ) // different + ROM_CONTINUE( 0x200000, 0x80000) + ROMX_LOAD( "fun-u67.bin", 0x200006, 0x80000, CRC(055b64f1) SHA1(3dd68f52b81ed1b300b65c900ef6bfe435d41e4b), ROM_GROUPWORD | ROM_SKIP(6) ) // different + ROM_CONTINUE( 0x200002, 0x80000) + ROMX_LOAD( "fun-u19.bin", 0x400004, 0x80000, CRC(1a518609) SHA1(18ffca70d6cefb399ba6e3008e5c29dc37de52a0), ROM_GROUPWORD | ROM_SKIP(6) ) // different + ROM_CONTINUE( 0x400000, 0x80000) + ROMX_LOAD( "fun-u18.bin", 0x400006, 0x80000, CRC(84f9354f) SHA1(ecc190950b1f45b268da380c17859a8d0715b58f), ROM_GROUPWORD | ROM_SKIP(6) ) // different + ROM_CONTINUE( 0x400002, 0x80000) + /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */ + ROMX_LOAD( "grp1.u31", 0x400004, 0x10000, CRC(6de44671) SHA1(dc6abba639e0c27033e391c7438d88dc89a93351), ROM_SKIP(7) ) // different + ROM_CONTINUE( 0x400000, 0x10000 ) + ROMX_LOAD( "grp3.u29", 0x400006, 0x10000, CRC(e8f14362) SHA1(a20eb75e322011e2a8d8bf2acebe713bef3d3941), ROM_SKIP(7) ) // different + ROM_CONTINUE( 0x400002, 0x10000 ) + ROMX_LOAD( "grp2.u30", 0x400005, 0x10000, CRC(bf0cd819) SHA1(f04a098fce07949277268327871c5e5520e3bb3c), ROM_SKIP(7) ) // different + ROM_CONTINUE( 0x400001, 0x10000 ) + ROMX_LOAD( "grp4.u28", 0x400007, 0x10000, CRC(76f9f91f) SHA1(58a34062d2c8378558a7f1629140330279af9a43), ROM_SKIP(7) ) // different + ROM_CONTINUE( 0x400003, 0x10000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "27512.u191", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */ + ROM_LOAD( "27512.u133", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "fun-u210.bin", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) ) +ROM_END + +ROM_START( sf2dkot2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + /* The game reads values from 0x201201 and 0x281201 (at PC=E5452) and uses their difference to form a jump offset. */ + /* This arrangement seems to work */ + ROM_LOAD16_WORD_SWAP( "turboii.23", 0x000000, 0x80000, CRC(9bbfe420) SHA1(299ab5625f2d4ebc89bcf19a2b2d88edc8054747) ) + ROM_RELOAD( 0x280000, 0x80000 ) + ROM_LOAD16_WORD_SWAP( "turboii.22", 0x080000, 0x80000, CRC(3e57ba19) SHA1(ae8170ac890c14ba7746e29c0f21dfb38c4c9837) ) + ROM_RELOAD( 0x200000, 0x80000 ) + + ROM_LOAD16_WORD_SWAP( "turboii.21", 0x100000, 0x80000, CRC(ed4186bd) SHA1(f3dfe91d8f4384275190b0d86488843c1161d86f) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2m2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ch222esp", 0x000000, 0x80000, CRC(9e6d058a) SHA1(8c9adca7b65dc929c325c0a62304d24dc0902c08) ) + ROM_LOAD16_BYTE( "ch196esp", 0x000001, 0x80000, CRC(ed2ff437) SHA1(e76fc2953b6c800d5955c8fb442b80142e40e375) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2m3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222chp", 0x000000, 0x80000, CRC(db567b66) SHA1(315bfbf2786ef67a95afb87de836ab348523dbbe) ) + ROM_LOAD16_BYTE( "u196chp", 0x000001, 0x80000, CRC(95ea597e) SHA1(5eb82feaa1de5611a96888e4670744bbb7d90393) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2m4 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222ne", 0x000000, 0x80000, CRC(7133489e) SHA1(036ef100c64c6e912c911340b32eea0da0b6f6d9) ) + ROM_LOAD16_BYTE( "u196ne", 0x000001, 0x80000, CRC(b07a4f90) SHA1(7a4a800bddc43cfa60f9097723b44a05c9d290ae) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2m5 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) ) + ROM_LOAD16_BYTE( "u196", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2m6 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222-6b", 0x000000, 0x80000, CRC(0a3692be) SHA1(7b937b7b0130e460b5f12188b19f464c55b507c9) ) + ROM_LOAD16_BYTE( "u196-6b", 0x000001, 0x80000, CRC(80454da7) SHA1(64f6dba14d342c9933ce632aa7ca126b34b4ee8b) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2m7 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222-2i", 0x000000, 0x40000, CRC(1ca7adbd) SHA1(45e9dc05766ad156edcfc9e59a9804f74f90dc68) ) + ROM_LOAD16_BYTE( "u196-2i", 0x000001, 0x40000, CRC(f758408c) SHA1(aac44a7287bb3b7ba35d68aff279e265dbd3f6d3) ) + ROM_LOAD16_BYTE( "u222-2s", 0x080000, 0x40000, CRC(720cea3e) SHA1(ec4f22159d44a8abc40643b986b88a4f947d6aea) ) + ROM_LOAD16_BYTE( "u196-2s", 0x080001, 0x40000, CRC(9932832c) SHA1(0da0f5ebab91b0759c5fc00902cfe4b12a856466) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2m8 ) +/* unconfirmed if working on real hardware */ + /* this board has unsupported pals */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "yyc-2.2", 0x000000, 0x80000, CRC(db567b66) SHA1(315bfbf2786ef67a95afb87de836ab348523dbbe) ) + ROM_LOAD16_BYTE( "yyc-3.4", 0x000001, 0x80000, CRC(95ea597e) SHA1(5eb82feaa1de5611a96888e4670744bbb7d90393) ) + ROM_LOAD16_BYTE( "yyc-4.1", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) ) + ROM_LOAD16_BYTE( "yyc-5.3", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "yyc-a", 0x000000, 0x40000, CRC(8242621f) SHA1(9d566176462bd25f9a377104b0c78a962708bc2b), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000) + ROM_CONTINUE( 0x200000, 0x40000) + ROM_CONTINUE( 0x200004, 0x40000) + ROMX_LOAD( "yyc-c", 0x000001, 0x40000, CRC(0793a960) SHA1(f351163dd1090f8cd8d4c77e2a29764fee627b13), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000) + ROM_CONTINUE( 0x200001, 0x40000) + ROM_CONTINUE( 0x200005, 0x40000) + ROMX_LOAD( "yyc-b", 0x000002, 0x40000, CRC(b0159973) SHA1(2a236b9d98fa0acddd844aa94bc5118012a6fb2f), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000) + ROM_CONTINUE( 0x200002, 0x40000) + ROM_CONTINUE( 0x200006, 0x40000) + ROMX_LOAD( "yyc-d", 0x000003, 0x40000, CRC(92a8b572) SHA1(cbad24e519f0152989764c054da914f55e2b118c), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000) + ROM_CONTINUE( 0x200003, 0x40000) + ROM_CONTINUE( 0x200007, 0x40000) + /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */ + ROMX_LOAD( "yyc-6.1", 0x400000, 0x10000, CRC(94778332) SHA1(c0b9a05c710b89864ee5df1a53b39de30c994e2d), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400004, 0x10000 ) + ROMX_LOAD( "yyc-8.9", 0x400002, 0x10000, CRC(f95bc505) SHA1(385beb2f9f8a473d928d729d722372ae49f410e7), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400006, 0x10000 ) + ROMX_LOAD( "yyc-7.10", 0x400001, 0x10000, CRC(d1e452d3) SHA1(794f7ebf6c46c2938a5477451cf05f2e0c7b9049), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400005, 0x10000 ) + ROMX_LOAD( "yyc-9.8", 0x400003, 0x10000, CRC(155824a9) SHA1(74d7e86be22c11234f5d9d0b25fa709b59ef471b), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400007, 0x10000 ) + /* end of extra gfx layer roms */ + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "a-15.5", 0x00000, 0x08000, CRC(6f07d2cb) SHA1(8ef1338d04c1a0b43e24303085105cfdced0bd5e) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x10000, "user1", 0 ) /* unknown (bootleg priority?) */ + ROM_LOAD( "c-27.7", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) ) + + ROM_REGION( 0x200000, "user2", 0 ) + ROM_LOAD( "yyc-e", 0x000000, 0x100000, CRC(61138469) SHA1(dec3b3af6e3f4fedf51600ddf0515f61b2122493) ) + ROM_LOAD( "yyc-f", 0x100000, 0x100000, CRC(b800dcdb) SHA1(2ec3251b78159b15032d55a5ee5138f159e67190) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "b-16.6", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) ) +ROM_END + +ROM_START( sf2yyc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "b12.rom", 0x000000, 0x80000, CRC(8f742fd5) SHA1(a78a00e686856481011d8b5f5e60ed18197a5225) ) + ROM_LOAD16_BYTE( "b14.rom", 0x000001, 0x80000, CRC(8831ec7f) SHA1(0293ff189cbacf90098e734fb31fcbf3c3165e6b) ) + ROM_LOAD16_BYTE( "b11.rom", 0x100000, 0x20000, CRC(94a46525) SHA1(2712b979ce2bfd87e74da3369e0fceaae2a0654c) ) + ROM_RELOAD( 0x140000, 0x20000 ) + ROM_LOAD16_BYTE( "b13.rom", 0x100001, 0x20000, CRC(8fb3dd47) SHA1(ebf30ad7ae60eeda446e23bd74f6e2d98dde4158) ) + ROM_RELOAD( 0x140001, 0x20000 ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2koryu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222.rom", 0x000000, 0x80000, CRC(9236a79a) SHA1(39c47b0b0ca2f5f569ff07ebb91040b95d0cb43b) ) + ROM_LOAD16_BYTE( "u196.rom", 0x000001, 0x80000, CRC(b23a869d) SHA1(24247d412f20d069919cc8a7fff208af3f7aa1d2) ) + ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) ) + ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2dongb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "1.8f", 0x000000, 0x80000, CRC(19fffa37) SHA1(db464c64de3aebe929c85ee167961de05d2c16be) ) + ROM_LOAD16_WORD_SWAP( "1.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) ) // same as sf2ceea + ROM_LOAD16_WORD_SWAP( "1.6f", 0x100000, 0x80000, CRC(65c2c719) SHA1(d407cae5f04fc8d05776d478a6eb4363b3c36805) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + + +/* B-Board 89625B-1 */ +ROM_START( cworld2j ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "q5_36.12f", 0x00000, 0x20000, CRC(38a08099) SHA1(961f733baa2bbf8419e4de70f18660098dba7d52) ) + ROM_LOAD16_BYTE( "q5_42.12h", 0x00001, 0x20000, CRC(4d29b3a4) SHA1(bf40fc22c0161fe131ca69100b2a4d102e86bde6) ) + ROM_LOAD16_BYTE( "q5_37.13f", 0x40000, 0x20000, CRC(eb547ebc) SHA1(fce470b05ce095badd180c3740677146f52f6080) ) + ROM_LOAD16_BYTE( "q5_43.13h", 0x40001, 0x20000, CRC(3ef65ea8) SHA1(2348d84b380c0e8ebe270a37d4ff3ce5204abc8c) ) + ROM_LOAD16_BYTE( "q5_34.10f", 0x80000, 0x20000, CRC(7fcc1317) SHA1(672ca45d3fad5eec4d65bbbbd1d21cbf6be4ec8b) ) + ROM_LOAD16_BYTE( "q5_40.10h", 0x80001, 0x20000, CRC(7f14b7b4) SHA1(5564eb9f65dad76ebe40d12d5c39fec5e246adf0) ) + ROM_LOAD16_BYTE( "q5_35.11f", 0xc0000, 0x20000, CRC(abacee26) SHA1(2f513c02f715ffeec12a6d1c292619e214155cbc) ) +// ROM_LOAD16_BYTE( "q5_35.11f", 0xc0000, 0x20000, CRC(59961612) SHA1(ded5144746dd9612f2db1415e96a826e215ad176) ) /* dumped from another board, 1 byte different, pcb verified */ + ROM_LOAD16_BYTE( "q5_41.11h", 0xc0001, 0x20000, CRC(d3654067) SHA1(0b597483e136ff19b031171941cb8439bcd7f145) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "q5_09.4b", 0x000000, 0x20000, CRC(48496d80) SHA1(bdfaca6375c8275b06b2bc170a25ff6aa62394dc) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_01.4a", 0x000001, 0x20000, CRC(c5453f56) SHA1(113fe6cc6c830352df5992be9fa34c4d70bf32ed) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_13.9b", 0x000002, 0x20000, CRC(c741ac52) SHA1(d8b4aeacfd62586b98a1381da357dcc5ab16c1c6) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_05.9a", 0x000003, 0x20000, CRC(143e068f) SHA1(24cdc49c09a9f0c93e04b37cf7ebba09a929c9b0) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_24.5e", 0x000004, 0x20000, CRC(b419d139) SHA1(46cd97da2413eb5fbd38fa2c20914f3c5f1c6ec8) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_17.5c", 0x000005, 0x20000, CRC(bd3b4d11) SHA1(bb62169bc52562715878a33cc4f8558e05d581d3) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_38.8h", 0x000006, 0x20000, CRC(9c24670c) SHA1(3b98078b7360e21b3905fd973e01b88b02090759) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_32.8f", 0x000007, 0x20000, CRC(3ef9c7c2) SHA1(52a18d7b12f0c14c5cf68a3dd63571e955005f4c) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_10.5b", 0x100000, 0x20000, CRC(119e5e93) SHA1(b5b6c2e3516ebe555a26ecfb5934f3b65371bf36) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_02.5a", 0x100001, 0x20000, CRC(a2cadcbe) SHA1(3d1079f62cce628cbc5b810c0bd51c67c87f4eca) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_14.10b", 0x100002, 0x20000, CRC(a8755f82) SHA1(0a2fbc8b96651f9ab72eb451723e56ca0a859868) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_06.10a", 0x100003, 0x20000, CRC(c92a91fc) SHA1(dfe9682349cf94be414b7e1895b632de41729194) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_25.7e", 0x100004, 0x20000, CRC(979237cb) SHA1(9534b05523317a220b3b957a18fec51f1d4e37b3) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_18.7c", 0x100005, 0x20000, CRC(c57da03c) SHA1(ad7bce859f56d201d229032baf4fb9f65b54765b) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_39.9h", 0x100006, 0x20000, CRC(a5839b25) SHA1(20c4c4f24f21a325a03538306de799df2a89f6cb) , ROM_SKIP(7) ) + ROMX_LOAD( "q5_33.9f", 0x100007, 0x20000, CRC(04d03930) SHA1(37f2556eeb52f8edfcddd3f3642fa24565d5a7bd) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "q5_23.13b", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "q5_30.12c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) ) + ROM_LOAD( "q5_31.13c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "q522b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) /* seen the same pcb with IOB1.12E */ + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 90629B-3 - all roms have 90629B on the labels, no battery, possibly unofficial / desuicided with reproduction stickers */ +ROM_START( cworld2ja ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP("q5 - 34_90629b.8f", 0x00000, 0x80000, CRC(de54487f) SHA1(75b228a6c702c82d4d9a2a992933b5c3c420f6c2) ) + ROM_LOAD16_WORD_SWAP("q5 - 33_90629b.6f", 0x80000, 0x80000, CRC(93248458) SHA1(9dcdc6838f52efc9a0a6333fd0d734946db12dbd) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "q5 - 06_90629b.8a", 0x000000, 0x80000, CRC(09d0e7ce) SHA1(ea502b975986222acce82ce8396348af72e1df72) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "q5 - 08_90629b.10a", 0x000002, 0x80000, CRC(22e4ce9a) SHA1(9e49aec8e1d6d15a68da63e69765b82fd53a9562) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "q5 - 05_90629b.7a", 0x000004, 0x80000, CRC(f7b3aed6) SHA1(bdfb4d5988307b07ad878ac9129954d14da8769b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "q5 - 07_90629b.9a", 0x000006, 0x80000, CRC(520c6c88) SHA1(19ba8ca3d75aae71cdf471e6307e86a5df8a2851) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "q5 - 09_90629b.12a", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "q5 - 18_90629b.11c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) ) + ROM_LOAD( "q5 - 19_90629b.12c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "q529b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 91634B-2 - all roms have 91634B on the labels */ +ROM_START( cworld2jb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "q5 - 23_91634b.8f", 0x00000, 0x80000, CRC(709f577f) SHA1(3e0615d01f22eb1bf75cbd26dc80ca5a6d08120e) ) + ROM_LOAD16_WORD_SWAP( "q5 - 22_91634b.7f", 0x80000, 0x80000, CRC(93248458) SHA1(9dcdc6838f52efc9a0a6333fd0d734946db12dbd) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "q5 - 01_91634b.3a", 0x000000, 0x80000, CRC(09d0e7ce) SHA1(ea502b975986222acce82ce8396348af72e1df72) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "q5 - 02_91634b.4a", 0x000002, 0x80000, CRC(22e4ce9a) SHA1(9e49aec8e1d6d15a68da63e69765b82fd53a9562) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "q5 - 03_91634b.5a", 0x000004, 0x80000, CRC(f7b3aed6) SHA1(bdfb4d5988307b07ad878ac9129954d14da8769b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "q5 - 04_91634b.6a", 0x000006, 0x80000, CRC(520c6c88) SHA1(19ba8ca3d75aae71cdf471e6307e86a5df8a2851) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "q5 - 09_91634b.12a", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "q5 - 18_91634b.11c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) ) + ROM_LOAD( "q5 - 19_91634b.12c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "q563b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) // checkme + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 89624B-3 */ +ROM_START( varth ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "vae_30b.11f", 0x00000, 0x20000, CRC(adb8d391) SHA1(5e7160509e0315eb32cc390ddd7e4ef7a4a1a70a) ) + ROM_LOAD16_BYTE( "vae_35b.11h", 0x00001, 0x20000, CRC(44e5548f) SHA1(17b4be1f4159f6b6803d8c2950823ece0bdde8b2) ) + ROM_LOAD16_BYTE( "vae_31b.12f", 0x40000, 0x20000, CRC(1749a71c) SHA1(bd9bfd5bbe2d426c94df755c977faa92a28f16ab) ) + ROM_LOAD16_BYTE( "vae_36b.12h", 0x40001, 0x20000, CRC(5f2e2450) SHA1(676e8d96406d81ceadd4a0a69959cdcb6d5d9ac8) ) + ROM_LOAD16_BYTE( "vae_28b.9f", 0x80000, 0x20000, CRC(e524ca50) SHA1(487d5ddabe852872f331362034c4fa16e0926e3d) ) + ROM_LOAD16_BYTE( "vae_33b.9h", 0x80001, 0x20000, CRC(c0bbf8c9) SHA1(447540b856776770af8022a291d46612c1bb5909) ) + ROM_LOAD16_BYTE( "vae_29b.10f", 0xc0000, 0x20000, CRC(6640996a) SHA1(3ed7bd947dc8224435680dedf4955ed6041c6028) ) + ROM_LOAD16_BYTE( "vae_34b.10h", 0xc0001, 0x20000, CRC(fa59be8a) SHA1(86a3d3a7126c021e2ca8ac20238695396367e098) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "va-5m.7a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "va-7m.9a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "va-1m.3a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "va-3m.5a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "va_09.12b", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // missing sticker, could be va_9.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) ) + ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "va24b.1a", 0x0000, 0x0117, CRC(cc476650) SHA1(a417f7971b8709023932fc2b68c9e3cd699ab6f2) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 89624B-? */ +ROM_START( varthr1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "vae_30a.11f", 0x00000, 0x20000, CRC(7fcd0091) SHA1(7bed452736eda4a26c43c5dd54ec6799afa6e770) ) + ROM_LOAD16_BYTE( "vae_35a.11h", 0x00001, 0x20000, CRC(35cf9509) SHA1(a189ca7740d77262413ec2891af034d0057892be) ) + ROM_LOAD16_BYTE( "vae_31a.12f", 0x40000, 0x20000, CRC(15e5ee81) SHA1(6c6248b07f7e956a37d5dcb4b67d026f57fae13b) ) + ROM_LOAD16_BYTE( "vae_36a.12h", 0x40001, 0x20000, CRC(153a201e) SHA1(5936e447d5cd02ff13802cf78393b521431ad06c) ) + ROM_LOAD16_BYTE( "vae_28a.9f", 0x80000, 0x20000, CRC(7a0e0d25) SHA1(203692ef1daeef7ba08b154cf029cc07a2e0e23d) ) + ROM_LOAD16_BYTE( "vae_33a.9h", 0x80001, 0x20000, CRC(f2365922) SHA1(efb2221033e4b46fedaf3d8c850e208f849e6af0) ) + ROM_LOAD16_BYTE( "vae_29a.10f", 0xc0000, 0x20000, CRC(5e2cd2c3) SHA1(eff955c7dc0d8ae215e7188cc4865726104c7777) ) + ROM_LOAD16_BYTE( "vae_34a.10h", 0xc0001, 0x20000, CRC(3d9bdf83) SHA1(d655803a6f07b90e44aacaa3e6059ac330ef2ec6) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "va-5m.7a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "va-7m.9a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "va-1m.3a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "va-3m.5a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "va_09.12b", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) ) + ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "va24b.1a", 0x0000, 0x0117, CRC(cc476650) SHA1(a417f7971b8709023932fc2b68c9e3cd699ab6f2) ) + ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( varthu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "vau_23a.8f", 0x00000, 0x80000, CRC(fbe68726) SHA1(68917d366551d2203400adc3261355dd3b332bcb) ) + ROM_LOAD16_WORD_SWAP( "vau_22a.7f", 0x80000, 0x80000, CRC(0ed71bbd) SHA1(e7f0f0edf0936a774e122842b09f5c5ce25a96ad) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "va-5m.3a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket // == va-5m.7a + ROMX_LOAD( "va-7m.5a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket // == va-7m.9a + ROMX_LOAD( "va-1m.4a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket // == va-1m.3a + ROMX_LOAD( "va-3m.6a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket // == va-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "va_09.11a", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // == va_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) ) + ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "va63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(38540e86) SHA1(86e0aba363108f80a8eff84b99d11528ad6db099) ) /* Handcrafted but works on actual US PCB. Redump needed */ + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) +ROM_END + +/* B-Board 88622B-3 */ +ROM_START( varthj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "vaj_36b.12f", 0x00000, 0x20000, CRC(1d798d6a) SHA1(b12579e9dcb88416bc00653b143832d9347adbaf) ) + ROM_LOAD16_BYTE( "vaj_42b.12h", 0x00001, 0x20000, CRC(0f720233) SHA1(2d9442ceafd5e2208aa8cd4bcb66861bff6aec47) ) + ROM_LOAD16_BYTE( "vaj_37b.13f", 0x40000, 0x20000, CRC(24414b17) SHA1(6c0b24cf8045fc033217c737dba2c046d7d0a09a) ) + ROM_LOAD16_BYTE( "vaj_43b.13h", 0x40001, 0x20000, CRC(34b4b06c) SHA1(3033d1d053ba97d6da17064d7b944a10817b93b1) ) + ROM_LOAD16_BYTE( "vaj_34b.10f", 0x80000, 0x20000, CRC(87c79aed) SHA1(bb90720d1d04ed6ad276a5230cb078229aa8a40a) ) + ROM_LOAD16_BYTE( "vaj_40b.10h", 0x80001, 0x20000, CRC(210b4bd0) SHA1(15771c32af9fb4760953ef5475de228200851b42) ) + ROM_LOAD16_BYTE( "vaj_35b.11f", 0xc0000, 0x20000, CRC(6b0da69f) SHA1(5883bea31a22a44ad7494d6acd523c88b62f8743) ) + ROM_LOAD16_BYTE( "vaj_41b.11h", 0xc0001, 0x20000, CRC(6542c8a4) SHA1(5f828cf28ef905e4701c92f317e1257a40964a65) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "va_09.4b", 0x000000, 0x20000, CRC(183dfaa8) SHA1(230c65c1b11b3a5d1733455e0130dad2740e2d2d) , ROM_SKIP(7) ) // == va-5m.7a + ROMX_LOAD( "va_01.4a", 0x000001, 0x20000, CRC(c41312b5) SHA1(4077cb8200fc403953a08d94652fa8f572dc202d) , ROM_SKIP(7) ) // == va-5m.7a + ROMX_LOAD( "va_13.9b", 0x000002, 0x20000, CRC(45537e69) SHA1(18581cbf09b1ec35ea388dce73db7099a1790f60) , ROM_SKIP(7) ) // == va-7m.9a + ROMX_LOAD( "va_05.9a", 0x000003, 0x20000, CRC(7065d4e9) SHA1(0e16b4ba2309cca609eaa906c99c61172ca273d0) , ROM_SKIP(7) ) // == va-7m.9a + ROMX_LOAD( "va_24.5e", 0x000004, 0x20000, CRC(57191ccf) SHA1(8247b6ca36dd114ea2d030141ce48ea881ea648c) , ROM_SKIP(7) ) // == va-1m.3a + ROMX_LOAD( "va_17.5c", 0x000005, 0x20000, CRC(054f5a5b) SHA1(28fc6ff2144daad18b5aed8c08d0b65e6fc2b06f) , ROM_SKIP(7) ) // == va-1m.3a + ROMX_LOAD( "va_38.8h", 0x000006, 0x20000, CRC(e117a17e) SHA1(576ec580050e9ce3e3be96b849247288411ff68c) , ROM_SKIP(7) ) // == va-3m.5a + ROMX_LOAD( "va_32.8f", 0x000007, 0x20000, CRC(3b4f40b2) SHA1(7033d0f754381fe8d5ed29b58ebbd665a0ba1725) , ROM_SKIP(7) ) // == va-3m.5a + ROMX_LOAD( "va_10.5b", 0x100000, 0x20000, CRC(d62750cd) SHA1(0b792f806ed5ab7f6ec0c53bb9bf9965d7ddc47e) , ROM_SKIP(7) ) // == va-5m.7a + ROMX_LOAD( "va_02.5a", 0x100001, 0x20000, CRC(11590325) SHA1(9d776f4008db76f8f141db5024a3eed78e364b6a) , ROM_SKIP(7) ) // == va-5m.7a + ROMX_LOAD( "va_14.10b", 0x100002, 0x20000, CRC(dc2f4783) SHA1(f9c274d1ab24159980f29db7da5bcc179761237f) , ROM_SKIP(7) ) // == va-7m.9a + ROMX_LOAD( "va_06.10a", 0x100003, 0x20000, CRC(06e833ac) SHA1(e8df6e2ef8300b5e412dd74cfe329b5535056e62) , ROM_SKIP(7) ) // == va-7m.9a + ROMX_LOAD( "va_25.7e", 0x100004, 0x20000, CRC(51d90690) SHA1(9079d56007aae257f56ce47bbb24873dc18c5bd6) , ROM_SKIP(7) ) // == va-1m.3a + ROMX_LOAD( "va_18.7c", 0x100005, 0x20000, CRC(a17817c0) SHA1(23d9ae2ae68e4c8be72da7013109ecdfc30d4b53) , ROM_SKIP(7) ) // == va-1m.3a + ROMX_LOAD( "va_39.9h", 0x100006, 0x20000, CRC(b0b12f51) SHA1(68a33736dcb0703e46ba48918a29ecd559575a97) , ROM_SKIP(7) ) // == va-3m.5a + ROMX_LOAD( "va_33.9f", 0x100007, 0x20000, CRC(4b003af7) SHA1(0c1d18a3ee7f3a48219f73eb21f88a260a9a001e) , ROM_SKIP(7) ) // == va-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "va_23.13c", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // == va_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "va_30.12e", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) ) // == va_18.11c + ROM_LOAD( "va_31.13e", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) ) // == va_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "va22b.1a", 0x0000, 0x0117, CRC(bd7cd574) SHA1(00e49631aceb2871e9313f40264fa55eaaa3538c) ) + ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 91634B-2, Japan Resale Ver. */ +ROM_START( varthjr ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "vaj_23b.8f", 0x00000, 0x80000, CRC(ad3d3522) SHA1(db627233f9d8a03c2d4bb31614951a0cdc81600d) ) + ROM_LOAD16_WORD_SWAP( "vaj_22b.7f", 0x80000, 0x80000, CRC(034e3e55) SHA1(eeb85a827cf18dafbdf0a2828aa39128352857f3) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "va_01.3a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-5m.7a + ROMX_LOAD( "va_02.4a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-7m.9a + ROMX_LOAD( "va_03.5a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-1m.3a + ROMX_LOAD( "va_04.6a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "va_09.12a", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) ) + ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "va63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(38540e86) SHA1(86e0aba363108f80a8eff84b99d11528ad6db099) ) /* Handcrafted but works on actual US PCB. Redump needed */ + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( qad ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "qdu_36a.12f", 0x00000, 0x20000, CRC(de9c24a0) SHA1(458962943e8d97d1f4e5a15ac1c8d3bcaa32918b) ) + ROM_LOAD16_BYTE( "qdu_42a.12h", 0x00001, 0x20000, CRC(cfe36f0c) SHA1(370a47461b2dbb7807f547f5b4b33296572c5d78) ) + ROM_LOAD16_BYTE( "qdu_37a.13f", 0x40000, 0x20000, CRC(10d22320) SHA1(73b2876d5447f50a850c466789d9297269f732d6) ) + ROM_LOAD16_BYTE( "qdu_43a.13h", 0x40001, 0x20000, CRC(15e6beb9) SHA1(68d11e9bdd82775060281c5880f249e3515dc235) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "qd_09.4b", 0x000000, 0x20000, CRC(8c3f9f44) SHA1(b5ab20515b7f3e7db023be42d4c7ed1941b37d9b) , ROM_SKIP(7) ) + ROMX_LOAD( "qd_01.4a", 0x000001, 0x20000, CRC(f688cf8f) SHA1(1b20095e536a24406513715cded249c9be1aa1d2) , ROM_SKIP(7) ) + ROMX_LOAD( "qd_13.9b", 0x000002, 0x20000, CRC(afbd551b) SHA1(02e2f12196c542a004325689bda8949213ef0333) , ROM_SKIP(7) ) + ROMX_LOAD( "qd_05.9a", 0x000003, 0x20000, CRC(c3db0910) SHA1(cf3aa3d3b64031dea92a80e5650151315cf871bf) , ROM_SKIP(7) ) + ROMX_LOAD( "qd_24.5e", 0x000004, 0x20000, CRC(2f1bd0ec) SHA1(017e0dc521bf402c700775ee06cbc124f7ce0e3f) , ROM_SKIP(7) ) + ROMX_LOAD( "qd_17.5c", 0x000005, 0x20000, CRC(a812f9e2) SHA1(9b7ceb347fbe00c40338b97ee6e8e4d1db9e7cb3) , ROM_SKIP(7) ) + ROMX_LOAD( "qd_38.8h", 0x000006, 0x20000, CRC(ccdddd1f) SHA1(8304c4cdfaa1ae6b37e2733e9a6ddce9252fd43a) , ROM_SKIP(7) ) + ROMX_LOAD( "qd_32.8f", 0x000007, 0x20000, CRC(a8d295d3) SHA1(d4d0bdaeb40f652ef33b317cb2b566b4c3550242) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "qd_23.13b", 0x00000, 0x08000, CRC(cfb5264b) SHA1(e662ed5555d02ccf4e62cdbcfa0bbfc019734ee1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "qdu_30.12c", 0x00000, 0x20000, CRC(f190da84) SHA1(d5cd4c69b5d135a2f2fea8ca9631251c9da79e70) ) + ROM_LOAD( "qdu_31.13c", 0x20000, 0x20000, CRC(b7583f73) SHA1(3896e0fcf375e9e5d9ba70cc1ed001cd702f9ff7) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "qd22b.1a", 0x0000, 0x0117, CRC(783c53ab) SHA1(1bf87e5fe7e7cbcec0d76ed094dcac823e45af14) ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.12E */ + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +/* B-Board 91634B-2, Japan Resale Ver. */ +ROM_START( qadjr ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "qad_23a.8f", 0x00000, 0x80000, CRC(4d3553de) SHA1(07eabcb02fbbe11397ce91405a2e6bb53b3d5d4f) ) + ROM_LOAD16_WORD_SWAP( "qad_22a.7f", 0x80000, 0x80000, CRC(3191ddd0) SHA1(2806021a5dc809ca43692bbe9c4f5ef690c9ac14) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "qad_01.3a", 0x000000, 0x80000, CRC(9d853b57) SHA1(380b41a3eced1f4a5523999b63d80b7593a85eca) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "qad_02.4a", 0x000002, 0x80000, CRC(b35976c4) SHA1(3e128db89186c4e88c46be9da310b755ae5b816c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "qad_03.5a", 0x000004, 0x80000, CRC(cea4ca8c) SHA1(5c50758647419129f2b35ab4dc712796fa801c12) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "qad_04.6a", 0x000006, 0x80000, CRC(41b74d1b) SHA1(78aa2faec512c505f98b4e8053fc161941d41773) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "qad_09.12a", 0x00000, 0x08000, CRC(733161cc) SHA1(dfb8c5a1037bd3b2712fb327122ec39ceb993b8d) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "qad_18.11c", 0x00000, 0x20000, CRC(2bfe6f6a) SHA1(b2a98ac034c65b7ac8167431f05f35d4799032ea) ) + ROM_LOAD( "qad_19.12c", 0x20000, 0x20000, CRC(13d3236b) SHA1(785d49de484e9ac6971eaceebebfecb8e58563f6) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "qad63b.1a", 0x0000, 0x0117, CRC(b3312b13) SHA1(24bd6235fe273a672de2d4749e57280994f11819) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( wof ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2e_23c.8f", 0x000000, 0x80000, CRC(0d708505) SHA1(10b8cb53a4600e3e76f471a3eee8a600e93096fc) ) + ROM_LOAD16_WORD_SWAP( "tk2e_22c.7f", 0x080000, 0x80000, CRC(608c17e3) SHA1(52c2d05279623d93b27856e6b76830796a089eae) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91635B-2 */ +/* FIXME Probably this set uses a patched program ROM coming from a desuicided board, or simply the original C-Board + is not a 92641C-1. A verification and a new fresh dump are needed to confirm if it's genuine or not. */ +ROM_START( wofr1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2e_23b.8f", 0x000000, 0x80000, CRC(11fb2ed1) SHA1(19e09ad6f9edc7997b030cddfe1d9c96d88135f2) ) // patched? + ROM_LOAD16_WORD_SWAP( "tk2e_22b.7f", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( wofu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2u_23c.8f", 0x000000, 0x80000, CRC(29b89c12) SHA1(2b474b4f45a4ccb0db2a4d5e7ef30e28b5c6cc3a) ) + ROM_LOAD16_WORD_SWAP( "tk2u_22c.7f", 0x080000, 0x80000, CRC(f5af4774) SHA1(f6d53cf5b330e6d68f84da3e8c831a475585b93e) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91634B-2 */ +/* Note that this Asia set seems to be the only one where GFX are stored into MASK ROMs instead of the usual EPROMs. */ +/* FIXME Probably this set uses a patched program ROM coming from a desuicided board, or simply the original C-Board + is not a 92641C-1. A verification and a new fresh dump are needed to confirm if it's genuine or not. */ +ROM_START( wofa ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2a_23c.8f", 0x000000, 0x80000, CRC(2e024628) SHA1(647f8700fe3b410d798a823bac2e4a89cc9ad8d5) ) // patched? + ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( wofj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2j_23c.8f", 0x000000, 0x80000, CRC(9b215a68) SHA1(fc83ed26441fbfb15e21b093c7a6bed44b586e51) ) + ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a + ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a + ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a + ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* Chinese bootleg board without QSound */ +ROM_START( wofhfh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "23", 0x000000, 0x80000, CRC(6ae4b312) SHA1(fa39f69385d180d90bccd8c5dc9262edd04a6457) ) + ROM_LOAD16_WORD_SWAP( "22", 0x080000, 0x80000, CRC(94e8d01a) SHA1(875763f6b22734c1a5a890e6c8063515c134045b) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "1", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "2", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "3", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "4", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "5", 0x200000, 0x80000, CRC(34949d7b) SHA1(90925a77b08c97cfdbf0dbfbdaa359d1b33b6ae4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "6", 0x200002, 0x80000, CRC(dfa70971) SHA1(477b99687de38220f0aec9fbba44db03f72cb62a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "7", 0x200004, 0x80000, CRC(073686a6) SHA1(b774a8d4c6cdbedb123ac01455f718305f23b619) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "8", 0x200006, 0x80000, CRC(5300f8db) SHA1(b23a19910f680d60ff8afcbc15c471e74ee3569a) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* 128k for the audio CPU (+banks) */ + ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* samples */ + ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) ) + ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( sf2hf ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s2te_23.8f", 0x000000, 0x80000, CRC(2dd72514) SHA1(4411353c389669299c27ac183c7e1caa3d4cec90) ) + ROM_LOAD16_WORD_SWAP( "s2te_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) ) + ROM_LOAD16_WORD_SWAP( "s2te_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( sf2hfu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s2tu_23.8f", 0x000000, 0x80000, CRC(89a1fc38) SHA1(aafb40fc311e318250973be8c6aa0d3f7902cb3c) ) + ROM_LOAD16_WORD_SWAP( "s2tu_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) ) // == s2te_22.7f + ROM_LOAD16_WORD_SWAP( "s2tu_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) ) // == s2te_21.6f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( sf2hfj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "s2tj_23.8f", 0x000000, 0x80000, CRC(ea73b4dc) SHA1(efbc73277d00bac86505755db35225e14ea25a36) ) + ROM_LOAD16_WORD_SWAP( "s2tj_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) ) // == s2te_22.7f + ROM_LOAD16_WORD_SWAP( "s2tj_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) ) // == s2te_21.6f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a + ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a + ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a + ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a + ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a + ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a + ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a + ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a + ROMX_LOAD( "s2t_10.3c", 0x400000, 0x80000, CRC(3c042686) SHA1(307e1ca8ad0b11f3265b7e5467ba4c90f90ec97f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s2t_11.4c", 0x400002, 0x80000, CRC(8b7e7183) SHA1(c8eaedfbddbf0b83311d2dbb9e19a1efef0dffa9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s2t_12.5c", 0x400004, 0x80000, CRC(293c888c) SHA1(5992ea9aa90fdd8b9dacca9d2a1fdaf25ac2cb65) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s2t_13.6c", 0x400006, 0x80000, CRC(842b35a4) SHA1(35864a140a0c8d76501e69b2e01bc4ad76f27909) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( dino ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cde_23a.8f", 0x000000, 0x80000, CRC(8f4e585e) SHA1(55ecba3652066cdafad140c4524b1fc81228e69b) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( dinou ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cdu_23a.8f", 0x000000, 0x80000, CRC(7c2543cd) SHA1(6b7a90392fe4c31b2d57620b0ddcb3412401efc3) ) + ROM_LOAD16_WORD_SWAP( "cdu_22a.7f", 0x080000, 0x80000, CRC(d19f981e) SHA1(acb951caba3867c21149286185b94beb37721bd2) ) + ROM_LOAD16_WORD_SWAP( "cdu_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) // == cde_21a.6f + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( dinoj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cdj_23a.8f", 0x000000, 0x80000, CRC(5f3ece96) SHA1(33ffb08ff8c5d3bfb2fa17fa00f254da2fc61f44) ) + ROM_LOAD16_WORD_SWAP( "cdj_22a.7f", 0x080000, 0x80000, CRC(a0d8de29) SHA1(79d916f181804b6176581efe2a1b7f210ec79c07) ) + ROM_LOAD16_WORD_SWAP( "cdj_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) // == cde_21a.6f + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd_01.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-1m.3a + ROMX_LOAD( "cd_02.4a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-3m.5a + ROMX_LOAD( "cd_03.5a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-2m.4a + ROMX_LOAD( "cd_04.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-4m.6a + ROMX_LOAD( "cd_05.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-5m.7a + ROMX_LOAD( "cd_06.8a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-7m.9a + ROMX_LOAD( "cd_07.9a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-6m.8a + ROMX_LOAD( "cd_08.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-8m.10a + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* Chinese bootleg board */ +ROM_START( dinohunt ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x80000, CRC(8d5ddc5d) SHA1(3ed1da71d73425308d0c3ac1a01a7242e60b6677) ) + ROM_LOAD16_WORD_SWAP( "u22", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) ) + ROM_LOAD16_WORD_SWAP( "u21", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) ) + ROM_LOAD16_WORD_SWAP( "u20", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "u1", 0x000000, 0x80000, CRC(a01a9fb5) SHA1(d1ab4c7ead04932c60923363a0a661d0d1472aaa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "u2", 0x000002, 0x80000, CRC(bdf02c17) SHA1(046ba4c589a22a7ac65c86baaae18eff0bff6ecb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "u3", 0x000004, 0x80000, CRC(058beefa) SHA1(0d09ab5a200643b5a16e0313228f7ea243752bd0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "u4", 0x000006, 0x80000, CRC(5028a9f1) SHA1(ff3a988153860e76beb79918ad896e702c3ecd3d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "u5", 0x200000, 0x80000, CRC(d77f89ea) SHA1(1dd8c2a18742fd8483ecade31aed384c686ed244) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "u6", 0x200002, 0x80000, CRC(bfbcb034) SHA1(c1eb4d420b10ffa05197d9a82c7adac4d265c546) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "u7", 0x200004, 0x80000, CRC(a2544d4e) SHA1(def704055e041bc7c3b8cf7977249b69aa7924a8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "u8", 0x200006, 0x80000, CRC(8869bbb1) SHA1(e53f77baffb913bf3ef5396d84fbfbaec6a90ca2) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "u9", 0x00000, 0x08000, CRC(2eb16a83) SHA1(067ea0bfc2c1e73520d6b836c72fbb9da9998311) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* samples */ + ROM_LOAD( "u18", 0x00000, 0x20000, CRC(8d2899ba) SHA1(0b3ac6cf2ce0323e3bfc9da3ebfcb0fd14bc405b) ) + ROM_LOAD( "u19", 0x20000, 0x20000, CRC(b34a4b42) SHA1(3eeb9e33bb911359e03d44949ac58439a3d3d54b) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( punisher ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "pse_26.11e", 0x000000, 0x20000, CRC(389a99d2) SHA1(e97f4225554e4603cb0e3edd296a90bb2e467ca7) ) + ROM_LOAD16_BYTE( "pse_30.11f", 0x000001, 0x20000, CRC(68fb06ac) SHA1(189e25ca7e4aaa80492c03ce06696952cc1b1553) ) + ROM_LOAD16_BYTE( "pse_27.12e", 0x040000, 0x20000, CRC(3eb181c3) SHA1(a2442449f4bbe3be03d2be7d4e2cbb69f9741dac) ) + ROM_LOAD16_BYTE( "pse_31.12f", 0x040001, 0x20000, CRC(37108e7b) SHA1(78aaa6e2913e6b1b852b39416557ac4a394d7d8b) ) + ROM_LOAD16_BYTE( "pse_24.9e", 0x080000, 0x20000, CRC(0f434414) SHA1(aaacf835a93551fc792571d6e824a01f3c5d4469) ) + ROM_LOAD16_BYTE( "pse_28.9f", 0x080001, 0x20000, CRC(b732345d) SHA1(472d84f846e9f73f129562d78352376194e0211e) ) + ROM_LOAD16_BYTE( "pse_25.10e", 0x0c0000, 0x20000, CRC(b77102e2) SHA1(2e39b2c2c0eed5ca2320a57e69bcf377f809a20c) ) + ROM_LOAD16_BYTE( "pse_29.10f", 0x0c0001, 0x20000, CRC(ec037bce) SHA1(f86e7feb63d7662a38048e6d51d7b5a69dafaffb) ) + ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( punisheru ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE ( "psu_26.11e", 0x000000, 0x20000, CRC(9236d121) SHA1(52d5d00009f61089157319943cde8f1a1ed48ad4) ) + ROM_LOAD16_BYTE ( "psu_30.11f", 0x000001, 0x20000, CRC(8320e501) SHA1(bb3b74135df9dd494a277a1bc3bef2917351203f) ) + ROM_LOAD16_BYTE ( "psu_27.12e", 0x040000, 0x20000, CRC(61c960a1) SHA1(f8fe651283cc1f138d013cab65b833505de6df9f) ) + ROM_LOAD16_BYTE ( "psu_31.12f", 0x040001, 0x20000, CRC(78d4c298) SHA1(6e7fbaed9ad9230a6e5035c6eda64b2f1f83048c) ) + ROM_LOAD16_BYTE ( "psu_24.9e", 0x080000, 0x20000, CRC(1cfecad7) SHA1(f4dcf5066dc59507cece0c53ccc208e4323ae26f) ) + ROM_LOAD16_BYTE ( "psu_28.9f", 0x080001, 0x20000, CRC(bdf921c1) SHA1(89a6709756c7c32e7c888806f983ce5af61cfcef) ) + ROM_LOAD16_BYTE ( "psu_25.10e", 0x0c0000, 0x20000, CRC(c51acc94) SHA1(34ffd6392914e3e67d7d0804215bd1193846b554) ) + ROM_LOAD16_BYTE ( "psu_29.10f", 0x0c0001, 0x20000, CRC(52dce1ca) SHA1(45277abe34feacdcaedaec56f513b7437d4260e9) ) + ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( punisherh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "psh_26.11e", 0x000000, 0x20000, CRC(6ad2bb83) SHA1(c1c5e8922af948955f53eb56d1b9902dd8944a71) ) + ROM_LOAD16_BYTE( "psh_30.11f", 0x000001, 0x20000, CRC(058d3659) SHA1(b3fad151f80e0cc21afff3ec00b7871f21d40437) ) + ROM_LOAD16_BYTE( "psh_27.12e", 0x040000, 0x20000, CRC(579f4fd3) SHA1(5459da68e844db6e6249186aa31fe71aa72d9ff4) ) + ROM_LOAD16_BYTE( "psh_31.12f", 0x040001, 0x20000, CRC(2c9f70b5) SHA1(c5d89f37def4b9340a0325e616306f0e9e68ab13) ) + ROM_LOAD16_BYTE( "psh_24.9e", 0x080000, 0x20000, CRC(faa14841) SHA1(d998f1cdfba3305eb1398909d4b07e7492dbdec0) ) + ROM_LOAD16_BYTE( "psh_28.9f", 0x080001, 0x20000, CRC(5c5b1f20) SHA1(47ee27dc9849a69c54a5a0e269b20e61f17f34c0) ) + ROM_LOAD16_BYTE( "psh_25.10e", 0x0c0000, 0x20000, CRC(724fdfda) SHA1(23d75e7864dfa0da8c2231785878fb05a5aac628) ) + ROM_LOAD16_BYTE( "psh_29.10f", 0x0c0001, 0x20000, CRC(779cf901) SHA1(6761edcf26084e44783f3eecd5822e50f1a099bd) ) + ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( punisherj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "psj_23.8f", 0x000000, 0x80000, CRC(6b2fda52) SHA1(5f95a79b7b802609ae9ddd6641cc52610d428bf4) ) + ROM_LOAD16_WORD_SWAP( "psj_22.7f", 0x080000, 0x80000, CRC(e01036bc) SHA1(a01886014dabe8f9ab45619865c6bd9f27472eae) ) + ROM_LOAD16_WORD_SWAP( "psj_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) // == ps_21.6f + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-1m.3a + ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-3m.5a + ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-2m.4a + ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-4m.6a + ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-5m.7a + ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-7m.9a + ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-6m.8a + ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-8m.10a + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* Chinese bootleg board */ +ROM_START( punisherbz ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "23.096", 0x000000, 0x80000, CRC(bfa45d23) SHA1(56d04d02c9b9b22603205b1ce9e376874d2eaa05) ) + ROM_LOAD16_WORD_SWAP( "22.096", 0x080000, 0x80000, CRC(092578a4) SHA1(c3c8f98f8b8fc9c71b33fb906b4c591067b4355b) ) + ROM_LOAD16_WORD_SWAP( "21.096", 0x100000, 0x80000, CRC(d21ccddb) SHA1(295c886cd14ee54e12acfe3f1e8f13513442c8c0) ) + ROM_LOAD16_WORD_SWAP( "20.096", 0x180000, 0x80000, CRC(f9f334ce) SHA1(22e58ce5096b95138a30e9726e1169895118e990) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(ad468e07) SHA1(1ee8ecfd001b447982bc16972575eb2c5e01bc51) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(b9fdb6b5) SHA1(991fe0ded5c859f1e25766e9417e1ad691205e59) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(be0b1a78) SHA1(d002bd90d0f239d29f5ea481e455d85a1c088516) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(bba67a43) SHA1(9cd51a06a7661b2f78059ac392423f73de5cf56f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "9.512", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* samples */ + ROM_LOAD( "18.010", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "19.010", 0x20000, 0x20000, CRC(eb5ca884) SHA1(3592c69f77c7cd6ee241d6c1079c34a3e58abb5b) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( slammast ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "mbe_23e.8f", 0x000000, 0x80000, CRC(5394057a) SHA1(57f8b40c0a15e82c98ce5f0a8c4bdf60a1bc3107) ) + ROM_LOAD16_BYTE( "mbe_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) ) + ROM_LOAD16_BYTE( "mbe_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) ) + ROM_LOAD16_BYTE( "mbe_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) ) + ROM_LOAD16_BYTE( "mbe_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) ) + ROM_LOAD16_WORD_SWAP( "mbe_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) ) + ROM_LOAD16_WORD_SWAP( "mbe_20a.5f", 0x180000, 0x80000, CRC(aeb557b0) SHA1(530551942961d776f0a85852e02bb243840ca671) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x8000, "user1", 0 ) + ROM_COPY( "audiocpu", 0x00000, 0x00000, 0x8000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) ) + ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) ) + ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) ) + ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) ) + ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) ) + ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) ) + ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) ) + ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91635B-2 */ +ROM_START( slammastu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "mbu_23e.8f", 0x000000, 0x80000, CRC(224f0062) SHA1(d961f2e7db7acac576539c24a69e7dd9bf8fc406) ) + ROM_LOAD16_BYTE( "mbu_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) ) // == mbe_24b.9e + ROM_LOAD16_BYTE( "mbu_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) ) // == mbe_28b.9f + ROM_LOAD16_BYTE( "mbu_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) ) // == mbe_25b.10e + ROM_LOAD16_BYTE( "mbu_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) ) // == mbe_29b.10f + ROM_LOAD16_WORD_SWAP( "mbu_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) ) // == mbe_21a.6f + ROM_LOAD16_WORD_SWAP( "mbu_20a.5f", 0x180000, 0x80000, CRC(fc848af5) SHA1(cd3f6e50779b89ee57a9d08bfa1d58dea286457c) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x8000, "user1", 0 ) + ROM_COPY( "audiocpu", 0x00000, 0x00000, 0x8000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) ) + ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) ) + ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) ) + ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) ) + ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) ) + ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) ) + ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) ) + ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( mbomberj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "mbj_23e.8f", 0x000000, 0x80000, CRC(0d06036a) SHA1(e1b102888038b4bb612a41ac94a43333d468a245) ) + ROM_LOAD16_WORD_SWAP( "mbj_22b.7f", 0x080000, 0x80000, CRC(acd38478) SHA1(0bed74b52838006c6ec3661f92058dc2aa3e8193) ) + ROM_LOAD16_WORD_SWAP( "mbj_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) ) // == mbe_21a.6f + ROM_LOAD16_WORD_SWAP( "mbj_20a.5f", 0x180000, 0x80000, CRC(aeb557b0) SHA1(530551942961d776f0a85852e02bb243840ca671) ) // == mbe_20a.5f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "mb_01.3a", 0x000000, 0x80000, CRC(a53b1c81) SHA1(d1efb88eeaf6e30e51aaf1432078003e52454dd9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb_02.4a", 0x000002, 0x80000, CRC(23fe10f6) SHA1(deefa7cac4394b0642f7fb444f9374dbe0bc8843) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb_03.5a", 0x000004, 0x80000, CRC(cb866c2f) SHA1(b087f52e3b2a514a209612319d1d7c4f1c12b8bd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb_04.6a", 0x000006, 0x80000, CRC(c9143e75) SHA1(e30090625ef6ac971a4f65d53f5458cebb5f146c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb_05.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-5m.7a + ROMX_LOAD( "mb_06.8a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-7m.9a + ROMX_LOAD( "mb_07.9a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-6m.8a + ROMX_LOAD( "mb_08.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-8m.10a + ROMX_LOAD( "mb_10.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-10m.3c + ROMX_LOAD( "mb_11.4c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-12m.5c + ROMX_LOAD( "mb_12.5c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-11m.4c + ROMX_LOAD( "mb_13.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-13m.6c + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x8000, "user1", 0 ) + ROM_COPY( "audiocpu", 0x00000, 0x00000, 0x8000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) ) + ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) ) + ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) ) + ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) ) + ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) ) + ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) ) + ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) ) + ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* FIXME B-Board uncertain but should be 91635B from the program ROM names */ +ROM_START( mbombrd ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "mbde_26.11e", 0x000000, 0x20000, CRC(72b7451c) SHA1(380ef57bb00f1c92d2f29e551b0a670eb5a56cb7) ) + ROM_LOAD16_BYTE( "mbde_30.11f", 0x000001, 0x20000, CRC(a036dc16) SHA1(a68cf74976f482dbc581734e143669511a9a4bee) ) + ROM_LOAD16_BYTE( "mbde_27.12e", 0x040000, 0x20000, CRC(4086f534) SHA1(a2b949f00035b06cb1cd01185902daca3d89d0e3) ) + ROM_LOAD16_BYTE( "mbde_31.12f", 0x040001, 0x20000, CRC(085f47f0) SHA1(ac93a196faf17b7dbe7179ce1e850d9cd7293a21) ) + ROM_LOAD16_BYTE( "mbde_24.9e", 0x080000, 0x20000, CRC(c20895a5) SHA1(35116f7ef8576753ec989647ca2f6a6131d6909f) ) + ROM_LOAD16_BYTE( "mbde_28.9f", 0x080001, 0x20000, CRC(2618d5e1) SHA1(50797c6dda04df95267ff9ef08933c17c3ce7057) ) + ROM_LOAD16_BYTE( "mbde_25.10e", 0x0c0000, 0x20000, CRC(9bdb6b11) SHA1(fbfbd6b5a72ca3237713ce43a798660f899b707d) ) + ROM_LOAD16_BYTE( "mbde_29.10f", 0x0c0001, 0x20000, CRC(3f52d5e5) SHA1(0b1ed8e876a6ec2cfb83676afe43a81e8a033e52) ) + ROM_LOAD16_WORD_SWAP( "mbde_21.6f", 0x100000, 0x80000, CRC(690c026a) SHA1(80ad780743b50750b6bfe1d4e28efe98e562233e) ) + ROM_LOAD16_WORD_SWAP( "mbde_20.5f", 0x180000, 0x80000, CRC(b8b2139b) SHA1(88c9169a9979b711ab7afb8272df0a1c80bb357b) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "mb_q.5k", 0x00000, 0x08000, CRC(d6fa76d1) SHA1(3bfcb703e0e458ef1bb843230f8537167f1d4c3c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) ) + ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) ) + ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) ) + ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) ) + ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) ) + ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) ) + ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) ) + ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) // pal verification required + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( mbombrdj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "mbdj_26.11e", 0x000000, 0x20000, CRC(72b7451c) SHA1(380ef57bb00f1c92d2f29e551b0a670eb5a56cb7) ) // == mbde_26.11e + ROM_LOAD16_BYTE( "mbdj_30.11f", 0x000001, 0x20000, CRC(beff31cf) SHA1(8a3a1fa848fe8fad239d21aef1871e54bbcb582f) ) + ROM_LOAD16_BYTE( "mbdj_27.12e", 0x040000, 0x20000, CRC(4086f534) SHA1(a2b949f00035b06cb1cd01185902daca3d89d0e3) ) // == mbde_27.12e + ROM_LOAD16_BYTE( "mbdj_31.12f", 0x040001, 0x20000, CRC(085f47f0) SHA1(ac93a196faf17b7dbe7179ce1e850d9cd7293a21) ) // == mbde_31.12f + ROM_LOAD16_BYTE( "mbdj_24.9e", 0x080000, 0x20000, CRC(c20895a5) SHA1(35116f7ef8576753ec989647ca2f6a6131d6909f) ) // == mbde_24.9e + ROM_LOAD16_BYTE( "mbdj_28.9f", 0x080001, 0x20000, CRC(2618d5e1) SHA1(50797c6dda04df95267ff9ef08933c17c3ce7057) ) // == mbde_28.9f + ROM_LOAD16_BYTE( "mbdj_25.10e", 0x0c0000, 0x20000, CRC(9bdb6b11) SHA1(fbfbd6b5a72ca3237713ce43a798660f899b707d) ) // == mbde_25.10e + ROM_LOAD16_BYTE( "mbdj_29.10f", 0x0c0001, 0x20000, CRC(3f52d5e5) SHA1(0b1ed8e876a6ec2cfb83676afe43a81e8a033e52) ) // == mbde_29.10f + ROM_LOAD16_WORD_SWAP( "mbdj_21.6f", 0x100000, 0x80000, CRC(690c026a) SHA1(80ad780743b50750b6bfe1d4e28efe98e562233e) ) // == mbde_21.6f + ROM_LOAD16_WORD_SWAP( "mbdj_20.5f", 0x180000, 0x80000, CRC(b8b2139b) SHA1(88c9169a9979b711ab7afb8272df0a1c80bb357b) ) // == mbde_20.5f + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "mb_01.3a", 0x000000, 0x80000, CRC(a53b1c81) SHA1(d1efb88eeaf6e30e51aaf1432078003e52454dd9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb_02.4a", 0x000002, 0x80000, CRC(23fe10f6) SHA1(deefa7cac4394b0642f7fb444f9374dbe0bc8843) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb_03.5a", 0x000004, 0x80000, CRC(cb866c2f) SHA1(b087f52e3b2a514a209612319d1d7c4f1c12b8bd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb_04.6a", 0x000006, 0x80000, CRC(c9143e75) SHA1(e30090625ef6ac971a4f65d53f5458cebb5f146c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb_05.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-5m.7a + ROMX_LOAD( "mb_06.8a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-7m.9a + ROMX_LOAD( "mb_07.9a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-6m.8a + ROMX_LOAD( "mb_08.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-8m.10a + ROMX_LOAD( "mb_10.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-10m.3c + ROMX_LOAD( "mb_11.4c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-12m.5c + ROMX_LOAD( "mb_12.5c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-11m.4c + ROMX_LOAD( "mb_13.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-13m.6c + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) ) + ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) ) + ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) ) + ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) ) + ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) ) + ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) ) + ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) ) + ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +/* B-Board 89625B-1 */ +ROM_START( pnickj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "pnij_36.12f", 0x00000, 0x20000, CRC(2d4ffb2b) SHA1(6e49cf89a36834fd1de8b4b860fe66f3d7d67a84) ) + ROM_LOAD16_BYTE( "pnij_42.12h", 0x00001, 0x20000, CRC(c085dfaf) SHA1(a31ededc3413ec4f3f5e3a1fb615b60c6197f4a5) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "pnij_09.4b", 0x000000, 0x20000, CRC(48177b0a) SHA1(eba5de6cd9bb0c4ad76a13bddc9cdeb2e4380122) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_01.4a", 0x000001, 0x20000, CRC(01a0f311) SHA1(9bcd8716f90ccd410543ffcdc5c2916077b8d4c3) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_13.9b", 0x000002, 0x20000, CRC(406451b0) SHA1(5a7a7fecba7de8b8cf4a284b2ae7adae901623f6) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_05.9a", 0x000003, 0x20000, CRC(8c515dc0) SHA1(aa1e13cf9e7cf0458bb5c4332b1ea73034f9a874) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_26.5e", 0x000004, 0x20000, CRC(e2af981e) SHA1(3c2b28b4a4d457aa94a760dfca0181a9f050c319) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_18.5c", 0x000005, 0x20000, CRC(f17a0e56) SHA1(7c89aca230f176e12f995892f9d1bce22c57fbdf) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_38.8h", 0x000006, 0x20000, CRC(eb75bd8c) SHA1(2129460e06eb64019fc5f7eab6334ff43229b995) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_32.8f", 0x000007, 0x20000, CRC(84560bef) SHA1(9e94ae434b50ecf82781080e11d0c4741e992d0d) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_10.5b", 0x100000, 0x20000, CRC(c2acc171) SHA1(7c86db3f2acca1252d403c5f12c871d0357fa109) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_02.5a", 0x100001, 0x20000, CRC(0e21fc33) SHA1(c4a29d45c4257c8871038d3c9b13140e874db0c1) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_14.10b", 0x100002, 0x20000, CRC(7fe59b19) SHA1(a273b8b8fbfd5d31d25479a9ede09ce35e1cc873) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_06.10a", 0x100003, 0x20000, CRC(79f4bfe3) SHA1(bc17cc1c8535e3d202588893713926b6c06f92fd) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_27.7e", 0x100004, 0x20000, CRC(83d5cb0e) SHA1(44c93fa5eedcafc8dc6d88ee827c6cadc9c671f0) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_19.7c", 0x100005, 0x20000, CRC(af08b230) SHA1(a3b5b3013012efa1860699648518f8d8031c5f30) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_39.9h", 0x100006, 0x20000, CRC(70fbe579) SHA1(b5b7ed5588ecd884b20dd50bfc5385a9af03c5d8) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij_33.9f", 0x100007, 0x20000, CRC(3ed2c680) SHA1(0afe84d8d89f8d45afc79f6172337e622e29a8a2) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pnij_17.13b", 0x00000, 0x08000, CRC(e86f787a) SHA1(de04cbe89c655faf04afe169bfd9913049ccc4a8) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "pnij_24.12c", 0x00000, 0x20000, CRC(5092257d) SHA1(95dc9d10940653b2fb37baf5c1ed27145b02104e) ) + ROM_LOAD( "pnij_25.13c", 0x20000, 0x20000, CRC(22109aaa) SHA1(cf21e75674d81b2daae2083d02f9f4b6e52722c6) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "pkb10b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 90629B-3 */ +ROM_START( qtono2j ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "tn2j_30.11e", 0x00000, 0x20000, CRC(9226eb5e) SHA1(91649974f9652caed90eb28ec6caf4fe61f5d279) ) + ROM_LOAD16_BYTE( "tn2j_37.11f", 0x00001, 0x20000, CRC(d1d30da1) SHA1(7ca1695ed804b5860d4c15964cdbb922db3918ee) ) + ROM_LOAD16_BYTE( "tn2j_31.12e", 0x40000, 0x20000, CRC(015e6a8a) SHA1(0835bec4867438a167bd01e3550090c88e7ae779) ) + ROM_LOAD16_BYTE( "tn2j_38.12f", 0x40001, 0x20000, CRC(1f139bcc) SHA1(ee907f1bfef1a887e2c768648fe811e0733eddf7) ) + ROM_LOAD16_BYTE( "tn2j_28.9e", 0x80000, 0x20000, CRC(86d27f71) SHA1(89d6d18e05deaaa1ac7deb70ca03d051d2fde472) ) + ROM_LOAD16_BYTE( "tn2j_35.9f", 0x80001, 0x20000, CRC(7a1ab87d) SHA1(f1729a8c0c82cf42f60644a7796dc8a39bf7c6fa) ) + ROM_LOAD16_BYTE( "tn2j_29.10e", 0xc0000, 0x20000, CRC(9c384e99) SHA1(3d3961f625ccc4776531eff50fc1b4bee062370e) ) + ROM_LOAD16_BYTE( "tn2j_36.10f", 0xc0001, 0x20000, CRC(4c4b2a0a) SHA1(9a25fcfb9358ea42d9bc662df2cafea08febb411) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tn2-02m.4a", 0x000000, 0x80000, CRC(f2016a34) SHA1(3862960fa14742547f6a6deacf0b9f409d08fee8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tn2-04m.6a", 0x000002, 0x80000, CRC(094e0fb1) SHA1(7c9a9a7d03e226109002dd389c872e3d4be43287) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tn2-01m.3a", 0x000004, 0x80000, CRC(cb950cf9) SHA1(8337a500141c1aec82b6636ad79ecafbdbebd691) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tn2-03m.5a", 0x000006, 0x80000, CRC(18a5bf59) SHA1(afbfcb28c40551747bb5276aac2b9c15a24328e1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tn2-11m.4c", 0x200000, 0x80000, CRC(d0edd30b) SHA1(a76d7f134f9e52f79a485402d17dcc7a1fe99f29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tn2-13m.6c", 0x200002, 0x80000, CRC(426621c3) SHA1(89156bc9d585f546cd619db419dd1f4d9871d930) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tn2-10m.3c", 0x200004, 0x80000, CRC(a34ece70) SHA1(15864d6b280f624245add8a611f1699da570392b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tn2-12m.5c", 0x200006, 0x80000, CRC(e04ff2f4) SHA1(774c19909a2ae2c691f5d3f15b6e19cc94baf799) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "tn2j_09.12a", 0x00000, 0x08000, CRC(e464b969) SHA1(18a0b9fd3a1eb4d1364b0e8601cd49a9574406c8) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "tn2j_18.11c", 0x00000, 0x20000, CRC(a40bf9a7) SHA1(07cb1076262a281e31a621cbcc10be0cae883175) ) + ROM_LOAD( "tn2j_19.12c", 0x20000, 0x20000, CRC(5b3b931e) SHA1(cf28891f84814cbfaa3adaade8bb08b1e0546a3d) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tn2292.1a", 0x0000, 0x0117, CRC(3d899539) SHA1(9ffa76229408a2d7438b1b3efa0ec7166bfcc751) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 94916-10 */ +ROM_START( pang3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "pa3e_17a.11l", 0x00000, 0x80000, CRC(a213fa80) SHA1(fee6b0b21e2ef573ebfb35eaa1785533101c9170) ) + ROM_LOAD16_WORD_SWAP( "pa3e_16a.10l", 0x80000, 0x80000, CRC(7169ea67) SHA1(1076afaff7b05c9009798a0cea13e71fa27f2b7e) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x100000 ) + ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x100000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) ) + ROM_IGNORE( 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) ) + ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) ) + ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) ) + ROM_LOAD( "cp1b9ka.9k", 0x0000, 0x0117, CRC(238d3ff4) SHA1(597f429d6a0ea485746322592604188c1ec87595) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 94916-10 */ +ROM_START( pang3r1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "pa3e_17.11l", 0x00000, 0x80000, CRC(d7041d32) SHA1(b021f3defe7fc58030ba907125c713f987724187) ) + ROM_LOAD16_WORD_SWAP( "pa3e_16.10l", 0x80000, 0x80000, CRC(1be9a483) SHA1(6cff1dd15ca163237bc82fb4a3e1d469d35e7be8) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x100000 ) + ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x100000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) ) + ROM_IGNORE( 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) ) + ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) ) + ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) ) + ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 94916-10 */ +ROM_START( pang3j ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "pa3j_17.11l", 0x00000, 0x80000, CRC(21f6e51f) SHA1(b447e05261f59b3b2e89bbc0f606d7136b29cb56) ) + ROM_LOAD16_WORD_SWAP( "pa3j_16.10l", 0x80000, 0x80000, CRC(ca1d7897) SHA1(46aa9232e81a838f3eff1e9b992492a264914fd5) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x100000 ) + ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x100000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) ) + ROM_IGNORE( 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) ) + ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) ) + ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) ) + ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 94916-10 */ +/* This set comes from a not encrypted bootleg that uses a very well reproduced Mitchell 94916-10 B-Board surmounted by an + original Capcom 92631C-6 C-Board. Mitchell mark has been erased, original 32 pin EPROM PA3_11.11F resized and replaced by + one with 28 pin while the protection chip MACH215 mounted on the B-Board has been replaced by a 22 pin PAL. */ +ROM_START( pang3b ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "pa3w_17.11l", 0x00000, 0x80000, CRC(12138234) SHA1(956a2c847a3cfb94007d1a636167fd2bb9f826ec) ) + ROM_LOAD16_WORD_SWAP( "pa3w_16.10l", 0x80000, 0x80000, CRC(d1ba585c) SHA1(c6d04441fe97abf0a72b23c917777a7b58e94a85) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x100000 ) + ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x100000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(90a08c46) SHA1(7544adab2d7e052e0d21c920bff7841d9d718345) ) // == pa3_11.11f but different size, resized by bootlegger + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) ) + ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) ) + ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) ) + ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91635B-2 */ +/* Note that this USA set seems to be the only one where GFX are stored into EPROMs instead of the usual MASK ROMs. */ +ROM_START( megaman ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "rcmu_23b.8f", 0x000000, 0x80000, CRC(1cd33c7a) SHA1(687fb3b6d660d7350447193f1911c47972e7a020) ) + ROM_LOAD16_WORD_SWAP( "rcmu_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) ) + ROM_LOAD16_WORD_SWAP( "rcmu_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) ) + + ROM_REGION( 0x800000, "gfx", 0 ) + ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_03.5a + ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_02.4a + ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_07.9a + ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_06.8a + ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_12.5c + ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_11.4c + ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_16.9c + ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_15.8c + ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "rcm_09.11a", 0x00000, 0x08000, CRC(22ac8f5f) SHA1(d1441d880f98034645cb4fcecd7bb746bde638af) ) /* different size from megamana, rockmanj but same label, pcb verified */ + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) ) + ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( megamana ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "rcma_23b.8f", 0x000000, 0x80000, CRC(61e4a397) SHA1(a90b1cbef4206a4554398bc458a4b3e2c46d4c4f) ) + ROM_LOAD16_WORD_SWAP( "rcma_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) ) // == rcmu_22b.7f + ROM_LOAD16_WORD_SWAP( "rcma_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) ) // == rcmu_21a.6f + + ROM_REGION( 0x800000, "gfx", 0 ) + ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "rcm_09.12a", 0x00000, 0x08000, CRC(9632d6ef) SHA1(2bcb6f17005ffbc9ef8fa4478a814f24b2e6e0b6) ) + ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) ) + ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( rockmanj ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "rcm_23a.8f", 0x000000, 0x80000, CRC(efd96cb2) SHA1(cbe81554f60d0c897f3f2ebc5bc966bb03cc23fe) ) + ROM_LOAD16_WORD_SWAP( "rcm_22a.7f", 0x080000, 0x80000, CRC(8729a689) SHA1(14ddb34d8201c544ea9d3d8c2cc52d380bc72930) ) + ROM_LOAD16_WORD_SWAP( "rcm_21a.6f", 0x100000, 0x80000, CRC(517ccde2) SHA1(492256c192f0c4814efa1ee1dd390453dd2e5865) ) + + ROM_REGION( 0x800000, "gfx", 0 ) + ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "rcm_09.12a", 0x00000, 0x08000, CRC(9632d6ef) SHA1(2bcb6f17005ffbc9ef8fa4478a814f24b2e6e0b6) ) + ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) ) + ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* B-Board 91634B-2 */ +ROM_START( ganbare ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "mrnj_23d.8f", 0x00000, 0x80000, CRC(f929be72) SHA1(d175bdcace469277479ef85bf4e1b9d5a63cffde) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "mrnj_01.3a", 0x000000, 0x80000, CRC(3f878020) SHA1(b18faa50d88c76d19db1af73cf4b3095e928f51f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mrnj_02.4a", 0x000002, 0x80000, CRC(3e5624d8) SHA1(502e4897916af1c9e121b096de1369d06f1ffe87) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mrnj_03.5a", 0x000004, 0x80000, CRC(d1e61f96) SHA1(5f6dee8adbf83c697416e440fbdd3a84a6e698da) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mrnj_04.6a", 0x000006, 0x80000, CRC(d241971b) SHA1(b641740b40a043affbb79ea91ba12f821a259bad) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mrnj_05.7a", 0x200000, 0x80000, CRC(c0a14562) SHA1(2fb6cf98fed83ac92c33df9526102a101454e276) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mrnj_06.8a", 0x200002, 0x80000, CRC(e6a71dfc) SHA1(67178b020f87fb28ef35292d008ce9b80e02a2db) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mrnj_07.9a", 0x200004, 0x80000, CRC(99afb6c7) SHA1(5caead2b71cd54f6b53765f09829cc9e92e1e2d6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mrnj_08.10a", 0x200006, 0x80000, CRC(52882c20) SHA1(5e3fca6da3470aeb78534f01e1575d8c0e067c0e) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "mrnj_09.12a", 0x00000, 0x08000, CRC(62470d72) SHA1(1de357a20f794defb49ed01af5b95ad00e2aa1d9) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "mrnj_18.11c", 0x00000, 0x20000, CRC(08e13940) SHA1(5c7dd7ff6a66f100b59cf9244e78f2c8702faca1) ) + ROM_LOAD( "mrnj_19.12c", 0x20000, 0x20000, CRC(5fa59927) SHA1(f05246cf566c214b008a91816c71e7c03b7cc218) ) + + ROM_REGION( 0x8000, "timekeeper", 0) /* Timekeeper internal RAM was dumped (but game overwrites it - should I keep this here or remove it?) */ + ROM_LOAD( "m48t35y-70pc1.9n", 0x00000, 0x8000, CRC(96107b4a) SHA1(be9149736030e06c96083dcac73b5be3dbc318ac) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "gbpr2.1a", 0x0000, 0x0117, CRC(486e8ca0) SHA1(4554befd49ec322af7dadd198188255ae7c7c059) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +/* Home 'CPS Changer' Unit - For MESS */ + +/* B-Board 91635B-2 */ +ROM_START( wofch ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2(ch)_23.8f", 0x000000, 0x80000, CRC(4e0b8dee) SHA1(d2fb716d62b7a259f46bbc74c1976a18d56696ea) ) + ROM_LOAD16_WORD_SWAP( "tk2(ch)_22.7f", 0x080000, 0x80000, CRC(d0937a8d) SHA1(01d7be446e2e3ef8ca767f59c178240dfd52dd93) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_05.7a + ROMX_LOAD( "tk2(ch)_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_06.8a + ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) /* 1 byte different from wofj, pcb verified */ + ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_08.10a + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( sfach ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sfach23", 0x000000, 0x80000, CRC(02a1a853) SHA1(d92b9e774844fdcc9d9946b3e892b021e672d876) ) + ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6) ) + ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376) ) + ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) ) + + ROM_REGION( 0x800000, "gfx", 0 ) + ROMX_LOAD( "sfz01", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz02", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz03", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz04", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz05", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz06", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz07", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz08", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz10", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz11", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz12", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz13", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz14", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz15", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz16", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz17", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */ + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sfz09", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sfz18", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5) ) + ROM_LOAD( "sfz19", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58) ) +ROM_END + +/* FIXME B-Board uncertain but should be 91634B from the program ROM names */ +ROM_START( sfzch ) + ROM_REGION( CODE_SIZE, "maincpu",0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sfzch23", 0x000000, 0x80000, CRC(1140743f) SHA1(10bcedb5cca266f2aa3ed99ede6f9a64fc877539)) + ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6)) + ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376)) + ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb)) + + ROM_REGION( 0x800000, "gfx", 0 ) + ROMX_LOAD( "sfz_01.3a", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_02.4a", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_03.5a", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_04.6a", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_05.7a", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_06.8a", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_07.9a", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_08.10a", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_10.3c", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_11.4c", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_12.5c", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_13.6c", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_14.7c", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_15.8c", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_16.9c", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_17.10c", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d), ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu",0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sfz_09.12a", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d)) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki",0 ) /* Samples */ + ROM_LOAD( "sfz_18.11c", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5)) + ROM_LOAD( "sfz_19.12c", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58)) +ROM_END + +/* FIXME B-Board uncertain but should be 91634B from the program ROM names */ +ROM_START( sfzbch ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sfzbch23", 0x000000, 0x80000, CRC(53699f68) SHA1(d7f132faf8c31b5e79c32e6b0cce45377ec8d474) ) + ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6) ) + ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376) ) + ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) ) + + ROM_REGION( 0x800000, "gfx", 0 ) + ROMX_LOAD( "sfz_01.3a", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_02.4a", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_03.5a", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_04.6a", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_05.7a", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_06.8a", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_07.9a", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_08.10a", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_10.3c", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_11.4c", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_12.5c", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_13.6c", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_14.7c", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_15.8c", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_16.9c", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz_17.10c", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d), ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */ + + ROM_REGION( 0x18000, "audiocpu",0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sfz_09.12a", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d)) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki",0 ) /* Samples */ + ROM_LOAD( "sfz_18.11c", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5)) + ROM_LOAD( "sfz_19.12c", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58)) +ROM_END + + +DRIVER_INIT_MEMBER(cps_state,forgottn) +{ + /* Forgotten Worlds has a NEC uPD4701AC on the B-board handling dial inputs from the CN-MOWS connector. */ + /* The memory mapping is handled by PAL LWIO */ + m_maincpu->space(AS_PROGRAM).install_write_handler(0x800040, 0x800041, write16_delegate(FUNC(cps_state::forgottn_dial_0_reset_w),this)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x800048, 0x800049, write16_delegate(FUNC(cps_state::forgottn_dial_1_reset_w),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x800052, 0x800055, read16_delegate(FUNC(cps_state::forgottn_dial_0_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x80005a, 0x80005d, read16_delegate(FUNC(cps_state::forgottn_dial_1_r),this)); + + save_item(NAME(m_dial)); + + m_dial[0] = 0; + m_dial[1] = 0; + + DRIVER_INIT_CALL(cps1); +} + +READ16_MEMBER(cps_state::sf2rb_prot_r) +{ + switch (offset) + { + case 0x01201/2: + return 0x0002; + + case 0x81201/2: + return 0x0040; + } + + return 0; +} + +DRIVER_INIT_MEMBER(cps_state,sf2rb) +{ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb_prot_r),this)); + + DRIVER_INIT_CALL(cps1); +} + +READ16_MEMBER(cps_state::sf2rb2_prot_r) +{ + switch (offset) + { + case 0x01201/2: + return 0x0000; + + case 0x81201/2: + return 0x0040; + } + + return 0; +} + +DRIVER_INIT_MEMBER(cps_state,sf2rb2) +{ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb2_prot_r),this)); + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state,sf2ee) +{ + /* This specific revision of SF2 has the CPS-B custom mapped at a different address. */ + /* The mapping is handled by the PAL IOB2 on the B-board */ + m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x800140, 0x80017f); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this)); + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state,sf2thndr) +{ + /* This particular hack uses a modified B-board PAL which mirrors the CPS-B registers at an alternate address */ + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this)); + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state,sf2hack) +{ + /* some SF2 hacks have some inputs wired to the LSB instead of MSB */ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_hack_dsw_r),this)); + + DRIVER_INIT_CALL(cps1); +} + + +READ16_MEMBER(cps_state::sf2dongb_prot_r) +{ + switch (offset) + { + case 0x00000/2: // (ret & 0x0f00) == 0x0200 + case 0x77040/2: // (ret & 0x0ff0) == 0x0210 + return 0x0210; + } + + return 0; +} + +DRIVER_INIT_MEMBER(cps_state,sf2dongb) +{ + // There is a hacked up Altera EP910PC-30 DIP in the 5f socket instead of a 4th eprom + m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(FUNC(cps_state::sf2dongb_prot_r),this)); + + DRIVER_INIT_CALL(cps1); +} + +READ16_MEMBER(cps_state::sf2ceblp_prot_r) +{ + if (sf2ceblp_prot == 0x0) + return 0x1992; + if (sf2ceblp_prot == 0x04) + return 0x0408; + return 0xffff; +} + +WRITE16_MEMBER(cps_state::sf2ceblp_prot_w) +{ + sf2ceblp_prot = data; +} + + +DRIVER_INIT_MEMBER( cps_state, sf2ceblp ) +{ + m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(FUNC(cps_state::sf2ceblp_prot_w),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(FUNC(cps_state::sf2ceblp_prot_r),this)); + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sf2m8 ) +{ + // unscramble gfx + UINT8 *grom = memregion("gfx")->base(); + UINT8 *urom = memregion("user2")->base(); + int i = 0x480000, j = 0; + + for (j = 0x20000; j < 0x80000; j+=2) + { + grom[i++] = urom[j]; + grom[i++] = urom[j|0x100000]; + grom[i++] = urom[j|0x000001]; + grom[i++] = urom[j|0x100001]; + grom[i++] = urom[j|0x080000]; + grom[i++] = urom[j|0x180000]; + grom[i++] = urom[j|0x080001]; + grom[i++] = urom[j|0x180001]; + } + + DRIVER_INIT_CALL(cps1); +} + +void cps_state::kabuki_setup(void (*decode)(UINT8 *src, UINT8 *dst)) +{ + UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x8000); + UINT8 *rom = memregion("audiocpu")->base(); + decode(rom, decrypt); + membank("decrypted")->set_base(decrypt); +} + +DRIVER_INIT_MEMBER(cps_state,wof) +{ + kabuki_setup(wof_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state,dino) +{ + kabuki_setup(dino_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state,punisher) +{ + kabuki_setup(punisher_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state,slammast) +{ + kabuki_setup(slammast_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state,pang3b) +{ + /* Pang 3 is the only non-QSound game to have an EEPROM. */ + /* It is mapped in the CPS-B address range so probably is on the C-board. */ + m_maincpu->space(AS_PROGRAM).install_readwrite_port(0x80017a, 0x80017b, "EEPROMIN", "EEPROMOUT"); + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state,pang3) +{ + UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); + int A, src, dst; + + for (A = 0x80000; A < 0x100000; A += 2) + { + /* only the low 8 bits of each word are encrypted */ + src = rom[A / 2]; + dst = src & 0xff00; + if ( src & 0x01) dst ^= 0x04; + if ( src & 0x02) dst ^= 0x21; + if ( src & 0x04) dst ^= 0x01; + if (~src & 0x08) dst ^= 0x50; + if ( src & 0x10) dst ^= 0x40; + if ( src & 0x20) dst ^= 0x06; + if ( src & 0x40) dst ^= 0x08; + if (~src & 0x80) dst ^= 0x88; + rom[A/2] = dst; + } + + DRIVER_INIT_CALL(pang3b); +} + +READ16_MEMBER(cps_state::ganbare_ram_r) +{ + UINT16 result = 0xffff; + + if (ACCESSING_BITS_0_7) + result = (result & ~0x00ff) | m_m48t35->read(space, offset, 0xff); + if (ACCESSING_BITS_8_15) + result = (result & ~0xff00) | (m_mainram[offset] & 0xff00); + + return result; +} + +WRITE16_MEMBER(cps_state::ganbare_ram_w) +{ + COMBINE_DATA(&m_mainram[offset]); + + if (ACCESSING_BITS_0_7) + m_m48t35->write(space, offset, data & 0xff, 0xff); +} + +DRIVER_INIT_MEMBER(cps_state, ganbare) +{ + DRIVER_INIT_CALL(cps1); + + /* ram is shared between the CPS work ram and the timekeeper ram */ + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(FUNC(cps_state::ganbare_ram_r),this), write16_delegate(FUNC(cps_state::ganbare_ram_w),this)); +} + +READ16_MEMBER(cps_state::dinohunt_sound_r) +{ + /*TODO: understand what's really going on here. According to MT05805; + "I think that the values written are only qsound leftovers (after a lot of 0xFF values, + there is the same qsound starting sequence, eg: 0x88, 0xFF, 0x0B, 0x00, 0x00, 0x00, ...)."*/ + return 0xff; +} + +DRIVER_INIT_MEMBER(cps_state,dinohunt) +{ + // is this shared with the new sound hw? + m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(FUNC(cps_state::dinohunt_sound_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_port(0xfc0000, 0xfc0001, "IN2"); ; + // the ym2151 doesn't seem to be used. Is it actually on the PCB? + + DRIVER_INIT_CALL(cps1); +} + +WRITE16_MEMBER( cps_state::sf2m3_layer_w ) +{ + cps1_cps_b_w(space,0x0a,data); +} + + + +/*************************************************** Game Macros *****************************************************/ + +GAME( 1988, forgottn, 0, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (World)", MACHINE_SUPPORTS_SAVE ) // (c) Capcom U.S.A. but World "warning" +GAME( 1988, forgottnu, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88621B-2, Rev. C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, forgottnu1, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, forgottnua, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. A)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, forgottnuaa, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. AA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, lostwrld, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Lost Worlds (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, lostwrldo, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Lost Worlds (Japan Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ghouls, 0, cps1_10MHz, ghouls, cps_state, cps1, ROT0, "Capcom", "Ghouls'n Ghosts (World)", MACHINE_SUPPORTS_SAVE ) // "EXPORT" // Wed.26.10.1988 in the ROMs +GAME( 1988, ghoulsu, ghouls, cps1_10MHz, ghoulsu, cps_state, cps1, ROT0, "Capcom", "Ghouls'n Ghosts (USA)", MACHINE_SUPPORTS_SAVE ) // "EXPORT" // Wed.26.10.1988 in the ROMs +GAME( 1988, daimakai, ghouls, cps1_10MHz, daimakai, cps_state, cps1, ROT0, "Capcom", "Daimakaimura (Japan)", MACHINE_SUPPORTS_SAVE ) // Wed.26.10.1988 in the ROMs +GAME( 1988, daimakair, ghouls, cps1_12MHz, daimakai, cps_state, cps1, ROT0, "Capcom", "Daimakaimura (Japan Resale Ver.)", MACHINE_SUPPORTS_SAVE ) // Wed.26.10.1988 in the ROMs // 12MHz verified +GAME( 1989, strider, 0, cps1_10MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider (USA, B-Board 89624B-2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, striderua, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Capcom", "Strider (USA, B-Board 89624B-3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, striderj, strider, cps1_10MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider Hiryu (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, striderjr, strider, cps1_12MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider Hiryu (Japan Resale Ver.)", MACHINE_SUPPORTS_SAVE ) // 12MHz verified +GAME( 1989, dynwar, 0, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Dynasty Wars (USA, B-Board 89624B-?)", MACHINE_SUPPORTS_SAVE ) // (c) Capcom U.S.A. +GAME( 1989, dynwara, dynwar, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Dynasty Wars (USA, B-Board 88622B-3)", MACHINE_SUPPORTS_SAVE ) // (c) Capcom U.S.A. +GAME( 1989, dynwarj, dynwar, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Tenchi wo Kurau (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dynwarjr, dynwar, cps1_12MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Tenchi wo Kurau (Japan Resale Ver.)", MACHINE_SUPPORTS_SAVE ) // 12MHz verified +GAME( 1989, willow, 0, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (World)", MACHINE_SUPPORTS_SAVE ) // No "Warning" (c) Capcom U.S.A., genuine export ROM labels +GAME( 1989, willowu, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, willowuo, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (USA Old Ver.)", MACHINE_SUPPORTS_SAVE ) // Japan "warning" but (c) Capcom U.S.A. +GAME( 1989, willowj, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, unsquad, 0, cps1_10MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "U.N. Squadron (USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, area88, unsquad, cps1_10MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "Area 88 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, area88r, unsquad, cps1_12MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "Area 88 (Japan Resale Ver.)", MACHINE_SUPPORTS_SAVE ) // 12MHz verified +GAME( 1989, ffight, 0, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (World, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffighta, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (World, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightu, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightu1, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightua, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA 900112)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightub, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA 900613)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightj, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightj1, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900112)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightj2, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900305)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightj3, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900613)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightjh, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "bootleg", "Street Smart / Final Fight (Japan, hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, 1941, 0, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (World 900227)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1990, 1941r1, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, 1941u, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (USA 900227)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, 1941j, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mercs, 0, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (World 900302)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1990, mercsu, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (USA 900608)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mercsur1, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (USA 900302)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mercsj, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Senjou no Ookami II (Japan 900302)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mtwins, 0, cps1_10MHz, mtwins, cps_state, cps1, ROT0, "Capcom", "Mega Twins (World 900619)", MACHINE_SUPPORTS_SAVE ) // "ETC" - (c) Capcom U.S.A. but World "warning" +GAME( 1990, chikij, mtwins, cps1_10MHz, mtwins, cps_state, cps1, ROT0, "Capcom", "Chiki Chiki Boys (Japan 900619)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, msword, 0, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (World 900725)", MACHINE_SUPPORTS_SAVE ) // 25.07.1990 "OTHER COUNTRY" +GAME( 1990, mswordr1, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (World 900623)", MACHINE_SUPPORTS_SAVE ) // 23.06.1990 "OTHER COUNTRY" +GAME( 1990, mswordu, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (USA 900725)", MACHINE_SUPPORTS_SAVE ) // 25.07.1990 "U.S.A." +GAME( 1990, mswordj, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (Japan 900623)", MACHINE_SUPPORTS_SAVE ) // 23.06.1990 "JAPAN" +GAME( 1990, cawing, 0, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (World 901012)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1990, cawingr1, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (World 901009)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1990, cawingu, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (USA 901012)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, cawingj, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "U.S. Navy (Japan 901012)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, nemo, 0, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (World 901130)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1990, nemor1, nemo, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (World 901109)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1990, nemoj, nemo, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (Japan 901120)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2, 0, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910522)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, sf2eb, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910214)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, sf2ed, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910318)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, sf2ee, sf2, cps1_10MHz, sf2, cps_state, sf2ee, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910228)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, sf2ua, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910206)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2ub, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2uc, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910306)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2ud, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910318)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2ue, sf2, cps1_10MHz, sf2, cps_state, sf2ee, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910228)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2uf, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910411)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2ug, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910522, Rev. G)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2ui, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910522, Rev. I)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2uk, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 911101)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2j, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 911210)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2ja, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2jc, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910306)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2jf, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910411)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2jh, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910522)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2jl, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 920312)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2ebbl, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version +GAME( 1992, sf2ebbl2, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version +GAME( 1992, sf2ebbl3, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 4)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version +GAME( 1992, sf2stt, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version +GAME( 1992, sf2rk, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (RK, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 920211 (pcb) +GAME( 1991, sf2qp1, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II: The World Warrior (Quicken Pt-I, bootleg)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version +GAME( 1991, sf2thndr, sf2, cps1_10MHz, sf2, cps_state, sf2thndr, ROT0, "bootleg", "Street Fighter II: The World Warrior (Thunder Edition, bootleg)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version +GAME( 1991, 3wonders, 0, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (World 910520)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, 3wondersr1, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (World 910513)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, 3wondersu, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (USA 910520)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, wonder3, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Wonder 3 (Japan 910520)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 3wondersb, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "bootleg", "Three Wonders (bootleg)", MACHINE_SUPPORTS_SAVE ) // 910520 - based on World version +GAME( 1991, 3wondersh, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "bootleg", "Three Wonders (hack)", MACHINE_SUPPORTS_SAVE ) // 910520 - based on World version +GAME( 1991, kod, 0, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (World 910805)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, kodr1, kod, cps1_10MHz, kodr1, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (World 910711)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, kodu, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (USA 910910)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kodj, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (Japan 910805, B-Board 90629B-3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kodja, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (Japan 910805, B-Board 89625B-1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, captcomm, 0, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (World 911202)", MACHINE_SUPPORTS_SAVE ) // "OTHER COUNTRY" +GAME( 1991, captcommr1, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (World 911014)", MACHINE_SUPPORTS_SAVE ) // "OTHER COUNTRY" +GAME( 1991, captcommu, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (USA 910928)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, captcommj, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Japan 911202)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, captcommjr1, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Japan 910928)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, captcommb, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "bootleg", "Captain Commando (bootleg)", MACHINE_SUPPORTS_SAVE ) // 911014 - based on World version +GAME( 1991, knights, 0, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (World 911127)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1991, knightsu, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (USA 911127)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knightsj, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (Japan 911127, B-Board 91634B-2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knightsja, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (Japan 911127, B-Board 89625B-1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2ce, 0, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (World 920513)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1992, sf2ceea, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (World 920313)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1992, sf2ceua, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920313)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2ceub, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920513)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2ceuc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920803)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2ceja, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920322)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2cejb, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920513)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2cejc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920803)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2bhh, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Hung Hsi, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2rb, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) // 920322 - based on World version +GAME( 1992, sf2rb2, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb2, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) // 920322 - based on World version +GAME( 1992, sf2rb3, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // 920322 - based on World version +GAME( 1992, sf2red, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Red Wave, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2v004, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (V004, bootleg)", MACHINE_SUPPORTS_SAVE ) // 102092 !!! - based on (heavily modified) World version +GAME( 1992, sf2acc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator!, bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2acca, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator!, bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2accp2, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator Pt.II, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2amf, sf2ce, cps1_12MHz, sf2amf, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (Alpha Magic-F, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2amf2, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (L735 Test Rom, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2dkot2, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Double K.O. Turbo II, bootleg)", MACHINE_SUPPORTS_SAVE ) // 902140 !!! - based on USA version +GAME( 1992, sf2ceblp, sf2ce, cps1_10MHz, sf2, cps_state, sf2ceblp, ROT0, "bootleg", "Street Fighter II': Champion Edition (protected bootleg on non-dash board)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on USA version +GAME( 1992, sf2m2, sf2ce, cps1_12MHz, sf2m2, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M2, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2m3, sf2ce, sf2m3, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M3, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on USA version +GAME( 1992, sf2m4, sf2ce, cps1_12MHz, sf2m4, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M4, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920322 - based on Japan version +GAME( 1992, sf2m5, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M5, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2m6, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M6, bootleg)", MACHINE_SUPPORTS_SAVE ) // 811102 !!! - based on World version +GAME( 1992, sf2m7, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M7, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2m8, sf2ce, sf2m3, sf2, cps_state, sf2m8, ROT0, "bootleg", "Street Fighter II': Champion Edition (M8, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on USA version +GAME( 1992, sf2yyc, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (YYC, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2koryu, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (Xiang Long, Chinese bootleg)", MACHINE_SUPPORTS_SAVE ) // 811102 !!! - based on World version +GAME( 1992, sf2dongb, sf2ce, cps1_12MHz, sf2, cps_state, sf2dongb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Dongfang Bubai protection, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, cworld2j, 0, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, cworld2ja, cworld2j, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611, B-Board 90629B-3, no battery)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, cworld2jb, cworld2j, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611, B-Board 91634B-2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, varth, 0, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (World 920714)", MACHINE_SUPPORTS_SAVE ) // "ETC" // 12MHz verified +GAME( 1992, varthr1, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (World 920612)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1992, varthu, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom (Romstar license)", "Varth: Operation Thunderstorm (USA 920612)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, varthj, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (Japan 920714)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, varthjr, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (Japan Resale Ver. 920714)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, qad, 0, cps1_12MHz, qad, cps_state, cps1, ROT0, "Capcom", "Quiz & Dragons: Capcom Quiz Game (USA 920701)", MACHINE_SUPPORTS_SAVE ) // 12MHz verified +GAME( 1994, qadjr, qad, cps1_12MHz, qadjr, cps_state, cps1, ROT0, "Capcom", "Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wof, 0, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (World 921031)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1992, wofr1, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (World 921002)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1992, wofu, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (USA 921031)", MACHINE_SUPPORTS_SAVE ) // World "warning" +GAME( 1992, wofa, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Sangokushi II (Asia 921005)", MACHINE_SUPPORTS_SAVE ) // World "warning" +GAME( 1992, wofj, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Tenchi wo Kurau II: Sekiheki no Tatakai (Japan 921031)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, wofhfh, wof, wofhfh, wofhfh, cps_state, cps1, ROT0, "bootleg", "Huo Feng Huang (Chinese bootleg of Sangokushi II)", MACHINE_SUPPORTS_SAVE ) // 921005 - based on Asia version +GAME( 1992, sf2hf, 0, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Hyper Fighting (World 921209)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1992, sf2hfu, sf2hf, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Hyper Fighting (USA 921209)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2hfj, sf2hf, cps1_12MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II' Turbo: Hyper Fighting (Japan 921209)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dino, 0, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs and Dinosaurs (World 930201)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1993, dinou, dino, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs and Dinosaurs (USA 930201)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinoj, dino, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs: Kyouryuu Shin Seiki (Japan 930201)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinohunt, dino, wofhfh, dinoh, cps_state, dinohunt, ROT0, "bootleg", "Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs)", MACHINE_SUPPORTS_SAVE ) // 930223 - based on Asia TW version, the original is still undumped +GAME( 1993, punisher, 0, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (World 930422)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1993, punisheru, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (USA 930422)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, punisherh, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (Hispanic 930422)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, punisherj, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (Japan 930422)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, punisherbz, punisher, wofhfh, punisherbz, cps_state, cps1, ROT0, "bootleg", "Biaofeng Zhanjing (Chinese bootleg of The Punisher)", MACHINE_SUPPORTS_SAVE ) // (c) 2002, they ripped the sound from Final Fight! +GAME( 1993, slammast, 0, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Saturday Night Slam Masters (World 930713)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1993, slammastu, slammast, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Saturday Night Slam Masters (USA 930713)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mbomberj, slammast, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber: The Body Explosion (Japan 930713)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mbombrd, 0, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber Duo: Ultimate Team Battle (World 931206)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1993, mbombrdj, mbombrd, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber Duo: Heat Up Warriors (Japan 931206)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pnickj, 0, cps1_12MHz, pnickj, cps_state, cps1, ROT0, "Compile (Capcom license)", "Pnickies (Japan 940608)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, qtono2j, 0, cps1_12MHz, qtono2j, cps_state, cps1, ROT0, "Capcom", "Quiz Tonosama no Yabou 2: Zenkoku-ban (Japan 950123)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, megaman, 0, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Capcom", "Mega Man: The Power Battle (CPS1, USA 951006)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, megamana, megaman, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Capcom", "Mega Man: The Power Battle (CPS1, Asia 951006)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rockmanj, megaman, cps1_12MHz, rockmanj, cps_state, cps1, ROT0, "Capcom", "Rockman: The Power Battle (CPS1, Japan 950922)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ganbare, 0, ganbare, ganbare, cps_state, ganbare, ROT0, "Capcom", "Ganbare! Marine Kun (Japan 2K0411)", MACHINE_SUPPORTS_SAVE ) + +/* Games released on CPS-1 hardware by Mitchell */ + +GAME( 1995, pang3, 0, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3 (Euro 950601)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, pang3r1, pang3, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3 (Euro 950511)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, pang3j, pang3, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3: Kaitou Tachi no Karei na Gogo (Japan 950511)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, pang3b, pang3, pang3, pang3b, cps_state, pang3b, ROT0, "bootleg", "Pang! 3 (bootleg)", MACHINE_SUPPORTS_SAVE ) // 950511 - based on Euro version + +/* Home 'CPS Changer' Unit - For MESS */ + +CONS( 1994, wofch, 0, 0, qsound, wofch, cps_state, wof, "Capcom", "Tenchi wo Kurau II: Sekiheki no Tatakai (CPS Changer, Japan 921031)", MACHINE_SUPPORTS_SAVE ) +CONS( 1995, sfzch, 0, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Zero (CPS Changer, Japan 951020)", MACHINE_SUPPORTS_SAVE ) +// are these 2 legit sets, or did somebody region hack it? +CONS( 1995, sfach, sfzch, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Alpha: Warriors' Dreams (CPS Changer, Publicity USA 950727)", MACHINE_SUPPORTS_SAVE ) +CONS( 1995, sfzbch, sfzch, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Zero (CPS Changer, Brazil 950727)", MACHINE_SUPPORTS_SAVE ) + +// Ken Sei Mogura: Street Fighter II - see kenseim.c +// HBMAME +#include "cps1mis.cpp" diff --git a/docs/release/src/hbmame/drivers/cps1mis.cpp b/docs/release/src/hbmame/drivers/cps1mis.cpp new file mode 100644 index 00000000000..9805dcf6e21 --- /dev/null +++ b/docs/release/src/hbmame/drivers/cps1mis.cpp @@ -0,0 +1,5605 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/******************************************************************************************************************* + + CPS-1 driver for hacks and bootlegs + +Issues: + +- knightsh + the title screen is garbage. + +- kodh + title, problem with placement of the letters. + +- sk2h1, sk2h2, sk2h3, sk2h22, sk2h31, sk2h32, sk2h33, sk2h34 + setup screen is blank. + map doesn't show first time around prior to demo 1, and never before demo 3. + priority issue, easily noticed on 3rd demo where actors are in the wagon instead of behind it. + +- sk2h22, sk2h31, sk2h32, sk2h33, sk2h34, sk2h35 + coin 3, start 3, 3rd player not working. + +- wofjcn + chinese language rom isn't working. Whatever is tried breaks stuff. + + +*******************************************************************************************************************/ + +WRITE16_MEMBER( cps_state::dinoh_sound_command_w ) +{ + /* Pass the Sound Code to the Q-Sound Shared Ram */ + m_qsound_sharedram1[1] = data; +} + +WRITE16_MEMBER( cps_state::daimakb_palctrl_w ) +{ + m_cps_b_regs[0x30 / 2] = data; +} + +WRITE16_MEMBER(cps_state::daimakb_layer_w) +{ + if (offset == 0x00) + m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */ + else + if (offset == 0x01) + m_cps_a_regs[0x0c / 2] = data - 0x40; /* scroll 1x */ + else + if (offset == 0x02) + { + m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */ + m_cps_a_regs[0x20 / 2] = data; /* row scroll start */ + } + else + if (offset == 0x03) + m_cps_a_regs[0x10 / 2] = data - 0x40; /* scroll 2x */ + else + if (offset == 0x04) + m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */ + else + if (offset == 0x05) + m_cps_a_regs[0x14 / 2] = data - 0x40; /* scroll 3x */ + else + if (offset == 0x06) + { + switch (data) + { + case 0x0000: + data = (1 << 12) | (2 << 8) | (3 << 6); + break; + case 0x0001: + data = (1 << 12) | (3 << 6); + break; + case 0x0002: + data = (3 << 12) | (1 << 6); + break; + case 0x0006: + data = 0; + break; + default: + data = 0; + printf ("Unknown control word = %X\n",data); + } + m_cps_b_regs[0x26 / 2] = data; + } +} + + + +/************************************************************************** + + Address Maps + +***************************************************************************/ + +static ADDRESS_MAP_START( daimakb_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800166, 0x800171) AM_WRITENOP // not used + AM_RANGE(0xe00000, 0xe0003f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") // dummy region + AM_RANGE(0x880000, 0x880001) AM_WRITE(daimakb_palctrl_w) + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0x980000, 0x98000d) AM_WRITE(daimakb_layer_w) + AM_RANGE(0x990000, 0x993fff) AM_WRITENOP // bootleg sprites, not needed + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sk2h35_map, AS_PROGRAM, 16, cps_state ) +/* unknown addresses (all write): 930008-930807. No 3rd player controls. NVRAM doesn't work */ + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */ + AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0x930008, 0x930807) AM_WRITENOP + AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */ + AM_RANGE(0xf1ce74, 0xf1ce75) AM_WRITENOP + AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */ + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( cps1frog_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sk2h1q_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x88000e, 0x88000f) AM_WRITENOP + AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */ + AM_RANGE(0x890000, 0x890001) AM_WRITENOP + AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */ + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */ + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sk2h3_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x88000e, 0x88000f) AM_WRITE(cps1_soundlatch_w) + AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */ + AM_RANGE(0x890000, 0x890001) AM_WRITENOP + AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sk2h31q_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x880006, 0x880007) AM_WRITENOP // soundlatch on non-qsound hw + AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x880e7e, 0x880e7f) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */ + AM_RANGE(0x890000, 0x890001) AM_WRITENOP + AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */ + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */ + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sk2h31_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x880006, 0x880007) AM_WRITE(cps1_soundlatch_w) + AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x880e7e, 0x880e7f) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */ + AM_RANGE(0x890000, 0x890001) AM_WRITENOP + AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( wofsf2_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r) + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xf18000, 0xf19fff) AM_RAM + AM_RANGE(0xf1c000, 0xf1c001) AM_READ(cps1_in2_r) /* Player 3 controls */ + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram") +ADDRESS_MAP_END + +/******************************************************************** + + Inputs and dips + +*********************************************************************/ + +static INPUT_PORTS_START( dinohz ) + PORT_INCLUDE( dino ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) +// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) +INPUT_PORTS_END + +static INPUT_PORTS_START( knightsh ) + PORT_INCLUDE( knights ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) +// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) +INPUT_PORTS_END + +static INPUT_PORTS_START( kodh ) + PORT_INCLUDE( kod ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +static INPUT_PORTS_START( pnicku ) + PORT_INCLUDE( pnickj ) + PORT_MODIFY("DSWA") + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW(A):1,2,3") + PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) + + PORT_DIPNAME( 0x10, 0x10, "Chuters" ) PORT_DIPLOCATION("SW(A):5") + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPSETTING( 0x10, "1" ) + + PORT_MODIFY("DSWC") + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( sk2h3 ) + PORT_START ("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWA") + PORT_DIPNAME( 0x03, 0x00, "Play Mode" ) + PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x03, "Tournament" ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWB") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWC") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START ("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + +static INPUT_PORTS_START( sk2h21 ) + PORT_INCLUDE( wof ) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) +// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) +INPUT_PORTS_END + + +/*********************************************************** + INPUT PORTS, DIPs +***********************************************************/ + +static INPUT_PORTS_START( cps1frog ) + PORT_START ("IN0") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWA") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWB") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWC") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +static INPUT_PORTS_START( sk2h1 ) + PORT_START ("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWA") + PORT_DIPNAME( 0x03, 0x00, "Play Mode" ) + PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x03, "Tournament" ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWB") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWC") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START ("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + +static INPUT_PORTS_START( sk2h31 ) + PORT_START ("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWA") /* there are lots of other combinations, but this covers the useful ones */ + PORT_DIPNAME( 0xff, 0xff, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0xde, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0xff, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0xfe, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0xfd, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0xfc, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0x7f, DEF_STR( 1C_7C ) ) + PORT_DIPSETTING( 0xdf, DEF_STR( 1C_8C ) ) + + PORT_START ("DSWB") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWC") /* (not used, EEPROM) */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + +/******************************************************************** +* +* Machine Driver macro +* ==================== +* +* +********************************************************************/ + + +static MACHINE_CONFIG_DERIVED( wofsf2, wofhfh ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(wofsf2_map) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( daimakb, cps1_10MHz) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(daimakb_map) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sk2h3, wofhfh) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(sk2h3_map) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sk2h31, wofhfh) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(sk2h31_map) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sk2h35, qsound) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(sk2h35_map) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_START( cps1frog, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(cps1frog_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + /* audio CPU */ + MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(sub_map) + + MCFG_MACHINE_START_OVERRIDE(cps_state, cps1) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz/2, 518, 64, 448, 259, 16, 240) /* guess: assume that CPS-1 uses the same exact timings as CPS-2 */ + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + MCFG_VIDEO_START_OVERRIDE(cps_state, cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */ + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sk2h1q, cps1frog ) + + /* basic machine hardware */ + MCFG_CPU_REPLACE("maincpu", M68000, XTAL_12MHz ) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(sk2h1q_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_REPLACE("audiocpu", Z80, XTAL_8MHz) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(qsound_sub_map) + MCFG_CPU_DECRYPTED_OPCODES_MAP(qsound_decrypted_opcodes_map) + MCFG_CPU_PERIODIC_INT_DRIVER(cps_state, irq0_line_hold, 250) /* ?? */ + + MCFG_MACHINE_START_OVERRIDE(cps_state, qsound) + + MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") + + /* sound hardware */ + MCFG_DEVICE_REMOVE("mono") + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + + MCFG_DEVICE_REMOVE("2151") + MCFG_DEVICE_REMOVE("oki") + + MCFG_QSOUND_ADD("qsound", QSOUND_CLOCK) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sk2h31q, sk2h1q ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(sk2h31q_map) +MACHINE_CONFIG_END + + +/********************************************************************** + + Roms + +***********************************************************************/ + +ROM_START( 3wondrud ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3wondrud.30", 0x00000, 0x20000, CRC(b0953ff4) SHA1(79d0b68948a9b5be8eacd33810ddcf4fa08dbe71) ) + ROM_LOAD16_BYTE( "3wondrud.35", 0x00001, 0x20000, CRC(7695e8c6) SHA1(f78e7cb1098d77ce84d58a0d4509a77f5c483a77) ) + ROM_LOAD16_BYTE( "3wondrud.31", 0x40000, 0x20000, CRC(8cf00a3c) SHA1(dceb5bccf7c96802e7c228ea52f82fbb49388e0d) ) + ROM_LOAD16_BYTE( "3wondrud.36", 0x40001, 0x20000, CRC(b649ad19) SHA1(f91dad60a583a46f80e71bb23bfd051b3ed3fbe5) ) + ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) + ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) + ROM_LOAD16_BYTE( "rtu_29a.10f", 0xc0000, 0x20000, CRC(37ba3e20) SHA1(a128b1a17639b06a4fd8acffe0357f1dbd1d4fe9) ) + ROM_LOAD16_BYTE( "rtu_34a.10h", 0xc0001, 0x20000, CRC(f99f46c0) SHA1(cda24a6baa3f861e7078fb2fa91328cc1cddc866) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) ) + ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) ) + ROM_LOAD_OPTIONAL( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + + +ROM_START( captcocc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP("captcocc.23", 0x000000, 0x80000, CRC(1e5c9f79) SHA1(09f7356b5badae26f24a2afac2cbe0d8e0c9481a) ) + ROM_LOAD16_WORD_SWAP("captcocc.22", 0x080000, 0x80000, CRC(6ea50796) SHA1(62d0cd0203c2bb75bd0b69e3b25a492c37658da4) ) + ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) ) + ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) + ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( captcomc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cc23", 0x000000, 0x80000, CRC(a5e73e49) SHA1(7bb75fa0e1122a85a421c50607c0ad57a387783e) ) + ROM_LOAD16_WORD_SWAP( "cc22", 0x080000, 0x80000, CRC(919777c5) SHA1(2bd9b1527e8486ae89ddcdb0694c63c5859080b6) ) + ROM_LOAD16_BYTE( "cc24", 0x100000, 0x20000, CRC(f3d6f147) SHA1(937822148c0f6f295d468024ce7887ee0353e669) ) + ROM_LOAD16_BYTE( "cc28", 0x100001, 0x20000, CRC(f1c9bf8a) SHA1(545f494106ccce6ccbbe6fa042cf0ee6df03e8dc) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc_01.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc_02.4a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc_03.5a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc_04.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_05.rom", 0x200000, 0x80000, CRC(e4282bc0) SHA1(fe6012a8afcaec5747194bedfa73284bb28300a4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_07.rom", 0x200002, 0x80000, CRC(8b0ef34c) SHA1(13a696856432b2f345cd2b2059e95179c78bd70a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_06.rom", 0x200004, 0x80000, CRC(2d7bee50) SHA1(a25bcfa99c4dda52469f7dc8fec24287c97deb84) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_08.rom", 0x200006, 0x80000, CRC(0106bf6a) SHA1(8e23418c58c4ffb8dd4dac93b92b23c406d60a62) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "ccj_09.12a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ccj_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) + ROM_LOAD( "ccj_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "ccprg.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( captcomh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cce_23dh.rom", 0x000000, 0x80000, CRC(d97f921c) SHA1(451ab11ddd845ecddeaf60b3c46903d784c3389c) ) + ROM_LOAD16_WORD_SWAP( "cc_22d.rom", 0x080000, 0x80000, CRC(a91949b7) SHA1(c027af89cd8f6bd3aaed61114582322c42e0c74f) ) + ROM_LOAD16_BYTE( "cc_24d.rom", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) ) + ROM_LOAD16_BYTE( "cc_28d.rom", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "gfx_01.rom", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_03.rom", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_02.rom", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_04.rom", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_05.rom", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_07.rom", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_06.rom", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "gfx_08.rom", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "cc_09.rom", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "cc_18.rom", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) + ROM_LOAD( "cc_19.rom", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "ccprg.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( captcoud ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP("captcoud.23", 0x000000, 0x80000, CRC(1d338c25) SHA1(4aba7e5a78bf20d887b3493e0d2a83098f877f9f) ) + ROM_LOAD16_WORD_SWAP("captcoud.22", 0x080000, 0x80000, CRC(c5310f13) SHA1(97a3751630f10cf67515200ce435c34fda1d9a52) ) + ROM_LOAD16_BYTE( "ccu_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) ) + ROM_LOAD16_BYTE( "ccu_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) + ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( captcovs ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP("captcovs.23", 0x000000, 0x80000, CRC(c1ad4e2a) SHA1(0b7843fec92261b2e727147aa6df60f4b5fc8fc7) ) + ROM_LOAD16_WORD_SWAP("captcovs.22", 0x080000, 0x80000, CRC(8e19a05a) SHA1(b60dd9b1693630e9e3fe73c1b3f8a026945fb23d) ) + ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) ) + ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) + ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + + +ROM_START( cps1demo ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "cd30-36.bin", 0x00000, 0x20000, CRC(5eb617d6) SHA1(9d4656d2b29244eb2a01058f5b80752d94065a6e) ) + ROM_LOAD16_BYTE( "cd35-42.bin", 0x00001, 0x20000, CRC(1f1c0a62) SHA1(12d1950921fff6d52ae969a4c7357f4e7bc28d1e) ) + ROM_LOAD16_WORD_SWAP( "ff32-32m.bin", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "cd05-05m.bin", 0x000000, 0x80000, CRC(35dc6153) SHA1(7b7747d4e6a78c0933b6ea96fa6027c2c2c50682) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd07-07m.bin", 0x000002, 0x80000, CRC(baf08a38) SHA1(82559384399c5dfb8979a2e91d585549357ebb52) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd01-01m.bin", 0x000004, 0x80000, CRC(3ad8e790) SHA1(a371edc81a48903d13ed8938dca450dab986b413) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd03-03m.bin", 0x000006, 0x80000, CRC(fb5186f3) SHA1(b20031c01b6be2a4987553c0ab19105714bf9299) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "ff09-09.bin", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff18-18.bin", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff19-19.bin", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) +ROM_END + +ROM_START( cps1frog ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "frog30-36.bin", 0x00000, 0x20000, CRC(8eb8ddbe) SHA1(298c72b3eb6f2721f204cf80ec4a7c52dc8b23fd) ) + ROM_LOAD16_BYTE( "frog35-42.bin", 0x00001, 0x20000, CRC(acb5a988) SHA1(7264bb94f7bacef9bf03713d0a6d32e81ca1f8e2) ) + ROM_LOAD16_WORD_SWAP( "frog32-32m.bin", 0x80000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "frog05-05m.bin", 0x000000, 0x80000, CRC(7bbc4b54) SHA1(5a40bd85ce71dc733071732a8306d648b3e6dd39) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "frog07-07m.bin", 0x000002, 0x80000, CRC(0beadd80) SHA1(f43d6ad936b8ffa242c17d8da26bf2e2a12d85a8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "frog01-01m.bin", 0x000004, 0x80000, CRC(f84d02bb) SHA1(b89322ab65a3b3e8202c27af62de2b182a4ed2e9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "frog03-03m.bin", 0x000006, 0x80000, CRC(d784a5b0) SHA1(8891bb8fc39f51db200c51e2a65961c351d655c2) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "frog09-09.bin", 0x00000, 0x08000, CRC(3ac7fb5c) SHA1(01057078b67dc82d80403533a3dca3deb95f166c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "frog18-18.bin", 0x00000, 0x20000, CRC(65d1ef07) SHA1(0bc2dbf5053430f659d64d1b287799bb5cc4db65) ) + ROM_LOAD( "frog19-19.bin", 0x20000, 0x20000, CRC(7ee8cdcd) SHA1(67dfd19f3eb3649d6f3f6631e44d0bd36b8d8d19) ) +ROM_END + +ROM_START( cps1test ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cps1test.bin", 0x000000, 0x80000, CRC(938c72fe) SHA1(0a48661d5638ed6b841f646ebb9f948a01b8e2d3) ) + ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "s9263b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( cps1testa ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cps1testa.bin", 0x000000, 0x80000, CRC(35a39adb) SHA1(dcb93102108a02f1f169833cfd355bd492cd9065) ) + ROM_LOAD16_WORD_SWAP( "rcmu_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) ) + ROM_LOAD16_WORD_SWAP( "rcmu_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) ) + + ROM_REGION( 0x800000, "gfx", 0 ) + ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "rcm_09.11a", 0x00000, 0x08000, CRC(22ac8f5f) SHA1(d1441d880f98034645cb4fcecd7bb746bde638af) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) ) + ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + + +ROM_START( daimakb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_BYTE( "dmjb2.bin", 0x00000, 0x80000, CRC(7d5f9f84) SHA1(b334b3af610892ef4efe4764017659b8541a10c6) ) + ROM_LOAD16_BYTE( "dmjb1.bin", 0x00001, 0x80000, CRC(9b945cc4) SHA1(dfdfabfd8ef06cee6be27350f79c5db4c6ace611) ) + + ROM_REGION( 0x300000, "gfx", 0 ) + ROMX_LOAD( "dm_02.4b", 0x000000, 0x20000, CRC(8b98dc48) SHA1(e827881e2ba5cccd907d1692a1945c1b75d46f12) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_01.4a", 0x000001, 0x20000, CRC(80896c33) SHA1(20ffc427c596828005e34cdd8e4efa0d332262e9) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_10.9b", 0x000002, 0x20000, CRC(c2e7d9ef) SHA1(52aae6cf373f8c7150833047be28b74dd5eb5af6) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_09.9a", 0x000003, 0x20000, CRC(c9c4afa5) SHA1(34571e3e49c86b87fa34eefbc5f9fe258aba5f1a) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_18.5e", 0x000004, 0x20000, CRC(1aa0db99) SHA1(69ac302b2f6f0b96f78cb57b0b4cdae464086262) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_17.5c", 0x000005, 0x20000, CRC(dc6ed8ad) SHA1(1ffc4a48a7ff9b542ab6f63a60bea3c1a7a6e63b) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_30.8h", 0x000006, 0x20000, CRC(d9d3f8bd) SHA1(6c6853a384f8d60ca46a0607fd47c76a83700fba) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_29.8f", 0x000007, 0x20000, CRC(49a48796) SHA1(76c18c684dba4aa91ee6caae0f38fe3e1cc50832) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_04.5b", 0x100000, 0x20000, CRC(a4f4f8f0) SHA1(edca0f61b40a18afe279f7007c233064130cfb4f) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_03.5a", 0x100001, 0x20000, CRC(b1033e62) SHA1(547fc281dd9e7a74ac86c3692508c7bde9b6167b) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_12.10b", 0x100002, 0x20000, CRC(10fdd76a) SHA1(aee774d6323292799dff7a30ef9559c92fe5507a) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_11.10a", 0x100003, 0x20000, CRC(9040cb04) SHA1(b32e9056fc20a5162868eade10f3ef5efc167a28) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_20.7e", 0x100004, 0x20000, CRC(281d0b3e) SHA1(70e1813de184ad0ec164145b7b843b5e387494e3) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_19.7c", 0x100005, 0x20000, CRC(2623b52f) SHA1(fc4200924452bfbff687934782398ed345dc0aa0) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_32.9h", 0x100006, 0x20000, CRC(99692344) SHA1(67dc70618568b7c0adcb00a612aaf5501f6c8c0f) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_31.9f", 0x100007, 0x20000, CRC(54acb729) SHA1(d1fca43db36253fd19db4337c49272a6cadff597) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_06.7b", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_05.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_14.11b", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_13.11a", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_22.8e", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_21.8c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_26.10e", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_25.10c", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_08.8b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_07.8a", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_16.12b", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_15.12a", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_24.9e", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_23.9c", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_28.11e", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) ) + ROMX_LOAD( "dm_27.11c", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "dm_37.13c", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) // to keep validation quiet + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "dm22a.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + + +ROM_START( dino08h2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dino08h2.23", 0x000000, 0x80000, CRC(39ebeee2) SHA1(b48c3174e4ca26517958b3e58a3a693ce4e9ee88) ) + ROM_LOAD16_WORD_SWAP( "dino08h2.22", 0x080000, 0x80000, CRC(09307e79) SHA1(cff0af94c6118a852351a7b624db65963c91f577) ) + ROM_LOAD16_WORD_SWAP( "dino08h2.21", 0x100000, 0x80000, CRC(c2a0f051) SHA1(57e4a569824fb2a9d726ba610d13e451ab0b36cb) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dino08h3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dino08h3.23", 0x000000, 0x80000, CRC(642a2380) SHA1(79d9f427740d7f86b81f560e71636097d10cccf1) ) + ROM_LOAD16_WORD_SWAP( "dino08h3.22", 0x080000, 0x80000, CRC(7a3c6b73) SHA1(e7f75c286ced541d4d6e399a54fa39fc1a85773f) ) + ROM_LOAD16_WORD_SWAP( "dino08h3.21", 0x100000, 0x80000, CRC(3383646e) SHA1(f3d220e79cb8f86ba799580541e790d9a1d2cdf5) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dino08hp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dino08hp.23", 0x000000, 0x80000, CRC(394826e3) SHA1(7b295e263ab7f38a57a118de0f4308debfe14591) ) + ROM_LOAD16_WORD_SWAP( "dino08hp.22", 0x080000, 0x80000, CRC(a4894b10) SHA1(6c6d4319af544383007190cfe8835189089e4ac3) ) + ROM_LOAD16_WORD_SWAP( "dino08h2.21", 0x100000, 0x80000, CRC(c2a0f051) SHA1(57e4a569824fb2a9d726ba610d13e451ab0b36cb) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinob ) // program same as dinopic in mame, but this one has working sound + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) ) + ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) ) + ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) ) + ROM_LOAD16_BYTE( "7.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000 ) + ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(d574befc) SHA1(56482e7a9aa8439f30e3cf72311495ce677a083d), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000 ) + ROMX_LOAD( "9.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000 ) + ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000 ) + ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x200004, 0x40000 ) + ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x200005, 0x40000 ) + ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x200006, 0x40000 ) + ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x200007, 0x40000 ) + + ROM_REGION( 0x80000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */ + ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) ) + ROM_LOAD( "cd_q.rom", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd_q1.rom", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd_q2.rom", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd_q3.rom", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd_q4.rom", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) +ROM_END + +ROM_START( dinobt ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinobt.23", 0x000000, 0x80000, CRC(3b1ed744) SHA1(7f9e062f97ef497c8993f574a3a51ae9e4e3e4f6) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinobtpp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinobtpp.23", 0x000000, 0x80000, CRC(41f954c9) SHA1(494ca6b9a5df7c9f491e54e45da41b2dcb4936a9) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinocgba ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinocgba.23", 0x000000, 0x80000, CRC(7545d8b0) SHA1(b2400f558753e2c5d26a20ed94aff63d96424d1b) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinocgbb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinocgbb.23", 0x000000, 0x80000, CRC(2afc047c) SHA1(2d8831ae1faed2c8393db95835e157326a00f3f1) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinocgbc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinocgbc.23", 0x000000, 0x80000, CRC(d7be3ebd) SHA1(0af400aa73b93908efe7e81f187ad0809b36593b) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinoeh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinoeh.23", 0x000000, 0x80000, CRC(a6b88364) SHA1(71d2d66df77ba3cc856c2ecd317f4be122ed1feb) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd_gfx01.rom", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx03.rom", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx02.rom", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx04.rom", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx05.rom", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx07.rom", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx06.rom", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx08.rom", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.rom", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd_q1.rom", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd_q2.rom", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd_q3.rom", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd_q4.rom", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) +ROM_END + +ROM_START( dinoex ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinoex.23", 0x000000, 0x80000, CRC(c871b733) SHA1(0c2030a9ca0be8b14edbc4f2ae44184ab81b5e03) ) + ROM_LOAD16_WORD_SWAP( "dinoex.22", 0x080000, 0x80000, CRC(b503e1ad) SHA1(73e53061b01940a9deb13c0ff5d874b4a8380f15) ) + ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd_gfx01.rom", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx03.rom", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx02.rom", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx04.rom", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx05.rom", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx07.rom", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx06.rom", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx08.rom", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.rom", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd_q1.rom", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd_q2.rom", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd_q3.rom", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd_q4.rom", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) +ROM_END + +ROM_START( dinoh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cda_23h.rom", 0x000000, 0x80000, CRC(8e2a9cf0) SHA1(01111582e579bd3b43b52d0e0c445c32fe5e053b) ) + ROM_LOAD16_WORD_SWAP( "cda_22h.rom", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) ) + ROM_LOAD16_WORD_SWAP( "cda_21h.rom", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) ) + ROM_LOAD16_WORD_SWAP( "cda_20h.rom", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd_gfx01.rom", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx03.rom", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx02.rom", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx04.rom", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx05.rom", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx07.rom", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx06.rom", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx08.rom", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.rom", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd_q1.rom", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd_q2.rom", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd_q3.rom", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd_q4.rom", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) +ROM_END + +ROM_START( dinoha ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "kl2-r1.800", 0x080000, 0x080000, CRC(4c70dca7) SHA1(2e7a10c90924e0f87903eddb04313f61233a998f) ) + ROM_CONTINUE( 0x000000, 0x080000 ) + ROM_LOAD16_WORD_SWAP( "kl2-l2.800", 0x180000, 0x080000, CRC(c6ae7338) SHA1(4b8543cf1ac89ae95fe63e6d81c87d2bda52da69) ) + ROM_CONTINUE( 0x100000, 0x080000 ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-a.160", 0x000000, 0x80000, CRC(7e4f9fb3) SHA1(b985d925e0fb799cdf0a671e4800961d9872cd8f), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "cd-b.160", 0x000002, 0x80000, CRC(89532d85) SHA1(6743c4d9b4407421416c13878b8a1fae097dd7a7), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.rom", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd_q1.rom", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd_q2.rom", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd_q3.rom", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd_q4.rom", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) +ROM_END + +ROM_START( dinohb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cd-d.800", 0x000000, 0x100000, CRC(2a7b2915) SHA1(817d24c5206a60c4d93affffc9bd5a72abccbb01) ) + ROM_LOAD16_WORD_SWAP( "cd-e.800", 0x100000, 0x100000, CRC(e8370226) SHA1(9c6915ad9e48ccd2020fcad58ec56e6f7cd0c25c) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-a.160", 0x000000, 0x80000, CRC(7e4f9fb3) SHA1(b985d925e0fb799cdf0a671e4800961d9872cd8f), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "cd-b.160", 0x000002, 0x80000, CRC(89532d85) SHA1(6743c4d9b4407421416c13878b8a1fae097dd7a7), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.rom", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd_q1.rom", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd_q2.rom", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd_q3.rom", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd_q4.rom", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) +ROM_END + +ROM_START( dinohp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinohp.23", 0x000000, 0x80000, CRC(c96a1d20) SHA1(76d2ce4727ad6f546148cc3c7338a6243cecce2d) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinohx ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinohx.23", 0x000000, 0x80000, CRC(a013a81f) SHA1(81c84ad76adfe1345d5e41bcddb47f2428de5006) ) + ROM_LOAD16_WORD_SWAP( "cda_22h.rom", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) ) + ROM_LOAD16_WORD_SWAP( "cda_21h.rom", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) ) + ROM_LOAD16_WORD_SWAP( "cda_20h.rom", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd_gfx01.rom", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx03.rom", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx02.rom", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx04.rom", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx05.rom", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx07.rom", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx06.rom", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx08.rom", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.rom", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd_q1.rom", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd_q2.rom", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd_q3.rom", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd_q4.rom", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) +ROM_END + +ROM_START( dinojp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cdjp-23a.8f", 0x000000, 0x80000, CRC(9cd746de) SHA1(d8b9c824e4b8adb66a273debce63128a16bb147a) ) + ROM_LOAD16_WORD_SWAP( "cdjp-22a.7f", 0x080000, 0x80000, CRC(082f645d) SHA1(6865d6cf6464846b9aa423dc4e807932ae98a86d) ) + ROM_LOAD16_WORD_SWAP( "cdep_21a.rom", 0x100000, 0x80000, CRC(95bd8020) SHA1(249746eb20483ec87b6ad5a74e8b790afdb389de) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd_01.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_02.4a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_03.5a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_04.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_05.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_06.8a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_07.9a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_08.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( dinorp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinorp.23", 0x000000, 0x80000, CRC(373282a0) SHA1(b02bf02c9ef21cfa2606f3c6e38542fcb0be45ab) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "dinorp.21", 0x100000, 0x80000, CRC(d0d89d2c) SHA1(36f510ca6a2713518c3dba8fb49a314fd0de4d75) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinoslice ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "cdeslice.rom", 0x000000, 0x200000, CRC(9da95eab) SHA1(370bf3bbd76de5ae638c6fdab67c7cea98744e7b) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( dinouphp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinouphp.23", 0x000000, 0x80000, CRC(1bf35c82) SHA1(82496d6c8fa853b0c28932f0f36e37219c0adfc8) ) + ROM_LOAD16_WORD_SWAP( "cde_22a.rom", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) ) + ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( dinoz ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dinoz_23a.8f", 0x000000, 0x80000, CRC(0129f422) SHA1(968e6d25a1aa2116f9e9a6b4b76c83bd63f4f477) ) + ROM_LOAD16_WORD_SWAP( "dinoz_22a.7f", 0x080000, 0x80000, CRC(3861d9d8) SHA1(11dac49f09dfc325b9f529271dc5921d7aacb630) ) + ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) + ROM_LOAD16_WORD_SWAP( "dinoz_20a.5f", 0x180000, 0x80000, CRC(8fc0ab46) SHA1(63abdc8edb06963366bb86a9f3388d1f94c6a7e8) ) + ROM_LOAD16_WORD_SWAP( "dinoz_19a.4f", 0x200000, 0x80000, CRC(93eb9535) SHA1(c8296f7fd124beb786e6f36472948fdee6d1d21c) ) + ROM_LOAD16_WORD_SWAP( "dinoz_18a.3f", 0x280000, 0x80000, CRC(51ba57fd) SHA1(6bb09f8ba10e6543540441d68c49a54188d8d8a0) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cd_gfx01.rom", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx03.rom", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx02.rom", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx04.rom", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx05.rom", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx07.rom", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx06.rom", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "cd_gfx08.rom", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "cd_q.rom", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "cd_q1.rom", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) ) + ROM_LOAD( "cd_q2.rom", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) ) + ROM_LOAD( "cd_q3.rom", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) ) + ROM_LOAD( "cd_q4.rom", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + + +ROM_START( ffightb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "ffu_36b.11f", 0x00000, 0x20000, CRC(a9fa0174) SHA1(a6f669370f1f822b2988c297a8e26bcb6300692d) ) + ROM_LOAD16_BYTE( "ffu_42b.11h", 0x00001, 0x20000, CRC(d47cb6b7) SHA1(26c94b0d91a4343b58a7cc542417d8d36e9f2e34) ) + ROM_LOAD16_BYTE( "ffu_37b.12f", 0x40000, 0x20000, CRC(3fc9f9e3) SHA1(0982c40d5967e5068ec592db022eb16172f95005) ) + ROM_LOAD16_BYTE( "ffu_43b.12h", 0x40001, 0x20000, CRC(5ef051fa) SHA1(f72d45f9d03f78de8d081658098decbadc9e7828) ) + ROM_LOAD16_WORD_SWAP( "ff_22.7f", 0x80000, 0x80000, CRC(b2d5a3aa) SHA1(b60f7480d3d3ceebad4c21025394bacc154d7042) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ff_1.3a", 0x000000, 0x80000, CRC(969d18e2) SHA1(7a30b7434e34ec98838a9ab8d953b2ef467d562e), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff_2.4a", 0x000002, 0x80000, CRC(02b59f99) SHA1(c1cb2bbf95c2006baad58b0a5a7278f1a8999901), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff_3.5a", 0x000004, 0x80000, CRC(01d507ae) SHA1(d7813daa5bd74bebdbbea578acb20ad3c8816997), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ff_4.6a", 0x000006, 0x80000, CRC(f7c4ceb0) SHA1(3e9cf6379f06c5a736b4a0aadb7fbda914b91190), ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "ff_09.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) + ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "s224b.1a", 0x0000, 0x0117, CRC(cdc4413e) SHA1(c74c60f8f4eb125ffb6414aefba270676d9b8a2d) ) + ROM_LOAD_OPTIONAL( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) +ROM_END + + +ROM_START( knight21 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "kr_2321.8f",0x00000, 0x80000, CRC(aacaebcd) SHA1(3c243d59b86b2a51c219c296c12090058851c77d) ) + ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( knightsa ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "kr_23h.rom", 0x00000, 0x80000, CRC(bc3b60f5) SHA1(f8c5e49535bb191d46f4c32e336b2ca92517109a) ) + ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( knightsb2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "040-z.02", 0x00000, 0x80000, CRC(95d00a7e) SHA1(2da1c47aa15d44aa842a8d79e030e7e7b69bec19) ) + ROM_LOAD16_BYTE( "040-r.02", 0x00001, 0x80000, CRC(5a9d0b64) SHA1(6ff312879c3d675ceee6fd3e262f797fabb9871e) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr_gfx1.rom", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx3.rom", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx2.rom", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx4.rom", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx5.rom", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx7.rom", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx6.rom", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx8.rom", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kr_09.rom", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.rom", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.rom", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) +ROM_END + +ROM_START( knightsh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "krh_23.rom", 0x00000, 0x80000, CRC(fa2ff63d) SHA1(f3800102aadeccd13ed49c88039732453266283a) ) + ROM_LOAD16_WORD_SWAP( "krh_22.rom", 0x80000, 0x80000, CRC(1438d070) SHA1(4f6fad844c3e8eb960bb6cb85ac570979c0ae973) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr_gfx1.rom", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx3.rom", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx2.rom", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx4.rom", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx5.rom", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx7.rom", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx6.rom", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx8.rom", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kr_09.rom", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.rom", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.rom", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) +ROM_END + +ROM_START( knightsha ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "krha_23.rom", 0x00000, 0x80000, CRC(a7fd309a) SHA1(b4f163d9588e9d8dd6f2ba6d6ae520efb620c1ac) ) + ROM_LOAD16_WORD_SWAP( "krh_22.rom", 0x80000, 0x80000, CRC(1438d070) SHA1(4f6fad844c3e8eb960bb6cb85ac570979c0ae973) ) + ROM_FILL(0xb7d,1,0x66) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr_gfx1.rom", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx3.rom", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx2.rom", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx4.rom", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx5.rom", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx7.rom", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx6.rom", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx8.rom", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kr_09.rom", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.rom", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.rom", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) +ROM_END + +ROM_START( knightsjb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "23.096", 0x00000, 0x80000, CRC(7733b8a6) SHA1(ecf1a0d2b4631b9d4ba46e4987d226d938ee6628) ) + ROM_LOAD16_WORD_SWAP( "22.096", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(91541596) SHA1(4aac23d826f64c6065271488e3b582b3c9e11703) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(5d332114) SHA1(d340be3aa93b2117bccc9b4a7088c65ca29925b1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(60488eba) SHA1(2117db67ed5c5d3225c3ab3d90932b9786e8060d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(394bdd11) SHA1(9b15abccc8372c04469b5472bd36d368965d1161) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "5.096", 0x200000, 0x80000, CRC(b52af98b) SHA1(3fb9b8fab8dc925d3d17f1428467df513d475d3d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "6.096", 0x200002, 0x80000, CRC(e44e5eac) SHA1(329649d381f1e48fcc37f5d64eb869833a5e0e18) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "7.096", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "8.096", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "9.512", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18.010", 0x00000, 0x20000, CRC(9b9be3ab) SHA1(9a5283d71551e71660a4741a647f5aea7e5ba89b) ) + ROM_LOAD( "19.010", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) +ROM_END + +ROM_START( knightsro ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "knightsro.8f", 0x00000, 0x80000, CRC(a1984e47) SHA1(2c9782c51931b9c365b001daa7c49671dd36147c) ) + ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( knightud ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "knightud.23", 0x00000, 0x80000, CRC(5fe98e7f) SHA1(3e01b9e06663ade831750de3ecd0d3925889a5da) ) + ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) + ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + + +ROM_START( kodd ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "kodd.30", 0x00000, 0x20000, CRC(8eb281a4) SHA1(6e6e316321c500796bba6b888db8e0445b63bea3) ) + ROM_LOAD16_BYTE( "kodd.37", 0x00001, 0x20000, CRC(9c16c2b9) SHA1(1c04419f1223b7a9a0ae2de8f11010b478d58c63) ) + ROM_LOAD16_BYTE( "kodd.31", 0x40000, 0x20000, CRC(b4aeee54) SHA1(ed0b965b2f16a6aeb117e7b12ab10d7d0b87dcdf) ) + ROM_LOAD16_BYTE( "kodd.38", 0x40001, 0x20000, CRC(534554bc) SHA1(c0b73e8a44b4a5b6679f39a146f01fd0f2c270c8) ) + ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) + ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) + ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) ) + ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) ) + ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) +ROM_END + +// - Actor preview flickers instead of wriggling +// - No music in attract mode +ROM_START( kodh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "23.096", 0x00000, 0x80000, CRC(daf89cfb) SHA1(de0944884d0e64c6b0410294d25308201508afbe) ) + ROM_LOAD16_WORD_SWAP( "22.096", 0x80000, 0x80000, CRC(c83e19d8) SHA1(8c342818a1c5337ad4b259700e184972f821aca4) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(09261881) SHA1(e65abce3d39224c2c94673900291a210c1d949cb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(bc121ff2) SHA1(1f75f93652bb6c521bc538e7c2d10920a7897aa2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(f463ae22) SHA1(f8bc17814d38f3693a2a8dc64cc44e1f4fe3102c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(01308733) SHA1(8de29e7063d03493f197cee7a4e4edff3eee8e36) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kod11.rom", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kod13.rom", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) + // Bad dump? Only 1 byte is different + ROMX_LOAD( "7.096", 0x200004, 0x80000, CRC(c7ab4704) SHA1(180852c4d59359c2094feb8ad1f05d70eafe6c55) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kod12.rom", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kd09.bin", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd18.bin", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) ) + ROM_LOAD( "kd19.bin", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) ) +ROM_END + +// - Actor preview flickers instead of wriggling +// - No music in attract mode +ROM_START( kodsp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "kde_30.11e", 0x00000, 0x20000, CRC(c7414fd4) SHA1(37d27fbe7c617a26b53bfdfcd532cf573d42f33b) ) + ROM_LOAD16_BYTE( "kde_37.11f", 0x00001, 0x20000, CRC(a5bf40d2) SHA1(cd34dbeabd0974709411579e669f01d0d799c2a1) ) + ROM_LOAD16_BYTE( "kde_31.12e", 0x40000, 0x20000, CRC(1fffc7bd) SHA1(822c9ad996ca51a99a2bb1fe08fa19e18413030d) ) + ROM_LOAD16_BYTE( "kde_38.12f", 0x40001, 0x20000, CRC(89e57a82) SHA1(aad35f86a8b1b7e3a0b5f3e6efd0e844b3d3d82f) ) + ROM_LOAD16_BYTE( "kde_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) + ROM_LOAD16_BYTE( "kde_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) + ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) ) + ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) ) + + ROM_REGION( 0x400000, "gfx", 0 ) // this set has new gfx roms + ROMX_LOAD( "kodsp.5", 0x000000, 0x80000, CRC(0aaa04b7) SHA1(14ab5944461cb7989659c31ea3be333c513284b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kodsp.7", 0x000002, 0x80000, CRC(28d6b2ff) SHA1(a0934eb3a15b5d21b816ffcdb4208322f0a480b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kodsp.1", 0x000004, 0x80000, CRC(8707e5ac) SHA1(36fd449595b8cd22a3e9a61b4941b0fde821b67a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kodsp.3", 0x000006, 0x80000, CRC(c115f6c6) SHA1(36b0d93b38a3f9c517ebf35bc3c7437794afe6f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kodsp.6", 0x200000, 0x80000, CRC(e8009e30) SHA1(2a1038f627edc5f7b89a5ac2000ba50ac015e29d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kodsp.8", 0x200002, 0x80000, CRC(c76b4156) SHA1(95606000fdd79c2c80082e368a5710087332c8c8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kodsp.2", 0x200004, 0x80000, CRC(34b917e8) SHA1(7e1fb92539199f51f21b24c685fabb04c6a247a7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kodsp.4", 0x200006, 0x80000, CRC(8faba58f) SHA1(9a77f7e69ccc796e09b0fe266b2af0c31fcd85ba) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) ) + ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) +ROM_END + +ROM_START( kodud ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "kodud.30", 0x00000, 0x20000, CRC(c5ada5eb) SHA1(c989c747abfc6f80871d0ee763d5573b321fb48e) ) + ROM_LOAD16_BYTE( "kodud.37", 0x00001, 0x20000, CRC(b8169b17) SHA1(55176bb92fc422d4ce03a011190a7cc6caa082ff) ) + ROM_LOAD16_BYTE( "kodud.31", 0x40000, 0x20000, CRC(72dd68a5) SHA1(db077c2c4716da59880e49af1d066b3c596143e1) ) + ROM_LOAD16_BYTE( "kodud.38", 0x40001, 0x20000, CRC(0021a110) SHA1(0e15786d6e36a62f338dce8508cdd17a69511ed2) ) + ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) + ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) + ROM_LOAD16_BYTE( "kd_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) + ROM_LOAD16_BYTE( "kd_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) ) + ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) +ROM_END + + +ROM_START( pnicku ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "pnij36.bin", 0x00000, 0x20000, CRC(2d4ffb2b) SHA1(6e49cf89a36834fd1de8b4b860fe66f3d7d67a84) ) + ROM_LOAD16_BYTE( "pniu42.bin", 0x00001, 0x20000, CRC(22d20227) SHA1(a103c9b1f6134c529405bd258da9f601c1459c47) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "pnij09.bin", 0x000000, 0x20000, CRC(48177b0a) SHA1(eba5de6cd9bb0c4ad76a13bddc9cdeb2e4380122) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij01.bin", 0x000001, 0x20000, CRC(01a0f311) SHA1(9bcd8716f90ccd410543ffcdc5c2916077b8d4c3) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij13.bin", 0x000002, 0x20000, CRC(406451b0) SHA1(5a7a7fecba7de8b8cf4a284b2ae7adae901623f6) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij05.bin", 0x000003, 0x20000, CRC(8c515dc0) SHA1(aa1e13cf9e7cf0458bb5c4332b1ea73034f9a874) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij26.bin", 0x000004, 0x20000, CRC(e2af981e) SHA1(3c2b28b4a4d457aa94a760dfca0181a9f050c319) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij18.bin", 0x000005, 0x20000, CRC(f17a0e56) SHA1(7c89aca230f176e12f995892f9d1bce22c57fbdf) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij38.bin", 0x000006, 0x20000, CRC(eb75bd8c) SHA1(2129460e06eb64019fc5f7eab6334ff43229b995) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij32.bin", 0x000007, 0x20000, CRC(84560bef) SHA1(9e94ae434b50ecf82781080e11d0c4741e992d0d) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij10.bin", 0x100000, 0x20000, CRC(c2acc171) SHA1(7c86db3f2acca1252d403c5f12c871d0357fa109) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij02.bin", 0x100001, 0x20000, CRC(0e21fc33) SHA1(c4a29d45c4257c8871038d3c9b13140e874db0c1) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij14.bin", 0x100002, 0x20000, CRC(7fe59b19) SHA1(a273b8b8fbfd5d31d25479a9ede09ce35e1cc873) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij06.bin", 0x100003, 0x20000, CRC(79f4bfe3) SHA1(bc17cc1c8535e3d202588893713926b6c06f92fd) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij27.bin", 0x100004, 0x20000, CRC(83d5cb0e) SHA1(44c93fa5eedcafc8dc6d88ee827c6cadc9c671f0) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij19.bin", 0x100005, 0x20000, CRC(af08b230) SHA1(a3b5b3013012efa1860699648518f8d8031c5f30) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij39.bin", 0x100006, 0x20000, CRC(70fbe579) SHA1(b5b7ed5588ecd884b20dd50bfc5385a9af03c5d8) , ROM_SKIP(7) ) + ROMX_LOAD( "pnij33.bin", 0x100007, 0x20000, CRC(3ed2c680) SHA1(0afe84d8d89f8d45afc79f6172337e622e29a8a2) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "pnij17.bin", 0x00000, 0x08000, CRC(e86f787a) SHA1(de04cbe89c655faf04afe169bfd9913049ccc4a8) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "pnij24.bin", 0x00000, 0x20000, CRC(5092257d) SHA1(95dc9d10940653b2fb37baf5c1ed27145b02104e) ) + ROM_LOAD( "pnij25.bin", 0x20000, 0x20000, CRC(22109aaa) SHA1(cf21e75674d81b2daae2083d02f9f4b6e52722c6) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "pkb10b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + + +ROM_START( punisherb ) // punipic in mame + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) ) + ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) ) + ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) ) + ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "9.bin", 0x000000, 0x40000, CRC(9b9a887a) SHA1(8805b36fc18837bd7c64c751b435d72b763b2235), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000 ) + ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(2b94287a) SHA1(815d88e66f537e17550fc0483616f02f7126bfb1), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000 ) + ROMX_LOAD( "7.bin", 0x000002, 0x40000, CRC(e9bd74f5) SHA1(8ed7098c69d1c70093c99956bf82e532bd6fc7ac), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000 ) + ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(a5e1c8a4) SHA1(3596265a45cf6bbf16c623f0fce7cdc65f9338ad), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000 ) + ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(6d75a193) SHA1(6c5a89517926d7ba4a925a3df800d4bdb8a6938d), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x200004, 0x40000 ) + ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(a3c205c1) SHA1(6317cc49434dbbb9a249ddd4b50bd791803b3ebe), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x200005, 0x40000 ) + ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(22f2ec92) SHA1(9186bfc5db71dc5b099c9a985e8fdd5710772d1c), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x200006, 0x40000 ) + ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(763974c9) SHA1(f9b93c7cf0cb8c212fc21c57c85459b7d2e4e2fd), ROM_GROUPBYTE | ROM_SKIP(7) ) + ROM_CONTINUE( 0x200007, 0x40000 ) + + ROM_REGION( 0x80000, "user1", 0 ) // spare rom + ROM_LOAD_OPTIONAL( "1.bin", 0x00000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ps63b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( punisherf ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "punisherf.23", 0x000000, 0x80000, CRC(ebab7576) SHA1(2a1664ebaf813a21986c97c16142ffd7c93c7a3b) ) + ROM_LOAD16_WORD_SWAP( "psj22h.bin", 0x080000, 0x80000, CRC(84c5783e) SHA1(19571cdc4bf4cc1e59694fc8064cc88a49656449) ) + ROM_LOAD16_WORD_SWAP( "punisherf.21", 0x100000, 0x80000, CRC(2bccb0ed) SHA1(44f45431d7ecca6eb8942be3d44b99cf856d12ab) ) + ROM_FILL(0x9042A, 5, 0x4E) // remove jsr into the weeds (caused illegal instruction on stage 1) + ROM_FILL(0x9042B, 1, 0x71) + ROM_FILL(0x9042D, 1, 0x71) + ROM_FILL(0x9042F, 1, 0x71) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps_gfx1.rom", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx3.rom", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx2.rom", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx4.rom", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) +ROM_END + +ROM_START( punisherje1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "psj23ex.bin", 0x000000, 0x80000, CRC(fa084bab) SHA1(af323e6399ab5d3091a57188d3cedc1d0600dd3d) ) + ROM_LOAD16_WORD_SWAP( "psj22ex.bin", 0x080000, 0x80000, CRC(69433b02) SHA1(cc7127170fad47562aaded71a3c1e216084667f8) ) + ROM_LOAD16_WORD_SWAP( "psje1.21", 0x100000, 0x80000, CRC(86aa8774) SHA1(501db3229c49ecd60eab72391f575f7df47e8782) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( punisherjh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "psj23h.bin", 0x000000, 0x80000, CRC(41cb77e9) SHA1(7e2a21bd217c976b448a51ba8bdbab820a30851a) ) + ROM_LOAD16_WORD_SWAP( "psj22h.bin", 0x080000, 0x80000, CRC(84c5783e) SHA1(19571cdc4bf4cc1e59694fc8064cc88a49656449) ) + ROM_LOAD16_WORD_SWAP( "ps_21.rom", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps_gfx1.rom", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx3.rom", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx2.rom", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx4.rom", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ps63b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( punisherjh1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "psjh1.23", 0x000000, 0x80000, CRC(75ed76a4) SHA1(8ba66fd6a1912aae4c382ac8900f522474884771) ) + ROM_LOAD16_WORD_SWAP( "psjh1.22", 0x080000, 0x80000, CRC(b17f61f0) SHA1(a5550bb359941bea96cefb818ccbb175a0b20687) ) + ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( punisherjha ) // punishje2: The Punisher (SM Experience Edition hack by Zhyxxxx set 2 13/06/09) : multijet + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "psj23ex.bin", 0x000000, 0x80000, CRC(fa084bab) SHA1(af323e6399ab5d3091a57188d3cedc1d0600dd3d) ) + ROM_LOAD16_WORD_SWAP( "psj22ex.bin", 0x080000, 0x80000, CRC(69433b02) SHA1(cc7127170fad47562aaded71a3c1e216084667f8) ) + ROM_LOAD16_WORD_SWAP( "ps_21ex.rom", 0x100000, 0x80000, CRC(e4e15e4a) SHA1(405d57983ed33276e6fde155d4c78c2973466483) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ps63b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( punisherud1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE ( "psud1_26.11e", 0x000000, 0x20000, CRC(f820e620) SHA1(7c2e55b4dc7aaf27badceafd7bde483f33676351) ) + ROM_LOAD16_BYTE ( "psud1_30.11f", 0x000001, 0x20000, CRC(90afc70a) SHA1(73d5325a482becf46ef75456134242db7f1a31f8) ) + ROM_LOAD16_BYTE ( "psu_27.12e", 0x040000, 0x20000, CRC(61c960a1) SHA1(f8fe651283cc1f138d013cab65b833505de6df9f) ) + ROM_LOAD16_BYTE ( "psud1_31.12f", 0x040001, 0x20000, CRC(e1239351) SHA1(7437a5e93ed72b8a52292aeb71c678e1462c8578) ) + ROM_LOAD16_BYTE ( "psud1_24.9e", 0x080000, 0x20000, CRC(22ef4de9) SHA1(358acdce233182280e5eb77da178ec0f08beca7f) ) + ROM_LOAD16_BYTE ( "psud1_28.9f", 0x080001, 0x20000, CRC(e45f5b6d) SHA1(daf25f24f8955387086acd337b19dfea5507adb8) ) + ROM_LOAD16_BYTE ( "psu_25.10e", 0x0c0000, 0x20000, CRC(c51acc94) SHA1(34ffd6392914e3e67d7d0804215bd1193846b554) ) + ROM_LOAD16_BYTE ( "psu_29.10f", 0x0c0001, 0x20000, CRC(52dce1ca) SHA1(45277abe34feacdcaedaec56f513b7437d4260e9) ) + ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + +ROM_START( punisherud2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "psud2.23", 0x000000, 0x80000, CRC(019efb28) SHA1(1790db51ce7cd1281932359de6e4e1e046db0369) ) + ROM_LOAD16_WORD_SWAP( "psud2.22", 0x080000, 0x80000, CRC(c0110a4e) SHA1(43f6086634c332a58d95b0b51995ba1ab8ed1367) ) + ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) ) + ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) ) + ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) ) + ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + + +ROM_START( sf2c ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2j_30", 0x00000, 0x20000, CRC(70813e5e) SHA1(39219a98d368dcb67cbd0a756f3e1fab7b9352f4) ) + ROM_LOAD16_BYTE( "sf2j_37", 0x00001, 0x20000, CRC(d0659611) SHA1(1368228cc2c41a361f0e8eb516610522a38394b2) ) + ROM_LOAD16_BYTE( "sf2j31.bin", 0x40000, 0x20000, CRC(fe15cb39) SHA1(383478524881ea70d9e04c9b6143b8735b637eee) ) + ROM_LOAD16_BYTE( "sf2j38.bin", 0x40001, 0x20000, CRC(38614d70) SHA1(39c58096f3a8e01fb439639b742b83102bbaa7f6) ) + ROM_LOAD16_BYTE( "sf2j_28", 0x80000, 0x20000, CRC(2d4a1b8a) SHA1(9dce74c32fa9c63f38d33a03327b22e74d2118c1) ) + ROM_LOAD16_BYTE( "sf2j_35", 0x80001, 0x20000, CRC(5f622bdb) SHA1(4fe5797acc2645a1bd27d247457b6f24bfd60f96) ) + ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06", 0x000000, 0x80000, CRC(d3aab35d) SHA1(bc90464bc38b326b46f0da97008116ee639e2598) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_08", 0x000002, 0x80000, CRC(f6a68d56) SHA1(4ef2668a245fb207c599f0e72e979f8c0191df25) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_05", 0x000004, 0x80000, CRC(1ddcda55) SHA1(494338ac59e4253177b731bd6ad116a63f7ded8c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_07", 0x000006, 0x80000, CRC(d3274004) SHA1(a278e0740806cf8098058d1c33eb0964cc130ded) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_15", 0x200000, 0x80000, CRC(f8710c69) SHA1(a298117a7869b0891220c229d0dceba7ac6bf594) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_17", 0x200002, 0x80000, CRC(dd376567) SHA1(a817c999098b0274ed2c052b96c562bed407b7b1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_14", 0x200004, 0x80000, CRC(c754e2c4) SHA1(7936eaa669c84742c1511768bb9039c26b2fb3c3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_16", 0x200006, 0x80000, CRC(0d4799bd) SHA1(5e63e889cabc4436c2a49997c9d0a47529d264ad) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_25", 0x400000, 0x80000, CRC(a6671144) SHA1(f4017ad15784078c00ef76220f4e5bdba61a6495) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_27", 0x400002, 0x80000, CRC(008b2bdd) SHA1(a048a70fe3c752b79e14eadf2369f068fc831439) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_24", 0x400004, 0x80000, CRC(0f8a9ec4) SHA1(cde0013df78333ebfbaacb9a9e212fbc0b2e04d3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sf2_26", 0x400006, 0x80000, CRC(0fb4241e) SHA1(f749daa6ecf018542ecf0f3711491eb85fac91b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD_OPTIONAL( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( sf2cebr ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2cebr.23", 0x000000, 0x80000, CRC(74e848ee) SHA1(6DCE8D0C7D439E6D1D08C8169A3ECDF178E82C16) ) + ROM_LOAD16_WORD_SWAP( "sf2cebr.22", 0x080000, 0x80000, CRC(c3c49626) SHA1(D0FAE1D2758360B56E6E583FEB4BDF7D4E2E1EBA) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92br_10.bin", 0x400000, 0x80000, CRC(b3e1dd5f) SHA1(714BF1519CED85567D3D35FDF4AA9E4268CC9F0F) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92br_11.bin", 0x400002, 0x80000, CRC(f13af812) SHA1(E3711CBAA3169D0F48DF420953F1AFD0AB76EE08) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92br_12.bin", 0x400004, 0x80000, CRC(10ce42af) SHA1(530B2A6E2D13B2694BD611B31B056B7458FD1571) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92br_13.bin", 0x400006, 0x80000, CRC(32cf5af3) SHA1(43972C07F5CCF01B0CE0727541590C3C6B97C300) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) +ROM_END + +ROM_START( sf2ced ) // Drakon 7.1 + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2ced_23b.8f", 0x000000, 0x80000, CRC(8628f0e2) SHA1(da1f89ccbfb175d39f7e5c69c1c7088205109187) ) + ROM_LOAD16_WORD_SWAP( "sf2ced_22b.7f", 0x080000, 0x80000, CRC(b7b87a54) SHA1(ab441c30ba6b0e2e8b9785d77b96535357818e0b) ) + ROM_LOAD16_WORD_SWAP( "sf2ced_21a.6f", 0x100000, 0x80000, CRC(b4f13bef) SHA1(5e6501c157890899848bccb34db06b3570e84c17) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "s9263b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( sf2ceda ) // Drakon unknown version + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2ceda_23b.8f", 0x000000, 0x80000, CRC(a8a81db7) SHA1(dd0d12ea049292bad48f1009419581695ea41618) ) + ROM_LOAD16_WORD_SWAP( "sf2ceda_22b.7f", 0x080000, 0x80000, CRC(3c9ee969) SHA1(714fb726c336c5807a1b1d2112e89d3aa5c4af91) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "s9263b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( sf2ceh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2ceh.23", 0x000000, 0x80000, CRC(25dc14c8) SHA1(fc7b5de3a50d7d9ee977091bab5f82f824e386f2) ) + ROM_LOAD16_WORD_SWAP( "sf2ceh.22", 0x080000, 0x80000, CRC(1c9dd91c) SHA1(66fbd10958d3b9f027bc3ba85c99b649cf866ab7) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) +ROM_END + +ROM_START( sf2koryuh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222.rom", 0x000000, 0x80000, CRC(9236a79a) SHA1(39c47b0b0ca2f5f569ff07ebb91040b95d0cb43b) ) + ROM_LOAD16_BYTE( "u196.rom", 0x000001, 0x80000, CRC(2722741f) SHA1(d2a2ea29894fbf731f6c8573b85e046dd52e2c97) ) + ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) ) + ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2h9 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf3a-1.040", 0x000000, 0x80000, CRC(9e6d058a) SHA1(8c9adca7b65dc929c325c0a62304d24dc0902c08) ) + ROM_LOAD16_BYTE( "sf3a-3.040", 0x000001, 0x80000, CRC(518d8404) SHA1(635d8ac07126caf3c623d1f28aad38c5bc4c4bae) ) + ROM_LOAD16_BYTE( "sf3a-2", 0x100000, 0x20000, CRC(fca4fc1e) SHA1(2b05d67443af099f95ef50f5e25d7a74b957e7a5) ) + ROM_LOAD16_BYTE( "sf3a-4", 0x100001, 0x20000, CRC(cfdd6f54) SHA1(2aa3f5a7b36930185382c64712cc0cfceb6f1ab3) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2h10 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sfu9-1.040", 0x000000, 0x80000, CRC(95306baf) SHA1(471d1578607ae1090aa46cb111a8c2745d1fd47b) ) + ROM_LOAD16_BYTE( "sfu9-3.040", 0x000001, 0x80000, CRC(21024d5f) SHA1(986b3910ce749f4ad42e1f86537a8fc3f0f3f867) ) + ROM_LOAD16_BYTE( "sfu9-2.020", 0x100000, 0x40000, CRC(0b3fe5dd) SHA1(9b66cb867da61595f53d1c9e6b48c6bb7e06e1e0) ) + ROM_LOAD16_BYTE( "sfu9-4.020", 0x100001, 0x40000, CRC(dbee7b18) SHA1(e56af12fc9d30e92d37e688ff621ea09abb94b53) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2h11 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sfu7-1.040", 0x000000, 0x80000, CRC(866a9b31) SHA1(92f89084293b69a9d5cd8d282ffaaca0739f1b03) ) + ROM_LOAD16_BYTE( "sfu7-3.040", 0x000001, 0x80000, CRC(f3a45593) SHA1(0ba0d05f904ac17cd34c0a7c9dd0a20759ff4e78) ) + ROM_LOAD16_BYTE( "sfu7-2.010", 0x100000, 0x20000, CRC(d1707134) SHA1(5bfdf7bc57bdb85183647ebb175346070dd102ee) ) + ROM_LOAD16_BYTE( "sfu7-4.010", 0x100001, 0x20000, CRC(cd1d5666) SHA1(8befd2c324eb29bdad6fc8fb2554cdfaf9808f9b) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2h12 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sfu8-1.040", 0x000000, 0x80000, CRC(10ec67fe) SHA1(9eb30a0f64bf29028f89f9af74cb9d840ed197e2) ) + ROM_LOAD16_BYTE( "sfu8-3.040", 0x000001, 0x80000, CRC(92eb3a1c) SHA1(0ee294c8b82b100f98da697562f9644b71cabcdd) ) + ROM_LOAD16_BYTE( "sfu8-2.010", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) ) + ROM_LOAD16_BYTE( "sfu8-4.010", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2h13 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "222-040.13", 0x000000, 0x80000, CRC(ec6f5cb3) SHA1(24b3fc88a08a721985b053120997090bc394bc8e) ) + ROM_LOAD16_BYTE( "196-040.13", 0x000001, 0x80000, CRC(0e9ac52b) SHA1(2c5faf7d8b598f2110f389aefa1a02e2281382ee) ) + ROM_LOAD16_BYTE( "221-010.13", 0x100000, 0x20000, CRC(8226c11c) SHA1(9588bd64e338901394805aca8a234f880674dc60) ) + ROM_LOAD16_BYTE( "sfu8-4.010", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s2t_10.bin", 0x400000, 0x80000, CRC(3c042686) SHA1(307e1ca8ad0b11f3265b7e5467ba4c90f90ec97f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s2t_11.bin", 0x400002, 0x80000, CRC(8b7e7183) SHA1(c8eaedfbddbf0b83311d2dbb9e19a1efef0dffa9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s2t_12.bin", 0x400004, 0x80000, CRC(293c888c) SHA1(5992ea9aa90fdd8b9dacca9d2a1fdaf25ac2cb65) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s2t_13.bin", 0x400006, 0x80000, CRC(842b35a4) SHA1(35864a140a0c8d76501e69b2e01bc4ad76f27909) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2pun ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2pun.23", 0x000000, 0x80000, CRC(8c3bb8f8) SHA1(756ae3980c15d037ff6e70d0c309d9caed6bac4f) ) + ROM_LOAD16_WORD_SWAP( "sf2pun.22", 0x080000, 0x80000, CRC(0786f114) SHA1(4a6b52c98c839fcde2b7f425739569abc74c91f4) ) + ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( sf2sl73a ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sf2sl73a.23", 0x000000, 0x80000, CRC(190f5419) SHA1(7fc7f3b6788d25b190bda3b3b6cf76a396d7d586) ) + ROM_LOAD16_WORD_SWAP( "sf2sl73a.22", 0x080000, 0x80000, CRC(2b329193) SHA1(b1576b610e384fbeaef7be711888fb3fa3f10b1a) ) + ROM_LOAD16_WORD_SWAP( "sf2sl73a.21", 0x100000, 0x80000, CRC(b4f13bef) SHA1(5e6501c157890899848bccb34db06b3570e84c17) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + ROM_LOAD_OPTIONAL( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + +ROM_START( sf2th ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) ) + ROM_LOAD16_BYTE( "4.amf", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) ) + ROM_LOAD16_BYTE( "u2221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) ) + ROM_LOAD16_BYTE( "stf2th-4.bin", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + // These map over the MASK roms on this bootleg + ROMX_LOAD( "stf2th-10.bin",0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "stf2th-12.bin",0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "stf2th-9.bin", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "stf2th-11.bin",0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2tha ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "t-2.u52", 0x000000, 0x80000, CRC(0d305e8b) SHA1(7094160abbf24c119a575d93e3fe1ab84b537de0) ) + ROM_LOAD16_BYTE( "t-1.u36", 0x000001, 0x80000, CRC(137d8665) SHA1(cf4805a11ab614ce5b7e1302ac14ba50fb01e5f4) ) + ROM_LOAD16_BYTE( "t-4.u54", 0x100000, 0x40000, CRC(0b3fe5dd) SHA1(9b66cb867da61595f53d1c9e6b48c6bb7e06e1e0) ) + ROM_LOAD16_BYTE( "t-3.u38", 0x100001, 0x40000, CRC(dbee7b18) SHA1(e56af12fc9d30e92d37e688ff621ea09abb94b53) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "w03.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w05.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w04.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w06.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w07.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w09.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w08.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w10.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w11.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w13.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "w14.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + // These map over the MASK roms on this bootleg + ROMX_LOAD( "r04.bin", 0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "r06.bin", 0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "r03.bin", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "r05.bin", 0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2tlona ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "tl4mt.1", 0x000000, 0x80000, CRC(158635ca) SHA1(878b56064861993ac92fbd88eb1117d3680fe7d7) ) + ROM_LOAD16_BYTE( "tl4m.2", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) ) + ROM_LOAD16_BYTE( "u221t.1m", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) ) + ROM_LOAD16_BYTE( "u195t.1m", 0x100001, 0x20000, CRC(db7e1f72) SHA1(1ca99a3b425ac137f3c104cf4deb50d9431dacdd) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2tlonb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "tl4m.1", 0x000000, 0x80000, CRC(afc7bd18) SHA1(ef7af7fb3563073b96563274ec48783feb2be757) ) + ROM_LOAD16_BYTE( "tl4m.2", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) ) + ROM_LOAD16_BYTE( "u221.1m", 0x100000, 0x20000, CRC(d1707134) SHA1(5bfdf7bc57bdb85183647ebb175346070dd102ee) ) + ROM_LOAD16_BYTE( "u195.1m", 0x100001, 0x20000, CRC(cd1d5666) SHA1(8befd2c324eb29bdad6fc8fb2554cdfaf9808f9b) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2tlonc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf11-1.040", 0x000000, 0x80000, CRC(afc7bd18) SHA1(ef7af7fb3563073b96563274ec48783feb2be757) ) + ROM_LOAD16_BYTE( "sf11-3.040", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) ) + ROM_LOAD16_BYTE( "sf11-2.010", 0x100000, 0x20000, CRC(f8a5cd53) SHA1(f474e6d24f25ca9a126bd68b02089a0161e2cc0d) ) + ROM_LOAD16_BYTE( "sf11-4.010", 0x100001, 0x20000, CRC(db7e1f72) SHA1(1ca99a3b425ac137f3c104cf4deb50d9431dacdd) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2turyu ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "u222-f83.040", 0x000000, 0x100000, CRC(47468198) SHA1(D68D6342DA9B53163F36F44517F6DADF35E2A279) ) + ROM_LOAD16_BYTE( "u196-99d.040", 0x000001, 0x100000, CRC(47d34191) SHA1(6718FDC8A0DAFEBCA7C35553CC270D16CE3F5D3E) ) + ROM_LOAD16_BYTE( "u221-59e.010", 0x100000, 0x40000, CRC(5507bac9) SHA1(7797CA13CB02DB469DCBA00A07B1517C3586423E) ) + ROM_LOAD16_BYTE( "u195-472.010", 0x100001, 0x40000, CRC(7755a20a) SHA1(60ED4009C9C767A375A754C06C124EF81BA45F5A) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2yyc3d5 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf3d5-1040", 0x000000, 0x80000, CRC(bcdd2c3a) SHA1(eff98e425f283afc69064e8bc73f769e0aab93ed) ) + ROM_LOAD16_BYTE( "sf3d5-3040", 0x000001, 0x80000, CRC(01965987) SHA1(42abce3aa983ac4143490c0ab2e772a154905860) ) + ROM_LOAD16_BYTE( "sf3d5-2010", 0x100000, 0x20000, CRC(dd2e1d31) SHA1(22b341a7365ba4a52c9ee2244d68409c5e86bcf0) ) + ROM_RELOAD( 0x140000, 0x20000 ) + ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) ) + ROM_RELOAD( 0x140001, 0x20000 ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2yyc3g ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf3g-1040", 0x000000, 0x80000, CRC(c90559a5) SHA1(f45563c79cf5ce610f92ca84c96d337cf6c9a979) ) + ROM_LOAD16_BYTE( "sf3g-3040", 0x000001, 0x80000, CRC(81f36682) SHA1(53776084c973c0b7aafb203e8efcfd5f5c659c93) ) + ROM_LOAD16_BYTE( "sf3g-2010", 0x100000, 0x20000, CRC(9eee20a1) SHA1(a6769744094dc0e65f9f34ef36929e7e8ae6155b) ) + ROM_RELOAD( 0x140000, 0x20000 ) + ROM_LOAD16_BYTE( "sf3g-4010", 0x100001, 0x20000, CRC(6ac3d875) SHA1(ab4384d7a9194b2628836013d3d9f275d55c77bb) ) + ROM_RELOAD( 0x140001, 0x20000 ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +ROM_START( sf2yyc6 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf6-1040", 0x000000, 0x80000, CRC(ccd74822) SHA1(5f64585335ccc0fb1a97339532a6694076e2b6f2) ) + ROM_LOAD16_BYTE( "sf6-3040", 0x000001, 0x80000, CRC(2a48b557) SHA1(2e74925a925f86619d4f8e633af718a5eaa8c585) ) + ROM_LOAD16_BYTE( "u2221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) ) + ROM_RELOAD( 0x140000, 0x20000 ) + ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) ) + ROM_RELOAD( 0x140001, 0x20000 ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + + +ROM_START( sk2h1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sgyx.800", 0x000000, 0x100000, CRC(3703a650) SHA1(6cb8d6f99df5e2e5cf04aee8737bb585f9328ffd) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) ) + ROM_RELOAD( 0x8000, 0x10000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) ) +ROM_END + +ROM_START( sk2h1q ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sgyx.800", 0x000000, 0x100000, CRC(3703a650) SHA1(6cb8d6f99df5e2e5cf04aee8737bb585f9328ffd) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "fg-c.040", 0x000000, 0x80000, CRC(d046fc86) SHA1(0ae0b9310e3a122cb69df4bb23672149794242f0) ) + ROM_LOAD16_BYTE( "fg-a.040", 0x000001, 0x80000, CRC(f176ee8f) SHA1(fba357c31774aeecef88f70df4294514585df3a0) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) ) + ROM_RELOAD( 0x8000, 0x10000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) ) +ROM_END + +ROM_START( sk2h2q ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "fg-c.040", 0x000000, 0x80000, CRC(d046fc86) SHA1(0ae0b9310e3a122cb69df4bb23672149794242f0) ) + ROM_LOAD16_BYTE( "fg-a.040", 0x000001, 0x80000, CRC(f176ee8f) SHA1(fba357c31774aeecef88f70df4294514585df3a0) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h3 ) // same as MAME sgyxz - here until it gets fixed + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 Code */ + ROM_LOAD16_BYTE( "sgyxz_prg2.bin", 0x000000, 0x20000, CRC(95429c83) SHA1(e981624d018132e5625a66113b6ac4fc44e55cf7) ) + ROM_CONTINUE( 0x80000, 0x20000 ) + ROM_CONTINUE( 0x40000, 0x20000 ) + ROM_CONTINUE( 0xc0000, 0x20000 ) + ROM_LOAD16_BYTE( "sgyxz_prg1.bin", 0x000001, 0x20000, CRC(d8511929) SHA1(4de9263778f327693f4d1e21b48e43806f673487) ) + ROM_CONTINUE( 0x80001, 0x20000 ) + ROM_CONTINUE( 0x40001, 0x20000 ) + ROM_CONTINUE( 0xc0001, 0x20000 ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) ) + ROM_RELOAD( 0x8000, 0x10000 ) + + ROM_REGION( 0x040000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) ) +ROM_END + +ROM_START( sk2h11 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "htk2a_23b.rom", 0x000000, 0x80000, CRC(1b17fc85) SHA1(d8c2bd31474dce2330adb05b859ce3fd13040d23) ) + ROM_LOAD16_WORD_SWAP( "htk2a_22b.rom", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx5.rom", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx7.rom", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx6.rom", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx8.rom", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( sk2h12 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "htk2ah_23b.rom", 0x000000, 0x80000, CRC(6e3ff382) SHA1(14ef2c708da134f925efa0c3886a104c3ef9e5d7) ) + ROM_LOAD16_WORD_SWAP( "htk2a_22b.rom", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx5.rom", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx7.rom", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx6.rom", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx8.rom", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h13 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2ah_23b.rom", 0x000000, 0x80000, CRC(48fd83c6) SHA1(8f33124979d7ca4c2af10f2a98b524e5463458cc) ) + ROM_LOAD16_WORD_SWAP( "htk2a_22b.rom", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx5.rom", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx7.rom", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx6.rom", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx8.rom", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h14 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "wofchs.23", 0x000000, 0x80000, CRC(2d70231a) SHA1(57c05c5685e8b3b6de81ab4eed05bd2ad08dbe57) ) + ROM_LOAD16_WORD_SWAP( "wofchs.22", 0x080000, 0x80000, CRC(5eac2794) SHA1(76c50ef1fea35f86122ede62acfcd56abb866608) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wofchs.5", 0x200000, 0x80000, CRC(38a90eb1) SHA1(6a2d1fe437341e9339a21dc2a1746f35d8fe9a38) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wofchs.7", 0x200002, 0x80000, CRC(fa1e10ca) SHA1(da0a81f470a48069ff4b595706d3d7ad2a6e3c37) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wofchs.6", 0x200004, 0x80000, CRC(0b0b156c) SHA1(9301ab5480290057b151cc70a45cfa2a75b31f23) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wofchs.8", 0x200006, 0x80000, CRC(76b9e160) SHA1(a8dfbd15488c18ca3730b9c493140f50ab89a64e) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h15 ) // wofaehp + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sk2h15.8f", 0x000000, 0x80000, CRC(261766b2) SHA1(25cf51d0fb90e4a4e39492162f67de0defbc4285) ) + ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h16 ) // wofahp2 + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sk2h16.8f", 0x000000, 0x80000, CRC(7aed1751) SHA1(e5e10cae12a90c10831ad62669f8c2293a2ab263) ) + ROM_LOAD16_WORD_SWAP( "sk2h16.7f", 0x080000, 0x80000, CRC(89483936) SHA1(8f5d19e9c9660908d2bc256418e63b2c89f64fc4) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h21 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "3js_23.rom", 0x000000, 0x80000, CRC(1ebb76da) SHA1(a3d9643a03e964477abd5164202566fe4a11b902) ) + ROM_LOAD16_WORD_SWAP( "3js_22.rom", 0x080000, 0x80000, CRC(f41d6153) SHA1(a2cafea8402ab58e8022020242397e7cdce57aff) ) + ROM_LOAD16_BYTE( "3js_24.rom", 0x0c0000, 0x20000, CRC(06ead409) SHA1(7289afd15fecd185350d2705476d74baa6909782) ) + ROM_LOAD16_BYTE( "3js_28.rom", 0x0c0001, 0x20000, CRC(8ba934e6) SHA1(b9fb1d000a90cf2dbe2113130939c146f16a776e) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "3js_gfx5.rom", 0x200000, 0x80000, CRC(94b58f82) SHA1(937e7bb74e47f7ed670f63cdf7e502cf6ffe09c8), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "3js_gfx7.rom", 0x200002, 0x80000, CRC(df4fb386) SHA1(4eece42595084dbab1fa2c603f231fc67efb292d), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "3js_gfx6.rom", 0x200004, 0x80000, CRC(c22c5bd8) SHA1(4dd3598ca9cbbceabfb28b1b0d8a4879fcdb9a13), ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "3js_gfx8.rom", 0x200006, 0x80000, CRC(f9cfd08b) SHA1(cd55ef014705d8b07c3eb9dafdbf2a831ea25b7c), ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "3js_09.rom", 0x00000, 0x08000, CRC(21ce044c) SHA1(425fd8d33d54f35ef90d68a7530db7a0eafb600d) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "3js_18.rom", 0x000000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) ) + ROM_LOAD( "3js_19.rom", 0x020000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) ) + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h22 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "cx2.040", 0x00000, 0x20000, CRC(c01a6d2f) SHA1(c1e69e075bb01141c026bf0722a64659e1802184) ) + ROM_CONTINUE( 0x80000, 0x20000 ) + ROM_CONTINUE( 0x40000, 0x20000 ) + ROM_CONTINUE( 0xc0000, 0x20000 ) + ROM_LOAD16_BYTE( "cx1.040", 0x00001, 0x20000, CRC(fd95e677) SHA1(42a10e73bd30498dc39cd66abf73680799ebe8b0) ) + ROM_CONTINUE( 0x80001, 0x20000 ) + ROM_CONTINUE( 0x40001, 0x20000 ) + ROM_CONTINUE( 0xc0001, 0x20000 ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tx-a.160", 0x000000, 0x80000, CRC(ae348da2) SHA1(e86ab38e75c46ff2a4fa974fbbd3c2d2f67cef36), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "tx-b.160", 0x000002, 0x80000, CRC(384a6db0) SHA1(57273edce545a7fb4026cb4c705d97d71f24ea6f), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) ) + ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) ) +ROM_END + +ROM_START( sk2h31 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "k6b.040", 0x000000, 0x80000, CRC(7b365108) SHA1(e4ef6e7267ecf36d8b15c7df0351b38777cd559d) ) + ROM_LOAD16_BYTE( "k6a.040", 0x000001, 0x80000, CRC(10488a51) SHA1(061d5139f4289cbca9e0a743954d9c65a9384c06) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) ) + ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) ) +ROM_END + +ROM_START( sk2h31q ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "k6b.040", 0x000000, 0x80000, CRC(7b365108) SHA1(e4ef6e7267ecf36d8b15c7df0351b38777cd559d) ) + ROM_LOAD16_BYTE( "k6a.040", 0x000001, 0x80000, CRC(10488a51) SHA1(061d5139f4289cbca9e0a743954d9c65a9384c06) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h32 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "3js.800", 0x000000, 0x100000, CRC(812f9200) SHA1(ddf4261c21762e8168d83393a59aa1450762a89a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) ) + ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) ) +ROM_END + +ROM_START( sk2h32q ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "3js.800", 0x000000, 0x100000, CRC(812f9200) SHA1(ddf4261c21762e8168d83393a59aa1450762a89a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h33 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "c-c47b.040", 0x000000, 0x80000, CRC(b1809761) SHA1(99a17ed193654f61622eb721e20b69894c96d3d8) ) + ROM_LOAD16_BYTE( "a-2402.040", 0x000001, 0x80000, CRC(4fab4232) SHA1(d8ffd06cce73e1c4bc6abb69a2e81277ce901563) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) ) + ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) ) +ROM_END + +ROM_START( sk2h33q ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "c-c47b.040", 0x000000, 0x80000, CRC(b1809761) SHA1(99a17ed193654f61622eb721e20b69894c96d3d8) ) + ROM_LOAD16_BYTE( "a-2402.040", 0x000001, 0x80000, CRC(4fab4232) SHA1(d8ffd06cce73e1c4bc6abb69a2e81277ce901563) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx5.rom", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx7.rom", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx6.rom", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx8.rom", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h34 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "one.800", 0x000000, 0x100000, CRC(0507584d) SHA1(5a9df64b7c2c54c5aa0d4c9486c7404157c6119e) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) ) + ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) ) +ROM_END + +ROM_START( sk2h34q ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "one.800", 0x000000, 0x100000, CRC(0507584d) SHA1(5a9df64b7c2c54c5aa0d4c9486c7404157c6119e) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx5.rom", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx7.rom", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx6.rom", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx8.rom", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( sk2h35 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "c-d140.040", 0x000000, 0x80000, CRC(e6d933a6) SHA1(c1f08bbbfc855bbc96b844eed7b1e4f9a0a07fbf) ) + ROM_LOAD16_BYTE( "a-0050.040", 0x000001, 0x80000, CRC(403eaead) SHA1(ce6d061e5ee91de779c8d0c19bed273dc4769900) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx5.rom", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx7.rom", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx6.rom", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx8.rom", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + + +ROM_START( slammastud ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "mbu_23ed.8f", 0x000000, 0x80000, CRC(7697273f) SHA1(d42ce6414b42db14305f0497fb760e8a3e868b9d) ) + ROM_LOAD16_BYTE( "mbu_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) ) + ROM_LOAD16_BYTE( "mbu_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) ) + ROM_LOAD16_BYTE( "mbu_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) ) + ROM_LOAD16_BYTE( "mbu_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) ) + ROM_LOAD16_WORD_SWAP( "mbu_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) ) + ROM_LOAD16_WORD_SWAP( "mbu_20a.5f", 0x180000, 0x80000, CRC(fc848af5) SHA1(cd3f6e50779b89ee57a9d08bfa1d58dea286457c) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x8000, "user1", 0 ) + ROM_COPY( "audiocpu", 0x00000, 0x00000, 0x8000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) ) + ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) ) + ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) ) + ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) ) + ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) ) + ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) ) + ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) ) + ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) +ROM_END + + +ROM_START( stridergf ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) ) + ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) ) + ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) ) + ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) ) + ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "st-2.8a", 0x000000, 0x80000, CRC(f92cc010) SHA1(7cec7f7cdc7efce28fd49ae0220a41d2fa811fd0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-11.10a", 0x000002, 0x80000, CRC(9abd7b1e) SHA1(cb00c37ad5b53daee8a1d7bb949adc3559561d13) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-5.4a", 0x000004, 0x80000, CRC(0dcc68b1) SHA1(9c3179082944a6ca105046a02cea38170e91696f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-9.6a", 0x000006, 0x80000, CRC(77f5debd) SHA1(796a1b6cda78cb5612c494dff52c3ac12c1d6531) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) ) + ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "st24m1.1a", 0x0000, 0x0117, CRC(a80d357e) SHA1(4cb79c99c62c8300e694f4cd26f41dab7818f17f) ) + ROM_LOAD_OPTIONAL( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + +ROM_START( stridergh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) ) + ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) ) + ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) ) + ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) ) + ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "st-2.8a", 0x000000, 0x80000, CRC(ea572e97) SHA1(60fed8d1375334a815e18365a626eece9d07b1cd) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-11.10a", 0x000002, 0x80000, CRC(d0bb852f) SHA1(0079418eafd751cd7a47053ef30a2042626fea8f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-5.4a", 0x000004, 0x80000, CRC(8c408787) SHA1(291c9bd8d73e3ed9913164a034098ba94da4c03a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-9.6a", 0x000006, 0x80000, CRC(07ba4914) SHA1(007d978a0d100c6dc9d1942e5b641b3a4e8ad678) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x8000, "stars", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) ) + ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD_OPTIONAL( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "st24m1.1a", 0x0000, 0x0117, CRC(a80d357e) SHA1(4cb79c99c62c8300e694f4cd26f41dab7818f17f) ) + ROM_LOAD_OPTIONAL( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) +ROM_END + + +ROM_START( wofb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3-f2ab.040", 0x000000, 0x80000, CRC(61fd0a01) SHA1(a7b5bdddd7b31645e33314c1d3649e1506cecfea) ) + ROM_LOAD16_BYTE( "1-9207.040", 0x000001, 0x80000, CRC(7f59e24c) SHA1(34c294328d00c65086622bd15e17210f07f37237) ) + ROM_LOAD16_BYTE( "4-d4d2.010", 0x100000, 0x20000, CRC(fe5eee87) SHA1(be1230f64c1e59ae3ff3e58593070613966ac79d) ) + ROM_LOAD16_BYTE( "2-6c41.010", 0x100001, 0x20000, CRC(739379be) SHA1(897f61527213902fda04bc28339f1f4278bf5ae9) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "5-caf3.040", 0x000000, 0x40000, CRC(c8dcaa95) SHA1(bcaeaefd40ffa1b32e80457cffcc1ceab461af1d), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000 ) + ROMX_LOAD( "6-034f.040", 0x000001, 0x40000, CRC(1ab0000c) SHA1(0d0004cc1725c38d140ecb8dc9666361b2d3e607), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000 ) + ROMX_LOAD( "7-b0fa.040", 0x000002, 0x40000, CRC(8425ff6b) SHA1(9a051089c2a492b8c63484582f95c578704b6820), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000 ) + ROMX_LOAD( "8-a6b7.040", 0x000003, 0x40000, CRC(24ce197b) SHA1(0ccdbd6f6a30e6d1479f8702c3e8561b16303550), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000 ) + ROMX_LOAD( "9-8a2c.040", 0x200000, 0x40000, CRC(9d20ef9b) SHA1(cbf3cb6bd7a73312e5061082554f2e17aae08621), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200004, 0x40000 ) + ROMX_LOAD( "10-7d24.040", 0x200001, 0x40000, CRC(90c93dd2) SHA1(d3d2b0bcbcbb21a41f986eb752ab114697eb9402), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200005, 0x40000 ) + ROMX_LOAD( "11-4171.040", 0x200002, 0x40000, CRC(219fd7e2) SHA1(af765eb7b275ed541c08e243b22b5c9f54c1a8ec), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200006, 0x40000 ) + ROMX_LOAD( "12-f56b.040", 0x200003, 0x40000, CRC(efc17c9a) SHA1(26429a9039bb249e17945508c16645c82f7f412a), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200007, 0x40000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofch_v3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "wofch_v3.23", 0x000000, 0x80000, CRC(898a4e67) SHA1(3f45cc2e15bd398bdc84303f6cde6322394f6456) ) + ROM_LOAD16_WORD_SWAP( "wofch_v3.22", 0x080000, 0x80000, CRC(e734ee51) SHA1(1dff1a6cccc1551a4489542ee1f5b38b2233349e) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofchdx ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "wofchdx.23", 0x000000, 0x80000, CRC(b5f70324) SHA1(9cd8ca9dab1b2642810f50534186b575b1378ab8) ) + ROM_LOAD16_WORD_SWAP( "wofchdx.22", 0x080000, 0x80000, CRC(5c453e70) SHA1(0ffad50e2f93881c6e9848f707eec7d0ee18f688) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofchdx1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "wofchdx.23", 0x000000, 0x80000, CRC(b5f70324) SHA1(9cd8ca9dab1b2642810f50534186b575b1378ab8) ) + ROM_LOAD16_WORD_SWAP( "wofchdx1.22", 0x080000, 0x80000, CRC(55ed1b42) SHA1(0ea12b9298721aac20f351a894b4e7587bb38f88) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofchdx2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "wofchdx2.23", 0x000000, 0x80000, CRC(29389b7d) SHA1(ccc4a7c4cb43abe9e8f9fd0d1a813f722473784f) ) + ROM_LOAD16_WORD_SWAP( "wofchdx2.22", 0x080000, 0x80000, CRC(a959df0c) SHA1(ec6d9f1f9363dee08ea267fab28d313e0b46d3da) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofchspp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "wofchspp.8f", 0x000000, 0x80000, CRC(61cf24c1) SHA1(e075432449923e69310040a268f81b74c31f5bcc) ) + ROM_LOAD16_WORD_SWAP( "wofchspp.7f", 0x080000, 0x80000, CRC(a3cd1c51) SHA1(459c90bea4045a8ad79a36529d169951ac802fc3) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( woffr ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2e_23bfr.rom", 0x000000, 0x80000, CRC(e006e81e) SHA1(dad6cd3a1175b6f366e8bf02d1af35af5f1b50cc) ) + ROM_LOAD16_WORD_SWAP( "tk2e_22b.rom", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx5fr.rom", 0x200000, 0x80000, CRC(1b6bc2b2) SHA1(3a5305d07271cffb9875fcbd2af52856a224548a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx7fr.rom", 0x200002, 0x80000, CRC(3f1e5334) SHA1(a5c4795d65a916fc2d1a55153c4ca0ac5fbaf418) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx6fr.rom", 0x200004, 0x80000, CRC(28c9d96f) SHA1(aa64a4572b10842b7f5f546e63493d501a16fd85) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx8fr.rom", 0x200006, 0x80000, CRC(b3b9a29e) SHA1(fe425356545544a9cf50409972d2893999896191) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofjcn ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "wofjcn_23c.8f", 0x000000, 0x80000, CRC(e1dd01d8) SHA1(2d243fa39c784ce5164c7a58ffd4884a60eac81c) ) + ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) ) + + ROM_REGION( 0x480000, "gfx", 0 ) + ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + /// The load procedure for the chinese language is unknown + // These 2 roms have 0x10000 blank, then 0x9c00 data (chinese), then the remainder is blank + ROM_LOAD64_WORD( "wofjcn.gfx5", 0x400000, 0x10000, CRC(ec6e8689) SHA1(8e722292bfb5a4e8658bbd411a0ccce0956f9ad4))//, ROM_SKIP(1))// , ROM_GROUPWORD | ROM_SKIP(2) ) + ROM_CONTINUE( 0x400000, 0x8000 ) + ROM_CONTINUE( 0x400002, 0x8000 ) + ROM_IGNORE(0x60000) + ROM_LOAD64_WORD( "wofjcn.gfx6", 0x400004, 0x10000, CRC(722787df) SHA1(31720e94195055a494bc923c75e20882b8b05f4a))//, ROM_SKIP(1))// , ROM_GROUPWORD | ROM_SKIP(2) ) + ROM_CONTINUE( 0x400004, 0x8000 ) + ROM_CONTINUE( 0x400006, 0x8000 ) + ROM_IGNORE(0x60000) + //ROM_COPY( "gfx", 0x400000, 0x040000, 0x20000 ) // text on 3 intro screens + //ROM_COPY( "gfx", 0x400000, 0x380000, 0x20000 ) // text on actor descriptions + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) +ROM_END + +ROM_START( wofjh ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "xtk2j23h.bin", 0x000000, 0x80000, CRC(84d38575) SHA1(537f12180adfcea7bceb24b0fa9af9165dbbe2e4) ) + ROM_LOAD16_WORD_SWAP( "xtk2j22c.bin", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( wofjhb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2j.23c", 0x00000, 0x80000, CRC(432a74ff) SHA1(5675970143134c0cc3ae4964a8817fafee7876fa) ) + ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofjhc ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2j2.23c", 0x00000, 0x80000, CRC(671b0c62) SHA1(7bba05e5e513edd878a30ef998b3beb4fd053cc6) ) + ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofjm ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "wofjm.23", 0x000000, 0x80000, CRC(6dba1d2f) SHA1(310e9472d4da8ed4bdccdcd52004030b8799693c) ) + ROM_LOAD16_WORD_SWAP( "wofjm.22", 0x080000, 0x80000, CRC(7630fd8a) SHA1(02c2164f191c2efb647b517ee2e8f46d870f9c93) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) +ROM_END + +ROM_START( wofjzero ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "wofjzero.8f", 0x000000, 0x80000, CRC(7896998d) SHA1(7f59015ec00232f2b40836127f143415678f7058) ) + ROM_LOAD16_WORD_SWAP( "wofjzero.7f", 0x080000, 0x80000, CRC(43e57b1a) SHA1(f7469eb77a74601f94488c23466a6648a91fcbfc) ) + ROM_LOAD16_WORD_SWAP( "wofjzero.6f", 0x100000, 0x80000, CRC(7a5f60c0) SHA1(b4d864e39811d1407ce2ba9580bd1e230edf37ff) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wofjzero.7a", 0x200000, 0x80000, CRC(10d0e577) SHA1(fbf4f13a2fe64031dda5a27fdf6accfef12c1ce2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wofjzero.8a", 0x200002, 0x80000, CRC(e23dd70e) SHA1(58faf44c00667331c9f7980e803788e4deb1bc25) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wofjzero.9a", 0x200004, 0x80000, CRC(e1d7664e) SHA1(d8d6acf51f8beda71d1b8f5318cd02485bebf8b5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "wofjzero.10a", 0x200006, 0x80000, CRC(c121ed0c) SHA1(4ad1f8f9684d5041f60a3eb9f5e9580b3daa403a) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +ROM_START( wofr1h ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "tk2e_23b.8f", 0x000000, 0x80000, CRC(0fc9e89c) SHA1(7e098ad77172a16dc234b144c98eb6be433df215) ) + ROM_LOAD16_WORD_SWAP( "tk2e_22b.7f", 0x080000, 0x80000, CRC(e3f7cbf1) SHA1(f22d799d13eef6ef24db4689b7ddb1ce4eca505b) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */ + ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) ) + ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) ) + ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) ) + ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD_OPTIONAL( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD_OPTIONAL( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD_OPTIONAL( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) ) + ROM_LOAD_OPTIONAL( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD_OPTIONAL( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) ) + ROM_LOAD_OPTIONAL( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + ROM_LOAD_OPTIONAL( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD_OPTIONAL( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) ) + + ROM_REGION( 0x0200, "dboardplds", 0 ) + ROM_LOAD_OPTIONAL( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) ) + ROM_LOAD_OPTIONAL( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) ) + ROM_LOAD_OPTIONAL( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD_OPTIONAL( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) ) +ROM_END + +// This is a rom kit to convert SF2 to WOF. There's no oki sound even though the roms are present, because +// the device isn't being addressed properly (no reads, and only a few writes). Also, demo sound doesn't work. +ROM_START( wofsf2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "wof_30.rom", 0x000000, 0x020000, CRC(15886428) SHA1(d528766346e52deb97b9f49f836064ab2891c6cd) ) + ROM_LOAD16_BYTE( "wof_35.rom", 0x000001, 0x020000, CRC(2b9bd156) SHA1(ec12b4a5e0f257d852830a81d8a9ebe1aec12676) ) + ROM_LOAD16_BYTE( "wof_31.rom", 0x040000, 0x020000, CRC(6dc0158b) SHA1(c148bea4b40b9a0c9bced022e42343973969cc20) ) + ROM_LOAD16_BYTE( "wof_36.rom", 0x040001, 0x020000, CRC(8059bfaa) SHA1(64b81bd73ac908fe3d190593d3a274561c076708) ) + ROM_LOAD16_BYTE( "wof_28.rom", 0x080000, 0x020000, CRC(ced09a8c) SHA1(9f4680aa702bbb435438dd09682008d1d8691763) ) + ROM_LOAD16_BYTE( "wof_33.rom", 0x080001, 0x020000, CRC(2197546a) SHA1(0b47c97f6400bbf0ce44f44c611ce41030956bb1) ) + ROM_LOAD16_BYTE( "wof_29.rom", 0x0c0000, 0x020000, CRC(8b9756cb) SHA1(28d86196640218d5a382421d109346ddf66f0cbf) ) + ROM_LOAD16_BYTE( "wof_34.rom", 0x0c0001, 0x020000, CRC(80b129b4) SHA1(a7ef0160f2877e7ffb4b2ad74a80b2039fd7aa3d) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "wof_24.rom", 0x000000, 0x40000, CRC(4f5ac09b) SHA1(366c129f548cd2e7538e417e8e4cb95114c2b5d5) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_14.rom", 0x000001, 0x40000, CRC(b57ec247) SHA1(1b5716a00226aeb40f5a0259ed23b2d03e3c0cc0) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_26.rom", 0x000002, 0x40000, CRC(0b386f34) SHA1(828072969a2323aa57c51dac70a546029c48a96d) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_16.rom", 0x000003, 0x40000, CRC(e82ae539) SHA1(84d250a45b84a47ccc2e37438fb798fe034d4cd7) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_20.rom", 0x000004, 0x40000, CRC(81b9fb7a) SHA1(f248295c96b3debe27d418f47795359197df7238) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_10.rom", 0x000005, 0x40000, CRC(3ffbcb13) SHA1(cefb95ceaa9690a41186f6a5b88b89ed515f5f87) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_22.rom", 0x000006, 0x40000, CRC(cf2716d2) SHA1(74d74feee26c6bea0b09c4b7f91787bc2a38ef0d) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_12.rom", 0x000007, 0x40000, CRC(526d7a5b) SHA1(5a88173bba196ad79bf543b53772e1b4e49dedbc) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_25.rom", 0x200000, 0x40000, CRC(05bedaa0) SHA1(018c9ce5c36fd9a6f0c6331945449a95d72323f6) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_15.rom", 0x200001, 0x40000, CRC(2b19f8b8) SHA1(781faab68c330bfa17d04864c0611e6a3b1e571f) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_27.rom", 0x200002, 0x40000, CRC(cfef8c53) SHA1(ab6843ae95243c1fb81259f17681bfd30dff8d57) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_17.rom", 0x200003, 0x40000, CRC(1fb396cf) SHA1(1c09959d6a9f12037d0a8f87d5820c5e53412188) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_21.rom", 0x200004, 0x40000, CRC(8b484bc0) SHA1(393ea4b99ae1b0ed5c63e4ca7d2d6b504cf7da7e) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_11.rom", 0x200005, 0x40000, CRC(2bed2edc) SHA1(ac04e8713816dfd865ca0d54f9bf3c1891f4add3) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_23.rom", 0x200006, 0x40000, CRC(8afed1f9) SHA1(3a973e58a47558ec48e1fafb096c43dfaa247b58) , ROM_SKIP(7) ) + ROMX_LOAD( "wof_13.rom", 0x200007, 0x40000, CRC(84030abe) SHA1(d67ed207a06c5a0b1db7f0b6da3088b3e45f23a4) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) + ROM_LOAD( "wof_09.rom", 0x00000, 0x08000, CRC(21ce044c) SHA1(425fd8d33d54f35ef90d68a7530db7a0eafb600d) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "wof_18.rom", 0x000000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) ) + ROM_LOAD( "wof_19.rom", 0x020000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) ) +ROM_END + + + +/*************************************************************************** + + Driver Macros for HBMAME + +***************************************************************************/ + +GAME( 1991, 3wondrud, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "hack", "Three Wonders (US 910520 Phoenix Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, captcocc, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Pipi899", "Captain Commando (OTHER COUNTRY 911014)(Characters Change hack by Pipi899 2009-01-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, captcomc, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Chinese 911202)", MACHINE_SUPPORTS_SAVE ) // "OTHER COUNTRY" +GAME( 1991, captcomh, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Shinwa Hack, World 911014)" , MACHINE_SUPPORTS_SAVE ) +GAME( 1991, captcoud, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (US 910928 Phoenix Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, captcovs, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Pipi899", "Captain Commando (1vs4 hack by Pipi899, cheat by sssskkkk 2009-04-25)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, cps1demo, 0, cps1frog, cps1frog, cps_state, cps1, ROT0, "Charles Doty", "Demo - CPS1", MACHINE_SUPPORTS_SAVE ) // no sound +GAME( 2006, cps1frog, 0, cps1frog, cps1frog, cps_state, cps1, ROT0, "Rastersoft", "Frog Feast (CPS1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, cps1test, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for sf2ce)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, cps1testa, megaman, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for megaman)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, daimakb, ghouls, daimakb, daimakai, cps_state, cps1, ROT0, "hack", "Dai Makai-Mura (Japan, bootleg)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2008, dino08h2, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 3 v2.0f by Pipi899 2008-10-17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, dino08h3, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 1 v1.1 by Pipi899 2008-10-11)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, dino08hp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 2 v1.1f by Pipi899 2008-10-17)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinob, dino, qsound, dino, cps_state, dinohb, ROT0, "hack", "Cadillacs and Dinosaurs (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinobt, dino, qsound, dino, cps_state, dino, ROT0, "hack", "Cadillacs and Dinosaurs (BT hack version)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, dinobtpp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (BT Power hack by Pipi899 2009-01-15)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinocgba, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinocgbb, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinocgbc, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dinoeh, dino, qsound, dinohz, cps_state, dinoeh, ROT0, "hack", "Cadillacs and Dinosaurs (unknown hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinoex, dino, qsound, dinohz, cps_state, dinoeh, ROT0, "hack", "Cadillacs and Dinosaurs (unknown hack2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinoh, dino, qsound, dinohz, cps_state, dinoh, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 1)" , MACHINE_SUPPORTS_SAVE ) +GAME( 1997, dinoha, dino, qsound, dinohz, cps_state, dinoh, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, dinohb, dino, qsound, dinohz, cps_state, dinohb, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, dinohp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Hack by Pipi899 set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, dinohx, dino, qsound, dinohz, cps_state, dinoh, ROT0, "Winuxx", "Cadillacs and Dinosaurs (Revised hack by Winuxx)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2010, dinojp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs Kyouryuu-Shinseiki Plus (2010-02-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, dinorp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Hack by Pipi899 set 2 2008-08-05)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dinoslice, dino, qsound, dino, cps_state, dino, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 4)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 2009, dinouphp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Up Version hack by Pipi899 2009-01-15)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, dinoz, dino, qsound, dinohz, cps_state, dinoz, ROT0, "hack", "Cadillacs and Dinosaurs Z (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ffightb, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "hack", "Final Fight (Boss Hack dumped by Bonky0013, modified by MPT)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knight21, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (Japan, debug bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knightsa, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (AngryUpdate By EEZEZY(LB70))", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knightsb2, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knightsh, knights, cps1_10MHz, knightsh, cps_state, cps1, ROT0, "hack", "Knights of the Round (hack)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knightsha, knights, cps1_10MHz, knightsh, cps_state, cps1, ROT0, "hack", "Knights of the Round (Hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knightsjb, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, knightsro, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Sebastian Mihai", "Knights of the Round (Romanian)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, knightud, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (US 911127 Phoenix Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kodd, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "hack", "The King of Dragons (World 910711 Phoenix Edition)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kodh, kod, cps1_10MHz, kodh, cps_state, cps1, ROT0, "Wangy2", "The King of Dragons (ETC 910711 hack)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kodsp, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Bonusjz", "The King of Dragons (Remix Special hack by Bonusjz)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kodud, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "hack", "The King of Dragons (US 910910 Phoenix Edition (16b/40p))", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pnicku, 0, cps1_10MHz, pnicku, cps_state, cps1, ROT0, "Compile (Capcom licence)", "Pnickies (USA 940608)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, punisherb, punisher, qsound, punisher, cps_state, punisherb,ROT0, "hack", "The Punisher (Bootleg)", MACHINE_SUPPORTS_SAVE) +GAME( 2007, punisherf, punisher, qsound, punisher, cps_state, punisherb,ROT0, "Zhyxxxx", "The Punisher (Flash version) 2007-09-24", MACHINE_SUPPORTS_SAVE) +GAME( 2009, punisherje1, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (SM Experience Edition hack by Zhyxxxx set 1 2009-06-12)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, punisherjh, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (Shinwa Hack, Japan 930422)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, punisherjh1, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (SQ Unlimited Version hack by Zhyxxxx 2009-06-08)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, punisherjha, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (930422 Japan, SM Experience Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, punisherud1, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (US 930422 Phoenix Edition (8b/32p))", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, punisherud2, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (US 930422 Phoenix Edition (16b/40p))", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2c, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "hack", "Street Fighter II: The World Warrior (Chinese 911210)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, sf2cebr, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Neogeo BR team", "Street Fighter II' - Champion Edition (Brasil 920313)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, sf2ced, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Sheng Long Hack v7.1)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 2012, sf2ceda, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Hack)", MACHINE_SUPPORTS_SAVE ) // "ETC" +GAME( 1999, sf2ceh, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II' - Champion Edition (Hispanic 990804)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, sf2koryuh, sf2ce, cps1_12MHz, sf2hack, cps_state, cps1, ROT0, "TT", "Street Fighter II': Champion Edition (Hack by TT)", MACHINE_SUPPORTS_SAVE ) // 811102 !!! - based on World version +GAME( 1992, sf2h9, sf2ce, cps1_12MHz, sf2, cps_state, sf2h9, ROT0, "Mega Co", "Street Fighter II - Champion Edition (H9, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2h10, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II' - Champion Edition (H10, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2h11, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II' - Champion Edition (H11, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2h12, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II' - Champion Edition (H12, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2h13, sf2ce, cps1_12MHz, sf2j, cps_state, sf2h13, ROT0, "hack", "Street Fighter II' Turbo - Hyper Fighting (H13, bootleg)", MACHINE_SUPPORTS_SAVE ) // bad tile for Blanka on player select screen +GAME( 2012, sf2pun, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Punishment Edition v1 Final)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, sf2sl73a, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Sheng Long v7.3a)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2th, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (Turbo set 1, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2tha, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (Turbo set 2, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2tlona, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Tu Long", "Street Fighter II' - Champion Edition (Slay the Dragon set 1)", MACHINE_SUPPORTS_SAVE ) // These 2 are Chinese bootlegs +GAME( 1992, sf2tlonb, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Tu Long", "Street Fighter II' - Champion Edition (Slay the Dragon set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2tlonc, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "Tu Long", "Street Fighter II' - Champion Edition (Slay the Dragon set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2turyu, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II - Champion Edition (Tu Long prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2yyc3d5, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II' - Champion Edition (YYC, 3D5, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2yyc3g, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II' - Champion Edition (YYC, 3G, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sf2yyc6, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II' - Champion Edition (YYC, 6, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, sk2h1, wof, sk2h3, sk2h1, cps_state, sk2h1, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, sk2h1q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H1Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, sk2h2, wof, sk2h3, sk2h1, cps_state, sk2h1, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, sk2h2q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H2Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, sk2h3, wof, sk2h3, sk2h3, cps_state, sk2h3, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sk2h11, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H11)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sk2h12, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H12)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sk2h13, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H13)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sk2h14, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H14)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, sk2h15, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Sangokushi II (Hack by Pipi899 2009-01-02)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, sk2h16, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Sangokushi II (Easy Moves hack by Pipi899 2009-01-12)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sk2h21, wof, qsound, sk2h21, cps_state, sk2h21, ROT0, "hack", "Sangokushi II (Asia 921005) (set H21)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sk2h22, wof, sk2h3, sk2h21, cps_state, sk2h22, ROT0, "hack", "San Jian Sheng (Chinese bootleg of Sangokushi II, set H22)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sk2h31, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H31)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sk2h31q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H31Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sk2h32, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H32)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, sk2h32q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H32Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sk2h33, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H33)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sk2h33q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H33Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sk2h34, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H34)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sk2h34q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H34Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sk2h35, wof, sk2h35, wof, cps_state, sk2h35, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H35)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, slammastud, slammast, qsound, slammast, cps_state, slammast, ROT0, "hack", "Saturday Night Slam Masters (USA 930713 Phoenix Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, stridergf, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Willkaotix", "Strider (Gfx fix)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, stridergh, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Willkaotix", "Strider (gfx fix, uncensored)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wofb, wof, qsound, wof, cps_state, wofb, ROT0, "hack", "Warriors of Fate (ETC 921002) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wofch_v3, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II: Sekiheki no Tatakai (CPS Changer, Japan 921031) (Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, wofchdx, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (red)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, wofchdx1, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (green set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, wofchdx2, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (green set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, wofchspp, wofch, qsound, wofch, cps_state, wof, ROT0, "Pipi899", "CPS Changer - Tenchi Wo Kurau II (Super Jian Huang hack by Pipi899 2010-01-29)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wofjcn, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Chinese)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, woffr, wof, qsound, wof, cps_state, wof, ROT0, "Arkatrad", "Warriors of Fate (France 030728)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wofjh, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wofjhb, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wofjhc, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, wofjm, wof, qsound, wof, cps_state, wof, ROT0, "AXDX", "Tenchi wo Kurau 2 (Japan 921031)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, wofjzero, wof, qsound, wof, cps_state, wof, ROT0, "Zero", "Tenchi wo Kurau II (Power edition)(Japan 921031)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wofr1h, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Warriors of Fate (ETC 921002) hack", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wofsf2, wof, wofsf2, wof, cps_state, cps1, ROT0, "hack", "Warriors of Fate (conversion for SF2 HW) (ETC 921031)", MACHINE_SUPPORTS_SAVE ) + +/*************************************************************************************************************************/ + + +/*************************************************************************** + + Driver initialisation + +***************************************************************************/ + + +DRIVER_INIT_MEMBER( cps_state, dinoeh ) +{ + machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x800180, 0x800181, write16_delegate(FUNC(cps_state::dinoh_sound_command_w),this)); + kabuki_setup(dino_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, dinoh ) +{ + /* Patch out Q-Sound test */ + UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); + rom[0xaacf4/2] = 0x4e71; + DRIVER_INIT_CALL(dinoeh); +} + +DRIVER_INIT_MEMBER( cps_state, dinoz ) +{ + UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); + rom[0xaaa82/2] = 0x4e71; // Patch out Q-Sound test + rom[0x1cfb4/2] = 0x4e71; // patch out invalid instruction + DRIVER_INIT_CALL(dinoeh); +} + +DRIVER_INIT_MEMBER( cps_state, dinohb ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Fix draw scroll +// mem8[0x006c2] = 0xC0; +// mem8[0x006c3] = 0xFF; + // Fix gfx + mem8[0x472] = 0xFC; + mem8[0x473] = 0x33; + mem8[0x474] = 0x0; + mem8[0x475] = 0x90; + mem8[0x476] = 0x80; + mem8[0x478] = 0x0; + mem8[0x479] = 0x1; + mem8[0x47A] = 0xFC; + mem8[0x47B] = 0x33; + mem8[0x47C] = 0x80; + mem8[0x47D] = 0x90; + mem8[0x47E] = 0x80; + mem8[0x480] = 0x2; + mem8[0x481] = 0x1; + mem8[0x482] = 0xFC; + mem8[0x483] = 0x33; + mem8[0x484] = 0xC0; + mem8[0x485] = 0x90; + mem8[0x486] = 0x80; + mem8[0x487] = 0x0; + mem8[0x488] = 0x4; + mem8[0x489] = 0x1; + mem8[0x48A] = 0xFC; + mem8[0x48B] = 0x33; + mem8[0x48C] = 0x0; + mem8[0x48D] = 0x91; + mem8[0x48E] = 0x80; + mem8[0x48F] = 0x0; + mem8[0x490] = 0x6; + mem8[0x491] = 0x1; + mem8[0x006cc] = 0x80; + mem8[0x006cd] = 0x00; + mem8[0x006ce] = 0x0C; + mem8[0x006cf] = 0x01; + mem8[0x006de] = 0x80; + mem8[0x006df] = 0x00; + mem8[0x006e0] = 0x10; + mem8[0x006e1] = 0x01; + mem8[0x006f0] = 0x80; + mem8[0x006f1] = 0x00; + mem8[0x006f2] = 0x14; + mem8[0x006f3] = 0x01; + mem8[0x00704] = 0x80; + mem8[0x00705] = 0x00; + mem8[0x00706] = 0x0E; + mem8[0x00707] = 0x01; + mem8[0x00718] = 0x80; + mem8[0x00719] = 0x00; + mem8[0x0071a] = 0x12; + mem8[0x0071b] = 0x01; + mem8[0x0072c] = 0x80; + mem8[0x0072d] = 0x00; + mem8[0x0072e] = 0x16; + mem8[0x0072f] = 0x01; + // Fix screen transitions + mem8[0x00b28] = 0x00; + mem8[0x00b29] = 0x70; + mem8[0x00b2a] = 0x00; + mem8[0x00b2b] = 0x72; + mem8[0x00b2c] = 0x3C; + mem8[0x00b2d] = 0x34; + mem8[0x00b32] = 0xC1; + mem8[0x00b33] = 0x20; + // Fix sound + mem8[0x00666] = 0xF1; + mem8[0x00667] = 0x00; + mem8[0x00668] = 0x02; + mem8[0x00669] = 0x80; + mem8[0xaaa6c] = 0xD8; + mem8[0xaaa6d] = 0x00; + + kabuki_setup(dino_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, punisherb ) +{ + // note: bytes are swapped around compared to rom_fill. + UINT8 *mem8 = memregion("maincpu")->base(); + // Use standard ports + mem8[0xAB3] = 0x33; + mem8[0xAB4] = 0x30; + mem8[0xAB6] = 0x80; + mem8[0xAB7] = 0x0; + mem8[0xAB8] = 0x56; + mem8[0xAB9] = 0x1; + mem8[0xABA] = 0xED; + mem8[0xABB] = 0x33; + mem8[0xABC] = 0x32; + mem8[0xABD] = 0xDB; + mem8[0xABE] = 0x80; + mem8[0xABF] = 0x0; + mem8[0xAC0] = 0x48; + mem8[0xAC1] = 0x1; + mem8[0xAC2] = 0xED; + mem8[0xAC3] = 0x33; + mem8[0xAC4] = 0x34; + mem8[0xAC5] = 0xDB; + mem8[0xAC6] = 0x80; + mem8[0xAC7] = 0x0; + mem8[0xAC8] = 0x4A; + mem8[0xAC9] = 0x1; + mem8[0xACA] = 0xED; + mem8[0xACB] = 0x33; + mem8[0xACC] = 0x2E; + mem8[0xACD] = 0xDB; + mem8[0xACE] = 0x80; + mem8[0xAD0] = 0x52; + mem8[0xAD1] = 0x1; + mem8[0xAD2] = 0xED; + mem8[0xAD3] = 0x33; + mem8[0xAD4] = 0x88; + mem8[0xAD5] = 0xDB; + mem8[0xAD6] = 0x80; + mem8[0xAD7] = 0x0; + mem8[0xAD8] = 0x0; + mem8[0xAD9] = 0x1; + mem8[0xADA] = 0xED; + mem8[0xADB] = 0x33; + mem8[0xADC] = 0x8A; + mem8[0xADD] = 0xDB; + mem8[0xADE] = 0x80; + mem8[0xADF] = 0x0; + mem8[0xAE0] = 0x2; + mem8[0xAE1] = 0x1; + mem8[0xAE2] = 0xED; + mem8[0xAE3] = 0x33; + mem8[0xAE4] = 0x8C; + mem8[0xAE5] = 0xDB; + mem8[0xAE6] = 0x80; + mem8[0xAE7] = 0x0; + mem8[0xAE8] = 0x4; + mem8[0xAE9] = 0x1; + mem8[0xAEA] = 0xED; + mem8[0xAEB] = 0x33; + mem8[0xAEC] = 0x8E; + mem8[0xAED] = 0xDB; + mem8[0xAEE] = 0x80; + mem8[0xAEF] = 0x0; + mem8[0xAF0] = 0x6; + mem8[0xAF1] = 0x1; + mem8[0xAF2] = 0xED; + mem8[0xAF3] = 0x33; + mem8[0xAF4] = 0x90; + mem8[0xAF5] = 0xDB; + mem8[0xAF6] = 0x80; + mem8[0xAF7] = 0x0; + mem8[0xAF8] = 0x8; + mem8[0xAF9] = 0x1; + mem8[0xAFA] = 0xED; + mem8[0xAFB] = 0x50; + mem8[0xAFC] = 0x49; + mem8[0xAFD] = 0xDB; + mem8[0xAFE] = 0xFC; + mem8[0xAFF] = 0x33; + mem8[0xB00] = 0x3F; + mem8[0xB02] = 0x80; + mem8[0xB03] = 0x0; + mem8[0xB04] = 0x4C; + mem8[0xB05] = 0x1; + mem8[0xB06] = 0xFC; + mem8[0xB07] = 0x33; + mem8[0xB08] = 0x40; + mem8[0xB09] = 0x91; + mem8[0xB0A] = 0x80; + mem8[0xB0C] = 0xA; + mem8[0xB0D] = 0x1; + mem8[0xBA8] = 0x80; + mem8[0xBAA] = 0xC; + mem8[0xBAB] = 0x1; + mem8[0xBBA] = 0x80; + mem8[0xBBC] = 0x10; + mem8[0xBBD] = 0x1; + mem8[0xBCC] = 0x80; + mem8[0xBCE] = 0x14; + mem8[0xBCF] = 0x1; + mem8[0xBDA] = 0x80; + mem8[0xBDC] = 0xE; + mem8[0xBDD] = 0x1; + mem8[0xBEE] = 0x80; + mem8[0xBF0] = 0x12; + mem8[0xBF1] = 0x1; + mem8[0xC02] = 0x80; + mem8[0xC04] = 0x16; + mem8[0xC05] = 0x1; + // Transitions + mem8[0x42b5] = 0; + // Q sound + mem8[0x4DBC] = 0x0; + mem8[0x4DBE] = 0x58; + mem8[0x4DBF] = 0x0; + mem8[0x4DC0] = 0xF9; + mem8[0x4DC1] = 0x41; + mem8[0x4DC2] = 0xF1; + mem8[0x4DC3] = 0x0; + mem8[0x4DC4] = 0x0; + mem8[0x4DC5] = 0x80; + mem8[0x4DC6] = 0x28; + mem8[0x4DC7] = 0x4A; + mem8[0x4DC8] = 0x1F; + mem8[0x4DC9] = 0x0; + mem8[0x4DCA] = 0x0; + mem8[0x4DCB] = 0x6A; + mem8[0x4DCC] = 0x4A; + mem8[0x4DCD] = 0x0; + mem8[0x4DCE] = 0xED; + mem8[0x4DCF] = 0x49; + mem8[0x4DD0] = 0x96; + mem8[0x4DD1] = 0xE2; + mem8[0x4DD2] = 0xF4; + mem8[0x4DD3] = 0x49; + mem8[0x4DD4] = 0x0; + mem8[0x4DD5] = 0x0; + mem8[0x4DD6] = 0x40; + mem8[0x4DD7] = 0x6; + mem8[0x4DD8] = 0x10; + mem8[0x4DDA] = 0x40; + mem8[0x4DDB] = 0x2; + mem8[0x4DDC] = 0xFF; + mem8[0x4DDD] = 0xF; + mem8[0x4DDE] = 0x40; + mem8[0x4DDF] = 0x3B; + mem8[0x4DE0] = 0xE8; + mem8[0x4DE1] = 0xDA; + mem8[0x4DE2] = 0x5C; + mem8[0x4DE3] = 0x11; + mem8[0x4DE4] = 0x1; + mem8[0x4DE6] = 0x5C; + mem8[0x4DE7] = 0x11; + mem8[0x4DE8] = 0x3; + mem8[0x4DE9] = 0x0; + mem8[0x4DEA] = 0x5C; + mem8[0x4DEB] = 0x11; + mem8[0x4DEC] = 0x7; + mem8[0x4DED] = 0x0; + mem8[0x4DEE] = 0x5C; + mem8[0x4DEF] = 0x11; + mem8[0x4DF0] = 0x9; + mem8[0x4DF1] = 0x0; + mem8[0x4DF2] = 0x1C; + mem8[0x4DF3] = 0x30; + mem8[0x4DF4] = 0x40; + mem8[0x4DF5] = 0x11; + mem8[0x4DF6] = 0xD; + mem8[0x4DF7] = 0x0; + mem8[0x4DF8] = 0x5C; + mem8[0x4DF9] = 0x11; + mem8[0x4DFA] = 0xF; + mem8[0x4DFB] = 0x0; + mem8[0x4DFC] = 0x5C; + mem8[0x4DFD] = 0x11; + mem8[0x4DFE] = 0x11; + mem8[0x4E00] = 0x5C; + mem8[0x4E01] = 0x11; + mem8[0x4E02] = 0x17; + mem8[0x4E04] = 0x5C; + mem8[0x4E05] = 0x11; + mem8[0x4E06] = 0x19; + mem8[0x4E07] = 0x0; + mem8[0x4E08] = 0x5C; + mem8[0x4E09] = 0x11; + mem8[0x4E0A] = 0x13; + mem8[0x4E0B] = 0x0; + mem8[0x4E0C] = 0x5C; + mem8[0x4E0D] = 0x11; + mem8[0x4E0E] = 0x15; + mem8[0x4E0F] = 0x0; + mem8[0x4E10] = 0x7C; + mem8[0x4E11] = 0x11; + mem8[0x4E12] = 0x0; + mem8[0x4E14] = 0x1F; + mem8[0x4E16] = 0x75; + mem8[0x4E17] = 0x4E; + // Sprites + mem8[0x14CA0] = 0x90; + mem8[0x14CA3] = 0x0; + mem8[0x14CB0] = 0x90; + mem8[0x14CB3] = 0x40; + mem8[0x14F68] = 0xFC; + mem8[0x14F69] = 0x28; + mem8[0x14F6A] = 0x0; + mem8[0x14F6D] = 0x1; + + kabuki_setup(punisher_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sf2h9 ) +{ + /* Patch out protection check */ + UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); + rom[0xc0670/2] = 0x4e71; + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sf2h13 ) +{ + UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); + + // Fix scroll + rom[0x1d22a/2] = 0x0120; + // Fix bg layer + rom[0x1d270/2] = 0x0166; + // Fix gfx + rom[0x1d470/2] = 0x0170; + + // Fix title gfx + rom[0x21bec/2] = 0x0083; + rom[0x21cf8/2] = 0x828e; + rom[0x21cfa/2] = 0x829e; + rom[0x21cfc/2] = 0x82ae; + rom[0x21d06/2] = 0x827f; + rom[0x21d08/2] = 0x828f; + rom[0x21d0a/2] = 0x829f; + rom[0x21d0c/2] = 0x82af; + rom[0x21d16/2] = 0x827e; + rom[0x21d18/2] = 0x82a0; + rom[0x21d1a/2] = 0x822c; + rom[0x21d1c/2] = 0x823c; + rom[0x21d2a/2] = 0x822d; + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, wofb ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Fix gfx + mem8[0x506] = 0xE7; + mem8[0x507] = 0x48; + mem8[0x508] = 0xFE; + mem8[0x509] = 0xFF; + mem8[0x50A] = 0xF8; + mem8[0x50B] = 0x4B; + mem8[0x6ABC] = 0x6; + mem8[0x6ABD] = 0x1; + // Fix sound + mem8[0x764E] = 0x71; + mem8[0x7650] = 0x71; + mem8[0x7651] = 0x4E; + // Fix screen transitions + mem8[0x5D236] = 0xFC; + mem8[0x5D237] = 0x28; + mem8[0x5D238] = 0x0; + mem8[0x5D23B] = 0x1; + + kabuki_setup(wof_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sk2h35 ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Patch Q sound protection? check + mem8[0x5A1A] = 0x00; + mem8[0x5A1B] = 0x67; + mem8[0x5A1C] = 0x56; + mem8[0x5A1D] = 0x00; + mem8[0x5A1E] = 0x7C; + mem8[0x5A1F] = 0x20; + mem8[0x5A20] = 0xF1; + mem8[0x5A21] = 0x00; + mem8[0x5A22] = 0x00; + mem8[0x5A23] = 0x80; + mem8[0x5A24] = 0x28; + mem8[0x5A25] = 0x4A; + mem8[0x5A26] = 0x1F; + mem8[0x5A27] = 0x00; + mem8[0x5A28] = 0x00; + mem8[0x5A29] = 0x6A; + mem8[0x5A40] = 0x5C; + mem8[0x5A41] = 0x11; + mem8[0x5A42] = 0x01; + mem8[0x5A43] = 0x00; + mem8[0x5A44] = 0x5C; + mem8[0x5A45] = 0x11; + mem8[0x5A46] = 0x03; + mem8[0x5A47] = 0x00; + mem8[0x5A4A] = 0x07; + mem8[0x5A4B] = 0x00; + mem8[0x5A4C] = 0x5C; + mem8[0x5A4D] = 0x11; + mem8[0x5A4E] = 0x09; + mem8[0x5A4F] = 0x00; + mem8[0x5A50] = 0x5C; + mem8[0x5A51] = 0x31; + mem8[0x5A52] = 0x0C; + mem8[0x5A53] = 0x00; + mem8[0x5A54] = 0x5C; + mem8[0x5A55] = 0x11; + mem8[0x5A56] = 0x0F; + mem8[0x5A57] = 0x00; + mem8[0x5A58] = 0x5C; + mem8[0x5A59] = 0x11; + mem8[0x72A6] = 0x71; + mem8[0x72A7] = 0x4E; + mem8[0x72A8] = 0x71; + mem8[0x72A9] = 0x4E; + mem8[0x72AA] = 0x71; + mem8[0x72AB] = 0x4E; + mem8[0x72AC] = 0x71; + mem8[0x72AD] = 0x4E; + mem8[0x72AE] = 0x71; + mem8[0x72AF] = 0x4E; + mem8[0x72B0] = 0x71; + mem8[0x72B1] = 0x4E; + mem8[0x72B2] = 0x39; + mem8[0x72B3] = 0x30; + mem8[0x72B4] = 0xF1; + mem8[0x72B5] = 0x00; + mem8[0x72B6] = 0xFE; + mem8[0x72B7] = 0x9F; + mem8[0x72B8] = 0x00; + mem8[0x72B9] = 0x0C; + /* enable coin slots 1 and 2 */ + mem8[0x71bc] = 0x0c; + kabuki_setup(wof_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sk2h1q ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Stage Order + mem8[0x72a6] = 0x00; + // Disable Sprite Recoding + mem8[0x5d858] = 0x00; + mem8[0x5d859] = 0x61; + mem8[0x5d85a] = 0xe6; + mem8[0x5d85b] = 0x01; + mem8[0x5d890] = 0x6d; + mem8[0x5d891] = 0x0c; + mem8[0x5d892] = 0x00; + mem8[0x5d893] = 0x90; + mem8[0x5d894] = 0xd2; + mem8[0x5d895] = 0xe3; + mem8[0x5d8e8] = 0x90; + mem8[0x5d8e9] = 0x00; + mem8[0x5d8ea] = 0x00; + mem8[0x5d8eb] = 0x00; + mem8[0x5d8f8] = 0x90; + mem8[0x5d8f9] = 0x00; + mem8[0x5d8fa] = 0x00; + mem8[0x5d8fb] = 0x40; + // Patch protection? check + mem8[0xf11ec] = 0x71; + mem8[0xf11ed] = 0x4e; + mem8[0xf11ee] = 0x71; + mem8[0xf11ef] = 0x4e; + // Patch Q sound protection? check + mem8[0x5A0E] = 0x39; + mem8[0x5A0F] = 0x30; + mem8[0x5A10] = 0xF1; + mem8[0x5A12] = 0xFE; + mem8[0x5A13] = 0x9F; + mem8[0x5A14] = 0x00; + mem8[0x5A15] = 0x0C; + mem8[0x5A16] = 0x77; + mem8[0x5A17] = 0x00; + mem8[0x5A18] = 0xF4; + mem8[0x5A19] = 0x66; + mem8[0x5A1A] = 0xF9; + mem8[0x5A1B] = 0x4E; + mem8[0x5A1C] = 0x00; + mem8[0x5A1E] = 0xB2; + mem8[0x5A1F] = 0x72; + mem8[0x5A20] = 0x7C; + mem8[0x5A21] = 0x20; + mem8[0x5A22] = 0xF1; + mem8[0x5A23] = 0x00; + mem8[0x5A24] = 0x00; + mem8[0x5A25] = 0x80; + mem8[0x5A26] = 0x7C; + mem8[0x5A27] = 0x11; + mem8[0x5A29] = 0x00; + mem8[0x5A2A] = 0x01; + mem8[0x5A2C] = 0x7C; + mem8[0x5A2D] = 0x11; + mem8[0x5A2E] = 0x10; + mem8[0x5A2F] = 0x00; + mem8[0x5A30] = 0x0F; + mem8[0x5A31] = 0x00; + mem8[0x5A32] = 0x7C; + mem8[0x5A33] = 0x11; + mem8[0x5A34] = 0x00; + mem8[0x5A35] = 0x00; + mem8[0x5A36] = 0x07; + mem8[0x5A38] = 0x7C; + mem8[0x5A39] = 0x11; + mem8[0x5A3A] = 0x00; + mem8[0x5A3B] = 0x00; + mem8[0x5A3C] = 0x09; + mem8[0x5A3D] = 0x00; + mem8[0x5A3E] = 0x7C; + mem8[0x5A3F] = 0x11; + mem8[0x5A40] = 0x00; + mem8[0x5A41] = 0x00; + mem8[0x5A42] = 0x0C; + mem8[0x5A44] = 0x41; + mem8[0x5A48] = 0x7C; + mem8[0x5A4A] = 0x00; + mem8[0x5A4C] = 0x11; + mem8[0x5A4D] = 0x00; + mem8[0x5A4E] = 0x7C; + mem8[0x5A4F] = 0x11; + mem8[0x5A50] = 0x00; + mem8[0x5A51] = 0x00; + mem8[0x5A52] = 0x17; + mem8[0x5A54] = 0x7C; + mem8[0x5A56] = 0x00; + mem8[0x5A58] = 0x19; + mem8[0x5A59] = 0x00; + mem8[0x5A5A] = 0x7C; + mem8[0x5A5B] = 0x11; + mem8[0x5A5C] = 0x00; + mem8[0x5A5D] = 0x00; + mem8[0x5A5E] = 0x13; + mem8[0x5A60] = 0x7C; + mem8[0x5A62] = 0x00; + mem8[0x5A64] = 0x15; + mem8[0x5A65] = 0x00; + mem8[0x5A66] = 0x7C; + mem8[0x5A67] = 0x11; + mem8[0x5A68] = 0x00; + mem8[0x5A69] = 0x00; + mem8[0x5A6A] = 0x1F; + mem8[0x5A6C] = 0xF9; + mem8[0x5A6D] = 0x4E; + mem8[0x5A6E] = 0x05; + mem8[0x5A70] = 0x2C; + mem8[0x5A71] = 0xE8; + mem8[0x729A] = 0xF9; + mem8[0x729C] = 0x00; + mem8[0x729D] = 0x00; + mem8[0x729E] = 0x0E; + mem8[0x729F] = 0x5A; + mem8[0x5E826] = 0xF9; + mem8[0x5E827] = 0x4E; + mem8[0x5E828] = 0x00; + mem8[0x5E82A] = 0x20; + mem8[0x5E82B] = 0x5A; + kabuki_setup(wof_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sk2h1 ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Stage Order + mem8[0x72a6] = 0x00; + // Disable Sprite Recoding + mem8[0x5d858] = 0x00; + mem8[0x5d859] = 0x61; + mem8[0x5d85a] = 0xe6; + mem8[0x5d85b] = 0x01; + mem8[0x5d890] = 0x6d; + mem8[0x5d891] = 0x0c; + mem8[0x5d892] = 0x00; + mem8[0x5d893] = 0x90; + mem8[0x5d894] = 0xd2; + mem8[0x5d895] = 0xe3; + mem8[0x5d8e8] = 0x90; + mem8[0x5d8e9] = 0x00; + mem8[0x5d8ea] = 0x00; + mem8[0x5d8eb] = 0x00; + mem8[0x5d8f8] = 0x90; + mem8[0x5d8f9] = 0x00; + mem8[0x5d8fa] = 0x00; + mem8[0x5d8fb] = 0x40; + // Patch protection? check + mem8[0xf11ec] = 0x71; + mem8[0xf11ed] = 0x4e; + mem8[0xf11ee] = 0x71; + mem8[0xf11ef] = 0x4e; + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sk2h3 ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Disable Sprite Recoding + mem8[0x5d8e8] = 0x90; + mem8[0x5d8eb] = 0x00; + mem8[0x5d8f8] = 0x90; + + mem8[0x5d858] = 0x00; + mem8[0x5d859] = 0x61; + mem8[0x5d85a] = 0xe6; + mem8[0x5d85b] = 0x01; + + mem8[0x5d890] = 0x6d; + mem8[0x5d891] = 0x0c; + mem8[0x5d892] = 0x00; + mem8[0x5d893] = 0x90; + mem8[0x5d894] = 0xd2; + mem8[0x5d895] = 0xe3; + + //Transitions + //mem8[0x02449] = 0x07; // fixed by above code + + //Protections + mem8[0x708da] = 0xff; + mem8[0x708db] = 0xff; + mem8[0x708dc] = 0xff; + mem8[0x708dd] = 0xff; + mem8[0xf11eb] = 0x60; + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sk2h21 ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Patch Q sound protection? check + mem8[0x0554] = 0xb4; + mem8[0x0555] = 0x54; + mem8[0x5A50] = 0x5c; + mem8[0x5A51] = 0x31; + mem8[0x5A52] = 0x0c; + mem8[0x5A53] = 0x00; + mem8[0x5A54] = 0x5c; + mem8[0x5A55] = 0x11; + mem8[0x5A56] = 0x0f; + mem8[0x5A58] = 0x5c; + mem8[0x5A59] = 0x11; + mem8[0x5A5A] = 0x11; + mem8[0x5A5B] = 0x00; + kabuki_setup(wof_decode); + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sk2h22 ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Protection + mem8[0xE7AD0] = 0x71; + mem8[0xE7AD1] = 0x4E; + + // Disable Sprite Recoding + mem8[0x5df26] = 0x90; + mem8[0x5df29] = 0x00; + mem8[0x5df36] = 0x90; + + mem8[0x5de96] = 0x00; + mem8[0x5de97] = 0x61; + mem8[0x5de98] = 0xe6; + mem8[0x5de99] = 0x01; + + mem8[0x5dece] = 0x6d; + mem8[0x5decf] = 0x0c; + mem8[0x5ded0] = 0x00; + mem8[0x5ded1] = 0x90; + mem8[0x5ded2] = 0xd2; + mem8[0x5ded3] = 0xe3; + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER( cps_state, sk2h31 ) +{ + UINT8 *mem8 = memregion("maincpu")->base(); + // Disable Sprite Recoding + mem8[0x5df26] = 0x90; + mem8[0x5df29] = 0x00; + mem8[0x5df36] = 0x90; + + mem8[0x5de96] = 0x00; + mem8[0x5de97] = 0x61; + mem8[0x5de98] = 0xe6; + mem8[0x5de99] = 0x01; + + mem8[0x5dece] = 0x6d; + mem8[0x5decf] = 0x0c; + mem8[0x5ded0] = 0x00; + mem8[0x5ded1] = 0x90; + mem8[0x5ded2] = 0xd2; + mem8[0x5ded3] = 0xe3; + + // Patch Q sound protection? check + mem8[0x5A0E] = 0x39; + mem8[0x5A0F] = 0x30; + mem8[0x5A10] = 0xF1; + mem8[0x5A12] = 0xFE; + mem8[0x5A13] = 0x9F; + mem8[0x5A14] = 0x00; + mem8[0x5A15] = 0x0C; + mem8[0x5A16] = 0x77; + mem8[0x5A17] = 0x00; + mem8[0x5A18] = 0xF4; + mem8[0x5A19] = 0x66; + mem8[0x5A1A] = 0xF9; + mem8[0x5A1B] = 0x4E; + mem8[0x5A1C] = 0x00; + mem8[0x5A1E] = 0xBE; + mem8[0x5A1F] = 0x72; + mem8[0x5A20] = 0x7C; + mem8[0x5A21] = 0x20; + mem8[0x5A22] = 0xF1; + mem8[0x5A23] = 0x00; + mem8[0x5A24] = 0x00; + mem8[0x5A25] = 0x80; + mem8[0x5A26] = 0x7C; + mem8[0x5A27] = 0x11; + mem8[0x5A29] = 0x00; + mem8[0x5A2A] = 0x01; + mem8[0x5A2C] = 0x7C; + mem8[0x5A2D] = 0x11; + mem8[0x5A2E] = 0x10; + mem8[0x5A2F] = 0x00; + mem8[0x5A30] = 0x0F; + mem8[0x5A31] = 0x00; + mem8[0x5A32] = 0x7C; + mem8[0x5A33] = 0x11; + mem8[0x5A34] = 0x00; + mem8[0x5A35] = 0x00; + mem8[0x5A36] = 0x07; + mem8[0x5A38] = 0x7C; + mem8[0x5A39] = 0x11; + mem8[0x5A3A] = 0x00; + mem8[0x5A3B] = 0x00; + mem8[0x5A3C] = 0x09; + mem8[0x5A3D] = 0x00; + mem8[0x5A3E] = 0x7C; + mem8[0x5A3F] = 0x11; + mem8[0x5A40] = 0x00; + mem8[0x5A41] = 0x00; + mem8[0x5A42] = 0x0C; + mem8[0x5A44] = 0x41; + mem8[0x5A48] = 0x7C; + mem8[0x5A4A] = 0x00; + mem8[0x5A4C] = 0x11; + mem8[0x5A4D] = 0x00; + mem8[0x5A4E] = 0x7C; + mem8[0x5A4F] = 0x11; + mem8[0x5A50] = 0x00; + mem8[0x5A51] = 0x00; + mem8[0x5A52] = 0x17; + mem8[0x5A54] = 0x7C; + mem8[0x5A56] = 0x00; + mem8[0x5A58] = 0x19; + mem8[0x5A59] = 0x00; + mem8[0x5A5A] = 0x7C; + mem8[0x5A5B] = 0x11; + mem8[0x5A5C] = 0x00; + mem8[0x5A5D] = 0x00; + mem8[0x5A5E] = 0x13; + mem8[0x5A60] = 0x7C; + mem8[0x5A62] = 0x00; + mem8[0x5A64] = 0x15; + mem8[0x5A65] = 0x00; + mem8[0x5A66] = 0x7C; + mem8[0x5A67] = 0x11; + mem8[0x5A68] = 0x00; + mem8[0x5A69] = 0x00; + mem8[0x5A6A] = 0x1F; + mem8[0x5A6C] = 0xF9; + mem8[0x5A6D] = 0x4E; + mem8[0x5A6E] = 0x05; + mem8[0x5A70] = 0x6A; + mem8[0x5A71] = 0xEE; + mem8[0x72A6] = 0xF9; + mem8[0x72A8] = 0x00; + mem8[0x72A9] = 0x00; + mem8[0x72AA] = 0x0E; + mem8[0x72AB] = 0x5A; + mem8[0x5EE64] = 0xF9; + mem8[0x5EE65] = 0x4E; + mem8[0x5EE66] = 0x00; + mem8[0x5EE68] = 0x20; + mem8[0x5EE69] = 0x5A; + kabuki_setup(wof_decode); + DRIVER_INIT_CALL(cps1); +} + diff --git a/docs/release/src/hbmame/drivers/cps2.cpp b/docs/release/src/hbmame/drivers/cps2.cpp new file mode 100644 index 00000000000..20fe79cc639 --- /dev/null +++ b/docs/release/src/hbmame/drivers/cps2.cpp @@ -0,0 +1,521 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/cps2.cpp" + +ROM_START( 1944da ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "nffu_da.03", 0x000000, 0x80000, CRC(78188e42) SHA1(add31daba3e6916a1facfaf32feeaba228e9a6ab) ) + ROM_LOAD16_WORD_SWAP( "nff.04", 0x080000, 0x80000, CRC(dba1c66e) SHA1(4764e77d4da5d19d9acded27df1e1bcba06b0fcf) ) + ROM_LOAD16_WORD_SWAP( "nffu.05", 0x100000, 0x80000, CRC(ea813eb7) SHA1(34e0175a5f22d08c3538369b4bfd077a7427a128) ) + + ROM_REGION( 0x2000000, "gfx", 0 ) + ROMX_LOAD( "nff.13m", 0x0000000, 0x400000, CRC(c9fca741) SHA1(1781d4fc18b6d6f79b7b39d9bcace750fb61a5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.15m", 0x0000002, 0x400000, CRC(f809d898) SHA1(a0b6af49e1780678d808c317b875161cedddb314) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.17m", 0x0000004, 0x400000, CRC(15ba4507) SHA1(bed6a82bf1dc1aa501d4c2d098115a15e18d446a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.19m", 0x0000006, 0x400000, CRC(3dd41b8c) SHA1(676078baad789e25f6e5a79de29672587be7ff00) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.14m", 0x1000000, 0x100000, CRC(3fe3a54b) SHA1(0a8e5cae141d24fd8b3cb11796c44728b0acd69e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.16m", 0x1000002, 0x100000, CRC(565cd231) SHA1(0aecd433fb4ca2de1aca9fbb1e314fb1f6979321) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) ) + ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) ) + + CPS2_DEAD_KEY +ROM_END + +ROM_START( 1944fp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "nffu.03fp", 0x000000, 0x80000, CRC(3239f3a2) SHA1(22f6e5772c3f2f98db79c9ec6809cb0343b7c877) ) + ROM_LOAD16_WORD_SWAP( "nff.04fp", 0x080000, 0x80000, CRC(91297ec9) SHA1(3ef111613e758540a3187d972018b100bcb1652a) ) + ROM_LOAD16_WORD_SWAP( "nffu.05", 0x100000, 0x80000, CRC(ea813eb7) SHA1(34e0175a5f22d08c3538369b4bfd077a7427a128) ) + + ROM_REGION( 0x2000000, "gfx", 0 ) + ROMX_LOAD( "nff.13m", 0x0000000, 0x400000, CRC(c9fca741) SHA1(1781d4fc18b6d6f79b7b39d9bcace750fb61a5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.15m", 0x0000002, 0x400000, CRC(f809d898) SHA1(a0b6af49e1780678d808c317b875161cedddb314) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.17m", 0x0000004, 0x400000, CRC(15ba4507) SHA1(bed6a82bf1dc1aa501d4c2d098115a15e18d446a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.19m", 0x0000006, 0x400000, CRC(3dd41b8c) SHA1(676078baad789e25f6e5a79de29672587be7ff00) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.14m", 0x1000000, 0x100000, CRC(3fe3a54b) SHA1(0a8e5cae141d24fd8b3cb11796c44728b0acd69e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.16m", 0x1000002, 0x100000, CRC(565cd231) SHA1(0aecd433fb4ca2de1aca9fbb1e314fb1f6979321) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) ) + ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) ) + + _1944_USA_KEY +ROM_END + + +ROM_START( ddsomavs ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "ddsomavs.03g", 0x000000, 0x80000, CRC(e28c61f2) SHA1(a15ba7e4d1c6e2e2c047e12edefc6b1564464496) ) + ROM_LOAD16_WORD_SWAP( "ddsomavs.04g", 0x080000, 0x80000, CRC(145efa6f) SHA1(2da422bf43c4b4abd20ddcf7b0dd4a37f23d756a) ) + ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) ) + ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) ) + ROM_LOAD16_WORD_SWAP( "dd2.07", 0x200000, 0x80000, CRC(909a0b8b) SHA1(58bda17c36063a79df8b5031755c7909a9bda221) ) + ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) ) + ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) ) + ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) ) + + ROM_REGION( 0x1800000, "gfx", 0 ) + ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) + ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) + + DDSOM_ASIA_KEY +ROM_END + +ROM_START( ddsomchs ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "dd2j.03g", 0x000000, 0x80000, CRC(e6c8c985) SHA1(0736a84d7d9d37d51826eac6826a7728260bc625) ) + ROM_LOAD16_WORD_SWAP( "dd2j.04g", 0x080000, 0x80000, CRC(8386c0bd) SHA1(59bfc71914ec2bb7d1b9f327b25d2399181d4bb2) ) + ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) ) + ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) ) + ROM_LOAD16_WORD_SWAP( "dd2.07", 0x200000, 0x80000, CRC(909a0b8b) SHA1(58bda17c36063a79df8b5031755c7909a9bda221) ) + ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) ) + ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) ) + ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) ) + + ROM_REGION( 0x1800000, "gfx", 0 ) + ROM_LOAD( "ddsomchs.13m", 0x0000000, 0x1000000, CRC(9b6a8bd7) SHA1(d6bf2c2c35904e0fe4c299a351c766b2e25e709c) ) + ROM_LOAD( "ddsomchs.14m", 0x1000000, 0x800000, CRC(39b30ad6) SHA1(b2f0a1b97986484d449da9a4e85a13165002d6cc) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) + ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) + + DDSOM_JAPAN_KEY +ROM_END + +ROM_START( ddsomhp ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "ddsomhp.03e", 0x000000, 0x80000, CRC(5a9574e5) SHA1(c810b9bf495d4cd44305e27992848aab207da922) ) + ROM_LOAD16_WORD_SWAP( "dd2e.04e", 0x080000, 0x80000, CRC(5b7052b6) SHA1(8a5f069f450da939d0f02518751cd9815d621d81) ) + ROM_LOAD16_WORD_SWAP( "ddsomhp.05e", 0x100000, 0x80000, CRC(554e9b24) SHA1(6b78662c0e377f5595cef9d2b49d6af0ece19fd1) ) + ROM_LOAD16_WORD_SWAP( "dd2e.06e", 0x180000, 0x80000, CRC(e0807e1e) SHA1(4b978f5f647fff84d456eb14c9fd202d9a276997) ) + ROM_LOAD16_WORD_SWAP( "dd2e.07", 0x200000, 0x80000, CRC(bb777a02) SHA1(4b2c65a9129fc2262b35be1c10d06f60f5108981) ) + ROM_LOAD16_WORD_SWAP( "dd2e.08", 0x280000, 0x80000, CRC(30970890) SHA1(fd366a9323230f6997006ab4cc216f9a97865ebe) ) + ROM_LOAD16_WORD_SWAP( "dd2e.09", 0x300000, 0x80000, CRC(99e2194d) SHA1(cbcecdf5beeac3eac6c2c3fa395710e1b8347531) ) + ROM_LOAD16_WORD_SWAP( "dd2e.10", 0x380000, 0x80000, CRC(e198805e) SHA1(37ae9d88d98c59337b657cfa6feb56e4f9cae95f) ) + + ROM_REGION( 0x1800000, "gfx", 0 ) + ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) + ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) + + DDSOM_WORLD_KEY +ROM_END + +ROM_START( ddsomjfs ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "ddsomjfs.03g", 0x000000, 0x80000, CRC(cc650f5b) SHA1(b39dd217b8a4cf82f994e1657909ff001fc4721b) ) + ROM_LOAD16_WORD_SWAP( "dd2j.04g", 0x080000, 0x80000, CRC(8386c0bd) SHA1(59bfc71914ec2bb7d1b9f327b25d2399181d4bb2) ) + ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) ) + ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) ) + ROM_LOAD16_WORD_SWAP( "ddsomjfs.07", 0x200000, 0x80000, CRC(9c520a00) SHA1(7f801f86ebc725bbbeae9eb832b843b282428ec1) ) + ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) ) + ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) ) + ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) ) + + ROM_REGION( 0x1800000, "gfx", 0 ) + ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) ) + ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) ) + + DDSOM_JAPAN_KEY +ROM_END + + +ROM_START( halfway ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "halfway.03", 0x000000, 0x080000, CRC(55ce8d4a) SHA1(3b7342afbfa1244cb5cbf5be7391d3e1f8231822) ) + ROM_LOAD16_WORD_SWAP( "tohell.04", 0x080000, 0x080000, CRC(71060b9e) SHA1(007a174ceca6ae080f19f088bf0fc6cd0fe2510c) ) + + ROM_REGION( 0x1000000, "gfx", 0 ) + ROMX_LOAD( "pga.13m", 0x0000000, 0x400000, CRC(5194c198) SHA1(f9ae16cad8b30547b8dd3a1ea1d6e845d76ccefe) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pga.15m", 0x0000002, 0x400000, CRC(b794e83f) SHA1(0332fa798b2955464ab336929866c9185bd4b520) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pga.17m", 0x0000004, 0x400000, CRC(87f22918) SHA1(7f048d66593f385526bd2c669cf6b8ad58d12bbf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pga.19m", 0x0000006, 0x400000, CRC(65ffb45b) SHA1(9c21187519c1ec95c5a960b2c815ee41ace4fa7e) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "redlabel.11m", 0x000000, 0x400000, CRC(33ebf625) SHA1(39e5f9afd37a258005b0143fa38b9c53b63f700d) ) + ROM_LOAD16_WORD_SWAP( "redlabel.12m", 0x000000, 0x400000, CRC(47f25cf4) SHA1(714b5baf146d720cc86f77aeee5b1160f553d958) ) + + CPS2_DEAD_KEY +ROM_END + + +ROM_START( mpangjd ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "mpnj_d.03a", 0x000000, 0x80000, CRC(dac63128) SHA1(e5ee8f6d698a28dbf54520473520e40efadf30e3) ) + ROM_LOAD16_WORD_SWAP( "mpnj_d.04a", 0x080000, 0x80000, CRC(d0b2592b) SHA1(f18c026776326f9bab70d1a8f66dd5fffb115b1b) ) + + ROM_REGION( 0x1000000, "gfx", 0 ) + ROMX_LOAD( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROMX_LOAD( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROMX_LOAD( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROMX_LOAD( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROMX_LOAD( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROMX_LOAD( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROMX_LOAD( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + ROMX_LOAD( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "mpn.01", 0x00000, 0x08000, CRC(90c7adb6) SHA1(a2653e977e5e0457b249e098e5ca0abc93dac336) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a simm + ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a simm + + CPS2_DEAD_KEY +ROM_END + + +ROM_START( sfa2h ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sz2eh.03", 0x000000, 0x80000, CRC(f24e7b3a) SHA1(0cf5169fcf46dcea5a100bf75a5dcd791c51b671) ) + ROM_LOAD16_WORD_SWAP( "sz2e.04", 0x080000, 0x80000, CRC(22d17b26) SHA1(2d7a9cedae1bb2b7cfb80d2bfcf24cb7738df0bf) ) + ROM_LOAD16_WORD_SWAP( "sz2.05", 0x100000, 0x80000, CRC(4b442a7c) SHA1(a0d7d229cff8efb2a253ff06270258b0b4d2761e) ) + ROM_LOAD16_WORD_SWAP( "sz2.06", 0x180000, 0x80000, CRC(5b1d49c0) SHA1(f0a0c894c9cbe2b18e7f59058665949ee0025732) ) + ROM_LOAD16_WORD_SWAP( "sz2.07", 0x200000, 0x80000, CRC(8e184246) SHA1(c51f6480cfa1dcec6c4713fd38c7a27338c3fa65) ) + ROM_LOAD16_WORD_SWAP( "sz2.08", 0x280000, 0x80000, CRC(0fe8585d) SHA1(0cd5369a5aa90c98d8dc1ff3342cd4d990631cff) ) + + ROM_REGION( 0x1400000, "gfx", 0 ) + ROMX_LOAD( "sz2.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) + ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) + + SFA2_WORLD_KEY +ROM_END + +ROM_START( sfaud ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sfzu_d.03d", 0x000000, 0x80000, CRC(9f2ff577) SHA1(e78d7e8e0a5703dea09aed2ac4055d45844cead5) ) + ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) ) + ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) ) + ROM_LOAD16_WORD_SWAP( "sfz.06", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) ) + + ROM_REGION( 0x1000000, "gfx", 0 ) + ROM_FILL( 0x000000, 0x800000, 0 ) + ROMX_LOAD( "sfz.14m", 0x800000, 0x200000, CRC(90fefdb3) SHA1(5eb28c8de57acfeaefebdd01509c7d9ba5244705) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz.16m", 0x800002, 0x200000, CRC(5354c948) SHA1(07588f1ba6addc04fef3274c971174aaf3e632ab) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) ) + ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) ) + + CPS2_DEAD_KEY +ROM_END + + +ROM_START( sfz2abr ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "szabr.03", 0x000000, 0x80000, CRC(0e8e719b) SHA1(ef013adf386925c68f3d38159adfe447c8f259de) ) + ROM_LOAD16_WORD_SWAP( "szabr.04", 0x080000, 0x80000, CRC(bc7271a0) SHA1(601a0e21926a1d9aebebf41e6dc08523b6773338) ) + ROM_LOAD16_WORD_SWAP( "szabr.05", 0x100000, 0x80000, CRC(e19eee58) SHA1(f0a2f8606136450c375d9b43f182e4cee2ec1208) ) + ROM_LOAD16_WORD_SWAP( "szaa.06", 0x180000, 0x80000, CRC(cfc0e7a8) SHA1(31ed58451c7a6ac88a8fccab369167694698f044) ) + ROM_LOAD16_WORD_SWAP( "szaa.07", 0x200000, 0x80000, CRC(5feb8b20) SHA1(13c79c9b72c3abf0a0b75d507d91ece71e460c06) ) + ROM_LOAD16_WORD_SWAP( "szaa.08", 0x280000, 0x80000, CRC(6eb6d412) SHA1(c858fec9c1dfea70dfcca629c1c24306f8ae6d81) ) + + ROM_REGION( 0x1400000, "gfx", 0 ) + ROMX_LOAD( "sz2br.13m", 0x0000000, 0x400000, CRC(a3b979fe) SHA1(236378162562aea3e522a182bbf395b020452893) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2br.15m", 0x0000002, 0x400000, CRC(ab0e6693) SHA1(6f00bdf5064fb1cb2e152c2731d26a11cd8bf376) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2br.17m", 0x0000004, 0x400000, CRC(ce0913ba) SHA1(684c402c7ca1e50018ef439331b5bd002f573db8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sz2br.19m", 0x0000006, 0x400000, CRC(3c8cffe6) SHA1(26d4ed4a20a4e84b8c87c7120b181371e428ad58) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sza.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sza.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) ) + ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) ) + + SFZ2AL_ASIA_KEY +ROM_END + + +ROM_START( spf2tb ) + ROM_REGION(CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "pzfu_boss.03a", 0x000000, 0x80000, CRC(ca1f3e42) SHA1(784214517f3ac3f5f727a18f50992d4fa3417726) ) + ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) ) + + ROM_REGION( 0xC00000, "gfx", 0 ) + ROM_FILL( 0x000000, 0x800000, 0 ) + ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) + ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) + + SPF2T_USA_KEY +ROM_END + + +ROM_START( ssf2r1d ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "ssfud.03a", 0x000000, 0x80000, CRC(fad5daf8) SHA1(5bed5d5af8dffc54d3b3371274a3905f46384f79) ) + ROM_LOAD16_WORD_SWAP( "ssfud.04a", 0x080000, 0x80000, CRC(0d31af65) SHA1(7e903e18cb899627fedd8ad92594b75b5d8ee8fd) ) + ROM_LOAD16_WORD_SWAP( "ssfud.05", 0x100000, 0x80000, CRC(75c651ef) SHA1(8c6f60d3cf10d802190438c403a719bc30ccbeaa) ) + ROM_LOAD16_WORD_SWAP( "ssfud.06", 0x180000, 0x80000, CRC(85c3ec00) SHA1(29ab3eccc5f9c0dd6bd19eaa83c72e1a1d44b320) ) + ROM_LOAD16_WORD_SWAP( "ssfud.07", 0x200000, 0x80000, CRC(9320e350) SHA1(bec5dcd85faf10c72cc79e5d5af311ffb5445c47) ) + + ROM_REGION( 0xc00000, "gfx", 0 ) + ROMX_LOAD( "ssf.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ssf.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ssf.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ssf.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ssf.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ssf.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) ) + ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) ) + ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) ) + ROM_LOAD( "ssf.q04", 0x180000, 0x080000, CRC(9d9ebe32) SHA1(9b26329370041374f1a90b479a172d2bc2801c4d) ) + ROM_LOAD( "ssf.q05", 0x200000, 0x080000, CRC(4770e7b7) SHA1(0e764f0befb9227b0b36508d8ca8ec9be31bcb05) ) + ROM_LOAD( "ssf.q06", 0x280000, 0x080000, CRC(4e79c951) SHA1(1144781d7dc57ef8a6458d982f5c91548ff59e27) ) + ROM_LOAD( "ssf.q07", 0x300000, 0x080000, CRC(cdd14313) SHA1(ebe767a9d4b51dba4282fa0a36a546a88620dd59) ) + ROM_LOAD( "ssf.q08", 0x380000, 0x080000, CRC(6f5a088c) SHA1(6c0b4690479647a99d76335f174be8455b4ff118) ) + + CPS2_DEAD_KEY +ROM_END + +ROM_START( ssf2td ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "sfxe_d.03c", 0x000000, 0x80000, CRC(ed99d850) SHA1(d2dcb8395d630fcd1776fd32a9c685646e1f18be) ) + ROM_LOAD16_WORD_SWAP( "sfxe_d.04a", 0x080000, 0x80000, CRC(38d9b364) SHA1(814e67441a9d92ed89edf20dacb17a0f100020e3) ) + ROM_LOAD16_WORD_SWAP( "sfxe_d.05", 0x100000, 0x80000, CRC(c63358d0) SHA1(dde4d9e9adce4dee02322c0fd71615eed0af62e6) ) + ROM_LOAD16_WORD_SWAP( "sfxe_d.06a", 0x180000, 0x80000, CRC(ccb29808) SHA1(10e7b135a936409fe7c4d7959ea375634a8c68e4) ) + ROM_LOAD16_WORD_SWAP( "sfxe_d.07", 0x200000, 0x80000, CRC(61f94982) SHA1(d2f22f50c21393deda7d5838dbd2b265722acd38) ) + ROM_LOAD16_WORD_SWAP( "sfxe_d.08", 0x280000, 0x80000, CRC(d399c36c) SHA1(b4c4217843e5c3ef00ab04d58ca9368d2d734065) ) + ROM_LOAD16_WORD_SWAP( "sfxe_d.09", 0x300000, 0x80000, CRC(317b5dbc) SHA1(1e1037b071251c28ed9cd5ccd6d52b72cc86396a) ) + + ROM_REGION( 0x1000000, "gfx", 0 ) + ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) ) + ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) ) + + CPS2_DEAD_KEY +ROM_END + + +ROM_START( suicide ) + ROM_REGION(CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "suicide.03", 0x000000, 0x80000, CRC(4d5eea90) SHA1(c6f6361650d64401354111bf111bd924126b7035) ) + + ROM_REGION( 0xC00000, "gfx", 0 ) + ROM_FILL( 0x000000, 0x800000, 0 ) + ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) + ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) + + CPS2_DEAD_KEY +ROM_END + +ROM_START( suicide2 ) + ROM_REGION(CODE_SIZE, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "suicide2.03", 0x000000, 0x80000, CRC(d61ba7e3) SHA1(bde345a1d4643adc854d4c7e86c04f72fee1a07b) ) + + ROM_REGION( 0xC00000, "gfx", 0 ) + ROM_FILL( 0x000000, 0x800000, 0 ) + ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) ) + ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) ) + + CPS2_DEAD_KEY +ROM_END + + +ROM_START( vampjb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "vampjb.03a", 0x000000, 0x80000, CRC(55c1be82) SHA1(948e1e322945adc775da8b22165697b5c7999b1b) ) + ROM_LOAD16_WORD_SWAP( "vampjb.04b", 0x080000, 0x80000, CRC(9c12017e) SHA1(0800802748ce61b01a18c06b61fcb8fd7bb34f62) ) + ROM_LOAD16_WORD_SWAP( "vamj.05a", 0x100000, 0x80000, CRC(6c497e92) SHA1(7c1ccdfd77fb50afe024c8402376daaeab641a24) ) + ROM_LOAD16_WORD_SWAP( "vamj.06a", 0x180000, 0x80000, CRC(f1bbecb6) SHA1(6adba89393e05f16f70b57085cabd6b4c20f53e8) ) + ROM_LOAD16_WORD_SWAP( "vamj.07a", 0x200000, 0x80000, CRC(1067ad84) SHA1(5e4cc75cfdfd512b6230c656e7304262b5143aee) ) + ROM_LOAD16_WORD_SWAP( "vamj.08a", 0x280000, 0x80000, CRC(4b89f41f) SHA1(bd78f33a6d448655eecf7448921d282b302fa4cb) ) + ROM_LOAD16_WORD_SWAP( "vamj.09a", 0x300000, 0x80000, CRC(fc0a4aac) SHA1(a2c79eb4dc838c238e182a4da3567ac8db3488d8) ) + ROM_LOAD16_WORD_SWAP( "vamj.10a", 0x380000, 0x80000, CRC(9270c26b) SHA1(c2a7e199a74c9f27704cf935483ebddc6da256a1) ) + + ROM_REGION( 0x1400000, "gfx", 0 ) + ROMX_LOAD( "vam.13m", 0x0000000, 0x400000, CRC(c51baf99) SHA1(2fb6642908e542e404391eb17392f8270e87bf48) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "vam.15m", 0x0000002, 0x400000, CRC(3ce83c77) SHA1(93369b23c6d7d834297434691bb047ee3dd9539c) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "vam.17m", 0x0000004, 0x400000, CRC(4f2408e0) SHA1(cd49c6b3c7e6470c6058f98ccc5210b052bb13e2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "vam.19m", 0x0000006, 0x400000, CRC(9ff60250) SHA1(d69ba4dc6bd37d003245f0cf3211d6e2623005b8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "vam.14m", 0x1000000, 0x100000, CRC(bd87243c) SHA1(87b33aeb72514e1228ffc27ec6dd534f14882760) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "vam.16m", 0x1000002, 0x100000, CRC(afec855f) SHA1(cd117833b8d475489b90ff44b57e2c5cb1af3af5) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) ) + ROM_CONTINUE( 0x10000, 0x18000 ) + ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) ) + + ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */ + ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) ) + ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) ) + + DSTLK_JAPAN_KEY +ROM_END + + +GAME( 2000, 1944da, 1944, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "Razoola", "1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg alt)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, 1944fp, 1944, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Qxs8", "1944: The Loop Master (USA 000620) Fire Power Ver", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, ddsomavs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Pipi899", "Dungeons & Dragons: Shadow over Mystara (1vs4 hack by Pipi899 2009-06-29)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, ddsomchs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "hack", "Dungeons & Dragons: Shadow over Mystara (chinese)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, ddsomhp, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Pipi899", "Dungeons & Dragons: Shadow over Mystara (HP Revision hack by Pipi899, cheat by sssskkkk 2009-06-15)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, ddsomjfs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "e107", "Dungeons & Dragons: Shadow over Mystara (Final Strike hack by e107 2009-07-17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2016, halfway, progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "hack", "Halfway to Hell - Progear Red Label (2016-01-17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mpangjd, mpang, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "Razoola", "Mighty! Pang (Japan 001011 Phoenix Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfa2h, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 2 (Euro 960229) Boss Hack", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sfaud, sfa, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Razoola", "Street Fighter Alpha: Warriors' Dreams (USA 950727 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sfz2abr, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Neogeo BR team", "Street Fighter Zero 2 Alpha (Brasil 061225)", MACHINE_SUPPORTS_SAVE ) // portuguese-brazilian hack fix +GAME( 1993, ssf2r1d, ssf2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Razoola", "Super Street Fighter II: The New Challengers (ETC 930911 Phoenix Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssf2td, ssf2t, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Eazoola", "Super Street Fighter II Turbo (World 940223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, spf2tb, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "hack", "Super Puzzle Fighter II Turbo Boss Hack (USA 960620)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, suicide, 0, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "Razoola", "Suicide Test", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, suicide2, suicide, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "Razoola", "Suicide Test v2", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, vampjb, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Vampire: The Night Warriors (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/cps3.cpp b/docs/release/src/hbmame/drivers/cps3.cpp new file mode 100644 index 00000000000..615ab2b4d21 --- /dev/null +++ b/docs/release/src/hbmame/drivers/cps3.cpp @@ -0,0 +1,300 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/cps3.cpp" + +TIMER_CALLBACK_MEMBER(cps3_state::fastboot_timer_callback) +{ + UINT32 *rom = (UINT32*)m_decrypted_gamerom; + + m_maincpu->set_state_int(SH2_PC, rom[0]); + m_maincpu->set_state_int(SH2_R15, rom[1]); + m_maincpu->set_state_int(SH2_VBR, 0x6000000); +} + +MACHINE_RESET_MEMBER( cps3_state, redeartn ) +{ + m_current_table_address = -1; + + m_fastboot_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cps3_state::fastboot_timer_callback),this)); + m_fastboot_timer->adjust(attotime::zero); + + // copy data from flashroms back into user regions + decrypt into regions we execute/draw from. + copy_from_nvram(); +} + +MACHINE_CONFIG_DERIVED( redeartn, redearth ) + MCFG_MACHINE_RESET_OVERRIDE(cps3_state, redeartn) +MACHINE_CONFIG_END + +static INPUT_PORTS_START ( cps3_ren ) + PORT_INCLUDE ( cps3 ) + PORT_MODIFY("INPUTS") + PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1 Start / Change Orb") + PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("P2 Start / Change Orb") + + PORT_START("REG") + PORT_DIPNAME( 0x0000000f, 0x00000000, DEF_STR( Region ) ) + PORT_DIPSETTING( 0x00000000, "Default" ) + // none of these do anything + //PORT_DIPSETTING( 0x00000001, DEF_STR( Japan ) ) + //PORT_DIPSETTING( 0x00000002, DEF_STR( Asia ) ) + //PORT_DIPSETTING( 0x00000003, DEF_STR( Europe ) ) + //PORT_DIPSETTING( 0x00000004, DEF_STR( USA ) ) + //PORT_DIPSETTING( 0x00000005, "Hispanic" ) + //PORT_DIPSETTING( 0x00000006, "Brazil" ) + //PORT_DIPSETTING( 0x00000007, "Oceania" ) + //PORT_DIPSETTING( 0x00000008, "Asia NCD" ) + + PORT_START("VER") + PORT_DIPNAME( 0x000000f0, 0x00000060, DEF_STR( Version ) ) + PORT_DIPSETTING( 0x00000060, DEF_STR( Normal ) ) + // none of these do anything + //PORT_DIPSETTING( 0x00000010, "Character Check" ) + //PORT_DIPSETTING( 0x00000020, "Publicity" ) + //PORT_DIPSETTING( 0x00000030, "Location Test" ) + //PORT_DIPSETTING( 0x00000040, "Show" ) + //PORT_DIPSETTING( 0x00000050, "???" ) +INPUT_PORTS_END + + + +ROM_START( redeartn ) + ROM_REGION32_BE( 0x080000, "bios", 0 ) + ROM_LOAD( "redearthn_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(db09f27c) SHA1(f2d299cda7cda175b4218526a15f12560654d97f) ) + + ROM_REGION( 0x200000, "simm1.0", 0 ) + ROM_LOAD( "redeartn-simm1.0", 0x00000, 0x200000, CRC(cad468f8) SHA1(b3aa4f7d3fae84e8821417ccde9528d3eda2b7a6) ) + ROM_REGION( 0x200000, "simm1.1", 0 ) + ROM_LOAD( "redeartn-simm1.1", 0x00000, 0x200000, CRC(e9721d89) SHA1(5c63d10bdbce52d50b6dde14d4a0f1369383d656) ) + ROM_REGION( 0x200000, "simm1.2", 0 ) + ROM_LOAD( "redeartn-simm1.2", 0x00000, 0x200000, CRC(2889ec98) SHA1(a94310eb4777f908d87e9d90969db8504b4140ff) ) + ROM_REGION( 0x200000, "simm1.3", 0 ) + ROM_LOAD( "redeartn-simm1.3", 0x00000, 0x200000, CRC(5a6cd148) SHA1(d65c6e8378a91828474a16a3bbcd13c4b3b15f13) ) + + ROM_REGION( 0x200000, "simm3.0", 0 ) + ROM_LOAD( "redeartn-simm3.0", 0x00000, 0x200000, CRC(83350cc5) SHA1(922b1abf80a4a89f35279b66311a7369d3965bd0) ) + ROM_REGION( 0x200000, "simm3.1", 0 ) + ROM_LOAD( "redeartn-simm3.1", 0x00000, 0x200000, CRC(56734de6) SHA1(75699fa6efe5bec335e4b02e15b3c45726b68fa8) ) + ROM_REGION( 0x200000, "simm3.2", 0 ) + ROM_LOAD( "redeartn-simm3.2", 0x00000, 0x200000, CRC(800ea0f1) SHA1(33871ab56dc1cd24441389d53e43fb8e43b149d9) ) + ROM_REGION( 0x200000, "simm3.3", 0 ) + ROM_LOAD( "redeartn-simm3.3", 0x00000, 0x200000, CRC(97e9146c) SHA1(ab7744709615081440bee72f4080d6fd5b938668) ) + ROM_REGION( 0x200000, "simm3.4", 0 ) + ROM_LOAD( "redeartn-simm3.4", 0x00000, 0x200000, CRC(0cb1d648) SHA1(7042a590c2b7ec55323062127e254da3cdc790a1) ) + ROM_REGION( 0x200000, "simm3.5", 0 ) + ROM_LOAD( "redeartn-simm3.5", 0x00000, 0x200000, CRC(7a1099f0) SHA1(c6a92ec86eb24485f1db530e0e78f647e8432231) ) + ROM_REGION( 0x200000, "simm3.6", 0 ) + ROM_LOAD( "redeartn-simm3.6", 0x00000, 0x200000, CRC(aeff8f54) SHA1(fd760e237c2e5fb2da45e32a1c12fd3defb4c3e4) ) + ROM_REGION( 0x200000, "simm3.7", 0 ) + ROM_LOAD( "redeartn-simm3.7", 0x00000, 0x200000, CRC(f770acd0) SHA1(4b3ccb6f91568f95f04ede6c574144918d131201) ) + ROM_REGION( 0x200000, "simm4.0", 0 ) + + ROM_LOAD( "redeartn-simm4.0", 0x00000, 0x200000, CRC(301e56f2) SHA1(4847d971bff70a2aeed4599e1201c7ec9677da60) ) + ROM_REGION( 0x200000, "simm4.1", 0 ) + ROM_LOAD( "redeartn-simm4.1", 0x00000, 0x200000, CRC(2048e103) SHA1(b21f95b05cd99749bd3f25cc71b2671c2026847b) ) + ROM_REGION( 0x200000, "simm4.2", 0 ) + ROM_LOAD( "redeartn-simm4.2", 0x00000, 0x200000, CRC(c9433455) SHA1(63a269d76bac332c2e991d0f6a20c35e0e88680a) ) + ROM_REGION( 0x200000, "simm4.3", 0 ) + ROM_LOAD( "redeartn-simm4.3", 0x00000, 0x200000, CRC(c02171a8) SHA1(2e9228729b27a6113d9f2e42af310a834979f714) ) + ROM_REGION( 0x200000, "simm4.4", 0 ) + ROM_LOAD( "redeartn-simm4.4", 0x00000, 0x200000, CRC(2ddbf276) SHA1(b232baaa8edc8db18f8a3bdcc2d38fe984a94a34) ) + ROM_REGION( 0x200000, "simm4.5", 0 ) + ROM_LOAD( "redeartn-simm4.5", 0x00000, 0x200000, CRC(fea820a6) SHA1(55ee8ef95751f5a509fb126513e1b2a70a3414e5) ) + ROM_REGION( 0x200000, "simm4.6", 0 ) + ROM_LOAD( "redeartn-simm4.6", 0x00000, 0x200000, CRC(c7528df1) SHA1(aa312f80c2d7759d18d1aa8d416cf932b2850824) ) + ROM_REGION( 0x200000, "simm4.7", 0 ) + ROM_LOAD( "redeartn-simm4.7", 0x00000, 0x200000, CRC(2449cf3b) SHA1(c60d8042136d74e547f668ad787cae529c42eed9) ) + + ROM_REGION( 0x200000, "simm5.0", 0 ) + ROM_LOAD( "redeartn-simm5.0", 0x00000, 0x200000, CRC(424451b9) SHA1(250fb92254c9e7ff5bc8dbeea5872f8a771dc9bd) ) + ROM_REGION( 0x200000, "simm5.1", 0 ) + ROM_LOAD( "redeartn-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) ) +ROM_END + +ROM_START( sfiii3an ) + ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */ + ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) ) + + ROM_REGION( 0x200000, "simm1.0", 0 ) + ROM_LOAD( "sfiii3n-simm1.0", 0x000000, 0x200000, CRC(11dfd3cd) SHA1(dba1f77c46e80317e3279298411154dfb6db2309) ) + ROM_REGION( 0x200000, "simm1.1", 0 ) + ROM_LOAD( "sfiii3n-simm1.1", 0x000000, 0x200000, CRC(c50585e6) SHA1(a289237957ea1c7f58b1c65e24c54ceb34cb1712) ) + ROM_REGION( 0x200000, "simm1.2", 0 ) + ROM_LOAD( "sfiii3n-simm1.2", 0x000000, 0x200000, CRC(8e011d9b) SHA1(e0861bcd3c4f865474d7ce47aa9eeec7b3d28da6) ) + ROM_REGION( 0x200000, "simm1.3", 0 ) + ROM_LOAD( "sfiii3n-simm1.3", 0x000000, 0x200000, CRC(dca8d92f) SHA1(7cd241641c943df446e2c75b88b5cf2d2ebf7b2e) ) + + ROM_REGION( 0x200000, "simm2.0", 0 ) + ROM_LOAD( "sfiii3-simm2.0", 0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da) ) + ROM_REGION( 0x200000, "simm2.1", 0 ) + ROM_LOAD( "sfiii3-simm2.1", 0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f) ) + ROM_REGION( 0x200000, "simm2.2", 0 ) + ROM_LOAD( "sfiii3-simm2.2", 0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037) ) + ROM_REGION( 0x200000, "simm2.3", 0 ) + ROM_LOAD( "sfiii3-simm2.3", 0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040) ) + + ROM_REGION( 0x200000, "simm3.0", 0 ) + ROM_LOAD( "sfiii3-simm3.0", 0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f) ) + ROM_REGION( 0x200000, "simm3.1", 0 ) + ROM_LOAD( "sfiii3-simm3.1", 0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69) ) + ROM_REGION( 0x200000, "simm3.2", 0 ) + ROM_LOAD( "sfiii3-simm3.2", 0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d) ) + ROM_REGION( 0x200000, "simm3.3", 0 ) + ROM_LOAD( "sfiii3-simm3.3", 0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758) ) + ROM_REGION( 0x200000, "simm3.4", 0 ) + ROM_LOAD( "sfiii3-simm3.4", 0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b) ) + ROM_REGION( 0x200000, "simm3.5", 0 ) + ROM_LOAD( "sfiii3-simm3.5", 0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9) ) + ROM_REGION( 0x200000, "simm3.6", 0 ) + ROM_LOAD( "sfiii3-simm3.6", 0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277) ) + ROM_REGION( 0x200000, "simm3.7", 0 ) + ROM_LOAD( "sfiii3-simm3.7", 0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a) ) + + ROM_REGION( 0x200000, "simm4.0", 0 ) + ROM_LOAD( "sfiii3-simm4.0", 0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9) ) + ROM_REGION( 0x200000, "simm4.1", 0 ) + ROM_LOAD( "sfiii3-simm4.1", 0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f) ) + ROM_REGION( 0x200000, "simm4.2", 0 ) + ROM_LOAD( "sfiii3-simm4.2", 0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3) ) + ROM_REGION( 0x200000, "simm4.3", 0 ) + ROM_LOAD( "sfiii3-simm4.3", 0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21) ) + ROM_REGION( 0x200000, "simm4.4", 0 ) + ROM_LOAD( "sfiii3-simm4.4", 0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee) ) + ROM_REGION( 0x200000, "simm4.5", 0 ) + ROM_LOAD( "sfiii3-simm4.5", 0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f) ) + ROM_REGION( 0x200000, "simm4.6", 0 ) + ROM_LOAD( "sfiii3-simm4.6", 0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f) ) + ROM_REGION( 0x200000, "simm4.7", 0 ) + ROM_LOAD( "sfiii3-simm4.7", 0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b) ) + + ROM_REGION( 0x200000, "simm5.0", 0 ) + ROM_LOAD( "sfiii3-simm5.0", 0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3) ) + ROM_REGION( 0x200000, "simm5.1", 0 ) + ROM_LOAD( "sfiii3-simm5.1", 0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416) ) + ROM_REGION( 0x200000, "simm5.2", 0 ) + ROM_LOAD( "sfiii3-simm5.2", 0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8) ) + ROM_REGION( 0x200000, "simm5.3", 0 ) + ROM_LOAD( "sfiii3-simm5.3", 0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3) ) + ROM_REGION( 0x200000, "simm5.4", 0 ) + ROM_LOAD( "sfiii3-simm5.4", 0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40) ) + ROM_REGION( 0x200000, "simm5.5", 0 ) + ROM_LOAD( "sfiii3-simm5.5", 0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873) ) + ROM_REGION( 0x200000, "simm5.6", 0 ) + ROM_LOAD( "sfiii3n-simm5.6", 0x000000, 0x200000, CRC(85de59e5) SHA1(748b5c91f15777b85d8c1d35b685cd90d3185ec6) ) + ROM_REGION( 0x200000, "simm5.7", 0 ) + ROM_LOAD( "sfiii3n-simm5.7", 0x000000, 0x200000, CRC(ee7e29b3) SHA1(63dc30c6904ca2f58d229249bee5eef51fafa158) ) + + ROM_REGION( 0x200000, "simm6.0", 0 ) + ROM_LOAD( "sfiii3-simm6.0", 0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22) ) + ROM_REGION( 0x200000, "simm6.1", 0 ) + ROM_LOAD( "sfiii3-simm6.1", 0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f) ) + ROM_REGION( 0x200000, "simm6.2", 0 ) + ROM_LOAD( "sfiii3-simm6.2", 0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f) ) + ROM_REGION( 0x200000, "simm6.3", 0 ) + ROM_LOAD( "sfiii3-simm6.3", 0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b) ) + ROM_REGION( 0x200000, "simm6.4", 0 ) + ROM_LOAD( "sfiii3-simm6.4", 0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e) ) + ROM_REGION( 0x200000, "simm6.5", 0 ) + ROM_LOAD( "sfiii3-simm6.5", 0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696) ) + ROM_REGION( 0x200000, "simm6.6", 0 ) + ROM_LOAD( "sfiii3-simm6.6", 0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60) ) + ROM_REGION( 0x200000, "simm6.7", 0 ) + ROM_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b) ) +ROM_END + +ROM_START( sfiii4rd ) + ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */ + ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) ) + + ROM_REGION( 0x200000, "simm1.0", 0 ) + ROM_LOAD( "4rd-simm1.0", 0x00000, 0x200000, CRC(6bef26b4) SHA1(fb643d5fc5be4464374773a651ab4b5c51826047) ) // sldh + ROM_REGION( 0x200000, "simm1.1", 0 ) + ROM_LOAD( "4rd-simm1.1", 0x00000, 0x200000, CRC(37ee88ed) SHA1(180e5ee309ad3898ac385b9add38fbec80cc1dce) ) // sldh + ROM_REGION( 0x200000, "simm1.2", 0 ) + ROM_LOAD( "4rd-simm1.2", 0x00000, 0x200000, CRC(120139f0) SHA1(a5365ac00c75ee0e20f6c7b5a0bcee543c8582be) ) // sldh + ROM_REGION( 0x200000, "simm1.3", 0 ) + ROM_LOAD( "4rd-simm1.3", 0x00000, 0x200000, CRC(b32e4fcc) SHA1(32bd359ca1747fa92691bd5471ba767456cc4dbb) ) // sldh + + ROM_REGION( 0x200000, "simm2.0", 0 ) + ROM_LOAD( "sfiii3-simm2.0", 0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da) ) + ROM_REGION( 0x200000, "simm2.1", 0 ) + ROM_LOAD( "sfiii3-simm2.1", 0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f) ) + ROM_REGION( 0x200000, "simm2.2", 0 ) + ROM_LOAD( "sfiii3-simm2.2", 0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037) ) + ROM_REGION( 0x200000, "simm2.3", 0 ) + ROM_LOAD( "sfiii3-simm2.3", 0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040) ) + + ROM_REGION( 0x200000, "simm3.0", 0 ) + ROM_LOAD( "sfiii3-simm3.0", 0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f) ) + ROM_REGION( 0x200000, "simm3.1", 0 ) + ROM_LOAD( "sfiii3-simm3.1", 0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69) ) + ROM_REGION( 0x200000, "simm3.2", 0 ) + ROM_LOAD( "sfiii3-simm3.2", 0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d) ) + ROM_REGION( 0x200000, "simm3.3", 0 ) + ROM_LOAD( "sfiii3-simm3.3", 0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758) ) + ROM_REGION( 0x200000, "simm3.4", 0 ) + ROM_LOAD( "sfiii3-simm3.4", 0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b) ) + ROM_REGION( 0x200000, "simm3.5", 0 ) + ROM_LOAD( "sfiii3-simm3.5", 0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9) ) + ROM_REGION( 0x200000, "simm3.6", 0 ) + ROM_LOAD( "sfiii3-simm3.6", 0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277) ) + ROM_REGION( 0x200000, "simm3.7", 0 ) + ROM_LOAD( "sfiii3-simm3.7", 0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a) ) + + ROM_REGION( 0x200000, "simm4.0", 0 ) + ROM_LOAD( "sfiii3-simm4.0", 0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9) ) + ROM_REGION( 0x200000, "simm4.1", 0 ) + ROM_LOAD( "sfiii3-simm4.1", 0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f) ) + ROM_REGION( 0x200000, "simm4.2", 0 ) + ROM_LOAD( "sfiii3-simm4.2", 0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3) ) + ROM_REGION( 0x200000, "simm4.3", 0 ) + ROM_LOAD( "sfiii3-simm4.3", 0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21) ) + ROM_REGION( 0x200000, "simm4.4", 0 ) + ROM_LOAD( "sfiii3-simm4.4", 0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee) ) + ROM_REGION( 0x200000, "simm4.5", 0 ) + ROM_LOAD( "sfiii3-simm4.5", 0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f) ) + ROM_REGION( 0x200000, "simm4.6", 0 ) + ROM_LOAD( "sfiii3-simm4.6", 0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f) ) + ROM_REGION( 0x200000, "simm4.7", 0 ) + ROM_LOAD( "sfiii3-simm4.7", 0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b) ) + + ROM_REGION( 0x200000, "simm5.0", 0 ) + ROM_LOAD( "sfiii3-simm5.0", 0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3) ) + ROM_REGION( 0x200000, "simm5.1", 0 ) + ROM_LOAD( "sfiii3-simm5.1", 0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416) ) + ROM_REGION( 0x200000, "simm5.2", 0 ) + ROM_LOAD( "sfiii3-simm5.2", 0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8) ) + ROM_REGION( 0x200000, "simm5.3", 0 ) + ROM_LOAD( "sfiii3-simm5.3", 0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3) ) + ROM_REGION( 0x200000, "simm5.4", 0 ) + ROM_LOAD( "sfiii3-simm5.4", 0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40) ) + ROM_REGION( 0x200000, "simm5.5", 0 ) + ROM_LOAD( "sfiii3-simm5.5", 0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873) ) + ROM_REGION( 0x200000, "simm5.6", 0 ) + ROM_LOAD( "4rd-simm5.6", 0x00000, 0x200000, CRC(e9b61a56) SHA1(9277ac5da4715aa5325ae9f8c055f1e826b4ce54) ) + ROM_REGION( 0x200000, "simm5.7", 0 ) + ROM_LOAD( "4rd-simm5.7", 0x00000, 0x200000, CRC(8db3a249) SHA1(db38963ce011535a95f11426c17fb3eeda300917) ) + + ROM_REGION( 0x200000, "simm6.0", 0 ) + ROM_LOAD( "sfiii3-simm6.0", 0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22) ) + ROM_REGION( 0x200000, "simm6.1", 0 ) + ROM_LOAD( "sfiii3-simm6.1", 0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f) ) + ROM_REGION( 0x200000, "simm6.2", 0 ) + ROM_LOAD( "sfiii3-simm6.2", 0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f) ) + ROM_REGION( 0x200000, "simm6.3", 0 ) + ROM_LOAD( "sfiii3-simm6.3", 0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b) ) + ROM_REGION( 0x200000, "simm6.4", 0 ) + ROM_LOAD( "sfiii3-simm6.4", 0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e) ) + ROM_REGION( 0x200000, "simm6.5", 0 ) + ROM_LOAD( "sfiii3-simm6.5", 0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696) ) + ROM_REGION( 0x200000, "simm6.6", 0 ) + ROM_LOAD( "sfiii3-simm6.6", 0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60) ) + ROM_REGION( 0x200000, "simm6.7", 0 ) + ROM_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b) ) +ROM_END + + + +GAME( 1996, redeartn, redearth, redeartn, cps3_ren, cps3_state, redearth, ROT0, "Capcom", "Red Earth (961121, Asia NCD)", 0 ) +GAME( 2013, sfiii3an, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Hack", "Street Fighter III 3rd Strike: Ford Strike (Japan 990608, NO CD)", 0 ) +GAME( 2013, sfiii4rd, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Hack", "Street Fighter III 3rd Strike: 4rd Arrange Edition (Japan 990608, NO CD)", 0 ) diff --git a/docs/release/src/hbmame/drivers/dec0.cpp b/docs/release/src/hbmame/drivers/dec0.cpp new file mode 100644 index 00000000000..920621a12f6 --- /dev/null +++ b/docs/release/src/hbmame/drivers/dec0.cpp @@ -0,0 +1,104 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/dec0.cpp" + +ROM_START( baddudef ) + ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code, middle 0x20000 unused */ + ROM_LOAD16_BYTE( "baddudef.4", 0x00000, 0x10000, CRC(1a0667ae) SHA1(a530bfe91aa8b489ef7c1368b81983e760d0d993) ) + ROM_LOAD16_BYTE( "baddudef.1", 0x00001, 0x10000, CRC(14d71614) SHA1(282fe93c04791e48a963ee78e69753e54c51e779) ) + ROM_LOAD16_BYTE( "ei06.6c", 0x40000, 0x10000, CRC(3ff8da57) SHA1(eea8125a3eac33d76d22e72b69633eaae138efe5) ) + ROM_LOAD16_BYTE( "ei03.6a", 0x40001, 0x10000, CRC(f8f2bd94) SHA1(622c66fea00cabb2cce16bf621b07d38a660708d) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ + ROM_LOAD( "ei07.8a", 0x8000, 0x8000, CRC(9fb1ef4b) SHA1(f4dd0773be93c2ad8b0faacd12939c531b5aa130) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */ + ROM_LOAD( "ei25.15j", 0x00000, 0x08000, CRC(bcf59a69) SHA1(486727e19c12ea55b47e2ef773d0d0471cf50083) ) + ROM_LOAD( "baddudef.26", 0x08000, 0x08000, CRC(bb8d93d0) SHA1(64a462c86cf270b3aa3e359b0f423a816e9dafb6) ) + + ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */ + ROM_LOAD( "ei18.14d", 0x00000, 0x10000, CRC(05cfc3e5) SHA1(a0163921c77dc9706463a402c3dd45ec4341cd21) ) + ROM_LOAD( "ei20.17d", 0x10000, 0x10000, CRC(e11e988f) SHA1(0c59f0d8d1abe414c7e1ebd49d454179fed2cd00) ) + ROM_LOAD( "ei22.14f", 0x20000, 0x10000, CRC(b893d880) SHA1(99e228174677f2e3e96154f77bfa9bf0f1c0a6a5) ) + ROM_LOAD( "ei24.17f", 0x30000, 0x10000, CRC(6f226dda) SHA1(65ebb16a292c57d49c135fce7ed7537146226eb5) ) + + ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */ + ROM_LOAD( "ei30.9j", 0x08000, 0x08000, CRC(982da0d1) SHA1(d819a587905624d793988f2ea726783da527d9f2) ) + ROM_CONTINUE( 0x00000, 0x08000 ) /* the two halves are swapped */ + ROM_LOAD( "ei28.9f", 0x18000, 0x08000, CRC(f01ebb3b) SHA1(1686690cb0c87d9e687b2abb4896cf285ab8378f) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */ + ROM_LOAD( "ei15.16c", 0x00000, 0x10000, CRC(a38a7d30) SHA1(5cb1fb97605829fc733c79a7e169fa52adc6863b) ) + ROM_LOAD( "ei16.17c", 0x10000, 0x08000, CRC(17e42633) SHA1(405f5296a741901677cca978a1b287d894eb1e54) ) + ROM_LOAD( "ei11.16a", 0x20000, 0x10000, CRC(3a77326c) SHA1(4de81752329cde6210a9c250a9f8ebe3dad9fe92) ) + ROM_LOAD( "ei12.17a", 0x30000, 0x08000, CRC(fea2a134) SHA1(525dd5f48993db1fe1e3c095442884178f75e8e0) ) + ROM_LOAD( "ei13.13c", 0x40000, 0x10000, CRC(e5ae2751) SHA1(4e4a3c68b11e9b0c8da70121b23296128063d4e9) ) + ROM_LOAD( "ei14.14c", 0x50000, 0x08000, CRC(e83c760a) SHA1(d08db381658b8b3288c5eaa9048a906126e0f712) ) + ROM_LOAD( "ei09.13a", 0x60000, 0x10000, CRC(6901e628) SHA1(1162c8cee20450780774cad54a9af40ebf0f0826) ) + ROM_LOAD( "ei10.14a", 0x70000, 0x08000, CRC(eeee8a1a) SHA1(2bf8378ff38f6a7c7cbd4cbd489de25cb1f0fe71) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */ + ROM_LOAD( "ei08.2c", 0x0000, 0x10000, CRC(3c87463e) SHA1(f17c98507b562e91e9b27599614b3249fe68ff7a) ) +ROM_END + +// There are 3 screens. Press 1 very lightly to advance. +// On first screen, press Left & Right to move 'CHAOS' around. +ROM_START( decodemo ) + ROM_REGION( 0x60000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "decodemo.4", 0x00000, 0x10000, CRC(7cb53ab2) SHA1(c06f8173f5b27b647b186e1c3a198ec22dab4950) ) + ROM_LOAD16_BYTE( "decodemo.1", 0x00001, 0x10000, CRC(920dd0bf) SHA1(e69e60121812716b55f4e9c4b3f4993171c5296a) ) + ROM_LOAD16_BYTE( "decodemo.6", 0x40000, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) ) + ROM_LOAD16_BYTE( "decodemo.3", 0x40001, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) ) + + // The instruction [33C0 0030 C003] [move.w D0, $30C003.l] is considered illegal, we need to patch out all 3 occurrences + //ROM_FILL( 0x04ba, 1, 0x4e ) + //ROM_FILL( 0x04bb, 1, 0x71 ) /* write a nop instruction [4e71] */ + //ROM_COPY( "maincpu", 0x04ba, 0x04bc, 2 ) /* The faulty instruction is 6 bytes long, so we need 3 nops */ + //ROM_COPY( "maincpu", 0x04ba, 0x04be, 2 ) + //ROM_COPY( "maincpu", 0x04ba, 0x04e8, 6 ) /* copy the 3 nops to 0x4e8 */ + //ROM_COPY( "maincpu", 0x04ba, 0x096e, 6 ) /* and 0x96e */ + + // Text stopped working when bac06 device was rewritten. We send a 1 to pf_control_0 to fix it. + ROM_FILL( 0x04d8, 1, 0x33 ) + ROM_FILL( 0x04d9, 1, 0xfc ) + ROM_FILL( 0x04da, 6, 0x00 ) + ROM_FILL( 0x04db, 1, 0x01 ) + ROM_FILL( 0x04dd, 1, 0x24 ) + ROM_FILL( 0x04e0, 1, 0x67 ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ + ROM_LOAD( "ei07.8a", 0x8000, 0x8000, CRC(9fb1ef4b) SHA1(f4dd0773be93c2ad8b0faacd12939c531b5aa130) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */ + ROM_LOAD( "decodemo.25", 0x00000, 0x08000, CRC(011ffca6) SHA1(5188431849b4613152fd7bdba6a3ff0a4fd6424b) ) + ROM_LOAD( "decodemo.26", 0x08000, 0x08000, CRC(14b56f44) SHA1(66c294b27400d3f3cafd7b1f633681df7195a14b) ) + + ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */ + ROM_LOAD( "decodemo.18", 0x00000, 0x10000, CRC(53ac4058) SHA1(b6bd668085a6f2c21c66f38955e27ab384a5ebf1) ) + ROM_LOAD( "decodemo.20", 0x10000, 0x10000, CRC(64f1ca83) SHA1(a8922226dc4f67873c0eb32a0da5e920b9e08e49) ) + ROM_LOAD( "decodemo.22", 0x20000, 0x10000, CRC(e93c5aef) SHA1(bd31b2418a3e3c76c0018d43e9b106895218dae7) ) + ROM_LOAD( "decodemo.24", 0x30000, 0x10000, CRC(ae2556dc) SHA1(ffcc1f7e8ec25ba35d20cedb6cb4010ea9ff409d) ) + + ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */ + ROM_LOAD( "decodemo.30", 0x08000, 0x08000, CRC(9b02b8f8) SHA1(665764ac534ad370545f33d210846e69db558f6f) ) + ROM_CONTINUE( 0x00000, 0x08000 ) /* the two halves are swapped */ + ROM_LOAD( "decodemo.28", 0x18000, 0x08000, CRC(596b92f2) SHA1(a15f4435a3dcfa7d6a45610fccb8607ae9b8fa19) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */ + ROM_LOAD( "decodemo.15", 0x00000, 0x10000, CRC(4a051829) SHA1(ed560a3ffb9b1d83c3291145e0e938016dd1fa5a) ) + ROM_LOAD( "decodemo.16", 0x10000, 0x08000, CRC(011ffca6) SHA1(5188431849b4613152fd7bdba6a3ff0a4fd6424b) ) + ROM_LOAD( "decodemo.11", 0x20000, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) ) + ROM_LOAD( "decodemo.12", 0x30000, 0x08000, CRC(011ffca6) SHA1(5188431849b4613152fd7bdba6a3ff0a4fd6424b) ) + ROM_LOAD( "decodemo.13", 0x40000, 0x10000, CRC(a58d1d9e) SHA1(ebd22872e0230da23d0e63ef7fbe2b5988cd93bd) ) + ROM_LOAD( "decodemo.14", 0x50000, 0x08000, CRC(011ffca6) SHA1(5188431849b4613152fd7bdba6a3ff0a4fd6424b) ) + ROM_LOAD( "decodemo.9", 0x60000, 0x10000, CRC(4d1de58f) SHA1(1979fb6d9cdc25033c75fd3f0c30fb56e040ddc0) ) + ROM_LOAD( "decodemo.10", 0x70000, 0x08000, CRC(011ffca6) SHA1(5188431849b4613152fd7bdba6a3ff0a4fd6424b) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */ + ROM_LOAD( "ei08.2c", 0x0000, 0x10000, CRC(3c87463e) SHA1(f17c98507b562e91e9b27599614b3249fe68ff7a) ) +ROM_END + +GAME( 2007, baddudef, baddudes, baddudes, baddudes, dec0_state, baddudes, ROT0, "Arkatrad", "Bad Dudes vs. Dragonninja (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, decodemo, baddudes, baddudes, baddudes, dec0_state, baddudes, ROT0, "Charles Doty", "Demo - Data East", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/dkong.cpp b/docs/release/src/hbmame/drivers/dkong.cpp new file mode 100644 index 00000000000..54d7a266680 --- /dev/null +++ b/docs/release/src/hbmame/drivers/dkong.cpp @@ -0,0 +1,284 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/dkong.cpp" + +static INPUT_PORTS_START( dkongex ) + PORT_INCLUDE( dkong ) + PORT_MODIFY("DSW0") + PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x70, "Freeplay" ) + PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( dkrdemo ) + PORT_INCLUDE( dkong ) + PORT_MODIFY("DSW0") + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:!1,!2" ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x01, "5" ) + PORT_DIPSETTING( 0x02, "7" ) + PORT_DIPSETTING( 0x03, "9" ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION( "SW1:!3,!4" ) + PORT_DIPSETTING( 0x00, "10000" ) + PORT_DIPSETTING( 0x04, "15000" ) // and each additional 150k + PORT_DIPSETTING( 0x08, "25000" ) // and each additional 250k + PORT_DIPSETTING( 0x0c, "35000" ) // and each additional 350k + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION( "SW1:!5,!6" ) + PORT_DIPSETTING( 0x30, "Free Play" ) + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION( "SW1:!8" ) + PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION( "SW1:!8" ) + PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) +INPUT_PORTS_END + + + +/* same as mame 'dkongf' except rom cx_5at_g.bin is different */ +ROM_START( dkongex ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cx_5et_g.bin", 0x0000, 0x1000, CRC(00b7efaf) SHA1(97ed5930eb5d0cb98a9008b1d329ba7f3b8b8dbf) ) + ROM_LOAD( "cx_5ct_g.bin", 0x1000, 0x1000, CRC(88af9b69) SHA1(c5621dd8198c333b3fa32fdece60ee5a3d8b2276) ) + ROM_LOAD( "cx_5bt_g.bin", 0x2000, 0x1000, CRC(de74ad91) SHA1(c80227361bdbc565e9f5764e6364b52d40ca778a) ) + ROM_LOAD( "cx_5at_g.bin", 0x3000, 0x1000, CRC(9fa3e5b7) SHA1(5c34170f762a147d5285d17d6689fd64dab99ff2) ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) + ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) + ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) + ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) + ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) + ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) + ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) +ROM_END + + +/* This set has the fixes proposed by Don Hodges at the page: + http://donhodges.com/how_high_can_you_get.htm */ +ROM_START( dkongp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dkongp_c_5et", 0x0000, 0x1000, CRC(2066139d) SHA1(2eaf4cd6eb18eacb210892a85147e70db58bee48) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) + ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) + ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) + ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) + ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) + ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) + ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) +ROM_END + +ROM_START( dkrdemo ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dkrdemo.5et", 0x0000, 0x1000, CRC(f9fdff29) SHA1(c2eb8f0ede8384369e17d8616f4ce063ae12b6c2) ) + ROM_LOAD( "dkrdemo.5ct", 0x1000, 0x1000, CRC(f48cb898) SHA1(470b8bee7f55e1d828abc0b1ec4b423392c83a78) ) + ROM_LOAD( "dkrdemo.5bt", 0x2000, 0x1000, CRC(660d43ec) SHA1(8bba334cec022ea851c4a82f6ecbc91c0708daea) ) + ROM_LOAD( "dkrdemo.5at", 0x3000, 0x1000, CRC(e59d406c) SHA1(7698e319ae191bb8bf7deeea5c4f18da04d73f73) ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) + ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) + ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) + ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) + ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) + ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) + ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) +ROM_END + +ROM_START( kong2600 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "k2600.3n", 0x0000, 0x0800, CRC(0e6a2a6d) SHA1(7ebbcb78b269184cf588b5ad0b90f449d6d4e299) ) + ROM_LOAD( "k2600.3p", 0x0800, 0x0800, CRC(ca57e0f4) SHA1(12c7821fc9f7fee276f7aa27dd0421f565b0f469) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "k2600.7c", 0x0000, 0x0800, CRC(cf450a43) SHA1(efa772f92b890181c0823b8113e069b7c4400ede) ) + ROM_LOAD( "k2600.7d", 0x0800, 0x0800, CRC(d5046907) SHA1(1eb08ed67f6de04c4f3cb8f449503bbedc6207bc) ) + ROM_LOAD( "k2600.7e", 0x1000, 0x0800, CRC(1539fe2a) SHA1(ea599987a2d65ffe2d09ca0951529bde2d31b1be) ) + ROM_LOAD( "k2600.7f", 0x1800, 0x0800, CRC(77cc00ab) SHA1(7560bf4fd65c03f28f015abf64f83fc4ad7ae512) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "k2600.2k", 0x0000, 0x0100, CRC(1e82d375) SHA1(8f2da5cedd1f62be08555dd0eb929eb41da5079d) ) + ROM_LOAD( "k2600.2j", 0x0100, 0x0100, CRC(2ab01dc8) SHA1(c25958d0706cabf997efe16fad71f454fc1ced0b) ) + ROM_LOAD( "k2600.5f", 0x0200, 0x0100, CRC(44988665) SHA1(68c474fc81aff46eae6c9a7ac6ab80288303e291) ) +ROM_END + +ROM_START( nadkong ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "nadkong.5h", 0x0000, 0x0800, CRC(88772f5b) SHA1(0fd6cbb593e87b863eb317b063151ef3b81565c2) ) + ROM_LOAD( "nadkong.3p", 0x0800, 0x0800, CRC(4c8aa728) SHA1(a277988d48f0d2f5d7cf9ef05eef222a36248cd3) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "nadkong.4m", 0x0000, 0x0800, CRC(2afbf9e6) SHA1(51e4f2f67903158b77574d55fcd17f302bc04a52) ) + ROM_LOAD( "nadkong.4n", 0x0800, 0x0800, CRC(4f077877) SHA1(4f2c2bc693b0e8d36114024b6eaeb37a3b5d853d) ) + ROM_LOAD( "nadkong.4r", 0x1000, 0x0800, CRC(d868da93) SHA1(c1c5d21f8c6a057fd5f54cab1eb4dbef06120405) ) + ROM_LOAD( "nadkong.4s", 0x1800, 0x0800, CRC(7ebfe9f3) SHA1(75bd16e9590ada93b061dee3ec7916e1e1f113c3) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) + ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) + ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) +ROM_END + +ROM_START( dkong2m ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) + ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "l_4m_bm.bin", 0x0000, 0x0800, CRC(4b67ccf9) SHA1(8206436a0e5d1f7d5569f918eb87102f03b6cea3) ) + ROM_LOAD( "l_4n_bm.bin", 0x0800, 0x0800, CRC(32a708cb) SHA1(2c8b4d5179f10fb2e8e9da2012419bdfb436a545) ) + ROM_LOAD( "l_4r_bm.bin", 0x1000, 0x0800, CRC(22b5d5c4) SHA1(6bf39a5766786023cc18620283f12dbb9194cbfd) ) + ROM_LOAD( "l_4s_bm.bin", 0x1800, 0x0800, CRC(b212b185) SHA1(03d3586e80cafd2440d03d60b7a4c8808b0c6caa) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) + ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) + ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) +ROM_END + +ROM_START( dkongpac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "dkongpac.3n", 0x0000, 0x0800, CRC(1beba830) SHA1(04dce2464d0627b78d185924706f8ca38892d6d3) ) + ROM_LOAD( "dkongpac.3p", 0x0800, 0x0800, CRC(94d61766) SHA1(f45f10d523fefe0581dde42450b713cb94ce2072) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "dkongpac.7c", 0x0000, 0x0800, CRC(065e2713) SHA1(a32d506a247a692a10962c9e47024d51bbb52d22) ) + ROM_LOAD( "dkongpac.7d", 0x0800, 0x0800, CRC(a84b347d) SHA1(5a3e6fa3d520aef3c529e515d1e9fa464cbc6a78) ) + ROM_LOAD( "dkongpac.7e", 0x1000, 0x0800, CRC(6ae6f476) SHA1(a79927a1c7511bf510107d9ba5fcc8f284541259) ) + ROM_LOAD( "dkongpac.7f", 0x1800, 0x0800, CRC(9d293922) SHA1(14af1cd7f9854dec820c899d999be4623d0048b0) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "k2600.2k", 0x0000, 0x0100, CRC(1e82d375) SHA1(8f2da5cedd1f62be08555dd0eb929eb41da5079d) ) + ROM_LOAD( "k2600.2j", 0x0100, 0x0100, CRC(2ab01dc8) SHA1(c25958d0706cabf997efe16fad71f454fc1ced0b) ) + ROM_LOAD( "k2600.5f", 0x0200, 0x0100, CRC(44988665) SHA1(68c474fc81aff46eae6c9a7ac6ab80288303e291) ) +ROM_END + +ROM_START( dkrainbow ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) /* sound */ + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) + ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) + ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) + ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) + ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "rainbow_c.2k", 0x0000, 0x0100, CRC(c0dce2f5) SHA1(d2195886f509359ac483fd6c96a0477eef514929) ) + ROM_LOAD( "rainbow_c.2j", 0x0100, 0x0100, CRC(03c3153f) SHA1(611267c0a205c9fe258451b7b5545c7a3d2fb541) ) + ROM_LOAD( "rainbow_v.5e", 0x0200, 0x0100, CRC(d9f3005a) SHA1(c4f09f27f5c78d95d31e6af1b8a977b86bbab9a4) ) +ROM_END + + + +GAME( 2013, dkong2m, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Hack", "Donkey Kong (2 marios)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, dkongex, dkong, dkong2b, dkongex, driver_device, 0, ROT90, "Jeff Kulczycki", "Donkey Kong Foundry", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, dkongp, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Don Hodges", "Donkey Kong (patched)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, dkongpac, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Tim Appleton", "Donkey Kong (Pacman graphics)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, dkrainbow, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Sock Master", "Rainbow Donkey Kong", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, dkrdemo, dkong, dkong2b, dkrdemo, driver_device, 0, ROT90, "Sock Master", "Donkey Kong Remix demo 1.8", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kong2600, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Vic Twenty George", "Donkey Kong (2600 graphics)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, nadkong, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Hack", "Naked Donkey Kong", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/docastle.cpp b/docs/release/src/hbmame/drivers/docastle.cpp new file mode 100644 index 00000000000..9062186c65e --- /dev/null +++ b/docs/release/src/hbmame/drivers/docastle.cpp @@ -0,0 +1,32 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/docastle.cpp" + +ROM_START( sdreturn ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "2764.p1", 0x0000, 0x2000, CRC(95c86f8e) SHA1(9fe44911e0aa8d4c7299472a31c401e064d63d17) ) + ROM_LOAD( "2764.l1", 0x4000, 0x2000, CRC(e9a65ba7) SHA1(fbee57d68352fd4062aac55cd1070f001714d0a3) ) + ROM_LOAD( "2764.k1", 0x6000, 0x2000, CRC(b1195d3d) SHA1(095ad2ee1f53be3203830263cb0c9efbe4710c56) ) + ROM_LOAD( "2764.n1", 0x8000, 0x2000, CRC(6a8160d1) SHA1(12101c351bf800319172c459b5e7c69cb5603806) ) + + ROM_REGION( 0x10000, "slave", 0 ) + ROM_LOAD( "27128.p7", 0x0000, 0x4000, CRC(8b06d461) SHA1(2434478810c6301197997be76505f5fc6beba5d3) ) + + ROM_REGION( 0x10000, "cpu3", 0 ) + ROM_LOAD( "bprom2.bin", 0x0000, 0x0200, CRC(2747ca77) SHA1(abc0ca05925974c4b852827605ee2f1caefb8524) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "27128.a3", 0x0000, 0x4000, CRC(4be96dcf) SHA1(f9b45e6297cbbc4d1ee2df7ac377c5daf5181b0f) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_LOAD( "sdreturn.m4", 0x0000, 0x2000, CRC(e8779d04) SHA1(f185efbdc7410e3adba85de482e1b06778b17fe9) ) + ROM_LOAD( "sdreturn.l4", 0x2000, 0x2000, CRC(bc217d6c) SHA1(abeaea49aad85f62943d7a3c30c8655fb29d3e62) ) + ROM_LOAD( "sdreturn.j4", 0x4000, 0x2000, CRC(04824549) SHA1(5056db06c06d76580a85fc65d1e473e77eb48ee9) ) + ROM_LOAD( "sdreturn.h4", 0x6000, 0x2000, CRC(c23c36c2) SHA1(22461c04ea2cfd39c395ca7e42a50636fb1c3625) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "dorunrun.clr", 0x0000, 0x0100, CRC(d5bab5d5) SHA1(7a465fe30b6008793d33f6e07086c89111e1e407) ) +ROM_END + +GAME( 2002, sdreturn, dorunrun, dorunrun, dorunrun, driver_device, 0, ROT0, "Hack", "Sticky Do Returns", MACHINE_SUPPORTS_SAVE ) + diff --git a/docs/release/src/hbmame/drivers/ertictac.cpp b/docs/release/src/hbmame/drivers/ertictac.cpp new file mode 100644 index 00000000000..308248bcc62 --- /dev/null +++ b/docs/release/src/hbmame/drivers/ertictac.cpp @@ -0,0 +1,53 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/ertictac.cpp" + +// worked in 0.128, not now +ROM_START( armdemo ) + ROM_REGION(0x800000, "maincpu", 0 ) + ROM_LOAD32_BYTE( "armdemo.01", 0x00000, 0x10000, CRC(62b840be) SHA1(148b30b1e851e1c012482dde27f4159d1ac56a15) ) + ROM_LOAD32_BYTE( "armdemo.02", 0x00001, 0x10000, CRC(78d41ef7) SHA1(db7b33e91507314371e6b21a5b92bc259dc06559) ) + ROM_LOAD32_BYTE( "armdemo.03", 0x00002, 0x10000, CRC(efd0057f) SHA1(61baccc350623aca6d8b940816459372368c31ef) ) + ROM_LOAD32_BYTE( "armdemo.04", 0x00003, 0x10000, CRC(55eb17b2) SHA1(c55614124214a0ad5617bfbab419f340ee48e6ed) ) + // note all instructions are 4 bytes, and the bytes are in reverse order to what you see in the debugger + ROM_FILL(0x423, 1, 0x03) // set up control (no video without this) + ROM_FILL(0x422, 1, 0x6E) + ROM_FILL(0x421, 1, 0x05) + ROM_FILL(0x420, 1, 0xA4) + ROM_FILL(0x427, 1, 0xE5) + ROM_FILL(0x426, 1, 0x1F) + ROM_FILL(0x425, 1, 0x00) + ROM_FILL(0x424, 1, 0x0C) + ROM_FILL(0x42B, 1, 0xE5) + ROM_FILL(0x42A, 1, 0x80) + ROM_FILL(0x428, 2, 0x00) + ROM_FILL(0x42F, 1, 0xE3) // i/o byte (has no effect) + ROM_FILL(0x42E, 1, 0xA0) + ROM_FILL(0x42D, 1, 0x06) + ROM_FILL(0x42C, 1, 0x33) + ROM_FILL(0x433, 1, 0xE2) + ROM_FILL(0x432, 1, 0x80) + ROM_FILL(0x431, 1, 0x08) + ROM_FILL(0x430, 1, 0x05) + ROM_FILL(0x437, 1, 0xE2) + ROM_FILL(0x436, 1, 0x80) + ROM_FILL(0x435, 1, 0x00) + ROM_FILL(0x434, 1, 0x18) + ROM_FILL(0x43B, 1, 0xE3) + ROM_FILL(0x43A, 1, 0xA0) + ROM_FILL(0x439, 1, 0x10) + ROM_FILL(0x438, 1, 0x00) + ROM_FILL(0x43F, 1, 0xE5) + ROM_FILL(0x43E, 1, 0xC0) + ROM_FILL(0x43D, 1, 0x10) + ROM_FILL(0x43C, 1, 0x00) + ROM_FILL(0x443, 1, 0xEA) // back to normal programming + ROM_FILL(0x442, 1, 0xFF) + ROM_FILL(0x441, 1, 0xFE) + ROM_FILL(0x440, 1, 0xF7) + ROM_FILL(0x001, 1, 0x01) // jump to this lot + + ROM_REGION(0x200000, "vram", ROMREGION_ERASE00) +ROM_END + +GAME( 1990, armdemo, 0, ertictac, ertictac, driver_device, 0, ROT0, "Charles Doty", "Demo - ARM" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/docs/release/src/hbmame/drivers/exerion.cpp b/docs/release/src/hbmame/drivers/exerion.cpp new file mode 100644 index 00000000000..f999c318c0c --- /dev/null +++ b/docs/release/src/hbmame/drivers/exerion.cpp @@ -0,0 +1,66 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/exerion.cpp" + +ROM_START( exriongr ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "exriongr.07", 0x0000, 0x2000, CRC(0ade934a) SHA1(a949aa66f27876ca439b799a9918841f7d8d3115) ) + ROM_LOAD( "exriongr.08", 0x2000, 0x2000, CRC(a469f93e) SHA1(7e800e4c0dce2b9c9525dc1667ca13f1b2844d9b) ) + ROM_LOAD( "exriongr.09", 0x4000, 0x2000, CRC(f0a8d5db) SHA1(df0f18ebef27a70ef420903a02ec5ce3c43d1d8b) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "exerion.05", 0x0000, 0x2000, CRC(32f6bff5) SHA1(a4d0289f9d1d9eea7ca9a32a0616af48da74b401) ) + + ROM_REGION( 0x02000, "gfx1", 0 ) + ROM_LOAD( "exriongr.06", 0x00000, 0x2000, CRC(e18dc7c6) SHA1(1ec9bb9aa1552e4d7dbe16435f98209813590211) ) /* fg chars */ + + ROM_REGION( 0x04000, "gfx2", 0 ) + ROM_LOAD( "exerion.11", 0x00000, 0x2000, CRC(f0633a09) SHA1(8989bcb12abadde34777f7c189cfa6e2dfe92d62) ) /* sprites */ + ROM_LOAD( "exerion.10", 0x02000, 0x2000, CRC(80312de0) SHA1(4fa3bb9d5c62e41a54e8909f8d3b47637137e913) ) + + ROM_REGION( 0x08000, "gfx3", 0 ) + ROM_LOAD( "exerion.03", 0x00000, 0x2000, CRC(790595b8) SHA1(8016ac2394b25db38e962bcff4805380082f6683) ) /* bg data */ + ROM_LOAD( "exerion.04", 0x02000, 0x2000, CRC(d7abd0b9) SHA1(ca6413ecd324cf84e11b703a4eda2c1e6d28ff15) ) + ROM_LOAD( "exriongr.01", 0x04000, 0x2000, CRC(b18009ea) SHA1(6a7abbe60e493a125b5d0e4d7f114b15758e4c6e) ) + ROM_LOAD( "exerion.02", 0x06000, 0x2000, CRC(a7ecbb70) SHA1(3c359d5bb21290a45d3eb18fea2b1f9439b931be) ) + + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "exerion.e1", 0x0000, 0x0020, CRC(2befcc20) SHA1(a24d3f691413378fde545a6ddcef7e5118e74019) ) /* palette */ + ROM_LOAD( "exerion.i8", 0x0020, 0x0100, CRC(31db0e08) SHA1(1041a778e86d3fe6f057cf40a0a08b30760f3887) ) /* fg char lookup table */ + ROM_LOAD( "exerion.h10", 0x0120, 0x0100, CRC(63b4c555) SHA1(30243041be4fa77ada71e8b29d721cad51640c29) ) /* sprite lookup table */ + ROM_LOAD( "exerion.i3", 0x0220, 0x0100, CRC(fe72ab79) SHA1(048a72e6db4768df687df927acaa70ef906b3dc0) ) /* bg char lookup table */ + ROM_LOAD( "exerion.k4", 0x0320, 0x0100, CRC(ffc2ba43) SHA1(03be1c41d6ac3fc11439caef04ef5ffa60d6aec4) ) /* bg char mixer */ +ROM_END + +ROM_START( exerionj ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "exerion.07", 0x0000, 0x2000, CRC(4c78d57d) SHA1(ac702e9ad2bc05493fb1355858667c31c36acfe4) ) + ROM_LOAD( "exerion.08", 0x2000, 0x2000, CRC(dcadc1df) SHA1(91388f617cfaa4289ca1c84c697fcfdd8834ae15) ) + ROM_LOAD( "exerion.09", 0x4000, 0x2000, CRC(34cc4d14) SHA1(511c9de038f7bcaf6f7c96f2cbbe50a80673fa72) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "exerion.05", 0x0000, 0x2000, CRC(32f6bff5) SHA1(a4d0289f9d1d9eea7ca9a32a0616af48da74b401) ) + + ROM_REGION( 0x02000, "gfx1", 0 ) + ROM_LOAD( "exerion.06", 0x00000, 0x2000, CRC(435a85a4) SHA1(f6846bfee11df754405d4d796e7d8ac0321b6eb6) ) /* fg chars */ + + ROM_REGION( 0x04000, "gfx2", 0 ) + ROM_LOAD( "exerion.11", 0x00000, 0x2000, CRC(f0633a09) SHA1(8989bcb12abadde34777f7c189cfa6e2dfe92d62) ) /* sprites */ + ROM_LOAD( "exerion.10", 0x02000, 0x2000, CRC(80312de0) SHA1(4fa3bb9d5c62e41a54e8909f8d3b47637137e913) ) + + ROM_REGION( 0x08000, "gfx3", 0 ) + ROM_LOAD( "exerion.03", 0x00000, 0x2000, CRC(790595b8) SHA1(8016ac2394b25db38e962bcff4805380082f6683) ) /* bg data */ + ROM_LOAD( "exerion.04", 0x02000, 0x2000, CRC(d7abd0b9) SHA1(ca6413ecd324cf84e11b703a4eda2c1e6d28ff15) ) + ROM_LOAD( "exerion.01", 0x04000, 0x2000, CRC(5bb755cb) SHA1(ec92c518c116a78dbb23381468cefb3f930212cc) ) + ROM_LOAD( "exerion.02", 0x06000, 0x2000, CRC(a7ecbb70) SHA1(3c359d5bb21290a45d3eb18fea2b1f9439b931be) ) + + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "exerionj.e1", 0x0000, 0x0020, CRC(60cec362) SHA1(2422e894e2def2ab31f4b6c14fabbe443bd495e6) ) /* palette */ + ROM_LOAD( "exerion.i8", 0x0020, 0x0100, CRC(31db0e08) SHA1(1041a778e86d3fe6f057cf40a0a08b30760f3887) ) /* fg char lookup table */ + ROM_LOAD( "exerion.h10", 0x0120, 0x0100, CRC(63b4c555) SHA1(30243041be4fa77ada71e8b29d721cad51640c29) ) /* sprite lookup table */ + ROM_LOAD( "exerion.i3", 0x0220, 0x0100, CRC(fe72ab79) SHA1(048a72e6db4768df687df927acaa70ef906b3dc0) ) /* bg char lookup table */ + ROM_LOAD( "exerion.k4", 0x0320, 0x0100, CRC(ffc2ba43) SHA1(03be1c41d6ac3fc11439caef04ef5ffa60d6aec4) ) /* bg char mixer */ +ROM_END + +GAME( 2004, exriongr, exerionj, exerion, exerion, exerion_state, exerion, ROT90, "GreekRoms", "Exerion (Greek)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, exerionj, 0, exerion, exerion, exerion_state, exerion, ROT90, "Jaleco", "Exerion (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/exidy.cpp b/docs/release/src/hbmame/drivers/exidy.cpp new file mode 100644 index 00000000000..8d1b04d1977 --- /dev/null +++ b/docs/release/src/hbmame/drivers/exidy.cpp @@ -0,0 +1,43 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/exidy.cpp" + + + + + +/************************************* + * + * Targ Test Rom - note that MAME fails the music tests + * + *************************************/ + +ROM_START( targtest ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hrl10a-1", 0x1800, 0x0800, CRC(969744e1) SHA1(e123bdb02b3b5f6a59c1e7c9ef557fe6bb19c62c) ) + ROM_LOAD( "hrl9a-1", 0x2000, 0x0800, CRC(a177a72d) SHA1(0e705e3e32021e55af4414fa0e2ccbc4980ee848) ) + ROM_LOAD( "hrl8a-1", 0x2800, 0x0800, CRC(6e6928a5) SHA1(10c725b27225ac5aad8639b081df68dd61522cf2) ) + ROM_LOAD( "targtest.bin", 0x3000, 0x0800, CRC(22ae0198) SHA1(0139e3c36e4e415641cefae900347dcf81f00716) ) + ROM_LOAD( "hrl6a-1", 0x3800, 0x0800, CRC(a60a1bfc) SHA1(17c0e67e1a0b263b57d70a148cc5d5099fecbb40) ) + + ROM_REGION( 0x0400, "gfx1", 0 ) + ROM_LOAD( "hrl11d-1", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) ) + + ROM_REGION( 0x0140, "proms", 0 ) + ROM_LOAD( "hrl5c-1", 0x0000, 0x0100, CRC(a24290d0) SHA1(5f2888d168de874021b51c5d19a62fb8165e4454) ) + ROM_LOAD( "stl6d-1", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) + ROM_LOAD( "hrl14h-1", 0x0120, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) + + ROM_REGION( 0x0020, "targ", 0 ) + ROM_LOAD( "hra2b-1", 0x0000, 0x0020, CRC(38e8024b) SHA1(adf1c1770695f7614c95eceb803f662c5b096a76) ) +ROM_END + + + +/************************************* + * + * Game drivers + * + *************************************/ + +GAME( 2008, targtest, targ, targ, targ, exidy_state, targ, ROT0, "Timothy Shiels", "Targ Test Rom V1.0", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/fcrash.cpp b/docs/release/src/hbmame/drivers/fcrash.cpp new file mode 100644 index 00000000000..5757ee74ea8 --- /dev/null +++ b/docs/release/src/hbmame/drivers/fcrash.cpp @@ -0,0 +1,3232 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/* Final Crash & other CPS1 bootlegs */ + +/* + +Final Crash is a bootleg of Final Fight + +Final Fight is by Capcom and runs on CPS1 hardware +The bootleg was manufactured by Playmark of Italy + +this driver depends heavily on cps1.c, but has been +kept apart in an attempt to keep cps1.c clutter free + +Sound is very different from CPS1. + +--- + +Final Crash (bootleg of final fight) + +1x 68k +1x z80 +2x ym2203 +2x oki5205 +1x osc 10mhz +1x osc 24mhz + +eproms: +1.bin sound eprom +from 2.bin to 9.bin program eproms +10.bin to 25.bin gfx eproms + +--- + +kodb has various graphical issues, mainly with old info not being cleared away. +Also, it should be using a vblank irq value of 4. This triggers the following bootleg read/writes; + - IN1 is read at 0x992000 + - IN0 is read of 0x992008 + - dips continue to be read at 0x80001a + - sound command is wrote at 0x992006 + - scroll 1Y is wrote at 0x980000 + - scroll 1X is wrote at 0x980002 + - scroll 2Y is wrote at 0x980004 + - scroll 2X is wrote at 0x980006 + - scroll 3Y is wrote at 0x980008 + - scroll 3X is wrote at 0x98000a + - the layer enable and layer mask writes continue at 0x98000c and 0x980020-2 + +These read/writes are identical to those used by a Knights of the Round bootleg which uses the all sf2mdt sound +hardware. This set is currently non-working. + +This also prevents the game from toggling the sprite address at m_cps_a_regs[0], similar to other bootlegs. +Currently the game is working somewhat, but only using the code left over from the original. If anyone wants to +do any development work on the set, (eg, find the sprite clearing issue), then this should be changed as the game +likely won't write any sprite clearing values otherwise. + +None of this is hooked up currently due to issues with row scroll on the scroll2 layer. + + + +Status of each game: +-------------------- +cawingb2, cawingbl: ok + +dinopic: no sound + +dinopic2: no sound, one bad gfx rom. Copying 8.bin from dinopic fixes it. + +fcrash, kodb: old sprites show on next screen. Patch used. + +kodb: gems are missing. + +knightsb: sprites are entangled with the front layer. + +punipic, punipic2: no sound. Problems in Central Park. Patches used. + +punipic3: same as punipic, and doors are missing. + +sf2m1: crowd is missing. Plane's tail comes off a bit. Patch used. + +sf2mdt, sf2mdta: ok + +sgyxz: garbage left behind. A priority problem can be seen in 3rd demo where + the fighters walk through the crowd instead of behind. + +slampic: no sound. A priority problem between sprites and crowd. + +*/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "cpu/m68000/m68000.h" +#include "includes/cps1.h" +#include "sound/2203intf.h" +#include "sound/msm5205.h" +#include "sound/2151intf.h" +#include "sound/okim6295.h" +#include "machine/eepromser.h" + +WRITE16_MEMBER( cps_state::fcrash_soundlatch_w ) +{ + if (ACCESSING_BITS_0_7) + { + soundlatch_byte_w(space, 0, data & 0xff); + m_audiocpu->set_input_line(0, HOLD_LINE); + } +} + +WRITE16_MEMBER(cps_state::cawingbl_soundlatch_w) +{ + if (ACCESSING_BITS_8_15) + { + soundlatch_byte_w(space, 0, data >> 8); + m_audiocpu->set_input_line(0, HOLD_LINE); + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); /* boost the interleave or some voices get dropped */ + } +} + +WRITE8_MEMBER( cps_state::fcrash_snd_bankswitch_w ) +{ + m_msm_1->set_output_gain(0, (data & 0x08) ? 0.0 : 1.0); + m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0); + + membank("bank1")->set_entry(data & 0x07); +} + +WRITE8_MEMBER( cps_state::sf2mdt_snd_bankswitch_w ) +{ + m_msm_1->set_output_gain(0, (data & 0x20) ? 0.0 : 1.0); + m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0); + + membank("bank1")->set_entry(data & 0x07); +} + +WRITE8_MEMBER( cps_state::knightsb_snd_bankswitch_w ) +{ + m_msm_1->set_output_gain(0, (data & 0x20) ? 0.0 : 1.0); + m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0); + + membank("bank1")->set_entry(data & 0x0f); +} + +WRITE_LINE_MEMBER(cps_state::m5205_int1) +{ + m_msm_1->data_w(m_sample_buffer1 & 0x0f); + m_sample_buffer1 >>= 4; + m_sample_select1 ^= 1; + if (m_sample_select1 == 0) + m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); +} + +WRITE_LINE_MEMBER(cps_state::m5205_int2) +{ + m_msm_2->data_w(m_sample_buffer2 & 0x0f); + m_sample_buffer2 >>= 4; + m_sample_select2 ^= 1; +} + + + +WRITE8_MEMBER( cps_state::fcrash_msm5205_0_data_w ) +{ + m_sample_buffer1 = data; +} + +WRITE8_MEMBER( cps_state::fcrash_msm5205_1_data_w ) +{ + m_sample_buffer2 = data; +} + +/* not verified */ +#define CPS1_ROWSCROLL_OFFS (0x20/2) /* base of row scroll offsets in other RAM */ + +WRITE16_MEMBER(cps_state::dinopic_layer_w) +{ + switch (offset) + { + case 0x00: + m_cps_a_regs[0x0e / 2] = data; + break; + case 0x01: + m_cps_a_regs[0x0c / 2] = data; + break; + case 0x02: + m_cps_a_regs[0x12 / 2] = data; + m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */ + break; + case 0x03: + m_cps_a_regs[0x10 / 2] = data; + break; + case 0x04: + m_cps_a_regs[0x16 / 2] = data; + break; + case 0x05: + m_cps_a_regs[0x14 / 2] = data; + break; + default: + logerror("%s: Unknown layer cmd %X %X\n",space.machine().describe_context(),offset<<1,data); + + } +} + +WRITE16_MEMBER( cps_state::dinopic_layer2_w ) +{ + m_cps_a_regs[0x06 / 2] = data; +} + +WRITE16_MEMBER(cps_state::kodb_layer_w) +{ + /* layer enable and mask 1&2 registers are written here - passing them to m_cps_b_regs for now for drawing routines */ + if (offset == 0x06) + m_cps_b_regs[m_layer_enable_reg / 2] = data; + else + if (offset == 0x10) + m_cps_b_regs[m_layer_mask_reg[1] / 2] = data; + else + if (offset == 0x11) + m_cps_b_regs[m_layer_mask_reg[2] / 2] = data; +} + +WRITE16_MEMBER(cps_state::knightsb_layer_w) +{ + switch (offset) + { + case 0x00: + m_cps_a_regs[0x0e / 2] = data; + break; + case 0x01: + m_cps_a_regs[0x0c / 2] = data; + break; + case 0x02: + m_cps_a_regs[0x12 / 2] = data; + m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */ + break; + case 0x03: + m_cps_a_regs[0x10 / 2] = data; + break; + case 0x04: + m_cps_a_regs[0x16 / 2] = data; + break; + case 0x05: + m_cps_a_regs[0x14 / 2] = data; + break; + case 0x06: + { + switch (data) + { + case 0x0000: + case 0x001f: + case 0x00ff: + data = 0x12f2; + break; + case 0x2000: + data = 0x06f2; + break; + case 0xa000: + data = 0x24d0; + break; + default: + printf ("Unknown control word = %X\n",data); + data = 0x12c0; + } + m_cps_b_regs[m_layer_enable_reg / 2] = data; + break; + } + case 0x10: + m_cps_b_regs[m_layer_mask_reg[1] / 2] = data; + break; + case 0x11: + m_cps_b_regs[m_layer_mask_reg[2] / 2] = data; + break; + case 0x12: + m_cps_b_regs[m_layer_mask_reg[3] / 2] = data; + } +} + +WRITE16_MEMBER(cps_state::punipic_layer_w) +{ + switch (offset) + { + case 0x00: + m_cps_a_regs[0x0e / 2] = data; + break; + case 0x01: + m_cps_a_regs[0x0c / 2] = data; + break; + case 0x02: + m_cps_a_regs[0x12 / 2] = data; + m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */ + break; + case 0x03: + m_cps_a_regs[0x10 / 2] = data + 0xffc0; + break; + case 0x04: + m_cps_a_regs[0x16 / 2] = data; + break; + case 0x05: + m_cps_a_regs[0x14 / 2] = data; + break; + case 0x06: + switch (data) + { + case 0x14: + case 0x54: + m_cps_a_regs[0x04 / 2] = 0x9100; + break; + case 0x24: + case 0x64: + m_cps_a_regs[0x04 / 2] = 0x90c0; + break; + case 0x3c: + case 0x7c: + m_cps_a_regs[0x04 / 2] = 0x9180; + break; + } + + m_cps_a_regs[0x08 / 2] = m_mainram[0xdb90 / 2]; // fixes split objects + break; + case 0x07: + // unknown + break; + default: + logerror("%s: Unknown layer cmd %X %X\n",space.machine().describe_context(),offset<<1,data); + + } +} + +WRITE16_MEMBER(cps_state::sf2m1_layer_w) +{ + switch (offset) + { + case 0x00: + m_cps_a_regs[0x0e / 2] = data; + break; + case 0x01: + m_cps_a_regs[0x0c / 2] = data; + break; + case 0x02: + m_cps_a_regs[0x12 / 2] = data; + m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */ + break; + case 0x03: + m_cps_a_regs[0x10 / 2] = data; + break; + case 0x04: + m_cps_a_regs[0x16 / 2] = data; + break; + case 0x05: + m_cps_a_regs[0x14 / 2] = data; + break; + case 0x06: + switch (data) + { + case 0: + data = 0x078e; + break; + case 1: + data = 0x12c0; + break; + case 2: + data = 0x06ce; + break; + case 3: + data = 0x09ce; + break; + case 4: + data = 0x12ce; + break; + case 5: + data = 0x0b4e; + break; + } + case 0xb3: + m_cps_b_regs[m_layer_enable_reg / 2] = data; + break; + case 0x0b: + case 0x1b: + m_cps_a_regs[0x06 / 2] = data; + break; + default: + logerror("%s: Unknown layer cmd %X %X\n",space.machine().describe_context(),offset<<1,data); + + } +} + +WRITE16_MEMBER(cps_state::sf2mdt_layer_w) +{ + /* layer enable and scroll registers are written here - passing them to m_cps_b_regs and m_cps_a_regs for now for drawing routines + the scroll layers aren't buttery smooth, due to the lack of using the row scroll address tables in the rendering code, this is also + supported by the fact that the game doesn't write the table address anywhere */ + + switch (offset) + { + case 0x06: + m_cps_a_regs[0x14 / 2] = data + 0xffce; /* scroll 3x */ + break; + case 0x07: + m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */ + break; + case 0x08: + m_cps_a_regs[0x10 / 2] = data + 0xffce; /* scroll 2x */ + break; + case 0x09: + m_cps_a_regs[0x0c / 2] = data + 0xffca; /* scroll 1x */ + break; + case 0x0a: + m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */ + m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */ + break; + case 0x0b: + m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */ + break; + case 0x26: + m_cps_b_regs[m_layer_enable_reg / 2] = data; + } +} + +WRITE16_MEMBER(cps_state::sf2mdta_layer_w) +{ + /* layer enable and scroll registers are written here - passing them to m_cps_b_regs and m_cps_a_regs for now for drawing routines + the scroll layers aren't buttery smooth, due to the lack of using the row scroll address tables in the rendering code, this is also + supported by the fact that the game doesn't write the table address anywhere */ + + switch (offset) + { + case 0x06: + m_cps_a_regs[0x0c / 2] = data + 0xffbe; /* scroll 1x */ + break; + case 0x07: + m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */ + break; + case 0x08: + m_cps_a_regs[0x14 / 2] = data + 0xffce; /* scroll 3x */ + break; + case 0x09: + m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */ + m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */ + break; + case 0x0a: + m_cps_a_regs[0x10 / 2] = data + 0xffce; /* scroll 2x */ + break; + case 0x0b: + m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */ + break; + case 0x26: + m_cps_b_regs[m_layer_enable_reg / 2] = data; + } +} + +WRITE16_MEMBER(cps_state::slampic_layer_w) +{ + switch (offset) + { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + dinopic_layer_w(space, offset, data); + break; + case 0x06: // scroll 2 base + m_cps_a_regs[0x04/2] = data << 4; + break; + } +} + + +void cps_state::fcrash_update_transmasks() +{ + int i; + + for (i = 0; i < 4; i++) + { + int mask; + + /* Get transparency registers */ + if (m_layer_mask_reg[i]) + mask = m_cps_b_regs[m_layer_mask_reg[i] / 2] ^ 0xffff; + else + mask = 0xffff; /* completely transparent if priority masks not defined (mercs, qad) */ + + m_bg_tilemap[0]->set_transmask(i, mask, 0x8000); + m_bg_tilemap[1]->set_transmask(i, mask, 0x8000); + m_bg_tilemap[2]->set_transmask(i, mask, 0x8000); + } +} + +void cps_state::fcrash_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) +{ + int pos; + int base = m_sprite_base / 2; + int num_sprites = m_gfxdecode->gfx(2)->elements(); + int last_sprite_offset = 0x1ffc; + UINT16 *sprite_ram = m_gfxram; + UINT16 tileno,flipx,flipy,colour,xpos,ypos; + + /* if we have separate sprite ram, use it */ + if (m_bootleg_sprite_ram) sprite_ram = m_bootleg_sprite_ram.get(); + + /* get end of sprite list marker */ + for (pos = 0x1ffc - base; pos >= 0x0000; pos -= 4) + if (sprite_ram[base + pos - 1] == m_sprite_list_end_marker) last_sprite_offset = pos; + + /* If we are using bootleg sprite ram, the index must be less than 0x2000 */ + if (((base + last_sprite_offset) < 0x2000) || (!m_bootleg_sprite_ram)) + { + for (pos = last_sprite_offset; pos >= 0x0000; pos -= 4) + { + tileno = sprite_ram[base + pos]; + if (tileno >= num_sprites) continue; /* don't render anything outside our tiles */ + xpos = sprite_ram[base + pos + 2] & 0x1ff; + ypos = sprite_ram[base + pos - 1] & 0x1ff; + flipx = sprite_ram[base + pos + 1] & 0x20; + flipy = sprite_ram[base + pos + 1] & 0x40; + colour = sprite_ram[base + pos + 1] & 0x1f; + ypos = 256 - ypos - 16; + xpos = xpos + m_sprite_x_offset + 49; + + m_gfxdecode->gfx(2)->prio_transpen(bitmap,cliprect, tileno, colour, flipx, flipy, xpos, ypos, screen.priority(), 0x02, 15); + } + } +} + +void cps_state::fcrash_render_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask ) +{ + switch (layer) + { + case 0: + fcrash_render_sprites(screen, bitmap, cliprect); + break; + case 1: + case 2: + case 3: + m_bg_tilemap[layer - 1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask); + break; + } +} + +void cps_state::fcrash_render_high_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer ) +{ + bitmap_ind16 dummy_bitmap; + + switch (layer) + { + case 0: + /* there are no high priority sprites */ + break; + case 1: + case 2: + case 3: + m_bg_tilemap[layer - 1]->draw(screen, dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + break; + } +} + +void cps_state::fcrash_build_palette() +{ + int offset; + + // all the bootlegs seem to write the palette offset as usual + int palettebase = (m_cps_a_regs[0x0a / 2] << 8) & 0x1ffff; + + for (offset = 0; offset < 32 * 6 * 16; offset++) + { + int palette = m_gfxram[palettebase / 2 + offset]; + int r, g, b, bright; + + // from my understanding of the schematics, when the 'brightness' + // component is set to 0 it should reduce brightness to 1/3 + + bright = 0x0f + ((palette >> 12) << 1); + + r = ((palette >> 8) & 0x0f) * 0x11 * bright / 0x2d; + g = ((palette >> 4) & 0x0f) * 0x11 * bright / 0x2d; + b = ((palette >> 0) & 0x0f) * 0x11 * bright / 0x2d; + + m_palette->set_pen_color (offset, rgb_t(r, g, b)); + } +} + +UINT32 cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + int layercontrol, l0, l1, l2, l3; + int videocontrol = m_cps_a_regs[0x22 / 2]; + + flip_screen_set(videocontrol & 0x8000); + + layercontrol = m_cps_b_regs[m_layer_enable_reg / 2]; + + /* Get video memory base registers */ + cps1_get_video_base(); + + /* Build palette */ + fcrash_build_palette(); + + fcrash_update_transmasks(); + + m_bg_tilemap[0]->set_scrollx(0, m_scroll1x - m_layer_scroll1x_offset); + m_bg_tilemap[0]->set_scrolly(0, m_scroll1y); + + if (videocontrol & 0x01) /* linescroll enable */ + { + int scrly = -m_scroll2y; + int i; + int otheroffs; + + m_bg_tilemap[1]->set_scroll_rows(1024); + + otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS]; + + for (i = 0; i < 256; i++) + m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]); + } + else + { + m_bg_tilemap[1]->set_scroll_rows(1); + m_bg_tilemap[1]->set_scrollx(0, m_scroll2x - m_layer_scroll2x_offset); + } + m_bg_tilemap[1]->set_scrolly(0, m_scroll2y); + m_bg_tilemap[2]->set_scrollx(0, m_scroll3x - m_layer_scroll3x_offset); + m_bg_tilemap[2]->set_scrolly(0, m_scroll3y); + + + /* turn all tilemaps on regardless of settings in get_video_base() */ + /* write a custom get_video_base for this bootleg hardware? */ + m_bg_tilemap[0]->enable(1); + m_bg_tilemap[1]->enable(1); + m_bg_tilemap[2]->enable(1); + + /* Blank screen */ + bitmap.fill(0xbff, cliprect); + + screen.priority().fill(0, cliprect); + l0 = (layercontrol >> 0x06) & 03; + l1 = (layercontrol >> 0x08) & 03; + l2 = (layercontrol >> 0x0a) & 03; + l3 = (layercontrol >> 0x0c) & 03; + + fcrash_render_layer(screen, bitmap, cliprect, l0, 0); + + if (l1 == 0) + fcrash_render_high_layer(screen, bitmap, cliprect, l0); + + fcrash_render_layer(screen, bitmap, cliprect, l1, 0); + + if (l2 == 0) + fcrash_render_high_layer(screen, bitmap, cliprect, l1); + + fcrash_render_layer(screen, bitmap, cliprect, l2, 0); + + if (l3 == 0) + fcrash_render_high_layer(screen, bitmap, cliprect, l2); + + fcrash_render_layer(screen, bitmap, cliprect, l3, 0); + + return 0; +} + + +static ADDRESS_MAP_START( knightsb_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN2") /* Player 3 controls */ + AM_RANGE(0x800004, 0x800005) AM_WRITENOP // writes 0000 here + AM_RANGE(0x800006, 0x800007) AM_WRITE(fcrash_soundlatch_w) /* Sound command */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITENOP //AM_WRITE(cps1_coinctrl_w) only writes bit 15 + AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */ + AM_RANGE(0x800180, 0x800181) AM_WRITENOP //AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */ + AM_RANGE(0x880000, 0x880001) AM_WRITENOP // unknown + AM_RANGE(0x900000, 0x93ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0x980000, 0x98002f) AM_WRITE(knightsb_layer_w) + AM_RANGE(0x990000, 0x990001) AM_WRITENOP // same as 880000 + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( dinopic_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x800222, 0x800223) AM_WRITE(dinopic_layer2_w) + AM_RANGE(0x880000, 0x880001) AM_WRITENOP // always 0 + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0x980000, 0x98000b) AM_WRITE(dinopic_layer_w) + AM_RANGE(0xf18000, 0xf19fff) AM_RAM + AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */ + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( fcrash_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */ + AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x880006, 0x880007) AM_WRITE(fcrash_soundlatch_w) /* Sound command */ + AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x890000, 0x890001) AM_WRITENOP // palette related? + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( punipic_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x880000, 0x880001) AM_WRITENOP // same as 98000C + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0x980000, 0x98000f) AM_WRITE(punipic_layer_w) + AM_RANGE(0x990000, 0x990001) AM_WRITENOP // unknown + AM_RANGE(0x991000, 0x991017) AM_WRITENOP // unknown + AM_RANGE(0xf18000, 0xf19fff) AM_RAM + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram") +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sf2m1_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800012, 0x800013) AM_READ(cps1_in2_r) /* Buttons 4,5,6 for both players */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x800180, 0x800181) AM_WRITENOP // only once at boot, for 80010c + AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */ + AM_RANGE(0x880000, 0x880001) AM_WRITENOP // unknown + AM_RANGE(0x900000, 0x93ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0x980000, 0x9801ff) AM_WRITE(sf2m1_layer_w) + AM_RANGE(0x990000, 0x990001) AM_WRITENOP // same as 880000 + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sf2mdt_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x708100, 0x7081ff) AM_WRITE(sf2mdta_layer_w) + AM_RANGE(0x70c000, 0x70c001) AM_READ_PORT("IN1") + AM_RANGE(0x70c008, 0x70c009) AM_READ_PORT("IN2") + AM_RANGE(0x70c018, 0x70c01f) AM_READ(cps1_hack_dsw_r) + AM_RANGE(0x70c106, 0x70c107) AM_WRITE(cawingbl_soundlatch_w) + AM_RANGE(0x70d000, 0x70d001) AM_WRITENOP // writes FFFF + //AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sf2b_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x708100, 0x7081ff) AM_WRITE(sf2mdta_layer_w) + AM_RANGE(0x70c000, 0x70c001) AM_READ_PORT("IN1") + AM_RANGE(0x70c008, 0x70c009) AM_READ_PORT("IN2") + AM_RANGE(0x70c018, 0x70c01f) AM_READ(cps1_hack_dsw_r) + AM_RANGE(0x70c106, 0x70c107) AM_WRITE(cawingbl_soundlatch_w) + AM_RANGE(0x70d000, 0x70d001) AM_WRITENOP // writes FFFF + //AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sgyxz_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */ + AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x88000e, 0x88000f) AM_WRITE(cps1_soundlatch_w) + AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */ + AM_RANGE(0x890000, 0x890001) AM_WRITE(cps1_soundlatch2_w) + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( slampic_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM + AM_RANGE(0x800006, 0x800007) AM_WRITENOP //AM_WRITE(cps1_soundlatch2_w) + AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x880000, 0x880001) AM_WRITENOP //AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0x980000, 0x98000d) AM_WRITE(slampic_layer_w) + AM_RANGE(0xf00000, 0xf0ffff) AM_READ(qsound_rom_r) /* Slammasters protection */ + AM_RANGE(0xf18000, 0xf19fff) AM_RAM + AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */ + AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */ + AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT") + AM_RANGE(0xf1f000, 0xf1ffff) AM_NOP // writes 0 to range, then reads F1F6EC + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cps_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") + AM_RANGE(0xd000, 0xd7ff) AM_RAM + AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("ym1", ym2203_device, read, write) + AM_RANGE(0xdc00, 0xdc01) AM_DEVREADWRITE("ym2", ym2203_device, read, write) + AM_RANGE(0xe000, 0xe000) AM_WRITE(fcrash_snd_bankswitch_w) + AM_RANGE(0xe400, 0xe400) AM_READ(soundlatch_byte_r) + AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_0_data_w) + AM_RANGE(0xec00, 0xec00) AM_WRITE(fcrash_msm5205_1_data_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( kodb_sound_map, AS_PROGRAM, 8, cps_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") + AM_RANGE(0xd000, 0xd7ff) AM_RAM + AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("2151", ym2151_device, read, write) + AM_RANGE(0xe400, 0xe400) AM_DEVREADWRITE("oki", okim6295_device, read, write) + AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_byte_r) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sf2mdt_z80map, AS_PROGRAM, 8, cps_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") + AM_RANGE(0xd000, 0xd7ff) AM_RAM + AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("2151", ym2151_device, read, write) + AM_RANGE(0xdc00, 0xdc00) AM_READ(soundlatch_byte_r) + AM_RANGE(0xe000, 0xe000) AM_WRITE(sf2mdt_snd_bankswitch_w) + AM_RANGE(0xe400, 0xe400) AM_WRITE(fcrash_msm5205_0_data_w) + AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_1_data_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( knightsb_z80map, AS_PROGRAM, 8, cps_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") + AM_RANGE(0xcffe, 0xcfff) AM_WRITENOP // writes lots of data + AM_RANGE(0xd000, 0xd7ff) AM_RAM + AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("2151", ym2151_device, read, write) + AM_RANGE(0xdc00, 0xdc00) AM_READ(soundlatch_byte_r) + AM_RANGE(0xe000, 0xe000) AM_WRITE(knightsb_snd_bankswitch_w) + AM_RANGE(0xe400, 0xe400) AM_WRITE(fcrash_msm5205_0_data_w) + AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_1_data_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sgyxz_sound_map, AS_PROGRAM, 8, cps_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") + AM_RANGE(0xd000, 0xd7ff) AM_RAM + AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write) + AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write) + AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w) + AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */ + AM_RANGE(0xf008, 0xf008) AM_READ(soundlatch_byte_r) /* Sound command */ + AM_RANGE(0xf00a, 0xf00a) AM_READ(soundlatch2_byte_r) /* Sound timer fade */ +ADDRESS_MAP_END + + +#define CPS1_COINAGE_1 \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) \ + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) ) + + +#define CPS1_COINAGE_2(diploc) \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) + +#define CPS1_COINAGE_3(diploc) \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \ + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \ + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \ + PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \ + PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) + +#define CPS1_DIFFICULTY_1(diploc) \ + PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x07, "1 (Easiest)" ) \ + PORT_DIPSETTING( 0x06, "2" ) \ + PORT_DIPSETTING( 0x05, "3" ) \ + PORT_DIPSETTING( 0x04, "4 (Normal)" ) \ + PORT_DIPSETTING( 0x03, "5" ) \ + PORT_DIPSETTING( 0x02, "6" ) \ + PORT_DIPSETTING( 0x01, "7" ) \ + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + +#define CPS1_DIFFICULTY_2(diploc) \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \ + PORT_DIPSETTING( 0x04, "1 (Easiest)" ) \ + PORT_DIPSETTING( 0x05, "2" ) \ + PORT_DIPSETTING( 0x06, "3" ) \ + PORT_DIPSETTING( 0x07, "4 (Normal)" ) \ + PORT_DIPSETTING( 0x03, "5" ) \ + PORT_DIPSETTING( 0x02, "6" ) \ + PORT_DIPSETTING( 0x01, "7" ) \ + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + + +static INPUT_PORTS_START( fcrash ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWA") + CPS1_COINAGE_1 + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" ) + PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01" + PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02" + PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03" + PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04" + PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05" + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06" + PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07" + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08" + PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" ) + PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01" + PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02" + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03" + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04" + PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x60, "100k" ) + PORT_DIPSETTING( 0x40, "200k" ) + PORT_DIPSETTING( 0x20, "100k and every 200k" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) + + PORT_START("DSWC") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x03, "2" ) + PORT_DIPSETTING( 0x02, "3" ) + PORT_DIPSETTING( 0x01, "4" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + + PORT_START("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME ("P1 Button 3 (Cheat)") + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME ("P2 Button 3 (Cheat)") + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +static INPUT_PORTS_START( cawingbl ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWA") + CPS1_COINAGE_1 + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) // Overrides all other coinage settings + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // according to manual + PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) // This switch is not documented + + PORT_START("DSWB") + PORT_DIPNAME( 0x07, 0x04, "Difficulty Level (Enemy's Strength)" ) PORT_DIPLOCATION("SW(B):1,2,3") + PORT_DIPSETTING( 0x07, "1 (Easiest)" ) + PORT_DIPSETTING( 0x06, "2" ) + PORT_DIPSETTING( 0x05, "3" ) + PORT_DIPSETTING( 0x04, "4 (Normal)" ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x02, "6" ) + PORT_DIPSETTING( 0x01, "7" ) + PORT_DIPSETTING( 0x00, "8 (Hardest)" ) + PORT_DIPNAME( 0x18, 0x18, "Difficulty Level (Player's Strength)" ) PORT_DIPLOCATION("SW(B):4,5") + PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // This switch is not documented + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // This switch is not documented + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) // This switch is not documented + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // This switch is not documented + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // This switch is not documented + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( kodb ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWA") + CPS1_COINAGE_2( "SW(A)" ) + PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(A):5") + PORT_DIPSETTING( 0x00, "2 Players" ) + PORT_DIPSETTING( 0x10, "3 Players" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6") + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x38, "2" ) + PORT_DIPSETTING( 0x28, "3" ) + PORT_DIPSETTING( 0x20, "4" ) + PORT_DIPSETTING( 0x18, "5" ) + PORT_DIPSETTING( 0x10, "6" ) + PORT_DIPSETTING( 0x08, "7" ) + PORT_DIPSETTING( 0x00, "8" ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8") + PORT_DIPSETTING( 0x80, "80k and every 400k" ) + PORT_DIPSETTING( 0xc0, "100k and every 450k" ) + PORT_DIPSETTING( 0x40, "160k and every 450k" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) + + PORT_START("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) +INPUT_PORTS_END + +static INPUT_PORTS_START( sf2mdt ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN2") /* Extra buttons */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWA") + CPS1_COINAGE_1 + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) + + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" ) + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + + + +static INPUT_PORTS_START( sf2mdtb ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN2") /* Extra buttons */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSWA") + CPS1_COINAGE_1 + PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) //sort of debug mode... + //depnding (???) of other DSW setting get different + //"game" mode, autoplay, bonus round, ecc... + PORT_START("DSWB") + CPS1_DIFFICULTY_1( "SW(B)" ) + PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" ) + PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" ) + PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) + PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) + PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) + + PORT_START("DSWC") + PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) + PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7") + PORT_DIPSETTING( 0x40, DEF_STR( No ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8") + PORT_DIPSETTING( 0x80, "Game" ) + PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( sgyxz ) + PORT_START ("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) + PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWA") + PORT_DIPNAME( 0x03, 0x00, "Play Mode" ) + PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x03, "Tournament" ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWB") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("DSWC") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START ("IN1") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START ("IN2") /* Player 3 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) + + PORT_START( "EEPROMIN" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) +INPUT_PORTS_END + + +MACHINE_START_MEMBER(cps_state,fcrash) +{ + UINT8 *ROM = memregion("audiocpu")->base(); + + membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + + m_layer_enable_reg = 0x20; + m_layer_mask_reg[0] = 0x26; + m_layer_mask_reg[1] = 0x30; + m_layer_mask_reg[2] = 0x28; + m_layer_mask_reg[3] = 0x32; + m_layer_scroll1x_offset = 62; + m_layer_scroll2x_offset = 60; + m_layer_scroll3x_offset = 64; + m_sprite_base = 0x50c8; + m_sprite_list_end_marker = 0x8000; + m_sprite_x_offset = 0; + + save_item(NAME(m_sample_buffer1)); + save_item(NAME(m_sample_buffer2)); + save_item(NAME(m_sample_select1)); + save_item(NAME(m_sample_select2)); +} + +MACHINE_START_MEMBER(cps_state,sgyxz) +{ + MACHINE_START_CALL_MEMBER(kodb); + m_layer_scroll1x_offset = 0x40; + m_layer_scroll2x_offset = 0x40; + m_layer_scroll3x_offset = 0x40; + membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000); +} + +MACHINE_START_MEMBER(cps_state,kodb) +{ + m_layer_enable_reg = 0x20; + m_layer_mask_reg[0] = 0x2e; + m_layer_mask_reg[1] = 0x2c; + m_layer_mask_reg[2] = 0x2a; + m_layer_mask_reg[3] = 0x28; + m_layer_scroll1x_offset = 0; + m_layer_scroll2x_offset = 0; + m_layer_scroll3x_offset = 0; + m_sprite_base = 0x1000; + m_sprite_list_end_marker = 0xffff; + m_sprite_x_offset = 0; +} + +MACHINE_START_MEMBER(cps_state, cawingbl) +{ + MACHINE_START_CALL_MEMBER(fcrash); + + m_layer_enable_reg = 0x0c; + m_layer_mask_reg[0] = 0x0a; + m_layer_mask_reg[1] = 0x08; + m_layer_mask_reg[2] = 0x06; + m_layer_mask_reg[3] = 0x04; + m_layer_scroll1x_offset = 63; + m_layer_scroll2x_offset = 62; + m_layer_scroll3x_offset = 65; + m_sprite_base = 0x1000; +} + +MACHINE_START_MEMBER(cps_state, sf2mdt) +{ + UINT8 *ROM = memregion("audiocpu")->base(); + + membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + + m_layer_enable_reg = 0x26; + m_layer_mask_reg[0] = 0x28; + m_layer_mask_reg[1] = 0x2a; + m_layer_mask_reg[2] = 0x2c; + m_layer_mask_reg[3] = 0x2e; + m_layer_scroll1x_offset = 0; + m_layer_scroll2x_offset = 0; + m_layer_scroll3x_offset = 0; + m_sprite_base = 0x1000; + m_sprite_list_end_marker = 0x8000; + m_sprite_x_offset = 2; + + save_item(NAME(m_sample_buffer1)); + save_item(NAME(m_sample_buffer2)); + save_item(NAME(m_sample_select1)); + save_item(NAME(m_sample_select2)); +} + +MACHINE_START_MEMBER(cps_state, knightsb) +{ + UINT8 *ROM = memregion("audiocpu")->base(); + + membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); + + m_layer_enable_reg = 0x30; + m_layer_mask_reg[0] = 0x28; + m_layer_mask_reg[1] = 0x2a; + m_layer_mask_reg[2] = 0x2c; + m_layer_mask_reg[3] = 0x2e; + m_layer_scroll1x_offset = 0x3e; //text + m_layer_scroll2x_offset = 0x3c; //bricks around scores + m_layer_scroll3x_offset = 0x40; //hill with sword going in + m_sprite_base = 0x1000; + m_sprite_list_end_marker = 0x8000; + m_sprite_x_offset = 0; +} + +MACHINE_START_MEMBER(cps_state, sf2m1) +{ + UINT8 *ROM = memregion("audiocpu")->base(); + + membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + + m_layer_enable_reg = 0x26; + m_layer_mask_reg[0] = 0x28; + m_layer_mask_reg[1] = 0x2a; + m_layer_mask_reg[2] = 0x2c; + m_layer_mask_reg[3] = 0x2e; + m_layer_scroll1x_offset = 0x3e; + m_layer_scroll2x_offset = 0x3c; + m_layer_scroll3x_offset = 0x40; + m_sprite_base = 0x1000; + m_sprite_list_end_marker = 0x8000; + m_sprite_x_offset = 0; +} + +MACHINE_RESET_MEMBER(cps_state,fcrash) +{ + m_sample_buffer1 = 0; + m_sample_buffer2 = 0; + m_sample_select1 = 0; + m_sample_select2 = 0; +} + +static MACHINE_CONFIG_START( fcrash, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 10000000) + MCFG_CPU_PROGRAM_MAP(fcrash_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, 24000000/6) /* ? */ + MCFG_CPU_PROGRAM_MAP(sound_map) + + MCFG_MACHINE_START_OVERRIDE(cps_state,fcrash) + MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 4096) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + // sound hardware + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_SOUND_ADD("ym1", YM2203, 24000000/6) /* ? */ + MCFG_SOUND_ROUTE(0, "mono", 0.10) + MCFG_SOUND_ROUTE(1, "mono", 0.10) + MCFG_SOUND_ROUTE(2, "mono", 0.10) + MCFG_SOUND_ROUTE(3, "mono", 1.0) + + MCFG_SOUND_ADD("ym2", YM2203, 24000000/6) /* ? */ + MCFG_SOUND_ROUTE(0, "mono", 0.10) + MCFG_SOUND_ROUTE(1, "mono", 0.10) + MCFG_SOUND_ROUTE(2, "mono", 0.10) + MCFG_SOUND_ROUTE(3, "mono", 1.0) + + MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */ + MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + + MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */ + MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_CONFIG_END + +// HBMAME start +static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") + AM_RANGE(0xd000, 0xd7ff) AM_RAM + AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write) + AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write) + AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w) + AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */ + AM_RANGE(0xf008, 0xf008) AM_READ(soundlatch_byte_r) /* Sound command */ + AM_RANGE(0xf00a, 0xf00a) AM_READ(soundlatch2_byte_r) /* Sound timer fade */ +ADDRESS_MAP_END + +static MACHINE_CONFIG_START( cawingb, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(fcrash_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq6_line_hold) /* needed to write to scroll values */ + + MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */ + MCFG_CPU_PROGRAM_MAP(sub_map) + + MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz/2, 518, 64, 448, 259, 16, 240) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */ + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END +// HBMAME end +static MACHINE_CONFIG_DERIVED( cawingbl, fcrash ) + /* basic machine hardware */ + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq6_line_hold) /* needed to write to scroll values */ + + MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_START( kodb, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 10000000) + MCFG_CPU_PROGRAM_MAP(fcrash_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, 3579545) + MCFG_CPU_PROGRAM_MAP(kodb_sound_map) + + MCFG_MACHINE_START_OVERRIDE(cps_state,kodb) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */ + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + + /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_START( sf2mdt, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 12000000) + MCFG_CPU_PROGRAM_MAP(sf2mdt_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq4_line_hold) /* triggers the sprite ram and scroll writes */ + + MCFG_CPU_ADD("audiocpu", Z80, 3579545) + MCFG_CPU_PROGRAM_MAP(sf2mdt_z80map) + + MCFG_MACHINE_START_OVERRIDE(cps_state, sf2mdt) + MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 4096) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("2151", 3579545) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + + /* has 2x MSM5205 instead of OKI6295 */ + MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */ + MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + + MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */ + MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sf2b, sf2mdt) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(sf2b_map) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_START( knightsb, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 24000000 / 2) + MCFG_CPU_PROGRAM_MAP(knightsb_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, 29821000 / 8) + MCFG_CPU_PROGRAM_MAP(knightsb_z80map) + + MCFG_MACHINE_START_OVERRIDE(cps_state, knightsb) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("2151", 29821000 / 8) + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + + /* has 2x MSM5205 instead of OKI6295 */ + MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */ + MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + + MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */ + MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_CONFIG_END + +#define CODE_SIZE 0x400000 + +// ************************************************************************* FCRASH + +ROM_START( fcrash ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "9.bin", 0x00000, 0x20000, CRC(c6854c91) SHA1(29f01cc65be5eaa3f86e99eebdd284104623abb0) ) + ROM_LOAD16_BYTE( "5.bin", 0x00001, 0x20000, CRC(77f7c2b3) SHA1(feea48d9555824a2e5bf5e99ce159edc015f0792) ) + ROM_LOAD16_BYTE( "8.bin", 0x40000, 0x20000, CRC(1895b3df) SHA1(415a26050c50ed79a7ee5ddd1b8d61593b1ce876) ) + ROM_LOAD16_BYTE( "4.bin", 0x40001, 0x20000, CRC(bbd411ee) SHA1(85d50ca72ec46d627f9c88ff0809aa30e164821a) ) + ROM_LOAD16_BYTE( "7.bin", 0x80000, 0x20000, CRC(5b23ebf2) SHA1(8c28c21a72a28ad249170026891c6bb865943f84) ) + ROM_LOAD16_BYTE( "3.bin", 0x80001, 0x20000, CRC(aba2aebe) SHA1(294109b5929ed63859a55bef16643e3ade7da16f) ) + ROM_LOAD16_BYTE( "6.bin", 0xc0000, 0x20000, CRC(d4bf37f6) SHA1(f47e1cc9aa3b3019ee57f59715e3a611acf9fe3e) ) + ROM_LOAD16_BYTE( "2.bin", 0xc0001, 0x20000, CRC(07ac8f43) SHA1(7a41b003c76adaabd3f94929cc163461b70e0ed9) ) + ROM_FILL(0x2610, 1, 7) // fix transitions HBMAME + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* Audio CPU + Sample Data */ + ROM_LOAD( "1.bin", 0x00000, 0x20000, CRC(5b276c14) SHA1(73e53c077d4e3c1b919eee28b29e34176ee204f8) ) + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "18.bin", 0x000000, 0x20000, CRC(f1eee6d9) SHA1(bee95efbff49c582cff1cc6d9bb5ef4ea5c4a074) , ROM_SKIP(3) ) + ROMX_LOAD( "20.bin", 0x000001, 0x20000, CRC(675f4537) SHA1(acc68822da3aafbb62f76cbffa5f3389fcc91447) , ROM_SKIP(3) ) + ROMX_LOAD( "22.bin", 0x000002, 0x20000, CRC(db8a32ac) SHA1(b95f73dff291acee239e22e5fd7efe15d0de23be) , ROM_SKIP(3) ) + ROMX_LOAD( "24.bin", 0x000003, 0x20000, CRC(f4113e57) SHA1(ff1f443c13494a169b9be24abc361d27a6d01c09) , ROM_SKIP(3) ) + ROMX_LOAD( "10.bin", 0x080000, 0x20000, CRC(d478853e) SHA1(91fcf8eb022ccea66d291bec84ace557181cf861) , ROM_SKIP(3) ) + ROMX_LOAD( "12.bin", 0x080001, 0x20000, CRC(25055642) SHA1(578cf6a436489cc1f2d1acdb0cba6c1cbee2e21f) , ROM_SKIP(3) ) + ROMX_LOAD( "14.bin", 0x080002, 0x20000, CRC(b77d0328) SHA1(42eb1ebfda301f2b09f3add5932e8331f4790706) , ROM_SKIP(3) ) + ROMX_LOAD( "16.bin", 0x080003, 0x20000, CRC(ea111a79) SHA1(1b86aa984d2d6c527e96b61274a82263f34d0d89) , ROM_SKIP(3) ) + ROMX_LOAD( "19.bin", 0x100000, 0x20000, CRC(b3aa1f48) SHA1(411f3855739992f5967e915f2a5255afcedeac2e) , ROM_SKIP(3) ) // only these 4 differ from ffightbla (new title logo) + ROMX_LOAD( "21.bin", 0x100001, 0x20000, CRC(04d175c9) SHA1(33e6e3fefae4e3977c8c954fbd7feff36e92d723) , ROM_SKIP(3) ) // ^ + ROMX_LOAD( "23.bin", 0x100002, 0x20000, CRC(e592ba4f) SHA1(62559481e0da3954a90da0ab0fb51f87f1b3dd9d) , ROM_SKIP(3) ) // ^ + ROMX_LOAD( "25.bin", 0x100003, 0x20000, CRC(b89a740f) SHA1(516d73c772e0a904dfb0bd84874919d78bbbd200) , ROM_SKIP(3) ) // ^ + ROMX_LOAD( "11.bin", 0x180000, 0x20000, CRC(d4457a60) SHA1(9e956efafa81a81aca92837df03968f5670ffc15) , ROM_SKIP(3) ) + ROMX_LOAD( "13.bin", 0x180001, 0x20000, CRC(3b26a37d) SHA1(58d8d0cdef81c938fb1a5595f2d02b228865893b) , ROM_SKIP(3) ) + ROMX_LOAD( "15.bin", 0x180002, 0x20000, CRC(6d837e09) SHA1(b4a133ab96c35b689ee692bfcc04981791099b6f) , ROM_SKIP(3) ) + ROMX_LOAD( "17.bin", 0x180003, 0x20000, CRC(c59a4d6c) SHA1(59e49c7d24dd333007de4bb621050011a5392bcc) , ROM_SKIP(3) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */ +ROM_END + +ROM_START( ffightbl ) + ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "fg-e.bin", 0x00000, 0x80000, CRC(f8ccf27e) SHA1(08ff445d946da81e7dc0cc021f686b5968fa34ab) ) + ROM_LOAD16_BYTE( "fg-f.bin", 0x00001, 0x80000, CRC(d96c76b2) SHA1(3f9ca4625491cab07cf4a1bf001f1325dc3652a3) ) + ROM_FILL(0x2610, 1, 7) // fix transitions HBMAME + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* Audio CPU + Sample Data */ + ROM_LOAD( "ff1.bin", 0x00000, 0x20000, CRC(5b276c14) SHA1(73e53c077d4e3c1b919eee28b29e34176ee204f8) ) + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "fg-d.bin", 0x000000, 0x80000, CRC(4303f863) SHA1(72a3246e14f9c4d1fb4712bd67d087db42d722d9) , ROM_SKIP(3) ) + ROMX_LOAD( "fg-c.bin", 0x000001, 0x80000, CRC(d1dfcd2d) SHA1(8796db70459e1e6232a75f5c3f4bf8b227b16f46) , ROM_SKIP(3) ) + ROMX_LOAD( "fg-b.bin", 0x000002, 0x80000, CRC(22f2c097) SHA1(bbf2d30d31c5a7802b7f7f164dd51a4584511936) , ROM_SKIP(3) ) + ROMX_LOAD( "fg-a.bin", 0x000003, 0x80000, CRC(16a89b2c) SHA1(4d0e1ec6ae9a2bd31fa77140532bbce64d3874e9) , ROM_SKIP(3) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */ +ROM_END + +// this is identical to the Final Crash bootleg but without the modified gfx. +// it's less common than Final Crash, but is either the original bootleg, or the bootleggers wanted to restore the +// original title. +ROM_START( ffightbla ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "9.bin", 0x00000, 0x20000, CRC(c6854c91) SHA1(29f01cc65be5eaa3f86e99eebdd284104623abb0) ) + ROM_LOAD16_BYTE( "5.bin", 0x00001, 0x20000, CRC(77f7c2b3) SHA1(feea48d9555824a2e5bf5e99ce159edc015f0792) ) + ROM_LOAD16_BYTE( "8.bin", 0x40000, 0x20000, CRC(1895b3df) SHA1(415a26050c50ed79a7ee5ddd1b8d61593b1ce876) ) + ROM_LOAD16_BYTE( "4.bin", 0x40001, 0x20000, CRC(bbd411ee) SHA1(85d50ca72ec46d627f9c88ff0809aa30e164821a) ) + ROM_LOAD16_BYTE( "7.bin", 0x80000, 0x20000, CRC(5b23ebf2) SHA1(8c28c21a72a28ad249170026891c6bb865943f84) ) + ROM_LOAD16_BYTE( "3.bin", 0x80001, 0x20000, CRC(aba2aebe) SHA1(294109b5929ed63859a55bef16643e3ade7da16f) ) + ROM_LOAD16_BYTE( "6.bin", 0xc0000, 0x20000, CRC(d4bf37f6) SHA1(f47e1cc9aa3b3019ee57f59715e3a611acf9fe3e) ) + ROM_LOAD16_BYTE( "2.bin", 0xc0001, 0x20000, CRC(07ac8f43) SHA1(7a41b003c76adaabd3f94929cc163461b70e0ed9) ) + ROM_FILL(0x2610, 1, 7) // fix transitions HBMAME + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* Audio CPU + Sample Data */ + ROM_LOAD( "1.bin", 0x00000, 0x20000, CRC(5b276c14) SHA1(73e53c077d4e3c1b919eee28b29e34176ee204f8) ) + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "18.bin", 0x000000, 0x20000, CRC(f1eee6d9) SHA1(bee95efbff49c582cff1cc6d9bb5ef4ea5c4a074) , ROM_SKIP(3) ) + ROMX_LOAD( "20.bin", 0x000001, 0x20000, CRC(675f4537) SHA1(acc68822da3aafbb62f76cbffa5f3389fcc91447) , ROM_SKIP(3) ) + ROMX_LOAD( "22.bin", 0x000002, 0x20000, CRC(db8a32ac) SHA1(b95f73dff291acee239e22e5fd7efe15d0de23be) , ROM_SKIP(3) ) + ROMX_LOAD( "24.bin", 0x000003, 0x20000, CRC(f4113e57) SHA1(ff1f443c13494a169b9be24abc361d27a6d01c09) , ROM_SKIP(3) ) + ROMX_LOAD( "10.bin", 0x080000, 0x20000, CRC(d478853e) SHA1(91fcf8eb022ccea66d291bec84ace557181cf861) , ROM_SKIP(3) ) + ROMX_LOAD( "12.bin", 0x080001, 0x20000, CRC(25055642) SHA1(578cf6a436489cc1f2d1acdb0cba6c1cbee2e21f) , ROM_SKIP(3) ) + ROMX_LOAD( "14.bin", 0x080002, 0x20000, CRC(b77d0328) SHA1(42eb1ebfda301f2b09f3add5932e8331f4790706) , ROM_SKIP(3) ) + ROMX_LOAD( "16.bin", 0x080003, 0x20000, CRC(ea111a79) SHA1(1b86aa984d2d6c527e96b61274a82263f34d0d89) , ROM_SKIP(3) ) + ROMX_LOAD( "ff-19.bin", 0x100000, 0x20000, CRC(7bc03747) SHA1(6964e5c562d6af5b4327ff828f3d0522c34911bc) , ROM_SKIP(3) ) // only these 4 differ from fcrash + ROMX_LOAD( "ff-21.bin", 0x100001, 0x20000, CRC(0c248e2b) SHA1(28731fe25a8eb39c1e0822cf9074a7a32c6b2978) , ROM_SKIP(3) ) // ^ + ROMX_LOAD( "ff-23.bin", 0x100002, 0x20000, CRC(53949d0e) SHA1(1b11134005a47c323917b9892fe44819c36c6ee2) , ROM_SKIP(3) ) // ^ + ROMX_LOAD( "ff-25.bin", 0x100003, 0x20000, CRC(8d34a67d) SHA1(69e9f52efb73952313848a6d54dbdc17a2275c59) , ROM_SKIP(3) ) // ^ + ROMX_LOAD( "11.bin", 0x180000, 0x20000, CRC(d4457a60) SHA1(9e956efafa81a81aca92837df03968f5670ffc15) , ROM_SKIP(3) ) + ROMX_LOAD( "13.bin", 0x180001, 0x20000, CRC(3b26a37d) SHA1(58d8d0cdef81c938fb1a5595f2d02b228865893b) , ROM_SKIP(3) ) + ROMX_LOAD( "15.bin", 0x180002, 0x20000, CRC(6d837e09) SHA1(b4a133ab96c35b689ee692bfcc04981791099b6f) , ROM_SKIP(3) ) + ROMX_LOAD( "17.bin", 0x180003, 0x20000, CRC(c59a4d6c) SHA1(59e49c7d24dd333007de4bb621050011a5392bcc) , ROM_SKIP(3) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */ +ROM_END + + + +// ************************************************************************* KODB + +/* +CPU + +1x TS68000CP12 (main) +1x TPC1020AFN-084C +1x Z8400BB1-Z80CPU (sound) +1x YM2151 (sound) +1x YM3012A (sound) +1x OKI-M6295 (sound) +2x LM324N (sound) +1x TDA2003 (sound) +1x oscillator 10.0 MHz +1x oscillator 22.1184 MHz + +ROMs + +1x AM27C512 (1)(sound) +1x AM27C020 (2)(sound) +2x AM27C040 (3,4)(main) +1x Am27C040 (bp)(gfx) +7x maskrom (ai,bi,ci,di,ap,cp,dp)(gfx) +1x GAL20V8A (not dumped) +3x GAL16V8A (not dumped) +1x PALCE20V8H (not dumped) +1x GAL20V8S (not dumped) + +Note + +1x JAMMA edge connector +1x trimmer (volume) +3x 8 switches dip + +*/ + +ROM_START( kodb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3.ic172", 0x00000, 0x080000, CRC(036dd74c) SHA1(489344e56863429e86b4c362b82d89819c1d6afb) ) + ROM_LOAD16_BYTE( "4.ic171", 0x00001, 0x080000, CRC(3e4b7295) SHA1(3245640bae7d141238051dfe5c7683d05c6d3848) ) + ROM_FILL( 0x952, 1, 7) // fix transitions HBMAME + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "1.ic28", 0x00000, 0x08000, CRC(01cae60c) SHA1(b2cdd883fd859f0b701230831aca1f1a74ad6087) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cp.ic90", 0x000000, 0x80000, CRC(e3b8589e) SHA1(775f97e43cb995b93da40063a1f1e4d73b34437c), ROM_SKIP(7) ) + ROMX_LOAD( "dp.ic89", 0x000001, 0x80000, CRC(3eec9580) SHA1(3d8d0cfbeae077544e514a5eb96cc83f716e494f), ROM_SKIP(7) ) + ROMX_LOAD( "ap.ic88", 0x000002, 0x80000, CRC(fdf5f163) SHA1(271ee96886c958accaca9a82484ab80fe32bd38e), ROM_SKIP(7) ) + ROMX_LOAD( "bp.ic87", 0x000003, 0x80000, CRC(4e1c52b7) SHA1(74570e7d577c999c62203c97b3d449e3b61a678a), ROM_SKIP(7) ) + ROMX_LOAD( "ci.ic91", 0x000004, 0x80000, CRC(22228bc5) SHA1(d48a09ee284d9e4b986f5c3c1c865930f76986e2), ROM_SKIP(7) ) + ROMX_LOAD( "di.ic92", 0x000005, 0x80000, CRC(ab031763) SHA1(5bcd89b1debf029b779aa1bb73b3a572d27154ec), ROM_SKIP(7) ) + ROMX_LOAD( "ai.ic93", 0x000006, 0x80000, CRC(cffbf4be) SHA1(f805bafc855d4a656c055a76eaeb26e36835541e), ROM_SKIP(7) ) + ROMX_LOAD( "bi.ic94", 0x000007, 0x80000, CRC(4a1b43fe) SHA1(7957f45b2862825c9509043c63c7da7108bd251b), ROM_SKIP(7) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */ + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "2.ic19", 0x00000, 0x40000, CRC(a2db1575) SHA1(1a4a29e4b045af50700adf1665697feab12cc234) ) +ROM_END + +DRIVER_INIT_MEMBER(cps_state, kodb) +{ + m_maincpu->space(AS_PROGRAM).install_read_port(0x800000, 0x800007, "IN1"); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(FUNC(cps_state::cps1_soundlatch_w),this)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(FUNC(cps_state::kodb_layer_w),this)); + + /* the original game alternates between 2 sprite ram areas to achieve flashing sprites - the bootleg doesn't do the write to the register to achieve this + mapping both sprite ram areas to the same bootleg sprite ram - similar to how sf2mdt works */ + m_bootleg_sprite_ram = std::make_unique<UINT16[]>(0x2000); + m_maincpu->space(AS_PROGRAM).install_ram(0x900000, 0x903fff, m_bootleg_sprite_ram.get()); + m_maincpu->space(AS_PROGRAM).install_ram(0x904000, 0x907fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped */ + + DRIVER_INIT_CALL(cps1); +} + + + +// ************************************************************************* KNIGHTSB + +/* + +CPU: + +1x MC68000P12 ic65 main +1x Z0840006PSC ic1 sound +1x YM2151 ic29 sound +1x YM3012 ic30 sound +2x LM324 ic15,ic31 sound +2x M5205 ic184,ic185 sound +1x TDA2003 ic14 sound +1x oscillator 24.000000MHz (close to main) +1x oscillator 29.821000MHz (close to sound) + +ROMs + +5x M27C2001 1,2,3,4,5 dumped +4x maskrom KA,KB,KC,KD not dumped + +RAMs: + +4x KM62256ALP ic112,ic113,ic168,ic170 +1x SYC6116L ic24 +1x MCM2018AN ic7,ic8,ic51,ic56,ic70,ic71,ic77,ic78 + +PLDs: + +1x TPC1020AFN ic116 read protected +3x GAL20V8A ic120,ic121,ic169 read protected +3x GAL16V8A ic7,ic72,ic80 read protected + +Note: + +1x JAMMA edge connector +2x 10 legs connector +1x trimmer (volume) +3x 8x2 switches DIP + +*/ +/* bootleg */ +/* FIXME - GFX ROMs are wrong, copied from the other version */ +/* ROMs missing are KA.IC91 KB.IC92 KC.IC93 KD.IC94 */ +ROM_START( knightsb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3.ic173", 0x00001, 0x40000, CRC(c9c6e720) SHA1(e8a1cd73458b548e88fc49d8f659e0dc33a8e756) ) + ROM_LOAD16_BYTE( "5.ic172", 0x00000, 0x40000, CRC(7fd91118) SHA1(d2832b21309a467938891946d7af35d8095787a4) ) + ROM_LOAD16_BYTE( "2.ic175", 0x80001, 0x40000, CRC(1eb91343) SHA1(e02cfbbd7689346f14f2e3455ed17e7f0b51bad0) ) + ROM_LOAD16_BYTE( "4.ic176", 0x80000, 0x40000, CRC(af352703) SHA1(7855ac65752203f45af4ef41af8c291540a1c8a8) ) + + ROM_REGION( 0x400000, "gfx", 0 ) /* bootleg had 4x 1meg MASKroms, these need dumping so that the format is known */ + ROMX_LOAD( "kr_gfx1.rom", 0x000000, 0x80000, BAD_DUMP CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx3.rom", 0x000002, 0x80000, BAD_DUMP CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx2.rom", 0x000004, 0x80000, BAD_DUMP CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx4.rom", 0x000006, 0x80000, BAD_DUMP CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx5.rom", 0x200000, 0x80000, BAD_DUMP CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx7.rom", 0x200002, 0x80000, BAD_DUMP CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx6.rom", 0x200004, 0x80000, BAD_DUMP CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "kr_gfx8.rom", 0x200006, 0x80000, BAD_DUMP CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "1.ic26", 0x00000, 0x40000, CRC(bd6f9cc1) SHA1(9f33cccef224d2204736a9eae761196866bd6e41) ) + ROM_RELOAD( 0x10000, 0x40000 ) +ROM_END + + + +// ************************************************************************* CAWINGBL, CAWINGB2 + +ROM_START( cawingbl ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "caw2.bin", 0x00000, 0x80000, CRC(8125d3f0) SHA1(a0e48c326c6164ca189c9372f5c38a7c103772c1) ) + ROM_LOAD16_BYTE( "caw1.bin", 0x00001, 0x80000, CRC(b19b10ce) SHA1(3c71f1dc830d1e8b8ba26d8a71e12f477659480c) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "caw7.bin", 0x000000, 0x80000, CRC(a045c689) SHA1(8946c55635121282ea03586a278e50de20d92633) , ROM_SKIP(3) ) + ROMX_LOAD( "caw6.bin", 0x000001, 0x80000, CRC(61192f7c) SHA1(86643c62653a62a5c7541d50cfdecae9b607440d) , ROM_SKIP(3) ) + ROMX_LOAD( "caw5.bin", 0x000002, 0x80000, CRC(30dd78db) SHA1(e0295001d6f5fb4a9276c432f971e88f73c5e39a) , ROM_SKIP(3) ) + ROMX_LOAD( "caw4.bin", 0x000003, 0x80000, CRC(4937fc41) SHA1(dac179715be483a521df8e515afc1fb7a2cd8f13) , ROM_SKIP(3) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "caw3.bin", 0x00000, 0x20000, CRC(ffe16cdc) SHA1(8069ea69f0b89d61c35995c8040a4989d7be9c1f) ) + ROM_RELOAD( 0x10000, 0x20000 ) +ROM_END + +ROM_START( cawingb2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "8.8", 0x00000, 0x20000, CRC(f655708c) SHA1(9962a1c96ea08bc71b25d4f58e5d1fb1beebf0dc) ) + ROM_LOAD16_BYTE( "4.4", 0x00001, 0x20000, CRC(a02fb5aa) SHA1(c9c064a83899c48f681ac803cfc5886503b9d992) ) + ROM_LOAD16_BYTE( "7.7", 0x40000, 0x20000, CRC(8c6c7430) SHA1(3ed5713caf774b050b41a6adea026e1307b570df) ) + ROM_LOAD16_BYTE( "3.3", 0x40001, 0x20000, CRC(f585bf2c) SHA1(3a3169791f8deace8d9bee1adb08f19fbcd309c6) ) + ROM_LOAD16_BYTE( "6.6", 0x80000, 0x20000, CRC(5fda906e) SHA1(7b3ef17d494a2f92e58ab7e34a3beaad8c149fca) ) + ROM_LOAD16_BYTE( "2.2", 0x80001, 0x20000, CRC(736c1835) SHA1(a91f479fab30603a111304adc0478d430faa80fc) ) + ROM_LOAD16_BYTE( "5.5", 0xc0000, 0x20000, CRC(76458083) SHA1(cbb4ef5f7615c834b2ee1ad3c86e7262f2f62c01) ) + ROM_LOAD16_BYTE( "1.1", 0xc0001, 0x20000, CRC(d3523f34) SHA1(005ea378c2b78782f85ecc591946c027ca2ca023) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "17.17", 0x000000, 0x20000, CRC(0b538062) SHA1(ac6e5dc82efdca311adfe6e6cdda160ad4a0d04d) , ROM_SKIP(3) ) + ROMX_LOAD( "19.19", 0x000001, 0x20000, CRC(3ad62311) SHA1(1c132696b55191d16af30ebd36d2320d979eab36) , ROM_SKIP(3) ) + ROMX_LOAD( "21.21", 0x000002, 0x20000, CRC(1b872a98) SHA1(7a3f72c6d384dfa8e224f93604997a7b6e5c8926) , ROM_SKIP(3) ) + ROMX_LOAD( "23.23", 0x000003, 0x20000, CRC(ad49eecd) SHA1(39909996765391ed734a02c74f683e1bd9ce1561) , ROM_SKIP(3) ) + ROMX_LOAD( "9.9", 0x080000, 0x20000, CRC(8cd4df5b) SHA1(771b6d6a6baa95a669335fe64e2219fe7226e140) , ROM_SKIP(3) ) + ROMX_LOAD( "11.11", 0x080001, 0x20000, CRC(bf14418a) SHA1(7a0e1c65b8825a252338d6c1db59a88966ec6cfb) , ROM_SKIP(3) ) + ROMX_LOAD( "13.13", 0x080002, 0x20000, CRC(cef1aab8) SHA1(677a889b939ff00e95737a4a53053744bb6744c0) , ROM_SKIP(3) ) + ROMX_LOAD( "15.15", 0x080003, 0x20000, CRC(397725dc) SHA1(9450362bbf2f91b4225a088d6e283d7b16407b74) , ROM_SKIP(3) ) + ROMX_LOAD( "18.18", 0x100000, 0x20000, CRC(9b14f7ed) SHA1(72b6e1174d4faab487261aa6739de842d2423e1a) , ROM_SKIP(3) ) + ROMX_LOAD( "20.20", 0x100001, 0x20000, CRC(59bcc1bb) SHA1(c725060e068294dea1d962c54a9018050fa70297) , ROM_SKIP(3) ) + ROMX_LOAD( "22.22", 0x100002, 0x20000, CRC(23dc647a) SHA1(2d8d4c4c7b2d0616430360d1639b07216dd731d6) , ROM_SKIP(3) ) + ROMX_LOAD( "24.24", 0x100003, 0x20000, CRC(eda9fa6b) SHA1(4a3510ce71b015a1ea568fd0bbe61c5c093a2fbf) , ROM_SKIP(3) ) + ROMX_LOAD( "10.10", 0x180000, 0x20000, CRC(17174249) SHA1(71c6424ab4629065dd6af8bb47b18f5b5d0fbe49) , ROM_SKIP(3) ) + ROMX_LOAD( "12.12", 0x180001, 0x20000, CRC(490440b2) SHA1(2597bf16340308f84b32cfa048c426db571b4a35) , ROM_SKIP(3) ) + ROMX_LOAD( "14.14", 0x180002, 0x20000, CRC(344a8270) SHA1(fdb588a7ba60783225e3b5c72446f79625de4f9c) , ROM_SKIP(3) ) + ROMX_LOAD( "16.16", 0x180003, 0x20000, CRC(b991ad91) SHA1(5c59131ddf068cb54d23f8836293360fbc967d58) , ROM_SKIP(3) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "5.a", 0x00000, 0x20000, CRC(ffe16cdc) SHA1(8069ea69f0b89d61c35995c8040a4989d7be9c1f) ) + ROM_RELOAD( 0x10000, 0x20000 ) +ROM_END + +DRIVER_INIT_MEMBER(cps_state, cawingbl) +{ + m_maincpu->space(AS_PROGRAM).install_read_port(0x882000, 0x882001, "IN1"); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(FUNC(cps_state::cawingbl_soundlatch_w),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this)); + + DRIVER_INIT_CALL(cps1); +} + +// HBMAME start +ROM_START( cawingb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "2.16d", 0x00000, 0x80000, CRC(8125d3f0) SHA1(a0e48c326c6164ca189c9372f5c38a7c103772c1) ) + ROM_LOAD16_BYTE( "1.19d", 0x00001, 0x80000, CRC(b19b10ce) SHA1(3c71f1dc830d1e8b8ba26d8a71e12f477659480c) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "ca_9.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "ca_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) + ROM_LOAD( "ca_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) +ROM_END +// HBMAME end + + +// ************************************************************************* DINOPIC, DINOPIC2 + +MACHINE_START_MEMBER(cps_state, dinopic) +{ + m_layer_enable_reg = 0x0a; + m_layer_mask_reg[0] = 0x0c; + m_layer_mask_reg[1] = 0x0e; + m_layer_mask_reg[2] = 0x00; + m_layer_mask_reg[3] = 0x02; + m_layer_scroll1x_offset = 0x40; + m_layer_scroll2x_offset = 0x40; + m_layer_scroll3x_offset = 0x40; + m_sprite_base = 0x1000; + m_sprite_list_end_marker = 0x8000; + m_sprite_x_offset = 0; +} + +static MACHINE_CONFIG_START( dinopic, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 12000000) + MCFG_CPU_PROGRAM_MAP(dinopic_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000) + //MCFG_DEVICE_DISABLE() /* no valid dumps .. */ + + MCFG_MACHINE_START_OVERRIDE(cps_state, dinopic) + + MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +/* + +Cadillac Bootleg Hardware: + +1x 68000p10 +1x PIC16c57 +1x AD-65 +1x OSC 30mhz +1x OSC 24mhz +13x 27c4000 ROMS + +*/ +ROM_START( dinopic ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) ) + ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) ) + ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) ) + ROM_LOAD16_BYTE( "7.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) ) + + ROM_REGION( 0x400000, "gfx", 0 ) // same data, different format, except for 8 which is a 99% match (bad rom?) + ROMX_LOAD( "4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000) + ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(d574befc) SHA1(56482e7a9aa8439f30e3cf72311495ce677a083d), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000) + ROMX_LOAD( "9.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000) + ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000) + ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200004, 0x40000) + ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200005, 0x40000) + ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200006, 0x40000) + ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200007, 0x40000) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */ + ROM_LOAD( "pic16c57-rp", 0x00000, 0x2d4c, BAD_DUMP CRC(5a6d393c) SHA1(1391a1590aff5f75bb6fae1c83eddb796b53135d) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */ + ROM_LOAD( "1.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) ) +ROM_END + +/* this is basically the same set as above, from a different bootleg pcb, with a few extra pal dumps etc. + the first dump will probably be removed eventually + + CPU + 1x TS68000CP10 (main) + 1x AD-65 (sound)(equivalent to M6295) + 1x PIC16C57-XT/P + 1x A1020B-PL84C + 1x oscillator 24.000MHz (close to main) + 1x oscillator 30.000MHz (close to sound) + + ROMs + 13x 27C4000 + 3x GAL20V8A + 3x PALCE16V8H (1 broken not dumped) + 1x CAT93C46P + + Note + 1x JAMMA edge connector + 1x 10 legs connector + 1x trimmer (volume) +*/ + +ROM_START( dinopic2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "27c4000-m12374r-2.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) ) + ROM_LOAD16_BYTE( "27c4000-m12481.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) ) + ROM_LOAD16_BYTE( "27c4000-m12374r-1.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) ) + ROM_LOAD16_BYTE( "27c4000-m12374r-3.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "27c4000-m12481-4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000) + ROMX_LOAD( "27c4000-m12481-3.bin", 0x000001, 0x40000, BAD_DUMP CRC(417a4816) SHA1(5268f6667ff550a949a08f94171966f5d841c6b2), ROM_SKIP(7) ) // this one is a perfect match, unlike dinopic set + ROM_CONTINUE( 0x000005, 0x40000) + ROMX_LOAD( "27c4000-m12481-2.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000) + ROMX_LOAD( "27c4000-m12481-1.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000) + ROMX_LOAD( "27c4000-m12481-8.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200004, 0x40000) + ROMX_LOAD( "27c4000-m12481-7.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200005, 0x40000) + ROMX_LOAD( "27c4000-m12481-6.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200006, 0x40000) + ROMX_LOAD( "27c4000-m12481-5.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200007, 0x40000) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */ + ROM_LOAD( "pic16c57-xt.hex", 0x00000, 0x26cc, BAD_DUMP CRC(a6a5eac4) SHA1(2039789084836769180f0bfd230c2553a37e2aaf) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */ + ROM_LOAD( "27c4000-m12623.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) ) + + ROM_REGION( 0xc00, "user1", 0 ) /* extra bits on this set */ + ROM_LOAD( "cat93c46p.bin", 0x000, 0x080, CRC(d49fa351) SHA1(e6dfaff1c6aa962d34ae8e82b71e6f394d82e19c) ) + ROM_LOAD( "gal20v8a-1.bin", 0x200, 0x157, CRC(cd99ca47) SHA1(ee1d990fd294aa46f56f31264134251569f6792e) ) + ROM_LOAD( "gal20v8a-2.bin", 0x400, 0x157, CRC(60d016b9) SHA1(add42c763c819f3fe6d7cf3adc7123a52c2a3be9) ) + ROM_LOAD( "gal20v8a-3.bin", 0x600, 0x157, CRC(049b7f4f) SHA1(6c6ea03d9a293db69a8bd10e042ee75e3c01313c) ) + ROM_LOAD( "palce16v8h-1.bin", 0x800, 0x117, CRC(48253c66) SHA1(8c94e655b768c45c3edf6ef39e62e3b7a4e57530) ) + ROM_LOAD( "palce16v8h-2.bin", 0xa00, 0x117, CRC(9ae375ba) SHA1(6f227c2a5b1170a41e6419f12d1e1f98edc6f8e5) ) +ROM_END + +DRIVER_INIT_MEMBER(cps_state, dinopic) +{ + m_bootleg_sprite_ram = std::make_unique<UINT16[]>(0x2000); + m_maincpu->space(AS_PROGRAM).install_ram(0x990000, 0x993fff, m_bootleg_sprite_ram.get()); + DRIVER_INIT_CALL(cps1); +} + + + +// ************************************************************************* SGYXZ + +// 24mhz crystal (maincpu), 28.322 crystal (video), 3.579545 crystal (sound) +// sound cpu is (239 V 249521 VC5006 KABUKI DL-030P-110V) - recycled Kabuki Z80 from genuine Capcom HW? +// 3x8 dsws + +static MACHINE_CONFIG_START( sgyxz, cps_state ) + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 12000000) + MCFG_CPU_PROGRAM_MAP(sgyxz_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, 3579545) + MCFG_CPU_PROGRAM_MAP(sgyxz_sound_map) + + MCFG_MACHINE_START_OVERRIDE(cps_state,sgyxz) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */ + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + + /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +ROM_START( sgyxz ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 Code */ + ROM_LOAD16_BYTE( "sgyxz_prg1.bin", 0x000001, 0x20000, CRC(d8511929) SHA1(4de9263778f327693f4d1e21b48e43806f673487) ) + ROM_CONTINUE( 0x80001, 0x20000 ) + ROM_CONTINUE( 0x40001, 0x20000 ) + ROM_CONTINUE( 0xc0001, 0x20000 ) + ROM_LOAD16_BYTE( "sgyxz_prg2.bin", 0x000000, 0x20000, CRC(95429c83) SHA1(e981624d018132e5625a66113b6ac4fc44e55cf7) ) + ROM_CONTINUE( 0x80000, 0x20000 ) + ROM_CONTINUE( 0x40000, 0x20000 ) + ROM_CONTINUE( 0xc0000, 0x20000 ) + ROM_FILL(0x708da, 4, 0xff) // patch out protections + ROM_FILL(0xf11ea, 1, 0x60) + ROM_FILL(0x00007, 1, 0xa2) // start address + ROM_FILL(0x02448, 1, 0x07) // transitions + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) ) // 'picture 1' + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) ) // 'picture 2' + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) ) + ROM_RELOAD( 0x8000, 0x10000 ) + + ROM_REGION( 0x040000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) ) +ROM_END + + + +// ************************************************************************* PUNIPIC, PUNIPIC2, PUNIPIC3 + +MACHINE_START_MEMBER(cps_state, punipic) +{ + m_layer_enable_reg = 0x12; + m_layer_mask_reg[0] = 0x14; + m_layer_mask_reg[1] = 0x16; + m_layer_mask_reg[2] = 0x08; + m_layer_mask_reg[3] = 0x0a; + m_layer_scroll1x_offset = 0x46; // text + m_layer_scroll3x_offset = 0x46; // green patch in the park + m_sprite_base = 0x000; + m_sprite_list_end_marker = 0x8000; + m_sprite_x_offset = 0; +} + +static MACHINE_CONFIG_START( punipic, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 12000000) + MCFG_CPU_PROGRAM_MAP(punipic_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000) + //MCFG_DEVICE_DISABLE() /* no valid dumps .. */ + + MCFG_MACHINE_START_OVERRIDE(cps_state, punipic) + + MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +/* bootleg with pic, like dinopic / dinopic2 */ +ROM_START( punipic ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "cpu5.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) ) + ROM_LOAD16_BYTE( "cpu3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) ) + ROM_LOAD16_BYTE( "cpu4.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) ) + ROM_LOAD16_BYTE( "cpu2.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "gfx9.bin", 0x000000, 0x40000, CRC(9b9a887a) SHA1(8805b36fc18837bd7c64c751b435d72b763b2235), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000) + ROMX_LOAD( "gfx8.bin", 0x000001, 0x40000, CRC(2b94287a) SHA1(815d88e66f537e17550fc0483616f02f7126bfb1), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000) + ROMX_LOAD( "gfx7.bin", 0x000002, 0x40000, CRC(e9bd74f5) SHA1(8ed7098c69d1c70093c99956bf82e532bd6fc7ac), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000) + ROMX_LOAD( "gfx6.bin", 0x000003, 0x40000, CRC(a5e1c8a4) SHA1(3596265a45cf6bbf16c623f0fce7cdc65f9338ad), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000) + ROMX_LOAD( "gfx13.bin", 0x200000, 0x40000, CRC(6d75a193) SHA1(6c5a89517926d7ba4a925a3df800d4bdb8a6938d), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200004, 0x40000) + ROMX_LOAD( "gfx12.bin", 0x200001, 0x40000, CRC(a3c205c1) SHA1(6317cc49434dbbb9a249ddd4b50bd791803b3ebe), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200005, 0x40000) + ROMX_LOAD( "gfx11.bin", 0x200002, 0x40000, CRC(22f2ec92) SHA1(9186bfc5db71dc5b099c9a985e8fdd5710772d1c), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200006, 0x40000) + ROMX_LOAD( "gfx10.bin", 0x200003, 0x40000, CRC(763974c9) SHA1(f9b93c7cf0cb8c212fc21c57c85459b7d2e4e2fd), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200007, 0x40000) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected */ + ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP ) + + ROM_REGION( 0x200000, "oki", 0 ) /* OKI6295 */ + ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) ) +ROM_END + +/* alt bootleg with PIC, same program roms as above, bigger GFX roms + +Punisher +1993, Capcom + +This is a bootleg version running on a single PCB. + +PCB Layout +---------- + +|-----------------------------------------| +| 93C46 SOUND 30MHz PAL | +| M6295 PIC16C57 | +| 6116 PAL 6116 | +| 6116 6116 ACTEL | +| 6116 A1020B | +|J 6116 | +|A TEST 6116 | +|M 6116 | +|M | +|A | +| 62256 62256 62256 PU13478 | +| PRG1 PRG2 | +| PRG3 PRG4 62256 PU11256 | +| PAL| +| 68000 24MHz PAL PAL | +|-----------------------------------------| + +Notes: + Measured clocks + --------------- + 68000 clock: 12.000MHz (24 / 2) + M6295 clock: 937.5kHz (30 / 32), sample rate = 30000000 / 32 / 132 + 16C57 clock: 3.75MHz (30 / 8) NOTE! 4096 bytes internal ROM is protected and can't be read out. + VSYNC : 60Hz + + ROMs + ---- + PRG* - 4M MASK ROM (read as 27C040) + SOUND - 4M MASK ROM (read as 27C040) + PU* - 16M MASK ROM (read as 27C160) + +*/ + +ROM_START( punipic2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "prg4.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) ) + ROM_LOAD16_BYTE( "prg3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) ) + ROM_LOAD16_BYTE( "prg2.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) ) + ROM_LOAD16_BYTE( "prg1.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "pu11256.bin", 0x000000, 0x80000, CRC(6581faea) SHA1(2b0e96998002a1df96c7869ec965257d2ecfb531), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "pu13478.bin", 0x000002, 0x80000, CRC(61613de4) SHA1(8f8c46ce907be2b4c4715ad88bfd1456818bdd2c), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected */ + ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP ) + + ROM_REGION( 0x200000, "oki", 0 ) /* OKI6295 */ + ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) ) + + ROM_REGION( 0x200000, "user1", 0 ) /* other */ + ROM_LOAD( "93c46.bin", 0x00, 0x80, CRC(36ab4e7d) SHA1(60bea43051d86d9aefcbb7a390cf0c7d8b905a4b) ) +ROM_END + +/* the readme doesn't actually state this has a PIC, and there's no sound rom + so it might be different */ + +ROM_START( punipic3 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "psb5b.rom", 0x000000, 0x80000, CRC(58f42c05) SHA1(e243928f0bbecdf2a8d07cf4a6fdea4440e46c01) ) + ROM_LOAD16_BYTE( "psb3b.rom", 0x000001, 0x80000, CRC(90113db4) SHA1(4decc203ae3ee4abcb2e017f11cd20eae2abf3f3) ) + ROM_LOAD16_BYTE( "psb4a.rom", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) ) + ROM_LOAD16_BYTE( "psb2a.rom", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "psb-a.rom", 0x000000, 0x80000, CRC(57f0f5e3) SHA1(130b6e92181994bbe874261e0895db65d4f3d5d1), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000004, 0x80000 ) + ROM_CONTINUE( 0x200000, 0x80000 ) + ROM_CONTINUE( 0x200004, 0x80000 ) + ROMX_LOAD( "psb-b.rom", 0x000002, 0x80000, CRC(d9eb867e) SHA1(9b6eaa4a780da5c9cf09658fcab3a1a6f632c2f4), ROM_GROUPWORD | ROM_SKIP(6) ) + ROM_CONTINUE( 0x000006, 0x80000 ) + ROM_CONTINUE( 0x200002, 0x80000 ) + ROM_CONTINUE( 0x200006, 0x80000 ) + + ROM_REGION( 0x28000, "audiocpu", ROMREGION_ERASE00 ) /* PIC16c57 (maybe, not listed in readme) */ + //ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP ) + + ROM_REGION( 0x200000, "oki", ROMREGION_ERASE00 ) /* OKI6295 */ + //ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) ) +ROM_END + +DRIVER_INIT_MEMBER(cps_state, punipic) +{ + UINT16 *mem16 = (UINT16 *)memregion("maincpu")->base(); + mem16[0x5A8/2] = 0x4E71; // set data pointers + mem16[0x4DF0/2] = 0x33ED; + mem16[0x4DF2/2] = 0xDB2E; + mem16[0x4DF4/2] = 0x0080; + mem16[0x4DF6/2] = 0x0152; + mem16[0x4DF8/2] = 0x4E75; + + DRIVER_INIT_CALL(dinopic); +} + +DRIVER_INIT_MEMBER(cps_state, punipic3) +{ + UINT16 *mem16 = (UINT16 *)memregion("maincpu")->base(); + mem16[0x5A6/2] = 0x4E71; // set data pointers + mem16[0x5A8/2] = 0x4E71; + + DRIVER_INIT_CALL(dinopic); +} + + + +// ************************************************************************* SF2M1 + +static MACHINE_CONFIG_START( sf2m1, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz ) + MCFG_CPU_PROGRAM_MAP(sf2m1_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) + MCFG_CPU_PROGRAM_MAP(sgyxz_sound_map) + + MCFG_MACHINE_START_OVERRIDE(cps_state,sf2m1) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +ROM_START( sf2m1 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "222e", 0x000000, 0x80000, CRC(1e20d0a3) SHA1(5e05b52fd938aff5190bca7e178705d7236aef66) ) + ROM_LOAD16_BYTE( "196e", 0x000001, 0x80000, CRC(88cc38a3) SHA1(6049962f943bd37748a9531cc3254e8b59326eac) ) + ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) +ROM_END + +DRIVER_INIT_MEMBER(cps_state, sf2m1) +{ + UINT16 *mem16 = (UINT16 *)memregion("maincpu")->base(); + mem16[0x64E/2] = 0x6046; // fix priorities + + DRIVER_INIT_CALL(dinopic); + +} + + + +// ************************************************************************* SF2MDT, SF2MDTA + + +/* +CPU + +1x MC68000P12 (main) +1x TPC1020AFN-084C (main) +1x Z0840006PSC-Z80CPU (sound) +1x YM2151 (sound) +1x YM3012 (sound) +2x M5205 (sound) +2x LM324N (sound) +1x TDA2003 (sound) +1x oscillator 24.000000MHz +1x oscillator 30.000MHz +ROMs + +14x AM27C040 (1,3,6,7,8,9,10,11,12,13,14,15,16,17) +3x TMS27C010A (2,4,5) +3x PAL 16S20 (ic7,ic72, ic80) (read protected, not dumped) +3x GAL20V8A (ic120, ic121, ic169) (read protected, not dumped) + +Note + +1x JAMMA edge connector +1x trimmer (volume) +3x 8x2 switches dip +*/ + +ROM_START( sf2mdt ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3.ic172", 0x000000, 0x80000, CRC(5301b41f) SHA1(6855a57b21e8c5d74e5cb18f9ce6af650d7fb422) ) + ROM_LOAD16_BYTE( "1.ic171", 0x000001, 0x80000, CRC(c1c803f6) SHA1(9fe18ae2553a63d8e4dcc20bafd5a4634f8b93c4) ) + ROM_LOAD16_BYTE( "4.ic176", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) ) + ROM_LOAD16_BYTE( "2.ic175", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) ) + + ROM_REGION( 0x600000, "gfx", 0 ) /* rearranged in init */ + ROMX_LOAD( "7.ic90", 0x000000, 0x80000, CRC(896eaf48) SHA1(5a13ae8b554e05eed3d5749aaf5845d499bce45b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "10.ic88", 0x000002, 0x80000, CRC(ef3f5be8) SHA1(d4e1de7d7caf6977e48544d6701618ae70c717f9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "13.ic89", 0x000004, 0x80000, CRC(305dd72a) SHA1(c373b517c23f3b019abb06e21f6b9ab6e1e47909) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "16.ic87", 0x000006, 0x80000, CRC(e57f6db9) SHA1(b37f95737804002ec0e237472eaacf0bc1e868e8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "6.ic91", 0x200000, 0x80000, CRC(054cd5c4) SHA1(07f275e118c141a84ca15a2e9edc81694af37cf2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "9.ic93", 0x200002, 0x80000, CRC(818ca33d) SHA1(dfb707e17c83216f8a62e905f8c7cd6d406b417b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "12.ic92", 0x200004, 0x80000, CRC(87e069e8) SHA1(cddd3be84f8379134590bfbbb080518f28120e49) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "15.ic94", 0x200006, 0x80000, CRC(5dfb44d1) SHA1(08e44b8efc84f9cfc829aabf704155ddc700de76) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "8.ic86", 0x400000, 0x80000, CRC(34bbb3fa) SHA1(7794e89258f12b17d38c3d302dc15c502a8c8eb6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "11.ic84", 0x400002, 0x80000, CRC(cea6d1d6) SHA1(9c953db42f0d877e43c0c239f69a00df39a18295) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "14.ic85", 0x400004, 0x80000, CRC(7d9f1a67) SHA1(6deb7fff867c42b13a32bb11eda798cfdb4cbaa8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "17.ic83", 0x400006, 0x80000, CRC(91a9a05d) SHA1(5266ceddd2df925e79b4200843dec2f7aa9297b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */ + ROM_LOAD( "5.ic26", 0x00000, 0x20000, CRC(17d5ba8a) SHA1(6ff3b8860d7e1fdee3561846f645eb4d3a8965ec) ) + ROM_RELOAD( 0x10000, 0x20000 ) +ROM_END + +ROM_START( sf2mdta ) +/* unconfirmed if working on real hardware, pf4 is a bad dump (bad pin) */ + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3.mdta", 0x000000, 0x80000, CRC(9f544ef4) SHA1(f784809e59a5fcabd6d15d3f1c36250a5528c9f8) ) + ROM_LOAD16_BYTE( "5.mdta", 0x000001, 0x80000, CRC(d76d6621) SHA1(aa9cea9ddace212a7b3c535b8f6e3fbc50da1f94) ) + ROM_LOAD16_BYTE( "2.mdta", 0x100000, 0x20000, CRC(74844192) SHA1(99cd546c78cce7f632007af454d8a55eddb6b19b) ) + ROM_LOAD16_BYTE( "4.mdta", 0x100001, 0x20000, CRC(bd98ff15) SHA1(ed902d949b0b5c5beaaea78a4b418ffa6db9e1df) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "pf4 sh058.ic89", 0x000000, 0x100000, CRC(16289710) SHA1(4f3236712b979a1eb2fa97740e32d7913cee0d0d), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf7 sh072.ic92", 0x000002, 0x100000, CRC(fb78022e) SHA1(b8974387056dd52db96b01cc4648edc814398c7e), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf5 sh036.ic90", 0x200000, 0x100000, CRC(0a6be48b) SHA1(b7e72c94d4e3eb4a6bba6608d9b9a093c8901ad9), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf8 sh074.ic93", 0x200002, 0x100000, CRC(6258c7cf) SHA1(4cd7519245c0aa816934a43e6743160f715d7dc2), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf6 sh070.ic88", 0x400000, 0x100000, CRC(9b5b09d7) SHA1(698a6aab41e495bd0c37a19aee16a84f04d15797), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf9 sh001.ic91", 0x400002, 0x100000, CRC(9f25090e) SHA1(12ff0431ef6550db446985c8914ac7d78eec6b6d), ROM_GROUPWORD | ROM_SKIP(2) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */ + ROM_LOAD( "1.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) ) + ROM_RELOAD( 0x10000, 0x20000 ) +ROM_END + +ROM_START( sf2mdtb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "3.ic172", 0x000000, 0x80000, CRC(0bdb9da2) SHA1(5224ee81d94be70a84ffaa3a56b8093aa36d6b4f) ) // sldh + ROM_LOAD16_BYTE( "1.ic171", 0x000001, 0x80000, CRC(d88abbce) SHA1(57667a92710bb1d37daed09262c3064d09cbf4af) ) // sldh + ROM_LOAD16_BYTE( "4.ic176", 0x100000, 0x20000, CRC(74844192) SHA1(99cd546c78cce7f632007af454d8a55eddb6b19b) ) // sldh + ROM_LOAD16_BYTE( "2.ic175", 0x100001, 0x20000, CRC(bd98ff15) SHA1(ed902d949b0b5c5beaaea78a4b418ffa6db9e1df) ) // sldh + + ROM_REGION( 0x600000, "gfx", 0 ) /* rearranged in init */ + ROMX_LOAD( "7.ic90", 0x000000, 0x80000, CRC(896eaf48) SHA1(5a13ae8b554e05eed3d5749aaf5845d499bce45b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "10.ic88", 0x000002, 0x80000, CRC(ef3f5be8) SHA1(d4e1de7d7caf6977e48544d6701618ae70c717f9) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "13.ic89", 0x000004, 0x80000, CRC(305dd72a) SHA1(c373b517c23f3b019abb06e21f6b9ab6e1e47909) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "16.ic87", 0x000006, 0x80000, CRC(e57f6db9) SHA1(b37f95737804002ec0e237472eaacf0bc1e868e8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "6.ic91", 0x200000, 0x80000, CRC(054cd5c4) SHA1(07f275e118c141a84ca15a2e9edc81694af37cf2) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "9.ic93", 0x200002, 0x80000, CRC(818ca33d) SHA1(dfb707e17c83216f8a62e905f8c7cd6d406b417b) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "12.ic92", 0x200004, 0x80000, CRC(87e069e8) SHA1(cddd3be84f8379134590bfbbb080518f28120e49) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "15.ic94", 0x200006, 0x80000, CRC(5dfb44d1) SHA1(08e44b8efc84f9cfc829aabf704155ddc700de76) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "8.ic86", 0x400000, 0x80000, CRC(34bbb3fa) SHA1(7794e89258f12b17d38c3d302dc15c502a8c8eb6) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "11.ic84", 0x400002, 0x80000, CRC(cea6d1d6) SHA1(9c953db42f0d877e43c0c239f69a00df39a18295) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "14.ic85", 0x400004, 0x80000, CRC(7d9f1a67) SHA1(6deb7fff867c42b13a32bb11eda798cfdb4cbaa8) , ROM_GROUPWORD | ROM_SKIP(6) ) + ROMX_LOAD( "17.ic83", 0x400006, 0x80000, CRC(91a9a05d) SHA1(5266ceddd2df925e79b4200843dec2f7aa9297b3) , ROM_GROUPWORD | ROM_SKIP(6) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */ + ROM_LOAD( "5.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) ) + ROM_RELOAD( 0x10000, 0x20000 ) +ROM_END + +ROM_START( sf2b ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "pf1-2-sg076.bin", 0x000000, 0x100000, CRC(1d15bc7a) SHA1(834627545f191f39de6beb008c89623f2b88c13b) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "pf4-sg072.bin", 0x000000, 0x100000, CRC(16289710) SHA1(4f3236712b979a1eb2fa97740e32d7913cee0d0d), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf7-sg103.bin", 0x000002, 0x100000, CRC(fb78022e) SHA1(b8974387056dd52db96b01cc4648edc814398c7e), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf5-sg095.bin", 0x200000, 0x100000, CRC(0a6be48b) SHA1(b7e72c94d4e3eb4a6bba6608d9b9a093c8901ad9), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf8-sg101.bin", 0x200002, 0x100000, CRC(6258c7cf) SHA1(4cd7519245c0aa816934a43e6743160f715d7dc2), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf6-sg068.bin", 0x400000, 0x100000, CRC(9b5b09d7) SHA1(698a6aab41e495bd0c37a19aee16a84f04d15797), ROM_GROUPWORD | ROM_SKIP(2) ) + ROMX_LOAD( "pf9-sh001.bin", 0x400002, 0x100000, CRC(9f25090e) SHA1(12ff0431ef6550db446985c8914ac7d78eec6b6d), ROM_GROUPWORD | ROM_SKIP(2) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */ + ROM_LOAD( "3snd.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) ) + ROM_RELOAD( 0x10000, 0x20000 ) +ROM_END + + +ROM_START( sf2m9 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "27040.6", 0x000000, 0x80000, CRC(16c6372e) SHA1(5d5a49392f2fb806e66e0ac137df00425ca52e7f) ) + ROM_LOAD16_BYTE( "27040.5", 0x000001, 0x80000, CRC(137d5f2e) SHA1(835e9b767e6499f161c5c4fd9a31a9f54b3ee68f) ) + ROM_LOAD16_BYTE( "27010.4", 0x100000, 0x20000, CRC(8226c11c) SHA1(9588bd64e338901394805aca8a234f880674dc60) ) + ROM_LOAD16_BYTE( "27010.3", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) ) + + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "tat-01.bin", 0x000000, 0x40000, CRC(a887f7d4) SHA1(d7e0c46b3ab1c6352f45033cb9e610d9c34d51fb), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000) + ROMX_LOAD( "tat-05.bin", 0x000001, 0x40000, CRC(9390ff23) SHA1(b234169615aa952e3b15c7b0dfb495e499ba49ef), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000) + ROMX_LOAD( "tat-02.bin", 0x000002, 0x40000, CRC(afb3b589) SHA1(9721fa705d62814e416c38a6c3e698efb9385a98), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000) + ROMX_LOAD( "tat-06.bin", 0x000003, 0x40000, CRC(90f2053e) SHA1(a78710421e702b410650c45c3dec21bf16799fb4), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000) + + ROMX_LOAD( "tat-03.bin", 0x200000, 0x40000, CRC(79fa8bf0) SHA1(9f8f7b8dc54a75226beb017b9ca9fd62a9e42f6b), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200004, 0x40000) + ROMX_LOAD( "tat-07.bin", 0x200001, 0x40000, CRC(6a5f153c) SHA1(f3d82ad01e2e4bdb2039815747fa14399c69753a), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200005, 0x40000) + ROMX_LOAD( "tat-04.bin", 0x200002, 0x40000, CRC(32518120) SHA1(56ffa5fffb714cff8be8be5a3675b8a5fa29b2bc), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200006, 0x40000) + ROMX_LOAD( "tat-08.bin", 0x200003, 0x40000, CRC(c16579ae) SHA1(42c9d6df9f3b015f5d1ad4fa2b34ea90bb37bcae), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200007, 0x40000) + + ROMX_LOAD( "tat-09.bin", 0x400000, 0x40000, CRC(169d85a6) SHA1(dd98c8807e80465858b2eac10825e598c37e1a93), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400004, 0x40000) + ROMX_LOAD( "tat-11.bin", 0x400001, 0x40000, CRC(32a3a841) SHA1(6f9a13b8828998d194dd3933b032c75efed9cab3), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400005, 0x40000) + ROMX_LOAD( "tat-10.bin", 0x400002, 0x40000, CRC(0c638630) SHA1(709d183d181a0509c7ed839c59214851468d2bb8), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400006, 0x40000) + ROMX_LOAD( "tat-12.bin", 0x400003, 0x40000, CRC(6ee19b94) SHA1(c45119d04879b6ca23a3f7749175c56b381b43f2), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400007, 0x40000) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "27512.1", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "27020.2", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) ) + + ROM_REGION( 0x00c8d, "pld", 0 ) /* pal/gal */ + ROM_LOAD( "gal20v8.68kadd", 0x00000, 0x00c8d, CRC(27cdd376) SHA1(9fb5844b33002bec80fb92d3e5d1bbc779087300) )//68k address decoder + +ROM_END + +DRIVER_INIT_MEMBER(cps_state, sf2mdt) +{ + int i; + UINT32 gfx_size = memregion( "gfx" )->bytes(); + UINT8 *rom = memregion( "gfx" )->base(); + UINT8 tmp; + + for( i = 0; i < gfx_size; i += 8 ) + { + tmp = rom[i + 1]; + rom[i + 1] = rom[i + 4]; + rom[i + 4] = tmp; + tmp = rom[i + 3]; + rom[i + 3] = rom[i + 6]; + rom[i + 6] = tmp; + } + + m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(FUNC(cps_state::sf2mdt_layer_w),this)); + DRIVER_INIT_CALL(sf2mdta); +} + + + +DRIVER_INIT_MEMBER(cps_state, sf2mdtb) +{ + int i; + UINT32 gfx_size = memregion( "gfx" )->bytes(); + UINT8 *rom = memregion( "gfx" )->base(); + UINT8 tmp; + + for( i = 0; i < gfx_size; i += 8 ) + { + tmp = rom[i + 1]; + rom[i + 1] = rom[i + 4]; + rom[i + 4] = tmp; + tmp = rom[i + 3]; + rom[i + 3] = rom[i + 6]; + rom[i + 6] = tmp; + } + + /* bootleg sprite ram */ + m_bootleg_sprite_ram = std::make_unique<UINT16[]>(0x2000); + m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get()); + m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped */ + + DRIVER_INIT_CALL(cps1); +} + + +DRIVER_INIT_MEMBER(cps_state, sf2mdta) +{ + /* bootleg sprite ram */ + m_bootleg_sprite_ram = std::make_unique<UINT16[]>(0x2000); + m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get()); + m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped - see the "Magic Delta Turbo" text on the title screen */ + + m_bootleg_work_ram = std::make_unique<UINT16[]>(0x8000); + m_maincpu->space(AS_PROGRAM).install_ram(0xfc0000, 0xfcffff, m_bootleg_work_ram.get()); /* this has moved */ + + DRIVER_INIT_CALL(cps1); +} + +DRIVER_INIT_MEMBER(cps_state, sf2b) +{ + /* bootleg sprite ram */ + m_bootleg_sprite_ram = std::make_unique<UINT16[]>(0x2000); + m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get()); + m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get()); + + DRIVER_INIT_CALL(cps1); +} + +// ************************************************************************* SLAMPIC + +MACHINE_START_MEMBER(cps_state, slampic) +{ + m_layer_enable_reg = 0x16; + m_layer_mask_reg[0] = 0x00; + m_layer_mask_reg[1] = 0x02; + m_layer_mask_reg[2] = 0x28; + m_layer_mask_reg[3] = 0x2a; + m_layer_scroll1x_offset = 0x40; + m_layer_scroll2x_offset = 0x40; + m_layer_scroll3x_offset = 0x40; + m_sprite_base = 0x1000; + m_sprite_list_end_marker = 0x8000; + m_sprite_x_offset = 0; +} + +static MACHINE_CONFIG_START( slampic, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 12000000) + MCFG_CPU_PROGRAM_MAP(slampic_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000) + //MCFG_DEVICE_DISABLE() /* no valid dumps .. */ + + MCFG_MACHINE_START_OVERRIDE(cps_state, slampic) + + MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +ROM_START( slampic ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(7dba63cd) SHA1(222e781ffc40c5c23f5789c0682f549f00beeb8d) ) + ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(d86671f3) SHA1(d95fae27b0f4d3688f1c2229c9d3780724a870a8) ) + ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(d14d0e42) SHA1(b60c44193b247dc4856bd36d69cbbe9dcb2d21a7) ) + ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(38063cd8) SHA1(e647433414ff4fdc0b2c4c7036b8995a95289efa) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "9.bin", 0x000000, 0x40000, CRC(dc140351) SHA1(0e69e1c8ded85ba26eb8236449d38ead0243ae78), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000004, 0x40000) + ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(9ae88035) SHA1(3329e9582ca052940e115e759bb3d96f4a9c87fa), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000005, 0x40000) + ROMX_LOAD( "7.bin", 0x000002, 0x40000, CRC(5321f759) SHA1(7538a6587cf1077921b938070185e0a0ce5ca922), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000006, 0x40000) + ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(c8eb5f76) SHA1(a361d2d2dfe71789736666b744ae5f1e4bf7e1b2), ROM_SKIP(7) ) + ROM_CONTINUE( 0x000007, 0x40000) + ROMX_LOAD( "17.bin", 0x200000, 0x40000, CRC(21652214) SHA1(039335251f6553c4f36e2d33e8b43fb5726e833e), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200004, 0x40000) + ROMX_LOAD( "16.bin", 0x200001, 0x40000, CRC(d49d2eb0) SHA1(1af01575340730166975be93bae438e2b0492f98), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200005, 0x40000) + ROMX_LOAD( "15.bin", 0x200002, 0x40000, CRC(0d98bfd6) SHA1(c11fbf555880a933a4cbf6faa517f59f8443304f), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200006, 0x40000) + ROMX_LOAD( "14.bin", 0x200003, 0x40000, CRC(807284f1) SHA1(c747c3eaade31c2633fb0a0682dbea900bf2b092), ROM_SKIP(7) ) + ROM_CONTINUE( 0x200007, 0x40000) + ROMX_LOAD( "13.bin", 0x400000, 0x40000, CRC(293579c5) SHA1(9adafe29664b20834365b339f7ae379cdb9ee138), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400004, 0x40000) + ROMX_LOAD( "12.bin", 0x400001, 0x40000, CRC(c3727ce7) SHA1(c4abc2c59152c59a45f85393e9525505bc2c9e6e), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400005, 0x40000) + ROMX_LOAD( "11.bin", 0x400002, 0x40000, CRC(2919883b) SHA1(44ad979daae673c77b3157d2b352797d4ad0ec24), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400006, 0x40000) + ROMX_LOAD( "10.bin", 0x400003, 0x40000, CRC(f538e620) SHA1(354cd0548b067dfc8782bbe13b0a9c2083dbd290), ROM_SKIP(7) ) + ROM_CONTINUE( 0x400007, 0x40000) + + ROM_REGION( 0x2000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */ + ROM_LOAD( "pic16c57-xt-p.bin", 0x00000, 0x2000, BAD_DUMP CRC(aeae5ccc) SHA1(553afb68f7bf130cdf34e24512f72b4ecef1576f) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */ + ROM_LOAD( "18.bin", 0x00000, 0x80000, CRC(73a0c11c) SHA1(a66e1a964313e21c4436200d36c598dcb277cd34) ) + + ROM_REGION( 0x20000, "user1", 0 ) // not in the dump, but needed for protection + ROM_LOAD( "mb_qa.5k", 0x00000, 0x20000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) ) +ROM_END + + +// ************************************************************************* DRIVER MACROS + +GAME( 1990, cawingbl, cawing, cawingbl, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 1)", MACHINE_SUPPORTS_SAVE ) // 901012 ETC +GAME( 1990, cawingb2, cawing, cawingbl, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 2)", MACHINE_SUPPORTS_SAVE ) // 901012 ETC + +GAME( 1993, dinopic, dino, dinopic, dino, cps_state, dinopic, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930201 ETC +GAME( 1993, dinopic2, dino, dinopic, dino, cps_state, dinopic, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 930201 ETC + +GAME( 1990, fcrash, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg (Playmark)", "Final Crash (bootleg of Final Fight)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ffightbl, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg", "Final Fight (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ffightbla, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg", "Final Fight (bootleg on Final Crash PCB)", MACHINE_SUPPORTS_SAVE ) // same as Final Crash without the modified gfx + +GAME( 1991, kodb, kod, kodb, kodb, cps_state, kodb, ROT0, "bootleg (Playmark)", "The King of Dragons (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 910731 "ETC" +GAME( 1991, knightsb, knights, knightsb, knights, cps_state, dinopic, ROT0, "bootleg", "Knights of the Round (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 911127 - based on World version + +GAME( 1993, punipic, punisher, punipic, punisher, cps_state, punipic, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930422 ETC +GAME( 1993, punipic2, punisher, punipic, punisher, cps_state, punipic, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930422 ETC +GAME( 1993, punipic3, punisher, punipic, punisher, cps_state, punipic3, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930422 ETC + +GAME( 1992, sf2m1, sf2ce, sf2m1, sf2, cps_state, sf2m1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M1, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 ETC +GAME( 1992, sf2mdt, sf2ce, sf2mdt, sf2mdt, cps_state, sf2mdt, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 - based on (heavily modified) World version +GAME( 1992, sf2mdta, sf2ce, sf2mdt, sf2mdt, cps_state, sf2mdta, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version +GAME( 1992, sf2mdtb, sf2ce, sf2mdt, sf2mdtb, cps_state, sf2mdtb, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version + +GAME( 1992, sf2b, sf2, sf2b, sf2mdt, cps_state, sf2b, ROT0, "bootleg", "Street Fighter II: The World Warrior (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) //910204 - based on World version + +GAME( 1992, sf2m9, sf2ce, sf2m1, sf2, cps_state, dinopic, ROT0, "bootleg", "Street Fighter II': Champion Edition (M9, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 ETC + +GAME( 1993, slampic, slammast, slampic, slammast, cps_state, dinopic, ROT0, "bootleg", "Saturday Night Slam Masters (bootleg with PIC16c57)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930713 ETC + +GAME( 1999, sgyxz, wof, sgyxz, sgyxz, cps_state, cps1, ROT0, "bootleg (All-In Electronic)", "Warriors of Fate ('sgyxz' bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 921005 - Sangokushi 2 + +// HBMAME **********************************************/ + + +GAME( 1990, cawingb, cawing, cawingb, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg)", MACHINE_SUPPORTS_SAVE ) + +WRITE16_MEMBER(cps_state::varthb_layer_w) +{ + if (data > 0x9000) + m_cps_a_regs[0x06 / 2] = data; +} + +static ADDRESS_MAP_START( varthb_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom (mapped by LWIO/IOB1 PAL on B-board) */ + AM_RANGE(0x800188, 0x800189) AM_WRITE(varthb_layer_w) + AM_RANGE(0x980000, 0x98000b) AM_WRITE(dinopic_layer_w) + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") /* SF2CE executes code from here */ + AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram") +ADDRESS_MAP_END + +static MACHINE_CONFIG_START( varthb, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 12000000) + MCFG_CPU_PROGRAM_MAP(varthb_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, 3579545) + MCFG_CPU_PROGRAM_MAP(sgyxz_sound_map) + + MCFG_MACHINE_START_OVERRIDE(cps_state,cps1) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 0xc00) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */ + MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_CONFIG_END + +ROM_START( varthb ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "2", 0x000000, 0x80000, CRC(2f010023) SHA1(bf4b6c0cd82cf1b86e17d6ea2670110c06e6eabe) ) + ROM_LOAD16_BYTE( "1", 0x000001, 0x80000, CRC(0861dff3) SHA1(bf6dfe18ecaeaa1bbea09267014891c4a4a07943) ) + ROM_LOAD16_BYTE( "4", 0x100000, 0x10000, CRC(aa51e43b) SHA1(46b9dab844c55b50a47d048e5bb114911773699c) ) + ROM_LOAD16_BYTE( "3", 0x100001, 0x10000, CRC(f7e4f2f0) SHA1(2ce4eadb2d6a0e0d5745323eff2c899950ad4d3b) ) + + ROM_REGION( 0x200000, "gfx", 0 ) + ROMX_LOAD( "14", 0x000000, 0x40000, CRC(7ca73780) SHA1(26909db32f84157cd05719e5d1e715e76636d292) , ROM_SKIP(7) ) + ROMX_LOAD( "13", 0x000001, 0x40000, CRC(9fb11869) SHA1(a434fb0b588f934aaa68139495e1212a63ccf162) , ROM_SKIP(7) ) + ROMX_LOAD( "12", 0x000002, 0x40000, CRC(afeba416) SHA1(e722c65ea2e2bac3251c32208899484aa5ef6ad2) , ROM_SKIP(7) ) + ROMX_LOAD( "11", 0x000003, 0x40000, CRC(9eef3507) SHA1(ae03064ca5681fbdc43a34c54aaac11c8467428b) , ROM_SKIP(7) ) + ROMX_LOAD( "10", 0x000004, 0x40000, CRC(eeec6183) SHA1(40dc9c86e90d7c1a2ad600c195fe387180d95fd4) , ROM_SKIP(7) ) + ROMX_LOAD( "9", 0x000005, 0x40000, CRC(0e94f718) SHA1(249534f2323abcdb24099d0abc24c229c699ba94) , ROM_SKIP(7) ) + ROMX_LOAD( "8", 0x000006, 0x40000, CRC(c4ddc5b4) SHA1(79c2a42a664e387932b7804e7a80f5753338c3b0) , ROM_SKIP(7) ) + ROMX_LOAD( "7", 0x000007, 0x40000, CRC(8941ca12) SHA1(5ad5d47b8614c2899d05c65dc3b74947d4bac561) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "6", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // == va_09.12b + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "5", 0x00000, 0x40000, CRC(1547e595) SHA1(27f47b1afd9700afd9e8167d7e4e2888be34a9e5) ) +ROM_END + +static ADDRESS_MAP_START( captcommb2_map, AS_PROGRAM, 16, cps_state ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM + AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */ + AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */ + AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w) + AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */ + AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") + AM_RANGE(0x800180, 0x800181) AM_WRITE(fcrash_soundlatch_w) /* Sound command */ + AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") + AM_RANGE(0xff0000, 0xffffff) AM_RAM +ADDRESS_MAP_END + + +MACHINE_START_MEMBER(cps_state, captcommb2) +{ + UINT8 *ROM = memregion("audiocpu")->base(); + + membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); + + save_item(NAME(m_sample_buffer1)); + save_item(NAME(m_sample_buffer2)); + save_item(NAME(m_sample_select1)); + save_item(NAME(m_sample_select2)); +} + +static MACHINE_CONFIG_START( captcommb2, cps_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 10000000) + MCFG_CPU_PROGRAM_MAP(captcommb2_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, 3579545) + MCFG_CPU_PROGRAM_MAP(sf2mdt_z80map) + + MCFG_MACHINE_START_OVERRIDE(cps_state,captcommb2) + MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1) + MCFG_PALETTE_ADD("palette", 4096) + + MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_YM2151_ADD("2151", 3579545) + MCFG_SOUND_ROUTE(0, "mono", 0.35) + MCFG_SOUND_ROUTE(1, "mono", 0.35) + + /* has 2x MSM5205 instead of OKI6295 */ + MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */ + MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + + MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */ + MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_CONFIG_END + + +ROM_START( captcommb2 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(c3a6ed28) SHA1(f79fed35f7b0dc383837a2ead846acc686dd3487) ) + ROM_LOAD16_BYTE( "4.bin", 0x000001, 0x80000, CRC(28729335) SHA1(6dd23c2d41e4e182434fe80c03d5c90785e6c0ce) ) + ROM_LOAD16_BYTE( "3.bin", 0x100000, 0x40000, CRC(1b526d73) SHA1(3dd8dec61db4f4f5546937602a8fb01c639d72f8) ) + ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x40000, CRC(73c99709) SHA1(e122e3771b698c44fb998589af0542b1f2a3876a) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROMX_LOAD( "cap.bin", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a + ROMX_LOAD( "cbp.bin", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a + ROMX_LOAD( "ccp.bin", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a + ROMX_LOAD( "cdp.bin", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a + ROMX_LOAD( "cai.bin", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a + ROMX_LOAD( "cbi.bin", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a + ROMX_LOAD( "cci.bin", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a + ROMX_LOAD( "cdi.bin", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a + + ROM_REGION( 0x50000, "audiocpu", 0 ) /* Sound program + samples */ + ROM_LOAD( "1.bin", 0x00000, 0x40000, CRC(aed2f4bd) SHA1(3bd567dc350bf6ac3a349548790ad49eb5bd8307) ) + ROM_RELOAD( 0x10000, 0x40000 ) +ROM_END + + +GAME( 1992, varthb, varth, varthb, varth, cps_state, dinopic, ROT270, "bootleg", "Varth: Operation Thunderstorm (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, captcommb2,captcomm, captcommb2,captcomm, cps_state, cps1, ROT0, "bootleg", "Captain Commando (bootleg with YM2151 + 2xMSM5205)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/galaga.cpp b/docs/release/src/hbmame/drivers/galaga.cpp new file mode 100644 index 00000000000..2b5c165537d --- /dev/null +++ b/docs/release/src/hbmame/drivers/galaga.cpp @@ -0,0 +1,1115 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/galaga.cpp" + +// Produce pacman death sound in galagost +WRITE8_MEMBER( galaga_state::galaga_sample_w ) +{ + switch ( data ) + { + case 0x20: /* loud bang */ + m_samples->start(0, 0);; + case 0x10: /* soft bang */ + break; + default: + m_06xx->data_w ( space, offset, data ); + } +} + +static const char *const galagost_sample_names[] = +{ + "*galagost", + "bang", + 0 /* end of array */ +}; + +static ADDRESS_MAP_START( galagost_map, AS_PROGRAM, 8, galaga_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */ + AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r) + AM_RANGE(0x6800, 0x681f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */ + AM_RANGE(0x6830, 0x6830) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x7000, 0x70ff) AM_DEVREAD("06xx", namco_06xx_device, data_r) AM_WRITE(galaga_sample_w) + AM_RANGE(0x7100, 0x7100) AM_DEVREADWRITE("06xx", namco_06xx_device, ctrl_r, ctrl_w) + AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(galaga_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x8800, 0x8bff) AM_RAM AM_SHARE("galaga_ram1") + AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("galaga_ram2") + AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("galaga_ram3") + AM_RANGE(0xa000, 0xa005) AM_WRITEONLY AM_SHARE("starcontrol") + AM_RANGE(0xa007, 0xa007) AM_WRITE(galaga_flip_screen_w) +ADDRESS_MAP_END + +static MACHINE_CONFIG_DERIVED( galagost, galaga ) + MCFG_CPU_MODIFY( "maincpu" ) + MCFG_CPU_PROGRAM_MAP(galagost_map) + + /* sound hardware */ + MCFG_SOUND_ADD("samples", SAMPLES, 0) + MCFG_SAMPLES_CHANNELS(1) + MCFG_SAMPLES_NAMES(galagost_sample_names) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) +MACHINE_CONFIG_END + +// galaga hacks + +ROM_START( galagabl ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "galagabl.1_1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) ) + ROM_LOAD( "galagabl.1_2", 0x1000, 0x1000, CRC(f1d87ec3) SHA1(44034b4f015d9e876253d2827e05f3d41133e097) ) + ROM_LOAD( "galagabl.1_3", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) + ROM_LOAD( "galagabl.1_4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "galagabl.1_5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "galagabl.1_7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) + + ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */ + ROM_LOAD( "galagabl.1_6", 0x0000, 0x1000, CRC(001b70bc) SHA1(b465eee91e75257b7b049d49c0064ab5fd66c576) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "galagabl.1_8", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "galagabl.1_a", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) + ROM_LOAD( "galagabl.1_9", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ + ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) + ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( galagab2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "g1", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) ) + ROM_LOAD( "g2", 0x1000, 0x1000, CRC(d9232240) SHA1(ab202aa259c3d332ef13dfb8fc8580ce2a5a253d) ) + ROM_LOAD( "04j_g03.bin", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) + ROM_LOAD( "g4", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "04e_g05.bin", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "04d_g06.bin", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) + + ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */ + ROM_LOAD( "10h_g07.bin", 0x0000, 0x1000, CRC(035e300c) SHA1(cfda2467e71c27381b7150ff8fc7b69d61df123a) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gallag.8", 0x0000, 0x1000, CRC(169a98a4) SHA1(edbeb11076061e744ea88d9899dbdfe0964c7e78) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "07e_g10.bin", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) + ROM_LOAD( "07h_g09.bin", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "5n.bin", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) ) /* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) ) /* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galaga84 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "g1", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) ) + ROM_LOAD( "gal84_u2", 0x1000, 0x1000, CRC(4d832a30) SHA1(88ee11df88cf08005efccd6305f87fb3e2797db6) ) + ROM_LOAD( "04j_g03.bin", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) + ROM_LOAD( "g4", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "gal84_u5", 0x0000, 0x1000, CRC(bb5caae3) SHA1(e957a581463caac27bc37ca2e2a90f27e4f62b6f) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "04d_g06.bin", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) + + ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */ + ROM_LOAD( "10h_g07.bin", 0x0000, 0x1000, CRC(035e300c) SHA1(cfda2467e71c27381b7150ff8fc7b69d61df123a) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "07m_g08.bin", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "gal84u4d", 0x0000, 0x1000, CRC(22e339d5) SHA1(9ac2887ede802d28daa4ad0a0a54bcf7b1155a2e) ) + ROM_LOAD( "gal84u4e", 0x1000, 0x1000, CRC(60dcf940) SHA1(6530aa5b4afef4a8422ece76a93d0c5b1d93355e) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "5n.bin", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) ) /* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) ) /* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( nebulbee ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "nebulbee.01", 0x0000, 0x1000, CRC(f405f2c4) SHA1(9249afeffd8df0f24539ea9b4f88c23a6ad58d8c) ) + ROM_LOAD( "nebulbee.02", 0x1000, 0x1000, CRC(31022b60) SHA1(90e64afb4128c6dfeeee89635ea9f97a34f70f5f) ) + ROM_LOAD( "04j_g03.bin", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) + ROM_LOAD( "nebulbee.04", 0x3000, 0x1000, CRC(d76788a5) SHA1(adcb83cf64951d86c701a99b410e9230912f8a48) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "04e_g05.bin", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "04d_g06.bin", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "07m_g08.bin", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "07e_g10.bin", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) + ROM_LOAD( "07h_g09.bin", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "5n.bin", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) ) /* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) ) /* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galagads ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "07m_g08.bin", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "07e_g10.bin", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) + ROM_LOAD( "07h_g09.bin", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "5n.bin", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) ) /* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) ) /* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galaga99 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) ) + ROM_LOAD( "g99-04k_g02.bin", 0x1000, 0x1000, CRC(ab0df3ac) SHA1(29c5bce17baa6778fad5faff1a241021e143e29f) ) + ROM_LOAD( "g99-04j_g03.bin", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) + ROM_LOAD( "g99-04h_g04.bin", 0x3000, 0x1000, CRC(b9a315fb) SHA1(3422dbd1fe116f9193dcccb1dba691eb98eab3aa) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "g99-07m_g08.bin", 0x0000, 0x1000, CRC(cc091e8b) SHA1(b71b962d5cd71fa78f0709b5cccf549cb7f4e9f0) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "g99-07e_g10.bin", 0x0000, 0x1000, CRC(2b493359) SHA1(e006ee999277120f01d1669ffe28df0b96415af5) ) + ROM_LOAD( "g99-07h_g09.bin", 0x1000, 0x1000, CRC(cdbb428d) SHA1(6c8dfb5da2bee99f07585e23ecfa21c67218cddb) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galagaf ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "gg_5fast.bin", 0x0000, 0x1000, CRC(ae82145e) SHA1(146bd848e9783f34b1a006d793ee3f36e53baad0) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) + ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ + ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) + ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +/* This set has the fix proposed by Don Hodges at the page: + http://donhodges.com/galaga_stage_256_fix.htm */ +ROM_START( galagap ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "gg1-1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) ) + ROM_LOAD( "gg1-2b.3m", 0x1000, 0x1000, CRC(d9232240) SHA1(ab202aa259c3d332ef13dfb8fc8580ce2a5a253d) ) + ROM_LOAD( "gg1-3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) + ROM_LOAD( "gg1-4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) ) + ROM_FILL(0x25c4,1,0xa7) + ROM_FILL(0x25d0,1,0x00) + ROM_FILL(0x2fff,1,0xb2) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "gg1-5b.3f", 0x0000, 0x1000, CRC(bb5caae3) SHA1(e957a581463caac27bc37ca2e2a90f27e4f62b6f) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "gg1-7b.2c", 0x0000, 0x1000, CRC(d016686b) SHA1(44c1a04fba3c7c826ff484185cb881b4b22e6657) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) + ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ + ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) + ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( galagix ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) ) + ROM_LOAD( "gg1-2", 0x1000, 0x1000, CRC(43bb0d5c) SHA1(666975aed5ce84f09794c54b550d64d95ab311f0) ) + ROM_LOAD( "gg1-3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) + ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gx_07m_g08.bin", 0x0000, 0x1000, CRC(4b0a6b29) SHA1(1707bdfab7a17579b4171417d86ae76e065299c5) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "gx_07e_g10.bin", 0x0000, 0x1000, CRC(b52a7dff) SHA1(1bf1cf9db72d16d1e6539d4fc05bbee071cc3420) ) + ROM_LOAD( "gx_07h_g09.bin", 0x1000, 0x1000, CRC(ffd5c70e) SHA1(5eac91087129ec8038feabdb18cb3199e52cae23) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galagost ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gost_07m_g08.bin", 0x0000, 0x1000, CRC(c7588555) SHA1(269362b7fe63007b317ee4b63ef7d09f24d9c362) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "gost_07e_g10.bin", 0x0000, 0x1000, CRC(0758b90f) SHA1(89cc8db9457fa5f56b49930590f32aba1bc55323) ) + ROM_LOAD( "gost_07h_g09.bin", 0x1000, 0x1000, CRC(53f1332b) SHA1(04136e52008c4ad4813529d633fd9b8c71e6ccc0) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galagosb ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gost_07m_g08.bin", 0x0000, 0x1000, CRC(c7588555) SHA1(269362b7fe63007b317ee4b63ef7d09f24d9c362) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "gost_07e_g10.bin", 0x0000, 0x1000, CRC(0758b90f) SHA1(89cc8db9457fa5f56b49930590f32aba1bc55323) ) + ROM_LOAD( "gosb_07h_g09.bin", 0x1000, 0x1000, CRC(0339291c) SHA1(4958a78b6afb9f2b4f46d3c0f654843c077686a9) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galaped ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "ped_07m_g08.bin", 0x0000, 0x1000, CRC(d4fda6a5) SHA1(c1d39bfa2ad866e726b77f15ca22ef97ac3f51a4) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "ped_07e_g10.bin", 0x0000, 0x1000, CRC(1d0a2438) SHA1(66a4d7120f926a67dac0203b73c60917e5c140cf) ) + ROM_LOAD( "ped_07h_g09.bin", 0x1000, 0x1000, CRC(11d9b093) SHA1(8f151f4813ca7a80a228f2123cc089de414bc3f9) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galgaxin ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "2600j_4l.bin", 0x0000, 0x1000, CRC(10fa1481) SHA1(09f56503251cc29cf2131d2a0c5bcca4ee276e70) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "2800l_4d.bin", 0x0000, 0x1000, CRC(bf803b06) SHA1(ab0051b3b08f03ad93d100f38b106e761d4c4607) ) + ROM_LOAD( "2700k.bin", 0x1000, 0x1000, CRC(020906a3) SHA1(72e63918556ae366ede3ffad64a9d3ad4df1e514) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( galagaef ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "terror.bin", 0x0000, 0x1000, CRC(1b629f80) SHA1(6db66601fd357400edf3dc1d689255c64a46a72d) ) + ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ + ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) + ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( terror ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) ) + ROM_LOAD( "gg1-2", 0x1000, 0x1000, CRC(43bb0d5c) SHA1(666975aed5ce84f09794c54b550d64d95ab311f0) ) + ROM_LOAD( "gg1-3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) + ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "terror.bin", 0x0000, 0x1000, CRC(1b629f80) SHA1(6db66601fd357400edf3dc1d689255c64a46a72d) ) + ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( vgalaga ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_07m_g08.bin", 0x0000, 0x1000, CRC(bf59992f) SHA1(78f1e01affca694693254ecfedebdb05cb8d3b82) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "v_07e_g10.bin", 0x0000, 0x1000, CRC(3cf64d44) SHA1(54035738c6b0eed3331f11c53477cf87f07a8422) ) + ROM_LOAD( "v_07h_g09.bin", 0x1000, 0x1000, CRC(206bf7fc) SHA1(7510ed4a6c084f555cd5a6cd6fbc862f4797656f) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( vgalagam ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "vm_07m_g08.bin", 0x0000, 0x1000, CRC(c1bdeb1c) SHA1(7f07a9da708066401710b0b62b98e324ebbc2bca) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "vm_07e_g10.bin", 0x0000, 0x1000, CRC(99367e04) SHA1(7e140e2b9dd4c6b0da41b21ed2cf1bf33f088a7e) ) + ROM_LOAD( "vm_07h_g09.bin", 0x1000, 0x1000, CRC(683585c4) SHA1(fdc89b72bf64e44c80f4ae601280fca9b0d1c18c) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +ROM_START( vgalagaf ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) + ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) + ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) + ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the third CPU */ + ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "vgalagaf.08", 0x0000, 0x1000, CRC(c1bdeb1c) SHA1(7f07a9da708066401710b0b62b98e324ebbc2bca) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "vgalagaf.10", 0x0000, 0x1000, CRC(99367e04) SHA1(7e140e2b9dd4c6b0da41b21ed2cf1bf33f088a7e) ) + ROM_LOAD( "vgalagaf.09", 0x1000, 0x1000, CRC(683585c4) SHA1(fdc89b72bf64e44c80f4ae601280fca9b0d1c18c) ) + + ROM_REGION( 0x0320, "proms", 0 ) + ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ + ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) ) /* char lookup table */ + ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )/* sprite lookup table */ + ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )/* unknown */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) ) +ROM_END + +// xevious hacks + +ROM_START( battlesh ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "b_1.bin", 0x0000, 0x2000, CRC(b6e4f4f3) SHA1(ceaaa63b50e75dcb05aeb68574336dfe56a8434a) ) + ROM_LOAD( "b_2.bin", 0x2000, 0x2000, CRC(47017bc8) SHA1(0da73ae079fb6a64eed56197e2c88609ef34166c) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "b_3.bin", 0x0000, 0x2000, CRC(0ede5706) SHA1(65b235c5abe487612e11d0235410f1ca59b06e95) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x10000, "sub3", 0 ) /* 64k for the CUSTOM I/O Emulation CPU */ + ROM_LOAD( "b_5.bin", 0x0000, 0x1000, CRC(23107dfb) SHA1(74c49a5648faab632ae5ed8dd18a1d8b39837e2d) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "b_9.bin", 0x0000, 0x1000, CRC(5bd6e9ae) SHA1(f16c7eec39fce856c775b2b81ab55fb42376850e) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "b_10.bin", 0x0000, 0x1000, CRC(b43ea55d) SHA1(06f4c4e7fc71b9e173c3bdf91c40f47750051b5e) ) /* bg pattern B0 */ + ROM_LOAD( "b_11.bin", 0x1000, 0x1000, CRC(73603931) SHA1(1f7824b107a5a3d5c3434f02f17173a1f85fd29c) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "battlesh_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "battlesh_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) ) /* sprite set #2, planes 1/2 */ + ROM_LOAD( "battlesh_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "battlesh_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) ) /* sprite set #1, plane 2, set #2, plane 0 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x1400, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "b_-bpr.bin", 0x0300, 0x0400, CRC(d2d208b1) SHA1(6c8d29912c03ee93759e24085bc66ab738768bcc) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "b_6bpr.bin", 0x0700, 0x0400, CRC(0260c041) SHA1(1a7516e8b18ffdd9789eec8b834c17b3ba312afe) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "b_4bpr.bin", 0x0b00, 0x0400, CRC(33764974) SHA1(567b048b8a93e30090ccee4f6aadc0353524d8d1) ) /* sprite lookup table low bits */ + ROM_LOAD( "b_5bpr.bin", 0x0f00, 0x0400, CRC(43674c7e) SHA1(94c19a9da81839cb1dfde3f11b2fd82ffe45efb9) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( gaous ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) ) + ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) ) + ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) ) + ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) ) + ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "gao_12.3b", 0x0000, 0x1000, CRC(e24d7e32) SHA1(c78798944f717d2b20ceb846e4f98966756b0964) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "gao_13.3c", 0x0000, 0x1000, CRC(43ed5c90) SHA1(15f541fb7314c59fe56245f4dbfe05fa35ee2396) ) /* bg pattern B0 */ + ROM_LOAD( "gao_14.3d", 0x1000, 0x1000, CRC(f361bdd0) SHA1(0ebae760617e8ff29d3f33856094f511f7a06dfa) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "gao_15.4m", 0x0000, 0x2000, CRC(ea41df4e) SHA1(8e7215654db77c7f8782dc4b909d1248952c10f0) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "gao_17.4p", 0x2000, 0x2000, CRC(79d65929) SHA1(ca60435cd4a64c82e4d263a57fe899e9e18b3389) ) /* sprite set #2, planes 0/1 */ + ROM_LOAD( "gao_16.4n", 0x4000, 0x1000, CRC(ceb8a6f8) SHA1(5153cfe4aaeefd4f1faec133a120e8551c460d2f) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "gao_18.4r", 0x5000, 0x2000, CRC(2d95245d) SHA1(7e5409f1f787047d7825d59f1dfeefa26732d1cc) ) /* sprite set #1, plane 2, set #2, plane 2 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "gao_4bpr.3l", 0x0700, 0x0200, CRC(bb0f377f) SHA1(451569602c83172132db76ee7652d174867639c0) ) /* sprite lookup table low bits */ + ROM_LOAD( "gao_5bpr.3m", 0x0900, 0x0200, CRC(3fb201f3) SHA1(9e1c79c13bc285b7bff104c84baab9dd04fd42ab) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( sxvioush ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "cpu_3p.rom", 0x0000, 0x1000, CRC(1c8d27d5) SHA1(2c41303d8c74acb5840295a4b460a39a9a8e21bb) ) + ROM_LOAD( "cpu_3m.rom", 0x1000, 0x1000, CRC(fd04e615) SHA1(7169e7f3bd1e9cfae9671b89f2a45f56b968e1ff) ) + ROM_LOAD( "cpu_2m.rom", 0x2000, 0x1000, CRC(294d5404) SHA1(ecc39fb2c0065a36f20541747089b4e30dfb99b1) ) + ROM_LOAD( "cpu_2l.rom", 0x3000, 0x1000, CRC(6a44bf92) SHA1(0ca726f7f9528789f2a718df55e59406a283cdfa) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "cpu_3f.rom", 0x0000, 0x1000, CRC(d4bd3d81) SHA1(5831bb306bd650779207936bfd00f25864733abb) ) + ROM_LOAD( "cpu_3j.rom", 0x1000, 0x1000, CRC(af06be5f) SHA1(5a020822387ab8c69214db961180760fa9853e6e) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ + ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) ) /* sprite set #2, planes 1/2 */ + ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) ) /* sprite set #1, plane 2, set #2, plane 0 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ + ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( xviousah ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "xea-1m-a.bin", 0x0000, 0x2000, CRC(8c2b50ec) SHA1(f770873b711d838556dde67a8aac8a7f572fcc5b) ) + ROM_LOAD( "xea-1l-a.bin", 0x2000, 0x2000, CRC(0821642b) SHA1(c6c322c61d0985a2ac59f5e92d4e351107afb9eb) ) + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "xea-4c-a.bin", 0x0000, 0x2000, CRC(14d8fa03) SHA1(e8114141394adda86184b146f2497cfeef7fc2eb) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ + ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) ) /* sprite set #2, planes 1/2 */ + ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) ) /* sprite set #1, plane 2, set #2, plane 0 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ + ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( xevioush ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) ) + ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) ) + ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) ) + ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) ) + ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ + ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) ) /* sprite set #2, planes 1/2 */ + ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) ) /* sprite set #1, plane 2, set #2, plane 0 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ + ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( xeviousp ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "xvip_1.3p", 0x0000, 0x1000, CRC(09c5fef9) SHA1(1111912763c818afc13e4dfd088877cf78bc30b4) ) + ROM_LOAD( "xvip_2.3m", 0x1000, 0x1000, CRC(a2cf842d) SHA1(9bb24b3527f2cad8c9b916f9a815ea4f747dc337) ) + ROM_LOAD( "xvip_3.2m", 0x2000, 0x1000, CRC(7ab657cd) SHA1(a27ad33b2808417dff8e27d0e2b503092f505bb0) ) + ROM_LOAD( "xvip_4.2l", 0x3000, 0x1000, CRC(884837bd) SHA1(750b0b118a88ab09a0dcbdc10737910b2fc28a1a) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "xvip_5.3f", 0x0000, 0x1000, CRC(68c5268b) SHA1(265c86b2f547230d88276471864a45460198e129) ) + ROM_LOAD( "xvip_6.3j", 0x1000, 0x1000, CRC(cafc97e6) SHA1(a3d8130b49fb941f6f05204793bf3226ca8eac5c) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "xvip_12.3b", 0x0000, 0x1000, CRC(08f184f1) SHA1(bcbf89b92c311a78db516b557b982ed51907c49d) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ + ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ + ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "xvip_16.4n", 0x5000, 0x1000, CRC(00babaa1) SHA1(b946510a9c5b6c1dd6e6bab1ba3217a9d449a477) ) /* sprite set #3, planes 0/1 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvip_9.2a", 0x0000, 0x1000, CRC(529aecf0) SHA1(60c18f834933e01ecd22aa652d39a5d1a9a0fe0f) ) + ROM_LOAD( "xvip_10.2b", 0x1000, 0x2000, CRC(f09eb6f9) SHA1(b189b4c23a2f9f185c75b096f44a083f8dbca3ae) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ + ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( xevious3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) ) + ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) ) + ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) ) + ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) ) + ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "x3_xvi_12.3b", 0x0000, 0x1000, CRC(34f7940e) SHA1(6e289b36d14fea02f2fdf45caa4720ab05529fe2) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "x3_xvi_13.3c", 0x0000, 0x1000, CRC(6eab56b5) SHA1(00da56424e520c9de5967c1c233a20cb3ae037db) ) /* bg pattern B0 */ + ROM_LOAD( "x3_xvi_14.3d", 0x1000, 0x1000, CRC(790b2f6c) SHA1(bc8e52d0ca4e97f38256ec3da1b23d266767ea9b) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "x3_xvi_15.4m", 0x0000, 0x2000, CRC(4dfaf4e1) SHA1(26456dc6c75e1a02cfc9c07fedfb2b7ece8e1692) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "x3_xvi_17.4p", 0x2000, 0x2000, CRC(9a135fe7) SHA1(278ab8c2805d138a47dfc89db7016c7438142a4f) ) /* sprite set #2, planes 1/2 */ + ROM_LOAD( "x3_xvi_16.4n", 0x4000, 0x1000, CRC(dd6f34c8) SHA1(9fcc194ea2ee94f8bdf4c46ff8dead113a99bdce) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "x3_xvi_18.4r", 0x5000, 0x2000, CRC(d5378335) SHA1(892a762a050c8f3ae21544392444b289583b8ca0) ) /* sprite set #1, plane 2, set #2, plane 0 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ + ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( xevious4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) ) + ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) ) + ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) ) + ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) ) + ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "x4_xvi_12.3b", 0x0000, 0x1000, CRC(bdf15ccc) SHA1(0e6fba428cf56668e5c9218af3c6d58c8f261d32) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "x4_xvi_13.3c", 0x0000, 0x1000, CRC(b9832011) SHA1(ac7b266791fd39c17cf239405068e309478e6703) ) /* bg pattern B0 */ + ROM_LOAD( "x4_xvi_14.3d", 0x1000, 0x1000, CRC(04677061) SHA1(3bf47661ddf1a8e98fcf8f7e46610e353483da9b) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "x4_xvi_15.4m", 0x0000, 0x2000, CRC(6cdeae2d) SHA1(5d43b11655e2952cec3c4e5df5855805273b0cb8) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "x4_xvi_17.4p", 0x2000, 0x2000, CRC(28ac2e0a) SHA1(8f85656d60439abc507ec09e9dfda31dad3e4e04) ) /* sprite set #2, planes 0/1 */ + ROM_LOAD( "x4_xvi_16.4n", 0x4000, 0x1000, CRC(400e2c3e) SHA1(d46fc7a40ad2b8f822db21e8af9ec29e21f7f093) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "x4_xvi_18.4r", 0x5000, 0x2000, CRC(45b2daaf) SHA1(8bda7ee9900a64c74996e5790832f11983caf31b) ) /* sprite set #1, plane 2, set #2, plane 2 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "x4_xvi_8bpr.6a", 0x0000, 0x0100, CRC(0e572608) SHA1(580acf168d13e5ba4448c6dbd077fe035dd9df3a) ) /* palette red component */ + ROM_LOAD( "x4_xvi_9bpr.6d", 0x0100, 0x0100, CRC(0e12c2bb) SHA1(829d14781e67268ceba5f771466584025894fd96) ) /* palette green component */ + ROM_LOAD( "x4_xvi10bpr.6e", 0x0200, 0x0100, CRC(6e235d02) SHA1(08378c12dfe190d33caf7bb0916dcc336dca42cd) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "x4_xvi_4bpr.3l", 0x0700, 0x0200, CRC(cce27181) SHA1(312d2f776f282354615f3a33a58a2744aafbc5a9) ) /* sprite lookup table low bits */ + ROM_LOAD( "x4_xvi_5bpr.3m", 0x0900, 0x0200, CRC(e15ddec9) SHA1(531551ab5b0f0dc6c450e24ee973451ec0c21471) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( xevious5 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) ) + ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) ) + ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) ) + ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) ) + ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "xvi24_12.3b", 0x0000, 0x1000, CRC(935cb02d) SHA1(0800e2a643b2bbeae0f337bfbdc88d2eab16ada4) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ + ROM_LOAD( "xvi24_14.3d", 0x1000, 0x1000, CRC(e0fbfb86) SHA1(6e25609f2f70490d8f70a48e93b1abf9673b1d38) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "xvi24_15.4m", 0x0000, 0x2000, CRC(51dcbd85) SHA1(a681000eb279d0f71da4ec4164f57e9877cb391f) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "xvi24_17.4p", 0x2000, 0x2000, CRC(b4753406) SHA1(404e911377614eda1e92093c5e3504216f16e143) ) /* sprite set #2, planes 0/1 */ + ROM_LOAD( "xvi24_16.4n", 0x4000, 0x1000, CRC(eb0d690d) SHA1(1cc3a0e3647e36a925eab8e5aee73febeb41d4cc) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "xvi24_18.4r", 0x5000, 0x2000, CRC(490c1189) SHA1(a478d390a4931c43778cf24e5b01225c71dcac67) ) /* sprite set #1, plane 2, set #2, plane 2 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ + ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( xeviblk ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for the first CPU */ + ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) ) + ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) ) + ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) ) + ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) ) + ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) + + ROM_REGION( 0x10000, "sub2", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */ + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ + ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ + + ROM_REGION( 0xa000, "gfx3", 0 ) + ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ + ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ + ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ + ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */ + /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ + ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel + + ROM_REGION( 0x4000, "gfx4", 0 ) /* background tilemaps */ + ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) + ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) + ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ + ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ + ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ + ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ + ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ + ROM_LOAD( "xvibl_4bpr.3l", 0x0700, 0x0200, CRC(83277522) SHA1(7c5edce9758fdb5aa2132da9d8aeb0f64d69d52e) ) /* sprite lookup table low bits */ + ROM_LOAD( "xvibl_5bpr.3m", 0x0900, 0x0200, CRC(07b4bd0b) SHA1(36b467756c54120a20b82b4183a524b4867bc729) ) /* sprite lookup table high bits */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) + ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + + +GAME( 1984, galaga84, galaga, galaga, galaga, galaga_state, galaga, ROT90, "hack", "Galaga '84", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, galaga99, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Jerky and Sil", "Galaga '99", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, galagab2, galaga, galaga, galaga, galaga_state, galaga, ROT90, "bootleg", "Galaga (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, galagabl, galaga, galaga, galaga, galaga_state, galaga, ROT90, "bootleg", "Galaga (Namco 1982)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, galagads, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "hack", "Galaga (fast shoot)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, galagaef, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "Hack", "Galaga (Enduring Freedom)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, galagaf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Fast Shoot Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, galagap, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Don Hodges", "Galaga (patched)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, galagix, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Grand Master Peter", "Galagix", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, galagost, galaga, galagost, galaga, galaga_state, galaga, ROT90, "Twisty", "Galaga Ghost (Set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, galagosb, galaga, galagost, galaga, galaga_state, galaga, ROT90, "Twisty", "Galaga Ghost (Set 2 - 20021128)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, galaped, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Cary Barnhard", "Galapede (Fast Shoot)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, galgaxin, galaga, galaga, galaga, galaga_state, galaga, ROT90, "T-Bone", "Galagalaxian", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, nebulbee, galaga, galaga, galaga, galaga_state, galaga, ROT90, "hack", "Nebulous Bee", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, terror, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Terrorist", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vgalaga, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vgalagam, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga Midway", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vgalagaf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga Fast Shoot", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, battlesh, xevious, battles, xevious, xevious_state, battles, ROT90, "bootleg", "Battles 2002", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, gaous, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco (Hack)", "Gaous", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, sxvioush, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "Namco", "Super Xevious 2002", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, xeviblk, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious Black", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, xevious3, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2003", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, xevious4, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2004", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, xevious5, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2005", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, xevioush, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2002", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, xeviousp, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "bootleg", "Xevious Plus!", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, xviousah, xevious, xevious, xeviousa, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious 2002 (Atari set 1)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/galaxian.cpp b/docs/release/src/hbmame/drivers/galaxian.cpp new file mode 100644 index 00000000000..4298f79275f --- /dev/null +++ b/docs/release/src/hbmame/drivers/galaxian.cpp @@ -0,0 +1,853 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/galaxian.cpp" + + +/************************************* + * + * Four Play + * + *************************************/ + +static ADDRESS_MAP_START( fourplay_map, AS_PROGRAM, 8, galaxian_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x47ff) AM_RAM + AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") + AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0") + AM_RANGE(0x6800, 0x6800) AM_READ_PORT("IN1") + AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN2") + AM_RANGE(0x7800, 0x7fff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) + AM_RANGE(0x6000, 0x6001) AM_WRITE(start_lamp_w) + AM_RANGE(0x6002, 0x6002) AM_WRITENOP // AM_WRITE(coin_lock_w) + AM_RANGE(0x6003, 0x6003) AM_WRITE(coin_count_0_w) + AM_RANGE(0x6004, 0x6007) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w) + AM_RANGE(0x6800, 0x6807) AM_DEVWRITE("cust", galaxian_sound_device, sound_w) + AM_RANGE(0x7001, 0x7001) AM_WRITE(irq_enable_w) + AM_RANGE(0x7002, 0x7003) AM_WRITE(fourplay_rombank_w) + AM_RANGE(0x7004, 0x7004) AM_WRITE(galaxian_stars_enable_w) + AM_RANGE(0x7005, 0x7005) AM_WRITENOP /* bit 3 of rombank select - always 0 */ + AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxian_flip_screen_x_w) + AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxian_flip_screen_y_w) + AM_RANGE(0x7008, 0x7008) AM_WRITENOP /* bit 4 of rombank select - always 0 */ + AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) +ADDRESS_MAP_END + +static MACHINE_CONFIG_DERIVED( fourplay, galaxian ) + /* info can be found at http://www.ionpool.net/arcade/galaxian_hacks/fourplay.htm */ + /* basic machine hardware */ + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(fourplay_map) + + /* video hardware */ + MCFG_GFXDECODE_MODIFY("gfxdecode", gmgalax) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(64) +MACHINE_CONFIG_END + +DRIVER_INIT_MEMBER( galaxian_state, fourplay ) +{ + membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000); + membank("bank1")->set_entry(0); + + /* video extensions */ + common_init(NULL, NULL, &galaxian_state::pisces_extend_tile_info, &galaxian_state::pisces_extend_sprite_info); +} + + + +/************************************* + * + * Galaxiab + * + *************************************/ + +static INPUT_PORTS_START( galaxiab ) + PORT_INCLUDE(galaxian) + + PORT_MODIFY("IN2") + PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + PORT_DIPSETTING( 0x01, "20000" ) + PORT_DIPSETTING( 0x02, "40000" ) + PORT_DIPSETTING( 0x03, "80000" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPSETTING( 0x04, "3" ) + PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED ) +INPUT_PORTS_END + + + +/*********************************************************** + * + * Jump Bug (with extra sounds via Galaxian sound board) + * + ***********************************************************/ + +static ADDRESS_MAP_START( jumpbugx_map, AS_PROGRAM, 8, galaxian_state ) + AM_IMPORT_FROM(jumpbug_map) +/* HBMAME - added next lines */ + AM_RANGE(0x6800, 0x6807) AM_MIRROR(0x07f8) AM_DEVWRITE("cust", galaxian_sound_device, sound_w) + AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x07ff) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) +ADDRESS_MAP_END + +static MACHINE_CONFIG_DERIVED( jumpbugx, jumpbug ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(jumpbugx_map) + MCFG_FRAGMENT_ADD(galaxian_audio) +MACHINE_CONFIG_END + + +/************************************* + * + * Mr. Do Nightmare + * + *************************************/ + +static INPUT_PORTS_START( mrdonm ) + + PORT_START("IN0") + + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) + + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY + + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY + + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) + + + PORT_START("IN1") + + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) + + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) + + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY + + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY + + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0xc0, DEF_STR( Free_Play ) ) + + PORT_START("IN2") + + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + +INPUT_PORTS_END + +/************************************* + * + * Trukker + * + *************************************/ + +DRIVER_INIT_MEMBER( galaxian_state, trukker ) +{ + UINT16 i; + + /* video extensions */ + common_init(NULL, &galaxian_state::frogger_draw_background, &galaxian_state::frogger_extend_tile_info, &galaxian_state::frogger_extend_sprite_info); + m_frogger_adjust = TRUE; + + /* the first ROM of the second CPU has data lines D0 and D1 swapped. Decode it. */ + UINT8 *ROM = memregion("audiocpu")->base(); + for (i = 0;i < 0x800;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1); + + /* fix gfx error in the alphabetic characters */ + ROM = memregion("gfx1")->base(); + for (i = 0;i < 0x160;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1); + + /* remove extraneous dot from steam rollers */ + for (i = 0x1a0;i < 0x200;i++) ROM[i] = ROM[i] & 0xfc; + + /* fix gfx error in sinking turtle */ + for (i = 0x4c0;i < 0x4e0;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1); + + /* fix gfx error on left side of home bases */ + ROM[0x234] = BITSWAP8(ROM[0x234],7,6,5,4,3,2,0,1); + + /* fix gfx error in (c) sign and in square symbol */ + for (i = 0x270;i < 0x27f;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1); + + /* fix gfx error in 200-point sign */ + for (i = 0x330;i < 0x337;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1); +} + + + +/************************************************************ + * + * Frogger Sound Test rom - have to disable the watchdog + * + ************************************************************/ + +static MACHINE_CONFIG_DERIVED( tst_frog, frogger ) + //MCFG_WATCHDOG_VBLANK_INIT(0) +MACHINE_CONFIG_END + + + +/************************************* + * + * Video Eight + * + *************************************/ + +static ADDRESS_MAP_START( videight_map, AS_PROGRAM, 8, galaxian_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x47ff) AM_RAM + AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x400) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") + AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0") + AM_RANGE(0x6800, 0x6800) AM_READ_PORT("IN1") + AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN2") + AM_RANGE(0x7800, 0x7fff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) + AM_RANGE(0x6000, 0x6002) AM_WRITE(videight_gfxbank_w) + AM_RANGE(0x6003, 0x6003) AM_WRITE(coin_count_0_w) + AM_RANGE(0x6004, 0x6007) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w) + AM_RANGE(0x6800, 0x6807) AM_DEVWRITE("cust", galaxian_sound_device, sound_w) + AM_RANGE(0x6808, 0x68ff) AM_WRITENOP + AM_RANGE(0x7001, 0x7001) AM_WRITE(irq_enable_w) + AM_RANGE(0x7002, 0x7005) AM_WRITE(videight_rombank_w) + AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxian_flip_screen_x_w) + AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxian_flip_screen_y_w) + AM_RANGE(0x7008, 0x7008) AM_WRITENOP /* bit 4 of rombank select - always 0 */ + AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) +ADDRESS_MAP_END + +static GFXDECODE_START( videight ) + GFXDECODE_SCALE( "gfx1", 0x0000, galaxian_charlayout, 0, 8*32, GALAXIAN_XSCALE,1) + GFXDECODE_SCALE( "gfx1", 0x0000, galaxian_spritelayout, 0, 8*32, GALAXIAN_XSCALE,1) +GFXDECODE_END + +static MACHINE_CONFIG_DERIVED( videight, galaxian ) + + /* basic machine hardware */ + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(videight_map) + + /* video hardware */ + MCFG_GFXDECODE_MODIFY("gfxdecode", videight) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(8*32) +MACHINE_CONFIG_END + +DRIVER_INIT_MEMBER( galaxian_state, videight ) +{ + membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); + membank("bank1")->set_entry(0); + + /* video extensions */ + common_init(NULL, NULL, &galaxian_state::videight_extend_tile_info, &galaxian_state::videight_extend_sprite_info); +} + + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + + + + +/* this looks exactly like Galaxian, the word "Andromeda" never appears. The dipswitches are different. */ +ROM_START( andromd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "and01", 0x0000, 0x0400, CRC(a0059ddd) SHA1(06bc3bd5eef9fea9e038ec08e5a228ab19f31a56) ) + ROM_LOAD( "and02", 0x0400, 0x0400, CRC(da6421b8) SHA1(d3099d94d722e3e12ade712842261aac8b45f9f4) ) + ROM_LOAD( "and03", 0x0800, 0x0400, CRC(30e28016) SHA1(07a621e5061d85a9559a920d76716ea4db61b674) ) + ROM_LOAD( "and04", 0x0c00, 0x0400, CRC(de7e7770) SHA1(b06043a1d898eb323ddabffd3d2a3b1f63df0e5e) ) + ROM_LOAD( "and05", 0x1000, 0x0400, CRC(a916c919) SHA1(b3e264ff92687022a0f2f551d5df36db848b48eb) ) + ROM_LOAD( "and06", 0x1400, 0x0400, CRC(9175882b) SHA1(d9943efcb9245af7f01aecc533a699bdefc7d283) ) + ROM_LOAD( "and07", 0x1800, 0x0400, CRC(1237b9da) SHA1(00e11532c599fca452a816683b361a24476b7100) ) + ROM_LOAD( "and08", 0x1c00, 0x0400, CRC(8b181929) SHA1(c7e789d1a76e8db0251ac4c75aa85f0a4259fc81) ) + ROM_LOAD( "and09", 0x2000, 0x0400, CRC(17fd5357) SHA1(abda92319f6851232a0dd26229fc55cf6d8361d8) ) + ROM_LOAD( "and10", 0x2400, 0x0400, CRC(3032821c) SHA1(7ff45a9ddd86e77a550b10148147f44c4c934467) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) ) + ROM_LOAD( "1k.bin", 0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END + + +#if 0 +/* From CloneMAME 0.101 - this is galapx with different gfx roms */ +ROM_START( galaxni ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galx.u", 0x0000, 0x0800, CRC(79e4007d) SHA1(d55050498a670d1c022ba3caad34f8fcaccf4a30) ) + ROM_LOAD( "galx.v", 0x0800, 0x0800, CRC(bc16064e) SHA1(4e3220fd63c8184bf9581a89dffb6944d8fae3bb) ) + ROM_LOAD( "galx.w", 0x1000, 0x0800, CRC(72d2d3ee) SHA1(96e0c5824e46d7398c7e58dd6b75a9f4ead6f3f5) ) + ROM_LOAD( "galx.y", 0x1800, 0x0800, CRC(afe397f3) SHA1(283c6f3b3f07581d88f7a6e11fc36947a9d90e2e) ) + ROM_LOAD( "galx.z", 0x2000, 0x0800, CRC(778c0d3c) SHA1(6a81875abfea515d379c6212cb57f8e54573e943) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "galaxni.1h", 0x0000, 0x0800, CRC(1b13ca05) SHA1(6999068771dacc6bf6c17eb858af593a929d09af) ) + ROM_LOAD( "galaxni.1k", 0x0800, 0x0800, CRC(5cd7df03) SHA1(77873408c89546a17b1da3f64b7e96e314fadb17) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END +#endif + +/* From CloneMAME 0.111 */ +ROM_START( galaxni ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galaxni.u", 0x0000, 0x0800, CRC(0701fcff) SHA1(b4fbc864fb9d95af63c32427779aad05934d95d0) ) + ROM_LOAD( "galaxni.v", 0x0800, 0x0800, CRC(cb1136d8) SHA1(7be8c50bbd1b891ca7ded597e55b481efa6ac9d5) ) + ROM_LOAD( "galaxni.w", 0x1000, 0x0800, CRC(f45ef2c7) SHA1(6b50383d98360afee8137a94c4c91d4d10db9221) ) + ROM_LOAD( "galaxni.y", 0x1800, 0x0800, CRC(3f5c8a62) SHA1(7bde7f712c2cb97d40467062390097707b2896ae) ) + ROM_LOAD( "galaxni.z", 0x2000, 0x0800, CRC(2d897370) SHA1(21c108712e7c00bd0f30d1fdddfaa71eed84158c) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "galaxni.1h", 0x0000, 0x0800, CRC(6c14fa93) SHA1(0ac55adee875fde0488b4376c4ca5e0047d09fbf) ) + ROM_LOAD( "galaxni.1k", 0x0800, 0x0800, CRC(2bd0ef95) SHA1(a17edda8940bca02820e270a3ec9e38666343b26) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "galaxni.clr", 0x0000, 0x0020, CRC(5aa5c5dd) SHA1(be74103889248f24123d1df553da02586681835e) ) +ROM_END + + +ROM_START( buglaxn ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galmidw.u", 0x0000, 0x0800, CRC(745e2d61) SHA1(e65f74e35b1bfaccd407e168ea55678ae9b68edf) ) + ROM_LOAD( "galmidw.v", 0x0800, 0x0800, CRC(9c999a40) SHA1(02fdcd95d8511e64c0d2b007b874112d53e41045) ) + ROM_LOAD( "galmidw.w", 0x1000, 0x0800, CRC(b5894925) SHA1(0046b9ed697a34d088de1aead8bd7cbe526a2396) ) + ROM_LOAD( "galmidw.y", 0x1800, 0x0800, CRC(6b3ca10b) SHA1(18d8714e5ef52f63ba8888ecc5a25b17b3bf17d1) ) + ROM_LOAD( "galmidw.z", 0x2000, 0x0800, CRC(cb24f797) SHA1(e6bb977ded0654c2c7388aad188059e1e0647908) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "buglaxn.1j", 0x0000, 0x0800, CRC(b8d46e4b) SHA1(5fbf130912029fbe2aea5282b2201c6a17eae40b) ) + ROM_LOAD( "buglaxn.1k", 0x0800, 0x0800, CRC(a00bde50) SHA1(c6519af48d2cf0a641b2f5aa327c3591f3184dbc) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END + +/* This is a combination of 2 EMMA dumps. E48 contained all roms except for "y" - even though the web page said + it was there. E423 contained all roms except the prom, because this board had been hacked to work without it. + + The prom is the same except that the last 2 bytes are zeroed. This causes the explosions to be mostly missing, + and since the last byte also controls the colour of the floating scores, these are blanked. */ + +ROM_START( galaxiab ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galaxiab.u", 0x0000, 0x0800, CRC(63e6d8ab) SHA1(ec2ade4d93903ba99bc9565b68328bd7d0830eac) ) + ROM_LOAD( "galaxiab.v", 0x0800, 0x0800, CRC(f58283e3) SHA1(edc6e72516c50fd3402281d9936574d276581ce9) ) + ROM_LOAD( "galaxiab.w", 0x1000, 0x0800, CRC(4c7031c0) SHA1(97f7ab0cedcd8eba1c8f6f516d84d672a2108258) ) + ROM_LOAD( "galaxiab.y", 0x1800, 0x0800, CRC(faa0bd8c) SHA1(30dd130298609632212b34874a0819340b1c8037) ) + ROM_LOAD( "galaxiab.z", 0x2000, 0x0800, CRC(5766c95b) SHA1(cf6c226df0cc9d088b04ade43d6db87d278f8b09) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "galaxiab.1h", 0x0000, 0x0800, CRC(977e37cf) SHA1(88ff1e4edadf5cfc83413a1fe999aecf4ba72232) ) + ROM_LOAD( "galaxiab.1k", 0x0800, 0x0800, CRC(bc7d0985) SHA1(550a44c9ddc8da66a29405591a590f91d2675cdf) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "galaxiab.6l", 0x0000, 0x0020, CRC(feea6525) SHA1(cdb207776f51411ed4e9536babff6050488d2808) ) + ROM_FILL( 31,1,7 ) /* patch so floating scores can be seen, and explosions look better */ +ROM_END + +ROM_START( galaxkyo ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galxk.u", 0x0000, 0x0800, CRC(acfde501) SHA1(4b72c1ffecaccadc541da2367f3ef70a2a9aed64) ) + ROM_LOAD( "galxk.v", 0x0800, 0x0800, CRC(65cf3c77) SHA1(1c5249815816b395e1e04bf6a7dbb63e40faa0e3) ) + ROM_LOAD( "galxk.w", 0x1000, 0x0800, CRC(9eef9ae6) SHA1(b2282e4edb8911e6aabfa936c3526f90381e1320) ) + ROM_LOAD( "galxk.y", 0x1800, 0x0800, CRC(56a5ddd1) SHA1(1f87f647ebdffba28d5957f195448f6bce17f4d5) ) + ROM_LOAD( "galxk.z", 0x2000, 0x0800, CRC(f4bc7262) SHA1(c4b70e474d49f45cec96f7c250bd77e01e18601a) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "galxk.1h", 0x0000, 0x0800, CRC(66a4335d) SHA1(0527a9ea99e525b3ba25c172034a61cde9307a9b) ) + ROM_LOAD( "galxk.1k", 0x0800, 0x0800, CRC(2160265b) SHA1(97385e9c8012bc7fe85e29cfccefda72e4ca3320) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END + +ROM_START( galinvad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) ) + ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) ) + ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "galinv.1h", 0x0000, 0x0800, CRC(d3d42377) SHA1(4eae6b2b20cfb6841d679006f394c7081f8f426f) ) + ROM_LOAD( "galinv.1k", 0x0800, 0x0800, CRC(7e515c84) SHA1(e15ff199f1db55e9abb30c403fc667a4e7143b4f) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END + +ROM_START( galnamco ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) ) + ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) ) + ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) ) + ROM_LOAD( "1k.bin", 0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END + +ROM_START( gaylaxn ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galx.u", 0x0000, 0x0800, CRC(79e4007d) SHA1(d55050498a670d1c022ba3caad34f8fcaccf4a30) ) + ROM_LOAD( "galx.v", 0x0800, 0x0800, CRC(bc16064e) SHA1(4e3220fd63c8184bf9581a89dffb6944d8fae3bb) ) + ROM_LOAD( "galx.w", 0x1000, 0x0800, CRC(72d2d3ee) SHA1(96e0c5824e46d7398c7e58dd6b75a9f4ead6f3f5) ) + ROM_LOAD( "galx.y", 0x1800, 0x0800, CRC(afe397f3) SHA1(283c6f3b3f07581d88f7a6e11fc36947a9d90e2e) ) + ROM_LOAD( "galx.z", 0x2000, 0x0800, CRC(778c0d3c) SHA1(6a81875abfea515d379c6212cb57f8e54573e943) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "galxn.1h", 0x0000, 0x0800, CRC(ce77d89b) SHA1(17de678c91e96bf3dc414cc2ad8631a8f617da3d) ) + ROM_LOAD( "galxn.1k", 0x0800, 0x0800, CRC(08008d2c) SHA1(6600dbc42e5076f9ce3abe677134bf1677ae70ea) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END + +ROM_START( gmunch ) + /* There was gmunch and gmunch2, using same roms, different proms. But colours are completely wrong in either case + Both games have now been removed (replaced by ghostmun) */ + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pac1.bin", 0x0000, 0x1000, CRC(19338c70) SHA1(cc2665b7d534d324627d12025ee099ff415d4214) ) + ROM_LOAD( "pac2.bin", 0x1000, 0x1000, CRC(18db074d) SHA1(a70ed18f632e947493e648e6fc057dfb7a2a3322) ) + ROM_LOAD( "pac3.bin", 0x2000, 0x1000, CRC(abb98b1d) SHA1(bb0109d353359bb192a3e6856a857c2f842838cb) ) + ROM_LOAD( "pac4.bin", 0x3000, 0x1000, CRC(2403c78e) SHA1(52d8c8a4efcf47871485080ab217098a019e6579) ) + /* this rom isn't loaded into rom space so what is it for? */ + ROM_LOAD( "pac7.bin", 0x5000, 0x1000, CRC(6566c07b) SHA1(8047350e5f6a39d34dfc9242fa0747db9819fe99) ) + + ROM_REGION( 0x3000, "gfx1" , 0 ) + ROM_LOAD( "pac5.bin", 0x0000, 0x1000, CRC(a5965fa6) SHA1(c746f90b4c4620ef6190f9ae85d5036bda3b81ae) ) + ROM_LOAD( "pac8.bin", 0x1000, 0x1000, CRC(0491a967) SHA1(868f7c7efdbe40c8e0977557bc2cedefb9a3ea81) ) + /* this rom contains gfx from uniwars and mame doesn't process it */ + ROM_LOAD( "pac6.bin", 0x2000, 0x1000, CRC(2145e7ea) SHA1(a2e3a54fa25b030d72431f42e12783db08e95e2e) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "sk.bpr", 0x0000, 0x0020, CRC(bce79607) SHA1(49d60fde149240bcd025f721b0fbbbdbc549a42f) ) /* gmunch */ + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) /* gmunch2 */ +ROM_END + +ROM_START( mooncmst ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mc1", 0x0000, 0x0800, CRC(7d954a7a) SHA1(a93ee403cfd7887538ad12d33f6dd6c71bea2a32) ) + ROM_LOAD( "mc2", 0x0800, 0x0800, CRC(44bb7cfa) SHA1(349c2e23a9fce73f95bb8168d369082fa129fe3d) ) + ROM_LOAD( "mc3", 0x1000, 0x0800, CRC(9c412104) SHA1(1b40054ebb1ace965a8522119bb23f09797bc5f6) ) + ROM_LOAD( "mc4", 0x1800, 0x0800, CRC(7e9b1ab5) SHA1(435f603c0c3e788a509dd144a7916a34e791ae44) ) + ROM_LOAD( "mc5.7r", 0x2000, 0x0800, CRC(16c759af) SHA1(3b48050411f65f9d3fb41ff22901e22d82bf1cf6) ) + ROM_LOAD( "mc6.8d", 0x2800, 0x0800, CRC(69bcafdb) SHA1(939c8c6ed1cd4660a3d99b8f17ed99cbd7e1352a) ) + ROM_LOAD( "mc7.8e", 0x3000, 0x0800, CRC(b50dbc46) SHA1(4fa084fd1ba5f78e7703e684c57af15ca7a844e4) ) + ROM_LOAD( "mc8", 0x3800, 0x0800, CRC(18ca312b) SHA1(39219059003b949e38305553fea2d33071062c64) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mmcs_b", 0x0000, 0x0800, CRC(94d69a79) SHA1(d984ce68046244589e94cb526dc2fa11a85077d9) ) + ROM_LOAD( "mmcs_d", 0x0800, 0x0800, CRC(44a6c84a) SHA1(464dc9a11fdf3015ce9d4735c27c1d6eab51cecb) ) + ROM_LOAD( "mmcs_a", 0x1000, 0x0800, CRC(d8c9713c) SHA1(13f514bed011bb7f420e99bd9caeca0f2a1012ff) ) + ROM_LOAD( "mmcs_c", 0x1800, 0x0800, CRC(50e37124) SHA1(ae07715733e864eadc3b4586c3e9f1852a4cf127) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "prom.6l", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) ) +ROM_END + + +/* E78 - The dump was missing one rom (position "fake" below), I found that the equivalent code from fantazia + works perfectly well. The rom still fails the checksum test, which is why the test is patched. So + take note: It is a FAKE rom!!! + + The colour prom supplied produced terrible colours, with most enemies barely visible. Substituting + the normal mooncrst prom fixes all the problems. */ + +ROM_START( mooncrs5 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mooncrs5.7k", 0x0000, 0x1000, CRC(d62875a5) SHA1(2e162bf559a72acb5d23434497a9377a302b0440) ) + ROM_LOAD( "mooncrs5.7j", 0x1000, 0x1000, CRC(1683e74c) SHA1(5887ddeed7d3399e93bc3146f54c23e9f8893866) ) + ROM_LOAD( "mooncrs5.7h", 0x2000, 0x1000, CRC(46921e92) SHA1(7a3cec261a9e0baf969bd356a0766b4b266eaa39) ) + ROM_LOAD( "mooncrs5.7a", 0x3000, 0x0400, CRC(5318be0c) SHA1(cca73501da8783e47f3f3c7d8a795011d5fd91a3) ) + ROM_LOAD( "mooncrs5.7b", 0x3400, 0x0400, CRC(aed8acb2) SHA1(a2429daba96e6c064f4bc65cab2df6b15a43bf44) ) + ROM_LOAD( "mooncrs5.fake", 0x3800, 0x0400, CRC(76db94a5) SHA1(f7d9c81d5e09f7e42258caf265606b1ba32439dd) ) /* fake rom */ + ROM_LOAD( "mooncrs5.7d", 0x3c00, 0x0400, CRC(db0528cf) SHA1(be06b78d890e07fcbbfd6931d1a59ab0fb8b7a53) ) + ROM_FILL(0x3FF4,1,0x2c ) /* patch unused byte so checksum test can be passed */ + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mooncrs5.1h", 0x0800, 0x0800, CRC(60d783bc) SHA1(584a0600ef1c47fb8bce86f738af7691fdf91c9c) ) + ROM_CONTINUE( 0x0000, 0x0800 ) + ROM_LOAD( "mooncrs5.1k", 0x1800, 0x0800, CRC(bc25be88) SHA1(0e698a1e573f28e8aad07e79c11f38519d93286c) ) + ROM_CONTINUE( 0x1000, 0x0800 ) + + ROM_REGION( 0x0020, "proms", 0 ) +// ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) + ROM_LOAD( "prom.6l", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) ) +ROM_END + +// Mr. Do. Nightmare +ROM_START( mrdonm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mrdonm.u", 0x0000, 0x0800, CRC(197493a6) SHA1(f939fd712985db24dced4f7a66f4a804ca34ce60) ) + ROM_LOAD( "mrdonm.v", 0x0800, 0x0800, CRC(b8ee84cf) SHA1(c5018f21da2f65fa573a2d5e9c8f96db1f0136e9) ) + ROM_LOAD( "mrdonm.w", 0x1000, 0x0800, CRC(76879d31) SHA1(7aae5ee1eeaa5dacf4a232b3336f9e3df74018ca) ) + ROM_LOAD( "mrdonm.y", 0x1800, 0x0800, CRC(d6d5e47e) SHA1(e5f41f90ca357f3e7ef1a6b055ca0cccc91ed391) ) + ROM_LOAD( "mrdonm.z", 0x2000, 0x0800, CRC(34913886) SHA1(c1936ef6dc6080d080715d1c064513d581180fea) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "mrdonm.1h", 0x0000, 0x0800, CRC(f880af4b) SHA1(67d24ac48a6bd68de5b914675dc4cd5982d8ffc4) ) + ROM_LOAD( "mrdonm.1k", 0x0800, 0x0800, CRC(40fd608a) SHA1(3a58d5ac17e98bea3d58d238d81bd6a5dd24bb81) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "mrdonm.6l", 0x0000, 0x0020, CRC(77f95861) SHA1(2acb3021e31b3c91bbf48763d2504dfad0d87f38) ) +ROM_END + + +/* StarFighter II - This set came with a1,a2,b2,c1,e2 only. The rest I've used from Pisces */ +ROM_START( starfgh2 ) + ROM_REGION( 0x4000, "maincpu", 0 ) + ROM_LOAD( "a1.bin", 0x0000, 0x0800, CRC(0d496c93) SHA1(c0f9a20d01a11045f6ad8a6c9c3980a52ba16495) ) + ROM_LOAD( "a2.bin", 0x0800, 0x0800, CRC(4f0676eb) SHA1(7b4a230c723959261cb240fce52d378a01740942) ) + ROM_LOAD( "b2.bin", 0x1000, 0x0800, CRC(1496a894) SHA1(d010cd02b1ffe351ef1abdd424cdefca44ea6b29) ) + ROM_LOAD( "c1.bin", 0x1800, 0x0800, CRC(59820900) SHA1(d42b99573a44f76620d75647c1c253a869e9a403) ) + ROM_LOAD( "p5.bin", 0x2000, 0x0800, CRC(fade512b) SHA1(ccef2650f1d9dc3fdde2d441774246d47febc2cc) ) + ROM_LOAD( "e2.bin", 0x2800, 0x0800, CRC(153316b8) SHA1(c7de0c0f65723d3699e68f3b8b76cd1d69dbd0f3) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "g09.bin", 0x0000, 0x0800, CRC(9503a23a) SHA1(23848de56841dd1de9ef74d5a9c981c784098175) ) + ROM_LOAD( "g11.bin", 0x0800, 0x0800, CRC(0adfc3fe) SHA1(a4da488632d9906066db45ae62747caf5ffbf2d8) ) + ROM_LOAD( "g10.bin", 0x1000, 0x0800, CRC(3e61f849) SHA1(efa0059bc843af0c3bb94f4bc0a8286ca5069179) ) + ROM_LOAD( "g12.bin", 0x1800, 0x0800, CRC(7130e9eb) SHA1(e6bb7a9b4f2fc001296e1060d0671b7a88599c8b) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "colour.bin", 0x0000, 0x0020, CRC(57a45057) SHA1(d4ec6a54f72640e5b485aa59e206c090e67ff640) ) +ROM_END + +ROM_START( vectrgal ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) ) + ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) ) + ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "vecgal.1h", 0x0000, 0x0800, CRC(02815aec) SHA1(94975ee5eff84a3ae483dd3d5766384859402477) ) + ROM_LOAD( "vecgal.1k", 0x0800, 0x0800, CRC(11c9898c) SHA1(fb6bac221b3984a70a775bccf06f6e2f17d447cf) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END + +ROM_START( fourplay ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code & 64k for banked code */ + ROM_LOAD( "fourplay.bin", 0x10000, 0x10000, CRC(b42b2c2c) SHA1(f3b6f136b39e7a6adadecb9acf906fcfe649f398) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "graph1.bin", 0x0000, 0x1000, CRC(359c0c1f) SHA1(9e39baae4ab5763db236d0a49a6665d2e69cba11) ) + ROM_LOAD( "graph2.bin", 0x1000, 0x1000, CRC(b22a51c9) SHA1(cccfbab0c92dba81e3451de72d1f1899226e30e2) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) +ROM_END + +ROM_START( videight ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "videight.bin", 0x10000, 0x20000, CRC(0601db09) SHA1(0c9cd1afb0034946261219bf42b2f9b1ed5bdb17) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "v8g1.bin", 0x0000, 0x8000, CRC(af771e33) SHA1(cdc960c5f548e19da4eabdaf8b789ca8ffb6a29f) ) + ROM_LOAD( "v8g2.bin", 0x8000, 0x8000, CRC(776c34e6) SHA1(de70a29f73469a58ab15acb95aaad1efeb4de08d) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "v8c.bin", 0x0000, 0x0100, CRC(b35a6ca8) SHA1(d9195215bf2482a1b02a019bb708a9981eb0bdf8) ) +ROM_END + +ROM_START( offender ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "off-2d", 0x0000, 0x0800, CRC(bb09d91e) SHA1(f47cd3fd91fc569c7a9bb6e485a3281b92656b7f) ) + ROM_LOAD( "2e", 0x0800, 0x0800, CRC(e9b4b9eb) SHA1(a8ee9ddfadf5e9accedfaf81da757a88a2e55a0a) ) + ROM_LOAD( "2f", 0x1000, 0x0800, CRC(a1f14f4c) SHA1(3eae2b3e4596505a8afb5c5cfb108e823c2c4319) ) + ROM_LOAD( "2h", 0x1800, 0x0800, CRC(591bc0d9) SHA1(170f9e92f0a3bee04407be27210b4fa825367688) ) + ROM_LOAD( "2j", 0x2000, 0x0800, CRC(22f11b6b) SHA1(e426ef6a7444a39a34d59799973b07d11b89f372) ) + ROM_LOAD( "2l", 0x2800, 0x0800, CRC(705ffe49) SHA1(174df3f281068c767344f751daace646360e26d6) ) + ROM_LOAD( "2m", 0x3000, 0x0800, CRC(ea26c35c) SHA1(a2f3380982d93a022f46756f974fd16c4cd617de) ) + ROM_LOAD( "2p", 0x3800, 0x0800, CRC(94d8f5e3) SHA1(f3a9c4d1d91836476fcad87ea0d243dde7171e0a) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "ot1.5c", 0x0000, 0x0800, CRC(bcd297f0) SHA1(8ed78487d76fd0a917ab7b258937a46e2cd9800c) ) + ROM_LOAD( "ot2.5d", 0x0800, 0x0800, CRC(de7912da) SHA1(8558b4eff5d7e63029b325edef9914feda5834c3) ) + ROM_LOAD( "ot3.5e", 0x1000, 0x0800, CRC(ba2fa933) SHA1(1f976d8595706730e29f93027e7ab4620075c078) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "off-5f", 0x0000, 0x0800, CRC(7015a2e1) SHA1(19bb4cb26c8b91cd79368e4ed48065df6fd6577e) ) + ROM_LOAD( "off-5h", 0x0800, 0x0800, CRC(a36ac0fa) SHA1(b58412536833ab5ea705e919562b7b495ff3dff4) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) ) +ROM_END + +ROM_START( superdog ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "sdog-2d", 0x0000, 0x0800, CRC(99dc8bb5) SHA1(a7f533471df4482f67be0ed969e559f483fb147a) ) + ROM_LOAD( "2e", 0x0800, 0x0800, CRC(e9b4b9eb) SHA1(a8ee9ddfadf5e9accedfaf81da757a88a2e55a0a) ) + ROM_LOAD( "2f", 0x1000, 0x0800, CRC(a1f14f4c) SHA1(3eae2b3e4596505a8afb5c5cfb108e823c2c4319) ) + ROM_LOAD( "2h", 0x1800, 0x0800, CRC(591bc0d9) SHA1(170f9e92f0a3bee04407be27210b4fa825367688) ) + ROM_LOAD( "2j", 0x2000, 0x0800, CRC(22f11b6b) SHA1(e426ef6a7444a39a34d59799973b07d11b89f372) ) + ROM_LOAD( "2l", 0x2800, 0x0800, CRC(705ffe49) SHA1(174df3f281068c767344f751daace646360e26d6) ) + ROM_LOAD( "2m", 0x3000, 0x0800, CRC(ea26c35c) SHA1(a2f3380982d93a022f46756f974fd16c4cd617de) ) + ROM_LOAD( "2p", 0x3800, 0x0800, CRC(94d8f5e3) SHA1(f3a9c4d1d91836476fcad87ea0d243dde7171e0a) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "ot1.5c", 0x0000, 0x0800, CRC(bcd297f0) SHA1(8ed78487d76fd0a917ab7b258937a46e2cd9800c) ) + ROM_LOAD( "ot2.5d", 0x0800, 0x0800, CRC(de7912da) SHA1(8558b4eff5d7e63029b325edef9914feda5834c3) ) + ROM_LOAD( "ot3.5e", 0x1000, 0x0800, CRC(ba2fa933) SHA1(1f976d8595706730e29f93027e7ab4620075c078) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "sdog-5f", 0x0000, 0x0800, CRC(7edbc59c) SHA1(53c9a7f46a968b2f804243f661479918870756b5) ) + ROM_LOAD( "sdog-5h", 0x0800, 0x0800, CRC(5b130bea) SHA1(269df1344414c0d517084a32a348a856c25d499c) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) ) +ROM_END + +ROM_START( amidarf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "amidar.2c", 0x0000, 0x1000, CRC(c294bf27) SHA1(399325bf1559e8cdbddf7cfbf0dc739f9ed72ef0) ) + ROM_LOAD( "amidar.2e", 0x1000, 0x1000, CRC(e6e96826) SHA1(e9c4f8c594640424b456505e676352a98b758c03) ) + ROM_LOAD( "amidarf.2f", 0x2000, 0x1000, CRC(45b24635) SHA1(0a6b004803e67ed536b3213cc58ae976e4dc24be) ) + ROM_LOAD( "amidar.2h", 0x3000, 0x1000, CRC(1be170bd) SHA1(c047bc393b297c0d47668a5f6f4870e3fac937ef) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "amidar.5c", 0x0000, 0x1000, CRC(c4b66ae4) SHA1(9d09dbde4019f7be3abe0815b0e06d542c01c255) ) + ROM_LOAD( "amidar.5d", 0x1000, 0x1000, CRC(806785af) SHA1(c8c85e3a6a204feccd7859b4527bd649e96134b4) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "amidar.5f", 0x0000, 0x0800, CRC(5e51e84d) SHA1(dfe84db7e2b1a45a1d484fcf37291f536bc5324c) ) + ROM_LOAD( "amidar.5h", 0x0800, 0x0800, CRC(2f7f1c30) SHA1(83c330eca20dfcc6a4099001943b9ed7a7c3db5b) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) ) +ROM_END + +ROM_START( amidargr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "amidarg.2c", 0x0000, 0x1000, CRC(e9822709) SHA1(ce7c76607a512b9b092a8bf83bdf6744a92a519a) ) + ROM_LOAD( "amidar.2e", 0x1000, 0x1000, CRC(e6e96826) SHA1(e9c4f8c594640424b456505e676352a98b758c03) ) + ROM_LOAD( "amidarg.2f", 0x2000, 0x1000, CRC(fd81b040) SHA1(f710cb192a50514f55b4aec859fd9c298b0b90f8) ) + ROM_LOAD( "amidar.2h", 0x3000, 0x1000, CRC(1be170bd) SHA1(c047bc393b297c0d47668a5f6f4870e3fac937ef) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "amidar.5c", 0x0000, 0x1000, CRC(c4b66ae4) SHA1(9d09dbde4019f7be3abe0815b0e06d542c01c255) ) + ROM_LOAD( "amidar.5d", 0x1000, 0x1000, CRC(806785af) SHA1(c8c85e3a6a204feccd7859b4527bd649e96134b4) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "amidar.5f", 0x0000, 0x0800, CRC(5e51e84d) SHA1(dfe84db7e2b1a45a1d484fcf37291f536bc5324c) ) + ROM_LOAD( "amidarg.5h", 0x0800, 0x0800, CRC(141f8dbe) SHA1(3a627f5dd072909177f50920271f0d8ffb8a09c0) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) ) +ROM_END + +#define rom_jumpbugx rom_jumpbug + + +ROM_START( kazzy ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "frogger.26", 0x0000, 0x1000, CRC(597696d6) SHA1(e7e021776cad00f095a1ebbef407b7c0a8f5d835) ) + ROM_LOAD( "frogger.27", 0x1000, 0x1000, CRC(b6e6fcc3) SHA1(5e8692f2b0c7f4b3642b3ee6670e1c3b20029cdc) ) + ROM_LOAD( "frsm3.7", 0x2000, 0x1000, CRC(aca22ae0) SHA1(5a99060ea2506a3ac7d61ca5876ce5cb3e493565) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) ) + ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) ) + ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "kazzy.607", 0x0000, 0x0800, CRC(86f041e6) SHA1(61dd02bb2dda15d2f47ecc878a9dd6aa3118687d) ) + ROM_LOAD( "kazzy.606", 0x0800, 0x0800, CRC(9ea43774) SHA1(d96eae151580f6ccef78049a73ec1fc5fa90aa63) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) ) +ROM_END + +ROM_START( trukker ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "frogger.ic5", 0x0000, 0x1000, CRC(efab0c79) SHA1(68c99b6cdcb9396bb473739a62ffc009b4bf57d5) ) + ROM_LOAD( "frogger.ic6", 0x1000, 0x1000, CRC(aeca9c13) SHA1(cdf560adbd7f2813e86e378da7781cccf7928a44) ) + ROM_LOAD( "frogger.ic7", 0x2000, 0x1000, CRC(dd251066) SHA1(4612e1fe1ab7182a277140b1a1976cc17e0746a5) ) + ROM_LOAD( "frogger.ic8", 0x3000, 0x1000, CRC(bf293a02) SHA1(be94e9f5caa74c3de6fd95bd20928f4a9c514227) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) ) + ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) ) + ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "trukker.606", 0x0000, 0x0800, CRC(f0c49466) SHA1(f88d02ada32a9f1e10004785d17659279fd1d651) ) + ROM_LOAD( "trukker.607", 0x0800, 0x0800, CRC(6ab5c2eb) SHA1(d13fcd5669bd0f8f76505684ba5e788b395aeef1) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) ) +ROM_END + +ROM_START( tst_frog ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "frogtest.bin", 0x0000, 0x0226, CRC(1f5a7f35) SHA1(608ad6ac8c34aea66b13aac7e45c298a2083d642) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) ) + ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) ) + ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) ) + ROM_LOAD( "frogger.606", 0x0800, 0x0800, CRC(f524ee30) SHA1(dd768967add61467baa08d5929001f157d6cd911) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) ) +ROM_END + +/* Wriggly Beasties - bootleg of WarOfBug */ +ROM_START( wbeast ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "wbeast.7f", 0x0000, 0x1000, CRC(967e92ee) SHA1(319953fda4bedd447e95f93cd800fc036ce6a8e4) ) + ROM_LOAD( "wbeast.7j", 0x1000, 0x1000, CRC(72c70fff) SHA1(e0e2cfafdce4d027f89a32542cdc2d724da9f6b0) ) + ROM_LOAD( "wbeast.7l", 0x2000, 0x1000, CRC(2486d3a6) SHA1(93ac6178303bf65175b8b0b889c1dae11da46d0e) ) + + /* These 2 roms are overdumped */ + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "wbeast.1h", 0x0000, 0x1000, CRC(623bb742) SHA1(081cc0cc2f3133338495e61a8e904448521c6c9a) ) + ROM_LOAD( "wbeast.1k", 0x1000, 0x1000, CRC(c1b1143f) SHA1(72436840ff72f7f6341b11c43e25107ecb3ebb73) ) + + /* No prom supplied - using the one from warofbug */ + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "warofbug.clr", 0x0000, 0x0020, CRC(8688e64b) SHA1(ed13414257f580b98b50c9892a14159c55e7838d) ) +ROM_END + +/* This is sort of playable - no sound, wrong colours. Reboots after defeating the boss. */ +ROM_START( monstrz ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "b-1e.a1", 0x0000, 0x1000, CRC(97886542) SHA1(01f4f9bd55f9eae28162cbb22a26f7cda22cd3f3) ) + ROM_LOAD( "b-2e.c1", 0x1000, 0x1000, CRC(184ffcb4) SHA1(829d6ca13773aba7c3a81e122171befbe3666110) ) + ROM_LOAD( "b-3e.d1", 0x2000, 0x1000, CRC(b7b10ac7) SHA1(51d544d4db456df756a95d7f1853fffed9259647) ) + ROM_LOAD( "b-4e.e1", 0x3000, 0x1000, CRC(fb02c736) SHA1(24466116dd07b856b1afff62b8312c67ff466b95) ) + ROM_LOAD( "b-5e.g1", 0xc000, 0x1000, CRC(b2788ab9) SHA1(eb1a6b41f4c7a243481bfccf2b068ce1bc292366) ) + ROM_LOAD( "b-6e.h1", 0xd000, 0x1000, CRC(77d7aa8d) SHA1(62aaf582ba55f7b21f6cf13b4fb6c2c54bb729f5) ) + // protection + ROM_FILL(0xc5d8,1,0) + ROM_FILL(0xc5fc,1,0) + ROM_FILL(0xc624,1,0) + ROM_FILL(0xc63c,1,0) + // fill the protection ram with RET so we don't run into the weeds. + ROM_FILL(0x3800,0x800,0xc9) + // enable attract mode + ROM_FILL(0x3918, 1, 0xC5) + ROM_FILL(0x3919, 1, 0xE5) + ROM_FILL(0x391A, 1, 0xF5) + ROM_FILL(0x391B, 1, 0x21) + ROM_FILL(0x391C, 1, 0x10) + ROM_FILL(0x391D, 1, 0x41) + ROM_FILL(0x391E, 1, 0xAF) + ROM_FILL(0x391F, 1, 0x06) + ROM_FILL(0x3920, 1, 0x08) + ROM_FILL(0x3921, 1, 0xAE) + ROM_FILL(0x3922, 1, 0x23) + ROM_FILL(0x3923, 1, 0x10) + ROM_FILL(0x3924, 1, 0xFC) + ROM_FILL(0x3925, 1, 0xFE) + ROM_FILL(0x3926, 1, 0x40) + ROM_FILL(0x3927, 1, 0x20) + ROM_FILL(0x3928, 1, 0x03) + ROM_FILL(0x3929, 1, 0x32) + ROM_FILL(0x392A, 1, 0x12) + ROM_FILL(0x392B, 1, 0x41) + ROM_FILL(0x392C, 1, 0xF1) + ROM_FILL(0x392D, 1, 0xE1) + ROM_FILL(0x392E, 1, 0xC1) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "a-1e.k1", 0x0000, 0x1000, CRC(b88ba44e) SHA1(85c141fb411d541b1e20412f5fefd18395f635ae) ) + ROM_LOAD( "a-2.k2", 0x1000, 0x1000, CRC(8913c94e) SHA1(6c4fe065217a234d45761f8ad4d2c4e7078a0abd) ) + ROM_LOAD( "a-3e.k3", 0x2000, 0x1000, CRC(a8fa5095) SHA1(5cabe5497a79a0c43e78a84ae87c824af60a2a3f) ) + ROM_LOAD( "a-4.k4", 0x3000, 0x1000, CRC(93f81317) SHA1(167708be94cb9a47290067a20bc5ff6f018b93b6) ) + + ROM_REGION( 0x10000, "audio2", 0 ) + ROM_LOAD( "a-5e.k5", 0x0000, 0x1000, CRC(b5bcdb4e) SHA1(db0965e5636e0f4e9cd4f4a7d808c413ecf733db) ) + ROM_LOAD( "a-6.k6", 0x1000, 0x1000, CRC(24832b2e) SHA1(2a67888e86ce1a3182303e841513ba2a07977359) ) + ROM_LOAD( "a-7e.k7", 0x2000, 0x1000, CRC(20ebea81) SHA1(473c688365b256d8593663ff95768f4a5bb1289d) ) + // 0x3000 empty ? + ROM_LOAD( "a-8.k8", 0x4000, 0x1000, CRC(b833a15b) SHA1(0d21aaa0ca5ccba89118b205a6b3b36b15663c47) ) + ROM_LOAD( "a-9.k9", 0x5000, 0x1000, CRC(cbd76ec2) SHA1(9434350ee93ca71efe78018b69913386353306ff) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "b-7e.a5", 0x0000, 0x1000, CRC(ddd4158d) SHA1(9701e2d8a0226455dfbed650e58bb4be05918fe8) ) + ROM_LOAD( "b-8e.c5", 0x1000, 0x1000, CRC(b1331b4c) SHA1(fa1af406ecd6919b4846aea68d3edb70106f9273) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "prom.g9", 0x0000, 0x0020, CRC(b7ea00d7) SHA1(f658c6ac8123ae1e6b68ae513cc02c4d9d2b4e47) ) +ROM_END + + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + + +// Year romname parent machine inputs init rot + +/* Frogger */ +GAME( 1981, kazzy, frogger, frogger, frogger, galaxian_state, frogger, ROT90, "Kazzy", "K-azzy", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, trukker, frogger, frogger, frogger, galaxian_state, trukker, ROT90, "Grimlick","Trukker", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, tst_frog, frogger, tst_frog, frogger, galaxian_state, frogger, ROT90, "msmcdoug", "Test Rom - Frogger Sound Test", MACHINE_SUPPORTS_SAVE ) + + +/* Amidar */ +GAME( 2007, amidarf, amidar, turtles, amidar, galaxian_state, turtles, ROT90, "Arkatrad", "Amidar (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, amidargr, amidar, turtles, amidar, galaxian_state, turtles, ROT90, "GreekRoms", "Amidar (Greek)", MACHINE_SUPPORTS_SAVE ) + + +/* Scramble */ +GAME( 1998, offender, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Chris Henry", "Offender", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, superdog, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Jerky", "Superdog", MACHINE_SUPPORTS_SAVE ) + + +/* Galaxian */ +GAME( 1979, andromd, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Andromeda", MACHINE_SUPPORTS_SAVE) +GAME( 1998, buglaxn, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "The Dog", "Galaxian (Bug sprites)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, galaxiab, galnamco, galaxian, galaxiab, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, galaxkyo, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Galaxian (Kyoko)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, galaxni, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "Petaco S.A.", "Galaxian (New Invasion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, galinvad, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "T-Bone", "Galaxian (Space Invaders sprites)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, galnamco, 0, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco", "Galaxians", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, gaylaxn, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "The Dog", "Gaylaxian", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mrdonm, 0, galaxian, mrdonm, galaxian_state, galaxian, ROT90, "Krazy Ivan", "Mr. Do Nightmare", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, vectrgal, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "T-Bone", "Galaxian (Vector Sim)", MACHINE_SUPPORTS_SAVE ) + + +/* Moon Cresta */ +GAME( 2000, mooncmst, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrst, ROT90, "Kazzy", "Moon Creamsta", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, mooncrs5, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon Cresta", MACHINE_SUPPORTS_SAVE ) + + +/* Multigames */ +GAME( 2002, fourplay, 0, fourplay, galaxian, galaxian_state, fourplay, ROT90, "Macro", "Four Play", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, videight, 0, videight, warofbug, galaxian_state, videight, ROT90, "Macro", "Video Eight", MACHINE_SUPPORTS_SAVE ) + + +/* Other */ +GAME( 1981, jumpbugx, 0, jumpbugx, jumpbug, galaxian_state, jumpbug, ROT90, "Rock-ola", "Jump Bug (Extra Sounds)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, monstrz, 0, sfx, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nihon Game Co", "Monster Zero", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 19??, starfgh2, pisces, galaxian, piscesb, galaxian_state, pisces, ROT90, "bootleg", "Starfighter II", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, wbeast, 0, galaxian, warofbug, galaxian_state, nolock, ROT90, "Compost", "Wriggly Beasties", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/gauntlet.cpp b/docs/release/src/hbmame/drivers/gauntlet.cpp new file mode 100644 index 00000000000..477f38ef311 --- /dev/null +++ b/docs/release/src/hbmame/drivers/gauntlet.cpp @@ -0,0 +1,139 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/gauntlet.cpp" + + +// There's some unknown hacks here. Need info on who the author is, and what the difference is. + + +ROM_START( gaunt2s ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) ) + ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) ) + ROM_LOAD16_BYTE( "136043-1105.10a", 0x038000, 0x004000, CRC(45dfda47) SHA1(a9a03150f5a0ad6ce62c5cfdffb4a9f54340590c) ) + ROM_LOAD16_BYTE( "136043-1106.10b", 0x038001, 0x004000, CRC(343c029c) SHA1(d2df4e5b036500dcc537a1e0025abb2a8c730bdd) ) + ROM_LOAD16_BYTE( "gaunt2s-1109.7a", 0x040000, 0x008000, CRC(32c909b4) SHA1(53c62d7a6660ccff4302ae9b8edcbe2949013e5e) ) + ROM_LOAD16_BYTE( "gaunt2s-1110.7b", 0x040001, 0x008000, CRC(a1a2ac12) SHA1(bd939cf97f8c4d52bedc475ee1ce00c226aee234) ) + ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) ) + ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) ) + ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) ) + + ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT ) + ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) ) + ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) ) + ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) ) + ROM_RELOAD( 0x014000, 0x004000 ) + ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) ) + ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) ) + ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) ) + ROM_RELOAD( 0x02c000, 0x004000 ) + ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) ) + ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) ) + ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) ) + ROM_RELOAD( 0x044000, 0x004000 ) + ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) ) + ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) ) + ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) ) + ROM_RELOAD( 0x05c000, 0x004000 ) + + ROM_REGION( 0x500, "proms", 0 ) + ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ + ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ + ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */ +ROM_END + +ROM_START( gaunt2ls ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) ) + ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) ) + ROM_LOAD16_BYTE( "136043-1105ls.10a", 0x038000, 0x004000, CRC(5426ab98) SHA1(7894b0ca989428819a9ed3e9a218eb466c167ecf) ) + ROM_LOAD16_BYTE( "136043-1106ls.10b", 0x038001, 0x004000, CRC(b53cd674) SHA1(9dfd2b2e384c2e4d2640852a05c07765cc2f246a) ) + ROM_LOAD16_BYTE( "136043-1109.7a", 0x040000, 0x008000, CRC(58a0a9a3) SHA1(7f51184840e3c96574836b8a00bfb4a7a5f508d0) ) + ROM_LOAD16_BYTE( "136043-1110.7b", 0x040001, 0x008000, CRC(658f0da8) SHA1(dfce027ea50188659907be698aeb26f9d8bfab23) ) + ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) ) + ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) ) + ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) ) + + ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT ) + ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) ) + ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) ) + ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) ) + ROM_RELOAD( 0x014000, 0x004000 ) + ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) ) + ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) ) + ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) ) + ROM_RELOAD( 0x02c000, 0x004000 ) + ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) ) + ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) ) + ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) ) + ROM_RELOAD( 0x044000, 0x004000 ) + ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) ) + ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) ) + ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) ) + ROM_RELOAD( 0x05c000, 0x004000 ) + + ROM_REGION( 0x500, "proms", 0 ) + ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ + ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ + ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */ +ROM_END + +ROM_START( gaunt2f ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) ) + ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) ) + ROM_LOAD16_BYTE( "136043-1105.10a", 0x038000, 0x004000, CRC(45dfda47) SHA1(a9a03150f5a0ad6ce62c5cfdffb4a9f54340590c) ) + ROM_LOAD16_BYTE( "136043-1106.10b", 0x038001, 0x004000, CRC(343c029c) SHA1(d2df4e5b036500dcc537a1e0025abb2a8c730bdd) ) + ROM_LOAD16_BYTE( "136043-1109.7a", 0x040000, 0x008000, CRC(58a0a9a3) SHA1(7f51184840e3c96574836b8a00bfb4a7a5f508d0) ) + ROM_LOAD16_BYTE( "136043-1110.7b", 0x040001, 0x008000, CRC(658f0da8) SHA1(dfce027ea50188659907be698aeb26f9d8bfab23) ) + ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) ) + ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) ) + ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "gaunt2f.6p", 0x000000, 0x004000, CRC(d101905d) SHA1(6f50a84f4d263a7a459b642fa49a619e877535b6) ) + + ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT ) + ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) ) + ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) ) + ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) ) + ROM_RELOAD( 0x014000, 0x004000 ) + ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) ) + ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) ) + ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) ) + ROM_RELOAD( 0x02c000, 0x004000 ) + ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) ) + ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) ) + ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) ) + ROM_RELOAD( 0x044000, 0x004000 ) + ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) ) + ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) ) + ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) ) + ROM_RELOAD( 0x05c000, 0x004000 ) + + ROM_REGION( 0x500, "proms", 0 ) + ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ + ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ + ROM_LOAD( "gaunt2f.4r", 0x400, 0x100, CRC(32ae1fa9) SHA1(09eb56a0798456d73015909973ce2ba9660c1164) ) /* MO position/size */ +ROM_END + + + +GAME( 1987, gaunt2s, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Todd Bordelon", "Gauntlet II Speed Hack", MACHINE_SUPPORTS_SAVE ) // http://www.ionpool.net/arcade/gauntlet/hacks.html +GAME( 1988, gaunt2ls, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Orange Elf", "Gauntlet II New Levels", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gaunt2f, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "hack", "Gauntlet II (graphics hack)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/gottlieb.cpp b/docs/release/src/hbmame/drivers/gottlieb.cpp new file mode 100644 index 00000000000..bdc19e66bed --- /dev/null +++ b/docs/release/src/hbmame/drivers/gottlieb.cpp @@ -0,0 +1,99 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/gottlieb.cpp" + +ROM_START( 711qbert ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "mqb-rom2.bin", 0xa000, 0x2000, CRC(6860f957) SHA1(ebd68aeb6d54868295bd20cf64ee0187a52df0e3) ) + ROM_LOAD( "mqb-rom1.bin", 0xc000, 0x2000, CRC(11f0a4e4) SHA1(a805e51c40042fae209ace277abd9b35a990905b) ) + ROM_LOAD( "mqb-rom0.bin", 0xe000, 0x2000, CRC(12a90cb2) SHA1(a33203aea79fe43d1233a16e3fdddaceac6e4a20) ) + + ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */ + ROM_LOAD( "mqb-snd1.bin", 0xf000, 0x0800, CRC(e704b450) SHA1(d509f54658e9f0264b9ab865a6f36e5423a28904) ) + ROM_RELOAD( 0x7000, 0x0800 ) /* A15 is not decoded */ + ROM_LOAD( "mqb-snd2.bin", 0xf800, 0x0800, CRC(c6a98bf8) SHA1(cc5b5bb5966f5d79226f1f665a3f9fc934f4ef7f) ) + ROM_RELOAD( 0x7800, 0x0800 ) /* A15 is not decoded */ + + ROM_REGION( 0x2000, "bgtiles", 0 ) + ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */ + ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) ) + + ROM_REGION( 0x8000, "sprites", 0 ) + ROM_LOAD( "mqb-fg3.bin", 0x0000, 0x2000, CRC(ee595eda) SHA1(11777d95ba79bd0ec7b964b76c1dc129db857816) ) /* sprites */ + ROM_LOAD( "mqb-fg2.bin", 0x2000, 0x2000, CRC(59884c78) SHA1(5e77ef46ccd55f79a5fa90521baa7c22e3783fe5) ) + ROM_LOAD( "mqb-fg1.bin", 0x4000, 0x2000, CRC(2a60e3ad) SHA1(9ed83017f6c8e44337ad76c68b095f2c3300aadb) ) + ROM_LOAD( "mqb-fg0.bin", 0x6000, 0x2000, CRC(b11ad9d8) SHA1(5264598f33aa76455ae4107d0f265c2a372ed67a) ) +ROM_END + +ROM_START( pbert ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) ) + ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) ) + ROM_LOAD( "qb-rom0.bin", 0xe000, 0x2000, CRC(8e318641) SHA1(7f8f66d1e6a7905e93cce07fc92e8801370b7194) ) + + ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */ + ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) ) + ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */ + ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) ) + ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */ + + ROM_REGION( 0x2000, "bgtiles", 0 ) + ROM_LOAD( "pb-bg0.bin", 0x0000, 0x1000, CRC(14e193e9) SHA1(5d67b3da848d4a90a4f9bf7f6145ce1aa33188f7) ) /* chars */ + ROM_LOAD( "pb-bg1.bin", 0x1000, 0x1000, CRC(a91180f9) SHA1(c8a3ceae19afe9a0ad1e05bed99585e6bacbc09b) ) + + ROM_REGION( 0x8000, "sprites", 0 ) + ROM_LOAD( "pb-fg3.bin", 0x0000, 0x2000, CRC(26def34c) SHA1(b36dd87e4c36d201aaec0c283e5f3d1ad4056d5d) ) /* sprites */ + ROM_LOAD( "pb-fg2.bin", 0x2000, 0x2000, CRC(cf3309ca) SHA1(5be9a28b3681990729f0582f9d2c3dd0314bdd15) ) + ROM_LOAD( "pb-fg1.bin", 0x4000, 0x2000, CRC(a5f3a203) SHA1(4d7d45e5ba87acd8c44421f2c7fb2129a1866f03) ) + ROM_LOAD( "pb-fg0.bin", 0x6000, 0x2000, CRC(495d90e9) SHA1(d4d28c30901eb09da8933c03b2178152f0fc7b84) ) +ROM_END + +// E444 +ROM_START( qbertb ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) ) + ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) ) + ROM_LOAD( "qbertb.rom0", 0xe000, 0x2000, CRC(415b4fc7) SHA1(e55fb1912260435be253597fd337e04219b7a034) ) + + ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */ + ROM_LOAD( "qbertb.snd", 0xf000, 0x1000, CRC(ebcedba9) SHA1(94aee8e32bdc80bbc5dc1423ca97597bdb9d808c) ) + ROM_RELOAD( 0x7000, 0x1000 ) /* A15 is not decoded */ + + ROM_REGION( 0x2000, "bgtiles", 0 ) + ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */ + ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) ) + + ROM_REGION( 0x8000, "sprites", 0 ) + ROM_LOAD( "qbertb.fg3", 0x1000, 0x1000, CRC(983e3e05) SHA1(14f21543c3301b15d179b3864676e76ad5dfcaf8) ) /* sprites */ + ROM_LOAD( "qbertb.fg2", 0x3000, 0x1000, CRC(b3e6c7bc) SHA1(38e34e8712c5f677fa3fada68bc4c318e9bf7ca6) ) + ROM_LOAD( "qbertb.fg1", 0x5000, 0x1000, CRC(6733d069) SHA1(3b4ac832f2475d51ae7586d3eb80e355afb64222) ) + ROM_LOAD( "qbertb.fg0", 0x7000, 0x1000, CRC(3081c200) SHA1(137d95a2a58e2ed4da7145a539d1a1942c80674c) ) +ROM_END + +ROM_START( vbert ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) ) + ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) ) + ROM_LOAD( "qb-rom0.bin", 0xe000, 0x2000, CRC(8e318641) SHA1(7f8f66d1e6a7905e93cce07fc92e8801370b7194) ) + + ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */ + ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) ) + ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */ + ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) ) + ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */ + + ROM_REGION( 0x2000, "bgtiles", 0 ) + ROM_LOAD( "vb-bg0.bin", 0x0000, 0x1000, CRC(8963b939) SHA1(1416f56938163b4cdc212758eb2c3f6b773c7e32) ) /* chars */ + ROM_LOAD( "vb-bg1.bin", 0x1000, 0x1000, CRC(96033c96) SHA1(0a5780377bfd3baeeb2d899aa230e503539f7c92) ) + + ROM_REGION( 0x8000, "sprites", 0 ) + ROM_LOAD( "vb-fg3.bin", 0x0000, 0x2000, CRC(8cb4bdb4) SHA1(7b9b626b93daa4d2639a1e87ace61b1d254af96c) ) /* sprites */ + ROM_LOAD( "vb-fg2.bin", 0x2000, 0x2000, CRC(79883cc3) SHA1(01cfca389021747e2d750fc8bb251abb2d5fe7a8) ) + ROM_LOAD( "vb-fg1.bin", 0x4000, 0x2000, CRC(b0fe9bd5) SHA1(be2990904efff19adbe18eb674727214ffae9ad3) ) + ROM_LOAD( "vb-fg0.bin", 0x6000, 0x2000, CRC(4c3db270) SHA1(212f1c353511fb4166a7ad0135dd295a2a16af8d) ) +ROM_END + +GAME( 1982, 711qbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Hack", "7-11 Q*bert", 0 ) +GAME( 2003, pbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Grand Master Peter", "P*bert", 0 ) +GAME( 1982, qbertb, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "bootleg", "Q*bert", 0 ) +GAME( 2003, vbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Grand Master Peter", "V*bert", 0 ) diff --git a/docs/release/src/hbmame/drivers/ir.cpp b/docs/release/src/hbmame/drivers/ir.cpp new file mode 100644 index 00000000000..e1e91fc988b --- /dev/null +++ b/docs/release/src/hbmame/drivers/ir.cpp @@ -0,0 +1,546 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/**************************************************************************************** + + Invader's Revenge + + October, 2008 by Robbbert + + No diagram available, so I threw this together + + + Invader's Revenge was made by the English company, Zenitone-Microsec Ltd. + Distributed in Germany by Dutchford. + Also distributed in America by Americade Amusement, Inc., of New Jersey. + + It's basically a hardware hack of the normal Taito Space Invaders machine. + + Changes (start with a Space Invaders with a colour CRT): + + 1. The sound board is replaced with another that makes different sounds. + + 2. A sardine-can-shaped potted black epoxy block containing a 4mhz crystal, + two large 40-pin ICs, at least 2 roms, and a number of TTL-shaped chips. + My assumption is that one of the big chips is a (slave sound) CPU. + + 3. New main roms + + 4. A small card contains a colour PROM. There's no RAM for this, so the colours + must be quite simplistic. + + The main CPU communicates to the slave by sending sound codes via port 3, + while port 5 controls various aspects of the screen display. + + The method of enabling cocktail mode is the same as for Space Invaders, that is, + changing the positions of SW5,6,7; cutting a track; and adding some jumpers. + Obviously this is a once-off change for the table model. + + Known bugs in the original roms: + + 1. If you turn on the machine, start a 1-player game and just let it run to the + end, it will congratulate player 2 for getting a high score. Of course, zero + points is not a high score, and there wasn't a player 2. + + 2. If you die just after killing the last enemy in the 8th level, the docking + stage uses the wrong colour map. I've added a fix for this. + + + Notes about colour proms: + + 1. The proms from sets 'invrvnga' and 'invrvng3' are the correct ones. The prom + from 'invrvng3' is used for the other sets, as their proms haven't shown up + yet. + + 2. Real name for 'invrvnga' prom is '3r.bin' ; for 'invrvng3' is 'ir.clr'. + + Todo: + + 1. Identify the slave CPU and make it work. + 2. Get schematic diagrams, and design a discrete sound board. + + Changes: + + 1. Added above documentation (MAME doesn't have any) + 2. Identified all sound codes. (We only need good samples now) + +*******************************************************************************************/ + +#include "emu.h" +#include "cpu/i8085/i8085.h" +#include "machine/mb14241.h" +#include "sound/samples.h" + +#define MW8080BW_MASTER_CLOCK (19968000.0) +#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10) +#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4) +#define MW8080BW_HTOTAL (0x140) +#define MW8080BW_HBEND (0x000) +#define MW8080BW_HBSTART (0x100) +#define MW8080BW_VTOTAL (0x106) +#define MW8080BW_VBEND (0x000) +#define MW8080BW_VBSTART (0x0e0) +#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020) +#define MW8080BW_VCOUNTER_START_VBLANK (0x0da) +#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080) +#define MW8080BW_INT_TRIGGER_VBLANK_1 (0) +#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK +#define MW8080BW_INT_TRIGGER_VBLANK_2 (1) +#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART + +class ir_state : public driver_device +{ +public: + ir_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this,"maincpu") + , m_p_ram(*this, "ram") + , m_samples(*this, "samples") + , m_screen(*this, "screen") + { } + + DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r); + DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r); + DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w); + DECLARE_READ8_MEMBER(invrvnge_02_r); + DECLARE_WRITE8_MEMBER(invrvnge_03_w); + DECLARE_WRITE8_MEMBER(invrvnge_05_w); + DECLARE_MACHINE_START(ir); + DECLARE_MACHINE_RESET(ir); + TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback); + UINT32 screen_update_ir(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + +private: + + bool m_flip_screen; + bool m_screen_red; + emu_timer *m_interrupt_timer; + UINT8 vpos_to_vysnc_chain_counter( int vpos ); + int vysnc_chain_counter_to_vpos( UINT8 counter, int vblank ); + void mw8080bw_create_interrupt_timer( ); + void mw8080bw_start_interrupt_timer( ); + + /* device/memory pointers */ + required_device<cpu_device> m_maincpu; + required_shared_ptr<UINT8> m_p_ram; + required_device<samples_device> m_samples; + required_device<screen_device> m_screen; +}; + + +READ8_MEMBER(ir_state::invrvnge_02_r) +{ + UINT8 data = ioport("IN2")->read(); + if (m_flip_screen) return data; + return (data & 0x8f) | (ioport("IN1")->read() & 0x70); +} + +static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ir_state ) + ADDRESS_MAP_GLOBAL_MASK(0x7fff) + AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP + AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_SHARE("ram") + AM_RANGE(0x4000, 0x5fff) AM_ROM AM_WRITENOP +ADDRESS_MAP_END + +static ADDRESS_MAP_START( invrvnge_io_map, AS_IO, 8, ir_state ) + AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") + AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") + AM_RANGE(0x02, 0x02) AM_READ(invrvnge_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w) + AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invrvnge_03_w) + AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w) + AM_RANGE(0x05, 0x05) AM_WRITE(invrvnge_05_w) + //AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) +ADDRESS_MAP_END + +//static ADDRESS_MAP_START( invrvnge_sound_map, AS_PROGRAM, 8, ir_state ) +// ADDRESS_MAP_UNMAP_HIGH +// AM_RANGE(0x0000, 0xffff) AM_ROM // dummy prg map, TODO: decrypt ROM +//ADDRESS_MAP_END + + +static INPUT_PORTS_START( ir ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_DIPNAME( 0x06, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6") + PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) // [code: 0x3b1-3b5] + PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Harder ) ) + PORT_DIPSETTING( 0x06, DEF_STR( Hardest ) ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // must be low or game won't boot [code: 0x1a9-1af] + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_DIPNAME( 0x80, 0x80, "Fuel Destroyed by Comet" ) PORT_DIPLOCATION("SW1:7") + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x80, "6" ) + //PORT_DIPNAME( 0x80, 0x00, "Fuel Usage" ) // [code: 0x1cb0-1cb6] + //PORT_DIPSETTING( 0x80, "Fast" ) + //PORT_DIPSETTING( 0x00, "Slow" ) + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) // [code: 0x750-75B] causes this switch to be ineffective + + PORT_START("IN2") + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x01, "4" ) + PORT_DIPSETTING( 0x02, "5" ) + PORT_DIPSETTING( 0x03, "6" ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4") + PORT_DIPSETTING( 0x00, "1500" ) // [code: 0x3b9-3c9] + PORT_DIPSETTING( 0x08, "2000" ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8") + PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) // 1 play 10p, 2 play 20p, 6 play 50p + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) // 1 play 20p, 2 play 40p, 3 play 50p + + PORT_START("CAB") + PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) + PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) + PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) +INPUT_PORTS_END + +UINT8 ir_state::vpos_to_vysnc_chain_counter( int vpos ) +{ + /* convert from a vertical position to the actual values on the vertical sync counters */ + UINT8 counter; + int vblank = (vpos >= MW8080BW_VBSTART); + + if (vblank) + counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK; + else + counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK; + + return counter; +} + + +int ir_state::vysnc_chain_counter_to_vpos( UINT8 counter, int vblank ) +{ + /* convert from the vertical sync counters to an actual vertical position */ + int vpos; + + if (vblank) + vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART; + else + vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK; + + return vpos; +} + + +TIMER_CALLBACK_MEMBER(ir_state::mw8080bw_interrupt_callback) +{ + UINT8 next_counter; + int next_vpos; + int next_vblank; + + /* compute vector and set the interrupt line */ + int vpos = m_screen->vpos(); + UINT8 counter = vpos_to_vysnc_chain_counter(vpos); + UINT8 vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3); + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector); + + /* set up for next interrupt */ + if (counter == MW8080BW_INT_TRIGGER_COUNT_1) + { + next_counter = MW8080BW_INT_TRIGGER_COUNT_2; + next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2; + } + else + { + next_counter = MW8080BW_INT_TRIGGER_COUNT_1; + next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1; + } + + next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos)); +} + + +void ir_state::mw8080bw_create_interrupt_timer( ) +{ + m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ir_state::mw8080bw_interrupt_callback),this)); +} + + +void ir_state::mw8080bw_start_interrupt_timer( ) +{ + int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1); + m_interrupt_timer->adjust(m_screen->time_until_pos(vpos)); +} + + + +/************************************* + * + * Machine setup + * + *************************************/ + +MACHINE_START_MEMBER( ir_state, ir ) +{ + mw8080bw_create_interrupt_timer(); +} + + +/************************************* + * + * Machine reset + * + *************************************/ + +MACHINE_RESET_MEMBER( ir_state, ir ) +{ + mw8080bw_start_interrupt_timer(); +} + +static const char *const ir_sample_names[] = +{ + "*invrvnge", + "02", /* insert coin */ + "06", /* you shoot */ + "14", /* hit alien */ + "16", /* hit asteroid */ + "18", /* low fuel */ + "1a", /* successful docking */ + "1e", /* die */ + "22", /* start game */ + "24", /* alien diving */ + "26", /* alien steals fuel */ + "28", /* background sound 1 */ + "2a", /* background sound 2 */ + "2c", /* background sound 3 */ + "2e", /* background sound 4 */ + "30", /* build up fuel */ + "32", /* ufo fires */ + "34", /* high score */ + "36", /* docking stage */ + "38", /* bonus ship */ + "3a", /* thrust */ + 0 +}; + + +/*************************************************************************************/ +/* Notes: */ +/* Init sequence: 0x01 (20 times), 0x40 (20 times), 0x4c, 0x40, 0x44, 0x40 (9 times).*/ +/* Player 1 start sequence: 0x0c, 0x20, 0x22. */ +/* Unknown codes: 0x0A, 0x0c */ +/*************************************************************************************/ +WRITE8_MEMBER(ir_state::invrvnge_03_w) +{ + switch (data) + { + case 0x02: /* Coin */ + machine().sound().system_enable(1); /* enable sound so we can hear coin drop */ + m_samples->start(0, 0); + break; + + case 0x04: /* Attract Mode */ + machine().sound().system_enable(0); /* disable sound */ + break; + + case 0x06: + m_samples->start(1, 1); /* Shoot */ + break; + + case 0x14: + m_samples->start(2, 2); /* Hit Alien (0x0a happens at the same time) */ + break; + + case 0x16: + m_samples->start(2, 3); /* Hit Asteroid */ + break; + + case 0x18: /* Fuel Low */ + m_samples->start(5, 4); + break; + + case 0x1a: /* Successful docking */ + m_samples->start(0, 5); + break; + + case 0x1c: /* Finished fuelling */ + m_samples->stop(0); + break; + + case 0x1e: + m_samples->start(0, 6); /* Death */ + break; + + case 0x20: + machine().sound().system_enable(1); /* enable sound for game start */ + case 0x22: + m_samples->start(0, 7); /* Start Game */ + break; + + case 0x24: /* Alien dropping to steal fuel */ + m_samples->start(3, 8); + break; + + case 0x26: /* Alien lifting with fuel */ + m_samples->start(4, 9); + break; + + case 0x28: /* background sound level 1 */ + case 0x2a: /* background sound level 2 */ + case 0x2c: /* background sound level 3 */ + case 0x2e: /* background sound level 4 */ + m_samples->start(0, data/2-10, 1); + break; + + case 0x30: /* Fuel bar filling up */ + m_samples->start(0, 14); + break; + + case 0x32: /* UFO drops a bomb */ + m_samples->start(6, 15); + break; + + case 0x34: /* You got the highest score */ + m_samples->start(0, 16); + break; + + case 0x36: /* Docking stage */ + m_screen_red = 0; /* fix bug (2) in documentation */ + m_samples->start(0, 17); + break; + + case 0x38: /* Bonus ship */ + m_samples->start(8, 18); + break; + + case 0x3a: /* Thrust */ + m_samples->start(7, 19); + break; + + case 0x4c: + m_samples->stop(0); // using this to stop sound if game tilted + case 0x01: /* These 3 play at boot time */ + case 0x40: /* no idea if they are actual sounds */ + case 0x44: + + case 0x0a: /* with 0x14 */ + case 0x0c: /* used a lot but for what? */ + break; + + default: + if (data) printf("Undefined sound code: %X\n",data); + } +} + +WRITE8_MEMBER(ir_state::invrvnge_05_w) +{ +/* + 00 - normal play + 0A, 0E - alternate during play/attract at about once per second (invrvngegw only) purpose unknown + 01 - briefly at boot time + 10 - different colour map (or screen red) when you die + 20 - flip screen */ + + m_screen_red = BIT(data, 4); + m_flip_screen = BIT(data, 5) & ioport("CAB")->read(); +} + +UINT32 ir_state::screen_update_ir(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + pen_t pens[8]; + offs_t offs, color_address; + UINT8 *prom; + UINT8 *color_map_base; + UINT8 i, x, y, data, fore_color, color; + + for (i = 0; i < 8; i++) + pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)); + + prom = memregion("proms")->base(); + color_map_base = &prom[0x0000]; + + for (offs = 0; offs < m_p_ram.bytes(); offs++) + { + y = offs >> 5; + x = offs << 3; + + color_address = (offs >> 8 << 5) | (offs & 0x1f); + + data = m_p_ram[offs]; + fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07; + + for (i = 0; i < 8; i++) + { + color = BIT(data, i) ? fore_color : 0; + + if (y >= MW8080BW_VCOUNTER_START_NO_VBLANK) + { + if (m_flip_screen) + bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pens[color]; + else + bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pens[color]; + } + + x++; + } + } + + return 0; +} + +static MACHINE_CONFIG_START( ir, ir_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK) + MCFG_CPU_PROGRAM_MAP(main_map) + MCFG_CPU_IO_MAP(invrvnge_io_map) + MCFG_MACHINE_START_OVERRIDE(ir_state, ir) + MCFG_MACHINE_RESET_OVERRIDE(ir_state, ir) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART) + MCFG_SCREEN_UPDATE_DRIVER(ir_state, screen_update_ir) + + //MCFG_CPU_ADD("audiocpu", M6808, XTAL_4MHz/2) // MC6808P + //MCFG_CPU_PROGRAM_MAP(invrvnge_sound_map) + + /* add shifter */ + MCFG_MB14241_ADD("mb14241") + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + //MCFG_SOUND_ADD("ay1", AY8910, XTAL_4MHz/2) + //MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) + + MCFG_SOUND_ADD("samples", SAMPLES, 0) + MCFG_SAMPLES_CHANNELS(9) + MCFG_SAMPLES_NAMES(ir_sample_names) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) +MACHINE_CONFIG_END + +ROM_START( invrvnge ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "h.ic36", 0x0000, 0x0800, CRC(0e229b9f) SHA1(617197bf94e9700cbbb2f32487dc47b318d4f2af) ) + ROM_LOAD( "g.ic35", 0x0800, 0x0800, CRC(26b38aa4) SHA1(f281c7ec47ce6ab61bfda2e7aa6a5b8a01f2c11e) ) + ROM_LOAD( "f.ic34", 0x1000, 0x0800, CRC(b3b2749e) SHA1(4f854f981396e2d6a959dd48cff12234074fb69b) ) + ROM_LOAD( "e.ic33", 0x1800, 0x0800, CRC(d8e75102) SHA1(86d5618944265947e3ce60fdf048d8fff4a55744) ) + + // not used + //ROM_REGION( 0x10000, "audiocpu", 0 ) // encrypted + //ROM_LOAD( "snd.2c", 0xf000, 0x0800, CRC(135f3b16) SHA1(d472a6ca32c4a16cc1faf09f4a4876d75cd4ba24) ) + //ROM_LOAD( "snd.1c", 0xf800, 0x0800, CRC(152fc85e) SHA1(df207d6e690287a56e4e330deaa5ee40a179f1fc) ) + + ROM_REGION( 0x0800, "proms", 0 ) + ROM_LOAD( "colour.bin", 0x0000, 0x0800, CRC(7de74988) SHA1(0b8c94b2bfdbc3921d60aad765df8af611f3fdd7) ) +ROM_END + +GAME( 1980?,invrvnge, 0, ir, ir, driver_device, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (Extra Sounds)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/itech8.cpp b/docs/release/src/hbmame/drivers/itech8.cpp new file mode 100644 index 00000000000..ef29ae3ad5b --- /dev/null +++ b/docs/release/src/hbmame/drivers/itech8.cpp @@ -0,0 +1,22 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/itech8.cpp" + +ROM_START( itecdemo ) + ROM_REGION( 0x1c000, "maincpu", 0 ) + ROM_LOAD( "u5d.bin", 0x04000, 0x4000, CRC(749a1336) SHA1(f3f1220fbb9b61214e7b4e675a6ab5bbe9db50af) ) + ROM_CONTINUE( 0x10000, 0xc000 ) + ROM_COPY( "maincpu", 0x14000, 0x8000, 0x8000 ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "u27d.bin", 0x08000, 0x8000, CRC(f0cd7332) SHA1(770b5d9b531495df0ff6350942cbd5147a875e9b) ) + + ROM_REGION( 0xc0000, "grom", 0 ) + ROM_LOAD( "grom0d.bin", 0x00000, 0x20000, CRC(e4f9fe36) SHA1(ad8cb4eb1d5d685bb22ca6fee5f1efcd682f8b38) ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD_OPTIONAL( "srom0d.bin", 0x00000, 0x20000, CRC(7ee8cdcd) SHA1(67dfd19f3eb3649d6f3f6631e44d0bd36b8d8d19) ) +ROM_END + + +GAME( 1989, itecdemo, 0, stratab_hi, gtg, driver_device, 0, ROT0, "Charles Doty", "Demo - Itec", 0 ) diff --git a/docs/release/src/hbmame/drivers/jrpacman.cpp b/docs/release/src/hbmame/drivers/jrpacman.cpp new file mode 100644 index 00000000000..01726954217 --- /dev/null +++ b/docs/release/src/hbmame/drivers/jrpacman.cpp @@ -0,0 +1,1212 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/*************************************************************************** + + Bally/Midway Jr. Pac-Man + + Games supported: + * Jr. Pac-Man + + Known issues: + * none + +**************************************************************************** + + Jr. Pac Man memory map (preliminary) + + 0000-3fff ROM + 4000-47ff Video RAM (also color RAM) + 4800-4fff RAM + 8000-dfff ROM + + memory mapped ports: + + read: + 5000 P1 + 5040 P2 + 5080 DSW + + * + * IN0 (all bits are inverted) + * bit 7 : CREDIT + * bit 6 : COIN 2 + * bit 5 : COIN 1 + * bit 4 : RACK TEST + * bit 3 : DOWN player 1 + * bit 2 : RIGHT player 1 + * bit 1 : LEFT player 1 + * bit 0 : UP player 1 + * + * + * IN1 (all bits are inverted) + * bit 7 : TABLE or UPRIGHT cabinet select (1 = UPRIGHT) + * bit 6 : START 2 + * bit 5 : START 1 + * bit 4 : TEST SWITCH + * bit 3 : DOWN player 2 (TABLE only) + * bit 2 : RIGHT player 2 (TABLE only) + * bit 1 : LEFT player 2 (TABLE only) + * bit 0 : UP player 2 (TABLE only) + * + * + * DSW1 (all bits are inverted) + * bit 7 : ? + * bit 6 : difficulty level + * 1 = Normal 0 = Harder + * bit 5 :\ bonus pac at xx000 pts + * bit 4 :/ 00 = 10000 01 = 15000 10 = 20000 11 = 30000 + * bit 3 :\ nr of lives + * bit 2 :/ 00 = 1 01 = 2 10 = 3 11 = 5 + * bit 1 :\ play mode + * bit 0 :/ 00 = free play 01 = 1 coin 1 credit + * 10 = 1 coin 2 credits 11 = 2 coins 1 credit + * + + write: + 4ff2-4ffd 6 pairs of two bytes: + the first byte contains the sprite image number (bits 2-7), Y flip (bit 0), + X flip (bit 1); the second byte the color + 5000 interrupt enable + 5001 sound enable + 5002 unused + 5003 flip screen + 5004 unused + 5005 unused + 5006 unused + 5007 coin counter + 5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only) + 5045 sound voice 1 waveform (nibble) + 5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only) + 504a sound voice 2 waveform (nibble) + 504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only) + 504f sound voice 3 waveform (nibble) + 5050-5054 sound voice 1 frequency (nibbles) + 5055 sound voice 1 volume (nibble) + 5056-5059 sound voice 2 frequency (nibbles) + 505a sound voice 2 volume (nibble) + 505b-505e sound voice 3 frequency (nibbles) + 505f sound voice 3 volume (nibble) + 5062-506d Sprite coordinates, x/y pairs for 6 sprites + 5070 palette bank + 5071 colortable bank + 5073 background priority over sprites + 5074 char gfx bank + 5075 sprite gfx bank + 5080 scroll + 50c0 Watchdog reset + + I/O ports: + OUT on port $0 sets the interrupt vector + +***************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "includes/pacman.h" +#include "sound/namco.h" + + +class jrpacman_state : public pacman_state +{ +public: + jrpacman_state(const machine_config &mconfig, device_type type, const char *tag) + : pacman_state(mconfig, type, tag) { } + DECLARE_WRITE8_MEMBER(jrpacman_interrupt_vector_w); + DECLARE_WRITE8_MEMBER(irq_mask_w); + DECLARE_DRIVER_INIT(jrpacman); + INTERRUPT_GEN_MEMBER(vblank_irq); +}; + + + +WRITE8_MEMBER(jrpacman_state::jrpacman_interrupt_vector_w) +{ + machine().device("maincpu")->execute().set_input_line_vector(0, data); + machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE); +} + +WRITE8_MEMBER(jrpacman_state::irq_mask_w) +{ + m_irq_mask = data & 1; +} + +/************************************* + * + * Main CPU memory handlers + * + *************************************/ + +static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jrpacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4800, 0x4fef) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x503f) AM_READ_PORT("P1") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5040, 0x507f) AM_READ_PORT("P2") + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x5070) AM_WRITE(pengo_palettebank_w) + AM_RANGE(0x5071, 0x5071) AM_WRITE(pengo_colortablebank_w) + AM_RANGE(0x5073, 0x5073) AM_WRITE(jrpacman_bgpriority_w) + AM_RANGE(0x5074, 0x5074) AM_WRITE(jrpacman_charbank_w) + AM_RANGE(0x5075, 0x5075) AM_WRITE(jrpacman_spritebank_w) + AM_RANGE(0x5080, 0x50bf) AM_READ_PORT("DSW") + AM_RANGE(0x5080, 0x5080) AM_WRITE(jrpacman_scroll_w) + AM_RANGE(0x50c0, 0x50c0) AM_WRITENOP + AM_RANGE(0x8000, 0xdfff) AM_ROM +// HBMAME extras + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + //AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP + AM_RANGE(0x5007, 0x5007) AM_WRITENOP + AM_RANGE(0x5072, 0x5072) AM_WRITENOP + AM_RANGE(0x5076, 0x507f) AM_WRITENOP + AM_RANGE(0xfffc, 0xffff) AM_RAM /* for jrfast and fastjr */ +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( port_map, AS_IO, 8, jrpacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0, 0) AM_WRITE(jrpacman_interrupt_vector_w) +ADDRESS_MAP_END + + + +/************************************* + * + * Port definitions + * + *************************************/ + +static INPUT_PORTS_START( jrpacman ) + PORT_START("P1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + /* Press this to instantly finish the level - HBMAME */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) + + PORT_START("P2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + + PORT_START("DSW") + PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2") + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:3,4") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x04, "2" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPSETTING( 0x0c, "5" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:5,6") + PORT_DIPSETTING( 0x00, "10000" ) + PORT_DIPSETTING( 0x10, "15000" ) + PORT_DIPSETTING( 0x20, "20000" ) + PORT_DIPSETTING( 0x30, "30000" ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7") + PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + +// HBMAME extras + PORT_START ("FAKE") + /* This fake input port is used to get the status of the fire button */ + /* and activate the speedup cheat. */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) + PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" ) + PORT_DIPSETTING( 0x00, "Disabled" ) + PORT_DIPSETTING( 0x02, "Enabled with Button" ) + PORT_DIPSETTING( 0x04, "Enabled Always" ) + + PORT_START ("CONFIG") + PORT_CONFNAME( 0x01, 0x01, "Level" ) + PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x01, DEF_STR( On ) ) +INPUT_PORTS_END + + + +/************************************* + * + * Graphics layouts + * + *************************************/ + +static const gfx_layout tilelayout = +{ + 8,8, + RGN_FRAC(1,2), + 2, + { 0, 4 }, + { STEP4(8*8,1), STEP4(0*8,1) }, + { STEP8(0*8,8) }, + 16*8 +}; + + +static const gfx_layout spritelayout = +{ + 16,16, + RGN_FRAC(1,2), + 2, + { 0, 4 }, + { STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1), STEP4(0*8,1) }, + { STEP8(0*8,8), STEP8(32*8,8) }, + 64*8 +}; + + +static GFXDECODE_START( jrpacman ) + GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 128 ) + GFXDECODE_ENTRY( "gfx1", 0x2000, spritelayout, 0, 128 ) +GFXDECODE_END + + + +/************************************* + * + * Machine drivers + * + *************************************/ + +INTERRUPT_GEN_MEMBER(jrpacman_state::vblank_irq) +{ + if(m_irq_mask) + device.execute().set_input_line(0, HOLD_LINE); +} + +static MACHINE_CONFIG_START( jrpacman, jrpacman_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ + MCFG_CPU_PROGRAM_MAP(main_map) + MCFG_CPU_IO_MAP(port_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq) +// MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq) // HBMAME + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60.606060) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) + MCFG_SCREEN_SIZE(36*8, 28*8) + MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) + MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman) + MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman) + MCFG_SCREEN_PALETTE("palette") + MCFG_GFXDECODE_ADD("gfxdecode", "palette", jrpacman) + MCFG_PALETTE_ADD("palette", 128*4) + MCFG_PALETTE_INDIRECT_ENTRIES(32) + MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_SOUND_ADD("namco", NAMCO, 3072000/32) + MCFG_NAMCO_AUDIO_VOICES(3) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) +MACHINE_CONFIG_END + + + +/************************************* + * + * ROM definitions + * + *************************************/ + +ROM_START( jrpacman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */ + ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */ + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrpacmanf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "fast_jr.8d", 0x0000, 0x2000, CRC(461e8b57) SHA1(42e25d384e653efb95a97bd64f55a8c3b3f71239) ) // only 1 byte difference + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */ + ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */ + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + + + +/************************************* + * + * Driver initialization + * + *************************************/ + +DRIVER_INIT_MEMBER(jrpacman_state,jrpacman) +{ + /* The encryption PALs garble bits 0, 2 and 7 of the ROMs. The encryption */ + /* scheme is complex (basically it's a state machine) and can only be */ + /* faithfully emulated at run time. To avoid the performance hit that would */ + /* cause, here we have a table of the values which must be XORed with */ + /* each memory region to obtain the decrypted bytes. */ + /* Decryption table provided by David Caldwell (david@indigita.com) */ + /* For an accurate reproduction of the encryption, see jrcrypt.c */ + static const struct { + int count; + int value; + } table[] = + { + { 0x00C1, 0x00 },{ 0x0002, 0x80 },{ 0x0004, 0x00 },{ 0x0006, 0x80 }, + { 0x0003, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0004, 0x80 }, + { 0x9968, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 }, + { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0001, 0x80 }, + { 0x00AF, 0x00 },{ 0x000E, 0x04 },{ 0x0002, 0x00 },{ 0x0004, 0x04 }, + { 0x001E, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 }, + { 0x0002, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0002, 0x80 }, + { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0083, 0x00 },{ 0x0001, 0x04 }, + { 0x0001, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x05 },{ 0x0001, 0x00 }, + { 0x0003, 0x04 },{ 0x0003, 0x01 },{ 0x0002, 0x00 },{ 0x0001, 0x04 }, + { 0x0003, 0x01 },{ 0x0003, 0x00 },{ 0x0003, 0x04 },{ 0x0001, 0x01 }, + { 0x002E, 0x00 },{ 0x0078, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 }, + { 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 }, + { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 }, + { 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 }, + { 0x0001, 0x05 },{ 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 }, + { 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 }, + { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 },{ 0x0001, 0x00 }, + { 0x01B0, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x01 },{ 0x00AD, 0x00 }, + { 0x0031, 0x01 },{ 0x005C, 0x00 },{ 0x0005, 0x01 },{ 0x604E, 0x00 }, + { 0,0 } + }; + + UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); + int i, j, A; + + for (i = A = 0; table[i].count; i++) + for (j = 0; j < table[i].count; j++) + RAM[A++] ^= table[i].value; +} + + + +/************************************* + * + * Game drivers + * + *************************************/ + +GAME( 1983, jrpacman, 0, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man (11/9/83)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jrpacmanf, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "hack", "Jr. Pac-Man (speedup hack)", MACHINE_SUPPORTS_SAVE ) + + +// HBMAME roms + +ROM_START( jr1000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) ) + ROM_LOAD( "jr1000.2e", 0x2000, 0x2000, CRC(eac97aec) SHA1(af5b88e1ce9d14851ae2db4e90cb6adb8df949c7) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + +ROM_START( jr1000_2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) ) + ROM_LOAD( "jr1000_2.2e", 0x2000, 0x2000, CRC(4f2010d4) SHA1(0835375487ccdb2ae77dd9e62229d0b6aeb9142a) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2000.2c", 0x0000, 0x2000, CRC(2784936b) SHA1(31ceeaa0a6c2ca042d829b0baa7b5455c3942790) ) + ROM_LOAD( "jr2000.2e", 0x2000, 0x2000, CRC(a26f1a49) SHA1(86d51269db2f7d8f6a7f12bd2bc1e2ab82f8be83) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2001 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2001.2c", 0x0000, 0x2000, CRC(9171f08f) SHA1(d2af715feb9b5266edc24a0ea9eaecc456eb4fac) ) + ROM_LOAD( "jr2001.2e", 0x2000, 0x2000, CRC(3164b853) SHA1(a3e23a902a9548a7025248a0e63fcbd4374de554) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2001p) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2001p.2c", 0x0000, 0x2000, CRC(d56cb9c5) SHA1(e598a28c0a4f1cdce2312a8dc418cfa441fc5fe8) ) + ROM_LOAD( "jr2001p.2e", 0x2000, 0x2000, CRC(1b534804) SHA1(b93764b6d6aacdcb4a50fffec58cab7778ada3ab) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2002 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2002.2c", 0x0000, 0x2000, CRC(e254096c) SHA1(f56127a6dcf8a6a5c916f33a29d761d36d55e543) ) + ROM_LOAD( "jr2002.2e", 0x2000, 0x2000, CRC(e3240bec) SHA1(255669c33f88e39a5c5f041a800f14ec29d24f38) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2002p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2002p.2c", 0x0000, 0x2000, CRC(ad1d0360) SHA1(d401a4575899c64c35977c1c49dfe9ad38a804e7) ) + ROM_LOAD( "jr2002p.2e", 0x2000, 0x2000, CRC(160321a1) SHA1(8e4ed3f8f5270fec8a00db92a6aebc9951074f33) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2003 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2003.2c", 0x0000, 0x2000, CRC(0ffe21f5) SHA1(3a5503f46d4813ff77aaa633122346228bba659b) ) + ROM_LOAD( "jr2003.2e", 0x2000, 0x2000, CRC(1fd35d7a) SHA1(b04e25c1fd0a148c4caae8ccb07fd2e3b4120325) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2003p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2003p.2c", 0x0000, 0x2000, CRC(b24e9383) SHA1(ba82f2e58e7ba1b64cf52c5da3bb8bf3fac7cea3) ) + ROM_LOAD( "jr2003p.2e", 0x2000, 0x2000, CRC(65ba2fb7) SHA1(3a0ee8798c72d13300712a2537b3a44a13f9338f) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2004 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2004.2c", 0x0000, 0x2000, CRC(3c20cf84) SHA1(8d34d50839b3f62bfbe9ee4ed633422be6459e73) ) + ROM_LOAD( "jr2004.2e", 0x2000, 0x2000, CRC(f08575ab) SHA1(c5935f88fac7cc9f58e56d857e89c232582c1882) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2004p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2004p.2c", 0x0000, 0x2000, CRC(6e1db602) SHA1(27bf6776d044c602cf9da88cfd19e23d4771759d) ) + ROM_LOAD( "jr2004p.2e", 0x2000, 0x2000, CRC(ab075ebe) SHA1(4cafb1019acf49111fdc5e695d95610219a0573d) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2005 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2005.2c", 0x0000, 0x2000, CRC(42eb8848) SHA1(79ee37c77ec8374c568699c4161cd46ef8631a17) ) + ROM_LOAD( "jr2005.2e", 0x2000, 0x2000, CRC(502d286c) SHA1(7fcf21d4037f7ffaf68be4c9089b3b3aa0ad59d3) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr2005p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr2005p.2c", 0x0000, 0x2000, CRC(4d03cd0a) SHA1(eb3c5ed5d0a5d4d67baae2ad629ffbfadbe2bea3) ) + ROM_LOAD( "jr2005p.2e", 0x2000, 0x2000, CRC(51cbce81) SHA1(37129228e8e92dd2a500ac2653364506129b7a2e) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr3000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) ) + ROM_LOAD( "jr3000p.2e", 0x2000, 0x2000, CRC(0a8f7b5c) SHA1(2182b24330021faa447944e51bebc5159b2b4f0b) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr4000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr4000p.2c", 0x0000, 0x2000, CRC(c5f05f11) SHA1(9fdafd46adebb709b2b897b0b53b05c4392239b2) ) + ROM_LOAD( "jr4000p.2e", 0x2000, 0x2000, CRC(944add80) SHA1(c391a2bb0d655da87d13581b16d09fe896106efd) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr5000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr5000p.2c", 0x0000, 0x2000, CRC(086979e1) SHA1(6c7fa4118fbb90417d3397c9f1f5eee14cb938de) ) + ROM_LOAD( "jr5000p.2e", 0x2000, 0x2000, CRC(a0fce81b) SHA1(8704a18e43c5134fc758df3a443c3f0e6990c417) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr6000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr6000.2c", 0x0000, 0x2000, CRC(44bd3c24) SHA1(d0321f314f604bb268fd62fde2e6a536f2c735f2) ) + ROM_LOAD( "jr6000.2e", 0x2000, 0x2000, CRC(83c8ff32) SHA1(ceae512347ca4c4aa1e88623894c3279281c0639) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr7000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr7000.2c", 0x0000, 0x2000, CRC(3dca34d5) SHA1(02b8ac91a683fa9688e5897ac206f344fbd71767) ) + ROM_LOAD( "jr7000.2e", 0x2000, 0x2000, CRC(202f2f37) SHA1(337f7e7d123f914833115610a763fe7dc55c3d24) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr7000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr7000p.2c", 0x0000, 0x2000, CRC(3b3e60fe) SHA1(26ff62f8aa655fa927694f791ae8a361dc438f3c) ) + ROM_LOAD( "jr7000p.2e", 0x2000, 0x2000, CRC(89b17c92) SHA1(2fc39e05fc35a69a6d224b6024f978b7c15bfb80) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr8000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr8000.2c", 0x0000, 0x2000, CRC(9653f563) SHA1(0a71d70645a8cd2e407a638e934deda43b41e56c) ) + ROM_LOAD( "jr8000.2e", 0x2000, 0x2000, CRC(0b1791f8) SHA1(1d6d494d8acfd57301fc01a86a27df2b7e697f1b) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr8000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr8000p.2c", 0x0000, 0x2000, CRC(913a0bea) SHA1(005e3908956169648464dfdd6ae5e2b67ba2233f) ) + ROM_LOAD( "jr8000p.2e", 0x2000, 0x2000, CRC(aed01226) SHA1(ae8022e36c7f7c083c1a697e54c7587044fcb491) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jr9000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jr9000p.2c", 0x0000, 0x2000, CRC(b2653891) SHA1(e96ab61f58bb9b47751e7e9397f2d44ff35897e6) ) + ROM_LOAD( "jr9000p.2e", 0x2000, 0x2000, CRC(87f45bd7) SHA1(7a45e0d5479de3d867518354f108e62f7e4d9877) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrcheat ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cheat-8d.bin", 0x0000, 0x2000, CRC(8b5b8d72) SHA1(65af9245015480751b3714980caed81e421d102c) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) + ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrdeluxe ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrdeluxe.2c", 0x0000, 0x2000, CRC(90517001) SHA1(cfb4a43bf9ef732a940b027de383e7a6ec0ec671) ) + ROM_LOAD( "jrdeluxe.2e", 0x2000, 0x2000, CRC(ef042965) SHA1(8497d2c7fdae6b1903df421ae1358a3b41e78599) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +/* The first rom (jppac1.bin) contains hacked jrpacman in first half, and unhacked in 2nd half. + Therefore the 2nd half is not needed. The only byte changed in the hack is the speedup byte at 0x180d */ + +ROM_START( jrfast ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jppac1.bin", 0x0000, 0x2000, CRC(f3bcb240) SHA1(b1fbf28666d5f159daf8f6156e3e31c932bb4081) ) + ROM_IGNORE (0x2000) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) + ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrhearts ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrhearts.2c", 0x0000, 0x2000, CRC(40cafa63) SHA1(c68a7eefabe4d8b008533abe3cf4b1a6512cd25e) ) + ROM_LOAD( "jrhearts.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrpacad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrpacad.2c", 0x0000, 0x2000, CRC(1ecf940c) SHA1(035b1d44da3a010f8c158211d07f5c6e7d16b63d) ) + ROM_LOAD( "jrvectr.2e", 0x2000, 0x2000, CRC(c0b35564) SHA1(c0c6de032023c301608c584489d564a61256345b) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrpacjr) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrpacjr.2c", 0x0000, 0x2000, CRC(54e6c297) SHA1(fa3c5240ca8a9e0c520864189c8b18105af629a7) ) + ROM_LOAD( "jrpacjr.2e", 0x2000, 0x2000, CRC(5b34dd98) SHA1(342393af97e13fe32b684e467bf48019f7c0c1c3) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrpacjrp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrpacjr.2c", 0x0000, 0x2000, CRC(54e6c297) SHA1(fa3c5240ca8a9e0c520864189c8b18105af629a7) ) + ROM_LOAD( "jrpacjrp.2e", 0x2000, 0x2000, CRC(1ee279ef) SHA1(ec26313fdf82ff7e4ff0acef28e2ce21a0539c1f) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrpacp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrpacp.2c", 0x0000, 0x2000, CRC(4fe4238e) SHA1(1175b3f9e3a9120a2149b124259097e8c574a76d) ) + ROM_LOAD( "jrpacp.2e", 0x2000, 0x2000, CRC(5993c0fa) SHA1(d5eee63b06972b09668c3fd66e737668439e26b7) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrspeed ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "speed-8d.bin", 0x0000, 0x2000, CRC(461e8b57) SHA1(42e25d384e653efb95a97bd64f55a8c3b3f71239) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) + ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrvectr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrvectr.2c", 0x0000, 0x2000, CRC(4876ad83) SHA1(6ab405a622fe93bcea627635cb266712a4174ce5) ) + ROM_LOAD( "jrvectr.2e", 0x2000, 0x2000, CRC(c0b35564) SHA1(c0c6de032023c301608c584489d564a61256345b) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jryumyum ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jryumyum.8e", 0x2000, 0x2000, CRC(934f1d34) SHA1(1c502edea62ee7fca11d54cb8ff0ea6263828056) ) + ROM_LOAD( "jryumyum.8h", 0x8000, 0x2000, CRC(d59cb636) SHA1(f2e9c0d4c62706a9d7ec68633ccb0edadf5e5439) ) + ROM_LOAD( "jryumyum.8j", 0xa000, 0x2000, CRC(010fb8dd) SHA1(4c1193d3a1abde76f8c28245a451873162ec6848) ) + ROM_LOAD( "jryumyum.8k", 0xc000, 0x2000, CRC(191a176c) SHA1(ae5e3c4bd788dd56e0da4130388ee841002cab6c) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(f057d596) SHA1(66cbe2720ecc456e9cef5422cf060bd507967fc2) ) + ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(e851bf29) SHA1(d31fd0bb3b0614a9750f07a55e93b94d16643899) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + + + +GAME( 2000, jr1000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 1000", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jr1000_2, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man 1000 (Alt)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2000", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2001, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2001", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2001p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2001 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2002, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2002", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2002p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2002 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2003, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2003", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2003p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2003 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2004, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2004", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2004p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2004 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2005, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2005", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr2005p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2005 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr3000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 3000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr4000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 4000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr5000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 5000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr6000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 6000", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr7000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 7000", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr7000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 7000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr8000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 8000", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr8000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 8000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jr9000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 9000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jrcheat, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Cheat [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jrdeluxe, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Deluxe", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jrfast, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. PacMan [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jrhearts, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Hearts", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jrpacad, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man After Dark", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jrpacjr, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Junior", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jrpacjrp, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Junior Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jrpacp, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jrspeed, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Speed [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jrvectr, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Vector", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, jryumyum, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Tim Appleton", "Jr. Pac-Man Vs YumYum + Friends", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof2000.cpp b/docs/release/src/hbmame/drivers/kof2000.cpp new file mode 100644 index 00000000000..d925eacfc24 --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof2000.cpp @@ -0,0 +1,1174 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000d ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_sma_prot->kof2000_decrypt_68k(cpuregion); + m_sma_prot->kof2000_install_protection(m_maincpu, m_banked_cart); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000h ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_sma_prot->kof2000_install_protection(m_maincpu, m_banked_cart); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000m ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2000_GFX_KEY); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2kbsd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2kxxx ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2000_GFX_KEY); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2knd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + + +ROM_START( kof2000d ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) ) + ROM_LOAD16_WORD_SWAP( "257-p1.p1", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) ) + ROM_LOAD16_WORD_SWAP( "257-p2.p2", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) ) + ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) ) +ROM_END + +ROM_START( kof2000r ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257r.p3", 0x0c0000, 0x040000, CRC(11b98ae2) SHA1(fd901690334ccc26f0680427b05b5c4aad8b7e1a) ) + ROM_LOAD16_WORD_SWAP( "257r.p1", 0x100000, 0x400000, CRC(a9f1fb34) SHA1(a09f2bac40f91fc6910edef9699b10197f08f589) ) + ROM_LOAD16_WORD_SWAP( "257r.p2", 0x500000, 0x400000, CRC(9d26d55d) SHA1(ecb3b0bb98a24553d04c04c30f72f250ea86afeb) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kbh ) /* The King of Fighters 2000 - Hack by Dodowang - (AES mode: can choose Zero; Practice-can choose Zero - MVS mode: can choose Kula and Zero - Zero has icon) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257bh.p1", 0x000000, 0x100000, CRC(613d1fc2) SHA1(69a6d8add28291a14d69e9a098dd78a84f6c9b31) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + ROM_LOAD( "257bh.s1", 0x000000, 0x80000, CRC(36ae018e) SHA1(f06c3a6f8607b7cb689f3edacb37db6fe8b8f0b6) ) + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257bh.c7", 0x3000000, 0x800000, CRC(f7636227) SHA1(a76b331c96a7bf6fb4123c88a15f565c82b13373) ) + ROM_LOAD16_BYTE( "257bh.c8", 0x3000001, 0x800000, CRC(b887fe36) SHA1(d6fc2fba39c8f22ddbe911345ba1d21561cc4eb2) ) +ROM_END + +ROM_START( kof2kbj ) /* The King of Fighters 2000 - Hack by Jason/K3 - (AES mode: can choose Zero; Practice-can choose Zero - MVS mode: can choose Kula and Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257bj.p1", 0x000000, 0x100000, CRC(fafe059e) SHA1(6167c6a2f8d8b2d08d8a2dfd26e1722bdca9c3f7) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kbsd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257bsd.p1", 0x000000, 0x100000, CRC(391948a6) SHA1(a41759bdb587a8765e5f5cc7a4631e9b002d4cf4) ) + ROM_LOAD16_WORD_SWAP( "257bsd.p2", 0x100000, 0x400000, CRC(7a6d80b8) SHA1(0a3bcf71a43b2b5dde0c33ed107c207a7c59e90c) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257bsd.c7", 0x3000000, 0x800000, CRC(110f72a3) SHA1(7540aa2be692fbbcd887c8377ca6891d1ba1b6ed) ) + ROM_LOAD16_BYTE( "257bsd.c8", 0x3000001, 0x800000, CRC(4347f6af) SHA1(fc744d68e04905af1fa8d39d8772fba67e14777f) ) +ROM_END + +ROM_START( kof2kce ) /* The King of Fighters 2000 - Colour fix by UNKNOWN - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1,p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257ce.p2", 0x100000, 0x400000, CRC(60b00b9b) SHA1(eb2ea3980dbd2fe4d15b9155d4de7593396f8555) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kch ) /* The King of Fighters 2000 - Remix by Chase - (Character move change 20030503) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257ch.p1", 0x000000, 0x100000, CRC(6a4ac2cf) SHA1(0120d712439c909b96607b487bfbc93444e3da04) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kcp ) /* The King of Fighters 2000 - Colour fix by UNKNOWN - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1,p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257cp.p2", 0x100000, 0x400000, CRC(a73339fd) SHA1(cce171fdb4e3be4b8431eea60b0bea36630bd94f) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2keh ) /* The King of Fighters 2000 - Enhance by Ydmis - (Can choose Kula and Zero - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257eh.p1", 0x000000, 0x100000, CRC(3a301e5b) SHA1(a8fe40cc1577bcf1503726cd38b502e8e5c4f621) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kehr ) /* The King of Fighters 2000 - Remix by Raymonose - (Character move change - can choose Kula and Zero - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257ehr.p1", 0x000000, 0x100000, CRC(db0a8678) SHA1(d6f11011dfb9e7ee04cffbd9e1768a8fc9982fba) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kevo ) /* The King of Fighters 2000 - KOF2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.2 - see readme for details) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257evo.p1", 0x000000, 0x100000, CRC(3107aa48) SHA1(e7240cc8697d63657ed59c8d2ea69e883d690d7d) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kevo1 ) /* [OLD] The King of Fighters 2000 N - (kof2kevo101) - KOF 2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.01 - see readme for details) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257evo1.p1", 0x000000, 0x100000, CRC(ac684cce) SHA1(1fb72efd4fa0a4c40b0c16b913f5fa5fdd471d74) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kevo2 ) /* [OLD] The King of Fighters 2000 N - (kof2kevo10) - KOF 2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.0 - see readme for details) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257evo2.p1", 0x000000, 0x100000, CRC(2331f409) SHA1(13344ccf1748be13e8605c8cd0f3e7786a0c250c) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kevo3 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257evo3.p1", 0x000000, 0x100000, CRC(93cc8aa5) SHA1(46226909fd182d9edefb529bfe4c91f8a5b02a9e) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) ) + ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) ) +ROM_END + +ROM_START( kof2kgbh ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257gbh.p1", 0x000000, 0x100000, CRC(5527a8fb) SHA1(5c861ab496ab713d04fe26ad5e6f73c2bb52bf48) ) + ROM_LOAD16_WORD_SWAP( "257gbh.p2", 0x100000, 0x400000, CRC(7992520d) SHA1(7718348355adbb05e64767ae5d075046ae9b5400) ) + + NEO_SFIX_MT_512K + // This came with the set but doesn't work + //NEO_SFIX_128K( "257gbh.s1", CRC(cabc287b) SHA1(dbf3adc0fe31d3c6c246ed4c996ca9b8c9bbfa4d) ) + + NEO_BIOS_AUDIO_256K( "257gbh.m1", CRC(a082f086) SHA1(809ef4a533cf541b86786f455a7f283a5acecd82) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257gbh.c7", 0x3000000, 0x800000, CRC(f7636227) SHA1(a76b331c96a7bf6fb4123c88a15f565c82b13373) ) + ROM_LOAD16_BYTE( "257gbh.c8", 0x3000001, 0x800000, CRC(b887fe36) SHA1(d6fc2fba39c8f22ddbe911345ba1d21561cc4eb2) ) +ROM_END + +ROM_START( kof2kgold ) /* The King of Fighters 2000 - Colour fix by Anndy - (Character colour change - attack cremation gold) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257gbh.p2", 0x100000, 0x400000, CRC(7992520d) SHA1(7718348355adbb05e64767ae5d075046ae9b5400) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kice ) /* The King of Fighters 2000 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1,p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257ice.p2", 0x100000, 0x400000, CRC(95df1ddd) SHA1(faecf18584d5397a588a69d002968a341a12adcb) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kiori ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257iori.p1", 0x000000, 0x100000, CRC(d7cdca85) SHA1(2cdc6f528512a8d8eff800602f00f75797e4a5f1) ) + ROM_LOAD16_WORD_SWAP( "257iori.p2", 0x100000, 0x400000, CRC(ce947e0f) SHA1(0d86e181a1a6244fb61ac18d013352c3a9722ebd) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257iori.c7", 0x3000000, 0x800000, CRC(4230c654) SHA1(7e5cb48cbec8b27047e5642af58bebd71a9f986b) ) + ROM_LOAD16_BYTE( "257iori.c8", 0x3000001, 0x800000, CRC(80aa8ac2) SHA1(7a828725e8442e19b1ad34327d9d9025d04f4853) ) +ROM_END + +ROM_START( kof2kjlc ) /* The King of Fighters 2000 - Colour fix by Jui Lee - (Character colour change for Athena 2P and Kula 2P) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1,p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257jlc.p2", 0x100000, 0x400000, CRC(dc36885b) SHA1(b192edc43f598434877df3e2deddca53473bf537) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kkf1 ) /* The King of Fighters 2000 - Hack by Kurouri - (MVS protection removed, can select Kula and Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257kf1.p1", 0x000000, 0x100000, CRC(3a6bb418) SHA1(d794bf7ee14fcf3972360f7d47ed6cd08a3269d2) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kkvs ) /* The King of Fighters 2000 - Hack by KVS - (MVS protection removed - can select Kula and Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257kvs.p1", 0x000000, 0x100000, CRC(de23e8a0) SHA1(737a3e9c7cac2338f382c3a55d5caa9810fb87ce) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kkzs ) /* The King of Fighters 2000 - Hack by UNKNOWN - (MVS protection removed - can choose Kula and Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257kzs.p1", 0x000000, 0x100000, CRC(e41f350c) SHA1(d0d4feb6f91714abe11ec57ba9eecc7bb7f5b354) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2knd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) ) + ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) ) +ROM_END + +ROM_START( kof2kpjc ) /* The King of Fighters 2000 - Colour fix by TcwLee - (Colour fix 20030720) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1,p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257pjc.p2", 0x100000, 0x400000, CRC(3f94a4d3) SHA1(8fd23e05bde49e9ff25f070338b947c53bbf603f) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kpjc1 ) /* [OLD] The King of Fighters 2000 N - (kof2kpjco) - Colour fix by TcwLee - (Colour fix - entire role change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1,p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257pjc1.p2", 0x100000, 0x400000, CRC(c954c944) SHA1(3ca35a5393351ee22ef651f8984067b18aa02144) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kpjc2 ) /* [OLD] The King of Fighters 2000 N - (kof2kc2) - Colour fix by TcwLee - (Colour fix ver. 2) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1,p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257pjc2.p2", 0x100000, 0x400000, CRC(136bd0a4) SHA1(5549ba017a9c633a3652ad3fc0d1c41bc247cdcd) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kpjc3 ) /* [OLD] The King of Fighters 2000 N - (kof2kpjco2) - Colour fix by TcwLee - (Colour change - striker not perfect 20030302) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1,p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) + ROM_LOAD16_WORD_SWAP( "257pjc3.p2", 0x100000, 0x400000, CRC(22bf407a) SHA1(dba889edbe0bd641ce678f0ffc79afed24659bde) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kpls ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257pls.p1", 0x000000, 0x100000, CRC(052a5e17) SHA1(1f2c43981e1e762c0d0a81f23311e5d021e94472) ) + ROM_LOAD16_WORD_SWAP( "257pls.p2", 0x100000, 0x400000, CRC(9d716a8b) SHA1(da32f57719155b8dfa86124312d03ee82fbc7151) ) + + NEO_SFIX_MT_512K + ROM_LOAD( "257pls.s1", 0x000000, 0x80000, CRC(5a8d9e10) SHA1(2eb244a28b891a6fadbbccf10afe47b78d7948f0) ) + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257pls.c7", 0x3000000, 0x800000, CRC(eda5ea7f) SHA1(25e1d5279635eab65ba7b3f565d5cf0dd48ad201) ) + ROM_LOAD16_BYTE( "257pls.c8", 0x3000001, 0x800000, CRC(6df754d8) SHA1(94469836ae8e08448a01f346a09e660ceed9371f) ) +ROM_END + +ROM_START( kof2krm ) /* The King of Fighters 2000 - Remix by Raymonose - (Character move change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257rm.p1", 0x000000, 0x100000, CRC(597fdfc7) SHA1(10bb9e4ad0c3ff53336cc0e06303f83bcb5c94e4) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2krp ) /* The King of Fighters 2000 - Remix PRO by FCHT - (Character move change v1.0a 20031103 - BETA) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257rp.p1", 0x000000, 0x100000, CRC(7c81d853) SHA1(b101b64a06ba6292d369d10f75a56de09b04823b) ) + ROM_LOAD16_WORD_SWAP( "257rp.p2", 0x100000, 0x400000, CRC(82a6aeed) SHA1(36f369313999d23f50201c1e240736d00d4921da) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kryu ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257ryu.p1", 0x000000, 0x100000, CRC(47806bd7) SHA1(fd61bd7c6758870c24446b07175537ed1c2135af) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) ) + ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) ) +ROM_END + +ROM_START( kof2kseh ) /* The King of Fighters 2000 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Kula and Zero - ultra kill start is max - super power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257seh.p1", 0x000000, 0x100000, CRC(b84547e4) SHA1(1c01a764d5333d8acab392f24f9a2f8d00e257ca) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kst ) /* The King of Fighters 2000 N - Hack by KOF1995 - (Boss striker movement change - similar to kof2kevo from FGCH - can choose Kula and Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257st.p1", 0x000000, 0x100000, CRC(e21736d5) SHA1(7ea8045775b5d9e111a94a641a372faaf2495a5e) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kwh ) /* The King of Fighters 2000 - Hack by Wesker - (Character move change for Takuma) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257wh.p1", 0x000000, 0x100000, CRC(5fa8d962) SHA1(8285b925c4edf3460ff5cf63fbcb7379568897ac) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kwh2 ) /* The King of Fighters 2000 - Hack by Wesker - (Character move change for Jhun) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257wh2.p1", 0x000000, 0x100000, CRC(06e47159) SHA1(45ae1f2c9c4393ff9cc0425a4a85c7bc1ad31c0e) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kxxx ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257xxx.p1", 0x000000, 0x100000, CRC(b88cd5eb) SHA1(81b5ef268991fe368c6efa836cb822fbcfe54920) ) + ROM_LOAD16_WORD_SWAP( "257xxx.p2", 0x100000, 0x400000, CRC(1a10f2be) SHA1(67794176d3d834b85495fa653a8acd14901b1658) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257xxx.c1", 0x0000000, 0x800000, CRC(3006a5e4) SHA1(e1fa9c32306a7501cb4789ec85521fd6fd7ad28c) ) + ROM_LOAD16_BYTE( "257xxx.c2", 0x0000001, 0x800000, CRC(366fd118) SHA1(36abc1e8e48e47afdab9541a4612b346799693de) ) + ROM_LOAD16_BYTE( "257xxx.c3", 0x1000000, 0x800000, CRC(5b16d7e3) SHA1(3a5cbfc47b7db0ee4f15232066c4f79544dee20f) ) + ROM_LOAD16_BYTE( "257xxx.c4", 0x1000001, 0x800000, CRC(7e57dfc1) SHA1(7a07d1547306646538d29ba9bd3acdaca7c70907) ) + ROM_LOAD16_BYTE( "257xxx.c5", 0x2000000, 0x800000, CRC(671904f4) SHA1(7bfd66b7f1866c06b161eb6cf594aa017b7088b2) ) + ROM_LOAD16_BYTE( "257xxx.c6", 0x2000001, 0x800000, CRC(68adf255) SHA1(a60ad8adbec8c4e6ed85fd3b251a8f187aca85b1) ) + ROM_LOAD16_BYTE( "257xxx.c7", 0x3000000, 0x800000, CRC(8c6b22b3) SHA1(7f4a204de276a9acae2c6d58b2b5c03f76bcab69) ) + ROM_LOAD16_BYTE( "257xxx.c8", 0x3000001, 0x800000, CRC(6223bd1d) SHA1(94b512eb202aec084110e477b283591bad54d027) ) + // Alternate (decrypted) roms + //NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + //ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) ) + //ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) ) + //ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) ) + //ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) ) + //ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) ) + //ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) ) + //ROM_LOAD16_BYTE( "257xxx1.c7", 0x300000, 0x800000, CRC(05125a94) SHA1(cdd77c649945e15088dd07ba282e6dc9ef883a75) ) + //ROM_LOAD16_BYTE( "257xxx1.c8", 0x300001, 0x800000, CRC(300eba2a) SHA1(42defa20e3a0760f64c4c0346ab48d664960c638) ) +ROM_END + +ROM_START( kof2ky ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Kula) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257y.p1", 0x000000, 0x100000, CRC(ca715980) SHA1(869268d27fc2628ac1fe817b2d0491096821b8de) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kyd ) /* The King of Fighters 2000 - Revise by Dodowang and Ydmis - (Style change - can choose Kula and Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257yd.p1", 0x000000, 0x100000, CRC(09c64b87) SHA1(8ad7a2c9cf0e360364ad5ee58ed514fbee015a65) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kyg ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Kula and Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257yg.p1", 0x000000, 0x100000, CRC(684f6f70) SHA1(660a35e8db9d44b246dfc788e5576fe8d138e580) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kz ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257z.p1", 0x000000, 0x100000, CRC(029a6b8a) SHA1(1179df1960dffc04860acb0a91c53e9c5cf7e107) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + +ROM_START( kof2kzs ) /* The King of Fighters 2000 - Hack by UNKNOWN - (MVS protection removed - can choose Kula and Zero) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257zs.p1", 0x000000, 0x100000, CRC(ca73f3a5) SHA1(d083a47ff19317855da866e29eea3aa66a1ffb03) ) + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) +ROM_END + + +GAME( 2000, kof2000d, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000d, ROT0, "SNK", "Kof2000 (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2000r, kof2000, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000, ROT0, "hack", "Kof2000 (KOF REMIX PRO)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kbh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000h, ROT0, "Dodowang","Kof2000 (Add Char - Zero has icon)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kbj, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3", "Kof2000 (Add Char set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kbsd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2kbsd, ROT0, "Eddids / EGHT", "Kof2000 Boss Striker Pro ( Eddids, EGHT )", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kce, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Char color changed set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kch, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Chase", "Kof2000 (Diff Moves 030503)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kcp, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Char color changed set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2keh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kehr, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Raymonose", "Kof2000 (Add Char - Diff Moves - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kevo, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVOLUTION (v1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kevo1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVOLUTION (v1.01)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kevo2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVO (Evolution v1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kevo3, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "FCHT-EGHT", "Kof2000 EVOLUTION (v1.3 by FCHT-EGHT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kgold, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Anndy", "Kof2000 (Char color changed - Gold)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kgbh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, cmc50sfix, ROT0, "hack", "Kof2000 (Boss Hack - Gold Color Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kice, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Zhangshee", "Kof2000 (Char color changed - Ice blue)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kiori, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "ZKW", "Kof2000 (Iori Orochi by ZKW)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kjlc, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jui Lee", "Kof2000 (Char color changed for Athena 2P and Kula 2P)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kkf1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - MVS protection rem set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kkvs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "KVS", "Kof2000 (Add Char - MVS protection rem set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kkzs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Add Char - MVS protection rem set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2knd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "hack", "Kof2000 (non encrypted P,decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kpjc, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix 030720)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kpjc1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix - Entire role change)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kpjc2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix v. 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kpjc3, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color changed - Striker not Perfect 030302)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kpls, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "Guangzhou Game Team", "Kof2000 PLUS (by Guangzhou Game Team)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2krm, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Raymonose", "Kof2000 (Diff Moves)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2krp, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "FCHT", "Kof2000 Remix Pro (Diff Moves v1.0a 031103 - Beta)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kryu, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "Iori Yagami", "Kof2000 EVX TION (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kseh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - Ultra kill start max - Super pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kst, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "KOF1995", "Kof2000 (Add Char - Boss striker moves changed - Similar to kof2kevo from FGCH)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kwh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Wesker", "Kof2000 (Diff Moves for Takuma)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kwh2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Wesker", "Kof2000 (Diff Moves for Jhun)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kxxx, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2kxxx, ROT0, "Crispy", "Kof2000 XXX (Crispy SP Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2ky, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Ydmis", "Kof2000 (Add Kula)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kyd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Dodowang and Ydmis", "Kof2000 (Style change - Select 2 Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kyg, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kz, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Ydmis", "Kof2000 (Add Zero)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof2kzs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Add Char - MVS protection rem set 4)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof2001.cpp b/docs/release/src/hbmame/drivers/kof2001.cpp new file mode 100644 index 00000000000..332e7136644 --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof2001.cpp @@ -0,0 +1,2259 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2001d ) +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2001m ) +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2001_GFX_KEY); +} + +// use this if the set has a s1 rom +DRIVER_INIT_MEMBER( neogeo_hbmame, kf2k1pls ) +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2001_GFX_KEY); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kf2k1pa ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2001_GFX_KEY); + + int i, sx_size = memregion("fixed")->bytes(); + UINT8 *rom = memregion("fixed")->base(); + + /* S-rom has its own unique encryption */ + for( i = 0; i < sx_size; i++ ) + rom[ i ] = BITSWAP8( rom[ i ], 3, 2, 4, 5, 1, 6, 0, 7 ); +} + + + +ROM_START( kof2001d ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) ) + ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) ) +ROM_END + +ROM_START( kof2001n ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262n.p1", 0x000000, 0x100000, CRC(eaf3acf1) SHA1 (d697b9820d4832b944def118c30c82bbb1495b97) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1 (82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_128K( "262n.s1", CRC(de828076) SHA1 (7f79d0245b02e64bd4b50c103722f7e115d1e711) ) + + NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) ) + ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) ) +ROM_END + +ROM_START( kof2k1ay ) /* The King of Fighters 2001 - Revise by Kurouri and Ydmis - (Based on kof2001h - revise) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ay.p1", 0x000000, 0x100000, CRC(069a0aa2) SHA1(3fd2218b8d94cff47e1e2369a163c82d1f3e5f41) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1b ) /* The King of Fighters 2001 - Hack by UNKNOWN - (Can choose Zero and Igniz) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262b.p1", 0x000000, 0x100000, CRC(376ea3fd) SHA1(9bb9ec73f1ee543ea0c2fd5ee73c487ea93de05e) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1b1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262b1.p1", 0x000000, 0x100000, CRC(832ff765) SHA1 (93bc612249ecbeddb12a80caed5cc6bb15ecac0a) ) + ROM_LOAD16_WORD_SWAP( "262b1.p2", 0x100000, 0x400000, CRC(6762cf94) SHA1 (7444554b6de83b11a4c1ffc0230e646a6d5a7c75) ) + + NEO_SFIX_128K( "262st2.s1", CRC(2e3229a3) SHA1 (feb028bf43ae30e3091a67abc7c23a9816a3412e) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262b1.c7", 0x3000000, 0x800000, CRC(f9814461) SHA1(0d83d4e740f11d6216dc00c1515766e27625f2ea) ) + ROM_LOAD16_BYTE( "262b1.c8", 0x3000001, 0x800000, CRC(94b8544b) SHA1(4a02c6013a24beffe3b5ccfcc5b321ccbf0186af) ) +ROM_END + +ROM_START( kof2k1b3 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262b3.p1", 0x000000, 0x100000, CRC(31b99298) SHA1(66bd449b0daee4d266b0c994fd87111ebbd5ce6c) ) + ROM_LOAD16_WORD_SWAP( "262b3.p2", 0x100000, 0x400000, CRC(83cdd046) SHA1(0228f8b9b65fcefc27fb6e844e5d4d72cede8e74) ) + + NEO_SFIX_128K( "262b3.s1", CRC(6d209796) SHA1(95fdb865e47d37916573ba12e8ba4a4aaece1cba) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) ) + ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) ) +ROM_END + +ROM_START( kof2k1b4 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262b4.p1", 0x000000, 0x100000, CRC(a63c2c82) SHA1(22ccf21f1c54d21a8dbe26668ef5f52b5273b611) ) + ROM_LOAD16_WORD_SWAP( "262b4.p2", 0x100000, 0x400000, CRC(676da28e) SHA1(1ff9d9228ab07e981e703b635e1abf2a8e4ea450) ) + + NEO_SFIX_128K( "262b4.s1", CRC(8c5c479e) SHA1(89a04bd980c4b1702aacbb76a5505cdbcdd016d5) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) ) + ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) ) +ROM_END + +ROM_START( kof2k1bd2 ) /* The King of Fighters 2001 - Colour Fix by Ayane - (Character colour change - attack cremation scarlet) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262bd2.p2", 0x100000, 0x400000, CRC(13c14b1f) SHA1(c063e17f94994889ae6a576b7923eddabf3586a2) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1bh ) /* The King of Fighters 2001 - Hack by Dodowang - (Can choose Zero and Igniz) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_128K( "262bh.s1", CRC(e600c595) SHA1(7133d879bff4854bead500c0928e0f1d918b7bed) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1bh1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1 (82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_128K( "262bh.s1", CRC(e600c595) SHA1(7133d879bff4854bead500c0928e0f1d918b7bed) ) + + NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) ) + ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) ) +ROM_END + + +ROM_START( kof2k1bs ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262bs.p1", 0x000000, 0x100000, CRC(b5becb3c) SHA1 (b3270392560205f321b58a5a5d0d6d9c7268242a) ) + ROM_LOAD16_WORD_SWAP( "262bs.p2", 0x100000, 0x400000, CRC(295d0c5c) SHA1 (696aa96aeee38971015ddf4a1ed66ecf605a04c2) ) + + NEO_SFIX_128K( "262bs.s1", CRC(19b6587b) SHA1 (0d065d086a57c991ef90f24c5b44306463147294) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262bs.c7", 0x3000000, 0x800000, CRC(8d11aed2) SHA1(258d5c8bf229b9d1d4d4f1f766672c2b2bb6744b) ) + ROM_LOAD16_BYTE( "262bs.c8", 0x3000001, 0x800000, CRC(9e7168f5) SHA1(5ce65e676d36a247f4d673f5e319e9b085c620be) ) +ROM_END + +ROM_START( kof2k1bs2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) ) + ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262bs2.c1", 0x0000000, 0x800000, CRC(634c374d) SHA1(d43086ef6e86ef39b2f9afda2aba47d17c55d943) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "262bs2.c2", 0x0000001, 0x800000, CRC(6b9534f9) SHA1(c52ab7a2ec7df788b03e5f5ff1e906e2d6512da7) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "262bs2.c3", 0x1000000, 0x800000, CRC(21d114db) SHA1(53789fae6cb07b7961f126e88fd2c97998885cd4) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "262bs2.c4", 0x1000001, 0x800000, CRC(7f4678f2) SHA1(3f36bbbe63cac787b551992e1e7f10e7ba8abe8d) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "262bs2.c5", 0x2000000, 0x800000, CRC(fe98132f) SHA1(1e21f3473d4786c44dcaa0018ad446ab50a86a3a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "262bs2.c6", 0x2000001, 0x800000, CRC(91e3ed85) SHA1(14a72d05a8496826beb9e3b0e373c0038bd1d8e5) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "262bs2.c7", 0x3000000, 0x800000, CRC(e451915c) SHA1(9b4b2718e8ecf33c421a5b5363e7ff622bc3f4f2) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "262bs2.c8", 0x3000001, 0x800000, CRC(831943ba) SHA1(ae7c79d28edaaaf3f792a8317cceb4ad9264b2d1) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kof2k1ce ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262ce.p2", 0x100000, 0x400000, CRC(76d0b903) SHA1(a24a85defbbf282d2285e48119f42e3424a96e9d) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cf1 ) /* [OLD] The King of Fighters 2001 - (kof2k1cfco) - Colour fix by C6F8 - (Character colour change for Iori p1 and p2) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cf1.p2", 0x100000, 0x400000, CRC(9060fc03) SHA1(cb831ff2e52087a551494772b1a0b4db83e23180) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ch ) /* The King of Fighters 2001 - Remix by Chase - (Character move change - can choose Zero and Igniz) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ch.p1", 0x000000, 0x100000, CRC(18ef4629) SHA1(d34be181230f703eb96d29d8641ca975a581e1eb) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cfc ) /* [OLD] The King of Fighters 2001 - (kof2k1cfco) - Colour fix by C6F8 - (Character colour change for Iori p1 and p2) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cfc.p2", 0x100000, 0x400000, CRC(3d91029f) SHA1(9024a521c519a9301cf4d041644cdf9406986184) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1clr ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262clr.p2", 0x100000, 0x400000, CRC(bb8f76e5) SHA1(3f59ab1b19c12816fcec129ae71f4b5f1e7a1baa) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cp ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cp.p2", 0x100000, 0x400000, CRC(827825f6) SHA1(e23c1f4fee1acf032cfa5245991610d48b946ccb) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cp1 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp1) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cp1.p2", 0x100000, 0x400000, CRC(6fb2a367) SHA1(1cbe328e7e9f14445f0fa31b9ab19fc83ebab19a) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cp2 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp2) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cp2.p2", 0x100000, 0x400000, CRC(ab26df49) SHA1(c918ab87bfa0db990bfeb35651ff5b3e4af990d8) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cp3 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cp3.p2", 0x100000, 0x400000, CRC(53f5cd5b) SHA1(6012b3f33d98c6fc647c362401bb536e721c0dfd) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cp4 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cp4.p2", 0x100000, 0x400000, CRC(91cb1f4a) SHA1(fbcdd53621cd596d91632e4ac3bb4b8d5b980aa1) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cp5 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cp5.p2", 0x100000, 0x400000, CRC(ce1a6381) SHA1(87ba0b1d761705a213d34987a49b1c3a5e4ecd66) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cp6 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cp6.p2", 0x100000, 0x400000, CRC(eb1b7410) SHA1(810f6ec155a549d401f68e98f571b73aefee5e21) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cp7 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change - attack cremation ice blue) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262cp7.p2", 0x100000, 0x400000, CRC(69629013) SHA1(041630bf4f6a8aa3f2a53beb683852b3fd0e3b7a) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1cr ) /* The King of Fighters 2001 - Revise by CrUmp - (Bases on kof2001h - revise) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262cr.p1", 0x000000, 0x100000, CRC(19f18567) SHA1(1dfb262d919107ef6173bfa5339fd2e39c1ca690) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1eh ) /* The King of Fighters 2001 - Enhance by Ydmis - (Bases on kof2001h - can choose Zero and Igniz - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262eh.p1", 0x000000, 0x100000, CRC(32c4a98b) SHA1(a4142ae4ac4053af65efc815a29574a839bad0e3) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ehc ) /* The King of Fighters 2001 - Enhance by Ydmis - (Bases on kof2001h - ultra kill start is max - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ehc.p1", 0x000000, 0x100000, CRC(1ebb4962) SHA1(8f80953ecf0053b735e80c77a9a3b51315c8538d) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ehr ) /* The King of Fighters 2001 - Remix by Raymonose - (Bases on kof2001h - ultra kill start is max - ultra power hack - character move change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ehr.p1", 0x000000, 0x100000, CRC(afabe438) SHA1(3245650382a9f36cde7b66fe247bdd68b1adf30c) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1gm ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Colour style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262gm.p2", 0x100000, 0x400000, CRC(888d765a) SHA1(95c31e720f415a5f46f4cdbeb8eb9d19dee85732) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1guan ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262guan.p1", 0x000000, 0x100000, CRC(8db710c2) SHA1(f54b78977fa55073715e438628a83f918d1371fa) ) + ROM_LOAD16_WORD_SWAP( "262guan.p2", 0x100000, 0x400000, CRC(3e854c2c) SHA1(154871e713a7f142d445d2d8159895f1634528b8) ) + + NEO_SFIX_128K( "262guan.s1", CRC(25261ef4) SHA1(18d68f74ca566d2a966b27888ba17c99d35efb1d) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) ) + ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) ) +ROM_END + +ROM_START( kof2k1ha ) /* The King of Fighters 2001 - (kof2k1ha) - Revise by UNKNOWN - (Alternate home version) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ha.p1", 0x000000, 0x100000, CRC(b03df3de) SHA1(a56bb40e557e73d74a352884cabfbc5556fdca5b) ) + ROM_LOAD16_WORD_SWAP( "262ha.p2", 0x100000, 0x400000, CRC(ccff204a) SHA1(251b32e2ce902bc6af001b14e6f04379ef52ab27) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262ha.m1", CRC(7f4d8a65) SHA1(c01b57d97079f86011ffdf9c52f7878ab5a9bed9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ha2 ) /* The King of Fighters 2001 - (kof2k1ha2) - Revise by UNKNOWN - (Alternate home version revision 2) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ha2.p1", 0x000000, 0x100000, CRC(833b91f8) SHA1(cc9fe3efdfc67cb1bea3f36c9e59c0b0252dc58a) ) + ROM_LOAD16_WORD_SWAP( "262ha2.p2", 0x100000, 0x400000, CRC(616179f9) SHA1(12e7d372a0d0bf3af1b41af19c3242748135370c) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262ha.m1", CRC(7f4d8a65) SHA1(c01b57d97079f86011ffdf9c52f7878ab5a9bed9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1hao ) /* [OLD] The King of Fighters 2001 - (kof2k1hao) - Hack by UNKNOWN - (Alternate home version) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + // This set is all the original one except for this rom + NEO_BIOS_AUDIO_128K( "262hao.m1", CRC(c504deaf) SHA1(7b8146d7a4c645ea0eabb748da4878ed5748adae) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1hb ) /* The King of Fighters 2001 - Hack by Kurouri - (Bases on kof2001h - can choose Zero and Igniz) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262hb.p1", 0x000000, 0x100000, CRC(c17dddc5) SHA1(645c29343a56bc2de02ad913f7ebc74e5f496ee5) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1hgm ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Colour style remix)? */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262hgm.p2", 0x100000, 0x400000, CRC(26a89686) SHA1(4b8fc3dd0fbab61b9205a79939feba15582aa26e) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ic2 ) /* The King of Fighters 2001 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue)? */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262ic2.p2", 0x100000, 0x400000, CRC(8675134d) SHA1(cabd218f5531e4721eeb954ad8996836d01097c4) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ice ) /* The King of Fighters 2001 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262ice.p2", 0x100000, 0x400000, CRC(99963006) SHA1(4ba2022bd429e4ce1a333712ef275d8d71ed7b44) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k32 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r2) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r2.txt for more 20030714) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k32.p1", 0x000000, 0x100000, CRC(7be1405a) SHA1(a85f6e6d360c2033abd8f36eb6bcc502a4e2a88e) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k33 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r3) - Remix by jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r3.txt for more 20030725) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k33.p1", 0x000000, 0x100000, CRC(75f6e824) SHA1(f1731dcec65051b14d048df329e7bf637bfe87f3) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k34 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r4) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r4.txt for more 20030730) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k34.p1", 0x000000, 0x100000, CRC(fef04a32) SHA1(efb5f70a722ed5825c8ad05456d0a98060af4430) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k35 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r5) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r5.txt for more 20030806) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k35.p1", 0x000000, 0x100000, CRC(2978b172) SHA1(7d8a3494e76f617fc198e61a5663281c27588f87) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k36 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r6) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r5.txt for more 20030815) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k36.p1", 0x000000, 0x100000, CRC(cfb88cd7) SHA1(5cbc2a0face3439c5c1f212fe6d93f18fb718942) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k37 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r7) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r7.txt for more 20030817) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k37.p1", 0x000000, 0x100000, CRC(1d7b445a) SHA1(99dc9ceb2c68473c268ae142539038dff83458af) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k38 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r8) - Remix by jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r8.txt for more 20030823) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k38.p1", 0x000000, 0x100000, CRC(8b513ac3) SHA1(0bb6e67d6b2924aec10a48dcc781a3e20bca8248) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k39 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r9) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r9.txt for more 20030826) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k39.p1", 0x000000, 0x100000, CRC(28dfef34) SHA1(02a74b48d1c2f88c83e7249b7abce866fd7c9f8e) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3a ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r10) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r10.txt for more 20030907) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3a.p1", 0x000000, 0x100000, CRC(696ef78e) SHA1(c6c3bd3da1e839a676937027f948174cb2414530) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3b ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r11) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r11.txt for more 20031005) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3b.p1", 0x000000, 0x100000, CRC(27251457) SHA1(8a33cade6cc59b3e7407294faae692540721d4b6) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3c ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r12) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r12.txt for more 20031011) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3c.p1", 0x000000, 0x100000, CRC(720f4404) SHA1(59ea034c0b638dbc5da787738ac324c8ece36b08) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3d ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r13) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r13.txt for more 20031013) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3d.p1", 0x000000, 0x100000, CRC(bf7e6f7f) SHA1(a56927da0ff3bd914dbbc800faef4753c3fed1e6) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3e ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r14) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r14.txt for more 20031018) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3e.p1", 0x000000, 0x100000, CRC(531e2d77) SHA1(2b616c0ff7ca4612f5e639e27981d12d9b18f562) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3f ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r15) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r15.txt for more 20031019) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3f.p1", 0x000000, 0x100000, CRC(dcdcf815) SHA1(57f152496a5e847119e9eb399ba071db5b245a2d) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3g ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r16) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style - ultra revision, see kof2k1k3r16.htm for more 20031120) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3g.p1", 0x000000, 0x100000, CRC(fead4731) SHA1(387097c6839e45ccb07139f6b8d41064e780421f) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3h ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r17) - Remix by Jason/K3 - (Character move change ultra revision - can choose Igniz 20031202) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3h.p1", 0x000000, 0x100000, CRC(ac581390) SHA1(d3351eccee63292c01bb9fa338bfb6cb21421426) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1k3o ) /* [OLD] The King of Fighters 2001 - (kof2k1k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3o.txt for more 20030629) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262k3o.p1", 0x000000, 0x100000, CRC(3531998e) SHA1(5682044819777b9dc2e26d1d3b5fbc07b7c81f2b) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ki ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ki.p1", 0x000000, 0x100000, CRC(b6a4103e) SHA1(218e7d970810f30535980cca470811167978da97) ) + ROM_LOAD16_WORD_SWAP( "262ki.p2", 0x100000, 0x400000, CRC(bb4b036f) SHA1(6f3bc151d24d90d5e22bcefca72874159e3bc525) ) + + NEO_SFIX_128K( "262ki.s1", CRC(290e8904) SHA1(0e5449e694a033309bee476b6481d0b5e0b84096) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) ) + ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) ) +ROM_END + +ROM_START( kof2k1mk ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2k1h - revise) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262mk.p1", 0x000000, 0x100000, CRC(97492f8e) SHA1(741f26907377aab55d16f34ec3e7906d59a087cc) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1mk2 ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2001h - revise version 2.0) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262mk2.p1", 0x000000, 0x100000, CRC(e8e7d3b0) SHA1(11ab4f0fcf82fe72723e3a5e25561b89db1935c9) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1mke ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2001h - revise) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262mke.p1", 0x000000, 0x100000, CRC(1d29382e) SHA1(a91929198fb6e16a5ccfac83a869d06afdff0bd8) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1lse ) /* The King of Fighters 2001 - Colour fix by CRC - LSE - (Character colour change for whip 2P, k'2P, VANESSA 2P, Angel 2P) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262lse.p2", 0x100000, 0x400000, CRC(e9ba7d37) SHA1(6d9ec274391c0177abe0f570f826a82caff8eb30) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1pa ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262pa.p1", 0x000000, 0x100000, CRC(f8a71b6f) SHA1(e4cc249b36b8cb72aa162adff4cdb302ce220812) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_128K( "262pa.s1", CRC(50986eeb) SHA1(cdca34ba5afdd7b56cd5430b3df80da53de9b990) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1pa2 ) // same as kof2k1pa except for s1 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262pa.p1", 0x000000, 0x100000, CRC(f8a71b6f) SHA1(e4cc249b36b8cb72aa162adff4cdb302ce220812) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_128K( "262pa2.s1", CRC(a4da10fd) SHA1(3b5f73d284f0f912d96e07d7b30122eaa43a04a8) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) ) + ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) ) +ROM_END + +ROM_START( kof2k1pjc ) /* The King of Fighters 2001 - Colour fix by TcwLee - (Colour fix 20030302) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262pjc.p2", 0x100000, 0x400000, CRC(42a745a6) SHA1(c98c620ee41ba311b83d4484a2ec8c00f108524a) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1pjo ) /* [OLD] The King of Fighters 2001 - (kof2k1pjco) - Colour Fix by TcwLee - (Colour fix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262pjo.p2", 0x100000, 0x400000, CRC(1da00d8e) SHA1(a79535a963567ec2060dc2ca81ef2b9b5afcb21c) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1pj1 ) /* [OLD] The King of Fighters 2001 - (kof2k1c1) - Colour fix by TcwLee - (Character colour change ?? rev.2 ?? 1508) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262pj1.p2", 0x100000, 0x400000, CRC(a287a90a) SHA1(dbccb523cba273d61b6a722d82e9013340c53d75) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1pj2 ) /* [OLD] The King of Fighters 2001 - (kof2k1c2) - Colour fix by TcwLee - (Character colour change - home use machine repair menue colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262pj2.p2", 0x100000, 0x400000, CRC(fb2387e0) SHA1(589c8cd61193f4a4319ec2b5551ed35fc51e6037) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1pj3 ) /* The King of Fighters 2001 - Colour fix by TcwLee - (Colour fix 20030720) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262pj3.p2", 0x100000, 0x400000, CRC(8adb985a) SHA1(2f96d06c2924308e9e072f7f24f57a6c3525f9d4) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1pls ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262pls.p1", 0x000000, 0x100000, CRC(758529a7) SHA1(cefdc7049772dcb77d658ac8571a12eedabda3c9) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_128K( "262pls.s1", CRC(088657e6) SHA1(7ab5eac3ff2a82e04fdc9dc8ee5d193db580e8d4) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1rm ) /* The King of Fighters 2001 - Remix by Raymonose - (Bases on kof2001h - character move change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262rm.p1", 0x000000, 0x100000, CRC(9be74a1b) SHA1(4785e08ab499dabcd37312ca15c1b9e0d61b2f08) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1rp ) /* The King of Fighters 2001 - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix PRO V1.02 final 2004.03.11) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262rp.p1", 0x000000, 0x100000, CRC(e9e42e55) SHA1(2a254d056ab046d2704e16ebbaa2b68c6e867dc7) ) + ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) ) + + NEO_SFIX_128K( "262rp.s1", CRC(492f5efe) SHA1(e18895da5c294245b6e119421affbd4f0e168c7a) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1rp0 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262rp.p1", 0x000000, 0x100000, CRC(e9e42e55) SHA1(2a254d056ab046d2704e16ebbaa2b68c6e867dc7) ) + ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262rp0.c1", 0x0000000, 0x800000, CRC(caeeb878) SHA1(233b5e1b864389e19fee16a1ab952c569dffc267) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "262rp0.c2", 0x0000001, 0x800000, CRC(278a8934) SHA1(c56f2cd6725c06bb4cfc79cdb03419b6392475fe) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "262rp0.c3", 0x1000000, 0x800000, CRC(ecfbe08f) SHA1(9459f62aaeb7b0187dbc33bd2e4bd116ef2ac425) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "262rp0.c4", 0x1000001, 0x800000, CRC(7ae95994) SHA1(d2e1e6606388a84875832e67f0190f94d7b74f55) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "262rp0.c5", 0x2000000, 0x800000, CRC(37f8e297) SHA1(4f40af3c55a9df3c252ac6e5ea466565cc254f8e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "262rp0.c6", 0x2000001, 0x800000, CRC(34372229) SHA1(5e121ca6d02d96893c29a5ec0672fe7ab18d5d05) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "262rp0.c7", 0x3000000, 0x800000, CRC(713e7150) SHA1(4c16d7ad96237dc98eec684f1a3646a7da2771a2) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "262rp0.c8", 0x3000001, 0x800000, CRC(9aa68c3a) SHA1(6a21de5a1676fec157ad01246352ddd838842512) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kof2k1rpo ) /* [OLD] The King of Fighters 2001 - (kof2k1rpo) - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix Pro V1.0a 200311xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262rpo.p1", 0x000000, 0x100000, CRC(a749e1af) SHA1(b3d463c9868ca246bf6f84157815543ab637e1d4) ) + ROM_LOAD16_WORD_SWAP( "262rpo.p2", 0x100000, 0x400000, CRC(72b2a025) SHA1(c8ff8ce42ec1f51931346367008a555198919658) ) + + NEO_SFIX_128K( "262rpo.s1", CRC(9ae95cb7) SHA1(a3402ec2cb9352ce635c138f678a1a0b047e5e0f) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1rp1 ) /* [OLD] The King of Fighters 2001 - kof2k1rpo1 - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix Pro V1.01 final1 2003.12.06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262rp1.p1", 0x000000, 0x100000, CRC(350f8571) SHA1(7ad5642b67b49025899ea925f96ddf910e9a5699) ) + ROM_LOAD16_WORD_SWAP( "262rpo.p2", 0x100000, 0x400000, CRC(72b2a025) SHA1(c8ff8ce42ec1f51931346367008a555198919658) ) + + NEO_SFIX_128K( "262rpo.s1", CRC(9ae95cb7) SHA1(a3402ec2cb9352ce635c138f678a1a0b047e5e0f) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ru ) /* The King of Fighters 2001 - Remix Ultra by Jason/K3 - (Character move change ultra revision - can choose Igniz 20040507 - v2.3) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ru.p1", 0x000000, 0x100000, CRC(3377ebee) SHA1(52b70ba1bb0801db02be3862dde1fcaf8ae5075b) ) + ROM_LOAD16_WORD_SWAP( "262ru.p2", 0x100000, 0x400000, CRC(394bcc59) SHA1(f08adf02bff87d7399e07f70acbecf1a3da3c731) ) + + NEO_SFIX_128K( "262ru.s1", CRC(a5d90035) SHA1(8c651aa58d135d4428f24cfc6b733b16812f33d6) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1ru0 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262ru.p1", 0x000000, 0x100000, CRC(3377ebee) SHA1(52b70ba1bb0801db02be3862dde1fcaf8ae5075b) ) + ROM_LOAD16_WORD_SWAP( "262ru.p2", 0x100000, 0x400000, CRC(394bcc59) SHA1(f08adf02bff87d7399e07f70acbecf1a3da3c731) ) + + NEO_SFIX_128K( "262ru.s1", CRC(a5d90035) SHA1(8c651aa58d135d4428f24cfc6b733b16812f33d6) ) + + NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) ) + ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) ) +ROM_END + +ROM_START( kof2k1seh ) /* The King of Fighters 2001 - Super Enhance Hack by Ydmis - (Bases on kof2001h - can choose Zero and Igniz - ultra kill start is max - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262seh.p1", 0x000000, 0x100000, CRC(bcc84782) SHA1(31164d1f7303f0dbca5c4c2c43d081bf1b5db7df) ) + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1sob ) /* The King of Fighters 2001 - Colour fix by Ayane - (Character colour change - 1P character turns to a corpse - style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) + ROM_LOAD16_WORD_SWAP( "262sob.p2", 0x100000, 0x400000, CRC(e8f7eef2) SHA1(400a31d2b863cf0b100149ab254ac3b6d6158c0e) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1st ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262st.p1", 0x000000, 0x100000, CRC(87c5979b) SHA1 (53d7fbe3f4ed582abccd87ca966e430ac9766467) ) + ROM_LOAD16_WORD_SWAP( "262st.p2", 0x100000, 0x400000, CRC(49d5112d) SHA1 (5ec0deec05f79878edbaa38107afcc0de17102fa) ) + + NEO_SFIX_128K( "262pls.s1", CRC(088657e6) SHA1(7ab5eac3ff2a82e04fdc9dc8ee5d193db580e8d4) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) ) + ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) ) +ROM_END + +ROM_START( kof2k1st2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262st2.p1", 0x000000, 0x100000, CRC(ce91a972) SHA1(2e2f42385a82b5f95ae461465c57890bf367f82d) ) + ROM_LOAD16_WORD_SWAP( "262st2.p2", 0x100000, 0x400000, CRC(1420ef21) SHA1(af3d754a2d4d22d573a85bda5d8dda20f38fc369) ) + + NEO_SFIX_128K( "262st2.s1", CRC(2e3229a3) SHA1 (feb028bf43ae30e3091a67abc7c23a9816a3412e) ) + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) ) + ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) ) + ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) ) + ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) ) + ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) ) + ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) ) + ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) ) + ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) ) +ROM_END + +ROM_START( kof2k1wh ) /* The King of Fighters 2001 - Remix by Wesker - (Character move change) */ + // there's a decrypted version of this set, using s1 and cx from kof2k1pa2 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262wh.p1", 0x000000, 0x100000, CRC(67788800) SHA1(be87196cee03a0ca209319d2fa577ddf61afcaf4) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1z1 ) /* The King of Fighters 2001 - Hack by Zhangshee - (Can choose Zero and Igniz) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262z1.p1", 0x000000, 0x100000, CRC(d170a91d) SHA1(155e63a5af548f708228123f44c4c2776d470a1b) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + +ROM_START( kof2k1z2 ) /* The King of Fighters 2001 - Hack by Zhangshee - (Can choose Zero and Igniz - ??) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262z2.p1", 0x000000, 0x100000, CRC(71b5d0ff) SHA1(78ad8da1c97883e8580137dcdc8538ce090b37c4) ) + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) +ROM_END + + + +GAME( 2001, kof2001d, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001d, ROT0, "Eolith / SNK", "Kof2001 (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2001n, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 (fully decrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ay, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Kurouri and Ydmis", "Kof2001 (Revised set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1b, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Add Char set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1b1, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996 / KQZ / Zuojie", "Kof2001 (Boss Fixed Version by KOF1996, KQZ & ZUOJIE)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1b3, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof2001 (Bloodlust)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1b4, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Katana", "Kof2001 (Bloodlust Reload hack by Katana)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1bd2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ayane", "Kof2001 (Char color changed - Attack cremation scarlet)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1bh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Dodowang", "Kof2001 (Add Char set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1bh1, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1bs, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "Kof2001 PS2 PLUS ( Eddids )", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1bs2, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "EGCG / Dodowang", "Kof2001 Boss Enabler v2.0 by Dodowang [EGCG]", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ce, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 9)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cfc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "C6F8", "Kof2001 (Char color changed set 9 - rel 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cf1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "C6F8", "Kof2001 (Iori p1 and p2 Color Changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ch, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Chase", "Kof2001 (Add Char - Diff Moves)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1clr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 8)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cp, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cp1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cp2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cp3, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cp4, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cp5, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cp6, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 7)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cp7, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed - Attack cremation ice blue set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1cr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "CrUmp", "Kof2001 (Revised set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1eh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ehc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ehr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Raymonose", "Kof2001 (Ultra kill start max - Ultra pow hack - Diff Moves)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1gm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Color style remix set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1guan, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGRT", "Kof2001 (Guan Version (Remix by NGRT))", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ha, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ha2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver rev.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1hao, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver old)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1hb, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Kurouri", "Kof2001 (Add Char set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1hgm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Color style remix set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ice, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Char color changed - Attack cremation ice blue set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ic2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Char color changed - Attack cremation ice blue set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3o, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030629)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k32, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030714)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k33, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030725)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k34, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030730)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k35, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030806)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k36, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030815)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k37, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030817)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k38, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030823)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k39, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030826)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3a, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030907)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3b, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031005)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3c, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031011)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3d, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031013)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3e, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031018)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3f, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031019)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3g, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - Ultra rev - 031120)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1k3h, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - Add Igniz - 031202)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ki, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kalce", "Kof2001 PLUS (Special ST V0.5 by Kalce)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1lse, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "CRC-LSE", "Kof2001 (Char color changed for whip 2P, k'2P, VANESSA 2P, Angel 2P)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1mk, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 3 Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1mk2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 3 v2.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1mke, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1pa, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pa, ROT0, "bootleg", "Kof2001 Plus (set 2, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1pa2, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 PLUS (Other Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1pjc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix 030302)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1pjo, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1pj1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Char color changed ?? rev.2 ?? 1508)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1pj2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Char color changed - Machine repair menu col changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1pj3, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix 030720)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k1pls, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "bootleg", "Kof2001 Plus (set 1, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1rm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Raymonose", "Kof2001 (Diff Moves set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof2k1rp, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (v1.02 final 040311)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1rp0, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "FGCH / Jason / Kim / Raymonose", "Kof2001 REMIX PRO v1.02 Final by Jason, Kim & Raymonose [FGCH]", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1rp1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (V1.01 final1 031206)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k1rpo, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (V1.0a 0311xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof2k1ru, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Jason/K3", "Kof2001 Remix Ultra (Diff Moves ultra rev - Add Igniz - 20040507 - v2.3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1ru0, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof2001 REMIX ULTRA Ver 2.3 by Jason", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1seh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1sob, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ayane", "Kof2001 (Char color changed - 1P char corpse-style remix)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k1st, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof2001 Special ST Version (Hack by KOF1996)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1st2, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof2001 (Special ST Version hack by Kof1996)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1wh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Wesker", "Kof2001 (Diff Moves set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1z1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Add Char set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kof2k1z2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Add Char set 5)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof2002.cpp b/docs/release/src/hbmame/drivers/kof2002.cpp new file mode 100644 index 00000000000..8be202e34fe --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof2002.cpp @@ -0,0 +1,3581 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2002d ) +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2002m ) +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); +} + +// S1-rom is scrambled. This code looks right but doesn't work. +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2bd ) +{ + DRIVER_INIT_CALL(neogeo); +#if 0 + dynamic_buffer src( fix_region_size ); + int i,j; + UINT8 *dst = fix_region; + memcpy (&src[0], &dst[0], fix_region_size); + + for (i = 1; i < fix_region_size/0x80; i++) + { + j = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 7, 6, 2, 5, 4, 3, 1, 0, 8); + memcpy(&dst[i*0x80], &src[j*0x80], 0x80); + } +#endif +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2dbh ) +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, 0, 0, KOF2002_GFX_KEY); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2h ) +{ + DRIVER_INIT_CALL(neogeo); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2lb ) +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2ps2a ) +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); +} + + + +ROM_START( kof2002d ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2002x ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265x.p1", 0x000000, 0x100000, CRC(ec7402a2) SHA1(a3d94c709d4c23cc7d1502a9e92a34f49cbcc878) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2ath ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ath.p1", 0x000000, 0x100000, CRC(5bb7eedb) SHA1(5d2566ae008c34e91799e1cd5c771be6e4de02df) ) + ROM_LOAD16_WORD_SWAP( "265ath.p2", 0x100000, 0x400000, CRC(4ecfc414) SHA1(e8b991f35d850e88f2f360438ba72748129342c9) ) + + NEO_SFIX_128K( "265ath.s1", CRC(df4ce33b) SHA1(1287c84c16e17df7d5887af57fc6657da452d0ae) ) + + NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2b ) /* The King of Fighters 2002 - Hack by Alphax2? - (Can choose Kusanagi and Rugal) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265b.p1", 0x000000, 0x100000, CRC(f03a9769) SHA1(558eaf60244b7b01588dc773a31d5e3f3ffdbb29) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2b1 ) /* The King of Fighters 2002 - Hack by Alphax2? - (Can choose Kusanagi and Rugal) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265b1.p1", 0x000000, 0x100000, CRC(9b5a47e3) SHA1(62609f623982cf6eecf855ebd1ad30e20e0846b8) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2bd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9EDE7323) SHA1(AD9D45498777FDA9FA58E75781F48E09AEE705A6) ) + ROM_LOAD16_WORD_SWAP( "265bd.p2", 0x100000, 0x400000, CRC(65DF650D) SHA1(C13E466E3FDB349BA2E0D3FE01DAEDE759130828) ) + + NEO_SFIX_128K( "265bld.s1", CRC(4c09cb82) SHA1(24c412d6bd11d16a9d6975f0eada776d1229ea4b) ) + //NEO_SFIX_128K( "265bd.s1", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2E0627FC5D689BF64FE36F02A489408D103C4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2bh ) /* The King of Fighters 2002 - Hack by Aplhax2 - (Can choose Kusanagi and Rugal) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265bh.p1", 0x000000, 0x100000, CRC(ca96f87d) SHA1(b0daca398c5c67400540f774dbc2afe393e09fd6) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2bjh ) /* The King of Fighters 2002 - Remix by Ben Jeremy - (Character move change 20031025) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265bjh.p1", 0x000000, 0x100000, CRC(16554c00) SHA1(7915a667a9669fd3bf97d4cf1cf6a91e6965753f) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2bjo ) /* [OLD] The King of Fighters 2002 - (kof2k2bjho) - Remix by Ben Jeremy - (Character move change 20031013) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265bjo.p1", 0x000000, 0x100000, CRC(cc0be314) SHA1(72f0c36bcab70094a875c47f555a4d3ff6e3a491) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2bld ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265bld.p1", 0x000000, 0x100000, CRC(0a6b5e22) SHA1(0db2c458e79a0380ccfa3e1772e42223f0edaaa9) ) + ROM_LOAD16_WORD_SWAP( "265bld.p2", 0x100000, 0x400000, CRC(f951b913) SHA1(d1b2025d363b280f40c823d11c277c81d8087ee4) ) + + NEO_SFIX_128K( "265bld.s1", CRC(4c09cb82) SHA1(24c412d6bd11d16a9d6975f0eada776d1229ea4b) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2E0627FC5D689BF64FE36F02A489408D103C4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2blood2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265blood2.p1", 0x000000, 0x100000, CRC(9573364c) SHA1(1fcb64aa30ef3ee3519ca7b77318f6f87ea24c82) ) + ROM_LOAD16_WORD_SWAP( "265blood2.p2", 0x100000, 0x400000, CRC(670a8b89) SHA1(090f80381cf5a02fc1eed25a781388e246d2fa10) ) + + NEO_SFIX_128K( "265blood2.s1", CRC(59bda320) SHA1(0d8846ad307d1ca778bdcc89c16efe766266f1b7) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2br ) /* KOF 2002 Portuguese */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265br.p1", 0x000000, 0x100000, CRC(0f6dbacc) SHA1(c28bff82dc1d802cb1c398f4aaac0d2052418b87) ) + ROM_LOAD16_WORD_SWAP( "265br.p2", 0x100000, 0x400000, CRC(c7ca77ff) SHA1(1ac9b9a37ddb11979514eba1d67551dfa8e6bc36) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2br1 ) /* KOF 2002 Portuguese */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265br1.p1", 0x000000, 0x100000, CRC(b73033df) SHA1(c8e1ce1d35be1dd537709a533e7dac37e047f428) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2br2 ) /* KOF 2002 Portuguese */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265br2.p1", 0x000000, 0x100000, CRC(95986d7a) SHA1(3f9da8385c0c9bfbbe088860816c247696904c24) ) + ROM_LOAD16_WORD_SWAP( "265br2.p2", 0x100000, 0x400000, CRC(9b4d2ba4) SHA1(7b07788be06031d7261b4f8d8e5a34c0536846ed) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2bs ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265bs.p1", 0x000000, 0x100000, CRC(d9ccb672) SHA1(9d24c9d27120c379e0ec9d3717a4bb40be2f7027) ) + ROM_LOAD16_WORD_SWAP( "265bs.p2", 0x100000, 0x400000, CRC(96c45626) SHA1(57f58de4051b73848cb6622e223777030e4ef954) ) + + NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2c2 ) // hack of kof2k2or + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265or.p1", 0x000000, 0x100000, CRC(eb84d68f) SHA1(8dccf250cf04e129529793abcc655f5fc7fb6629) ) + ROM_LOAD16_WORD_SWAP( "265c2.p2", 0x100000, 0x400000, CRC(5b307583) SHA1(283dffc62c279e7b237da3a30a15e06cccda7a80) ) + + NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) ) + ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) ) +ROM_END + +ROM_START( kof2k2cf1 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco) - Colour fix by C6F8 - (Character colour change for Iori p3 and p4) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265cf1.p2", 0x100000, 0x400000, CRC(7df52bd4) SHA1(37dddfca361012c8e04ad6fa45e8a56d80aa5f31) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2cf2 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco2) - Colour fix by C6F8 - (Character colour change - release 2 built 20030827) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265cf2.p2", 0x100000, 0x400000, CRC(f65d9dd1) SHA1(81ca014633385bc1e4e13b962b8aa35b246f63a7) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2cf3 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco3) - Colour fix by C6F8 - (Character colour change - release 3 built 20030831) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265cf3.p2", 0x100000, 0x400000, CRC(9b2be0af) SHA1(069ab514aceda7ba43c9557afef9320b84b7eb25) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2cfc ) /* The King of Fighters 2002 - Fix by C6F8 - (Character colour change release 4 built 20031017) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265cfc.p2", 0x100000, 0x400000, CRC(e22d4ab6) SHA1(7ebab455645c428819d208d66b7b630c58d8f172) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2ch ) /* [OLD] The King of Fighters 2002 - (kof2k2ch) - Revise by Coolhot - (Fighter combat moves revision - bases on CHL´s and Riky´s work 2003/05) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ch.p1", 0x000000, 0x100000, CRC(9bc19d92) SHA1(6535304911aad8901d13fa254369b0b0c726382f) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2chl ) /* [OLD] The King of Fighters 2002 - (kof2k2chl) - Revise by CHL - (Enhanced game play by chl 20030410) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265chl.p1", 0x000000, 0x100000, CRC(4824e27d) SHA1(038a109dda37fda2b43614cadabb1e1672f054c4) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2cl2 ) /* [OLD] The King of Fighters 2002 - (kof2k2chl2) - Revise by CHL - (Enhanced game play by chl revision 2 20030413) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265chl2.p1", 0x000000, 0x100000, CRC(6b9cdd9c) SHA1(8764ec6c56eea54c86acc3b80d3f8cae5941f1d6) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2cl3 ) /* [OLD] The King of Fighters 2002 - (kof2k2chl3) - Revise by CHL - (Enhanced game play by chl revision 3 20030413) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265chl3.p1", 0x000000, 0x100000, CRC(4ae81447) SHA1(add9e5a6737c4b00da326a947043e227d5dfcbb8) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2cn ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265cn.p1", 0x000000, 0x100000, CRC(07de031f) SHA1(6d2c6caea4d94388da597e89cde61ed6efba96fa) ) + ROM_LOAD16_WORD_SWAP( "265cn.p2", 0x100000, 0x400000, CRC(9cb1dd35) SHA1(5e04716cf02e3321fac7bd4551fa352d8a54c7a3) ) + + NEO_SFIX_128K( "265cn.s1", CRC(a449f9ba) SHA1(f1744fd91d85a6391e3e5ff69d868ea9976f04c7) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265cn.c1", 0x0000000, 0x800000, CRC(35b6ee83) SHA1(1ee4fdd0482ae391544535020c96dba1fd4fb9a4) ) + ROM_LOAD16_BYTE( "265cn.c2", 0x0000001, 0x800000, CRC(9d4bd32f) SHA1(ed0dce5dd6cffce2c55a62559b368ccc46115497) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265cn.c7", 0x3000000, 0x800000, CRC(204c1b0e) SHA1(4e44371fc4d0abbd455554eb066ede07ab5f68f9) ) + ROM_LOAD16_BYTE( "265cn.c8", 0x3000001, 0x800000, CRC(b44c1d54) SHA1(22f9fb31b4f36f5c4fce66b5bd64b45737db43d9) ) +ROM_END + +ROM_START( kof2k2cori ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265cori.p1", 0x000000, 0x100000, CRC(0a3a1f32) SHA1(1f53828a441e025ca5940ed54caa10eb1dde8b32) ) + ROM_LOAD16_WORD_SWAP( "265cori.p2", 0x100000, 0x400000, CRC(7bf474a9) SHA1(8d836a408ae7c754dd7994ce329e649c3714ad6f) ) + + NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) ) + + NEO_BIOS_AUDIO_128K( "265cori.m1", CRC(4cd619bb) SHA1(5dc0d5e923985072e87b485dd8e5ef805f583e15) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) ) + ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) ) +ROM_END + +ROM_START( kof2k2dbh ) /* The King of Fighters 2002 - Hack by Dodowang - (Can choose Kusanagi and Rugal - when using NrX have icons in character select menu -> MVS timer flaw) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265dbh.p1", 0x000000, 0x100000, CRC(e9d96cf7) SHA1(fc9fe5ac13cf328867538a474171a6878a09a731) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_128K( "265dbh.s1", CRC(491510d1) SHA1(506fb00c1b1a0e8077bdeba9acee4245df918a98) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2e1 ) /* The King of Fighters 2002 - Hack by Kurouri - (Can choose Kusanagi and Rugal) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265e1.p1", 0x000000, 0x100000, CRC(b1ad673f) SHA1(013928acacb501384a597e9c5fce96e1745043b7) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2e2 ) /* The King of Fighters 2002 - Hack by Creamymami - (Can choose Kusanagi and Rugal) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265e2.p1", 0x000000, 0x100000, CRC(4a07c6be) SHA1(7f8558b1938f03d2f64034aefb774b4553863e45) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2e3 ) /* The King of Fighters 2002 - Enhance by Creamymami - (Can choose Kusanagi and Rugal - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265e3.p1", 0x000000, 0x100000, CRC(7b560cdb) SHA1(6589a7e39d72bb87be62baa89f07a92bdaa6fc0a) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2ehr ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 33%) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ehr.p1", 0x000000, 0x100000, CRC(526ab059) SHA1(526e1bbde1fb5425b780a6de2f5f9d7d843ca6be) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2er2 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr2) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 66%) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265er2.p1", 0x000000, 0x100000, CRC(d41c1a04) SHA1(60d222ede6d6815d504204711272b11238e402b2) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2er3 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr3) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 80% 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265er3.p1", 0x000000, 0x100000, CRC(f322ad04) SHA1(7bc2fb5e97742201877d2d980cc4801b69b6d3a2) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2er4 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr4) - Remix by Raymonose) - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 89% 20030420) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265er4.p1", 0x000000, 0x100000, CRC(75e595b6) SHA1(2460216721a254dc941b4d00368d67e46ed4e551) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2erx ) /* [OLD] The King of Fighters 2002 - (kof2k2ehrx) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265erx.p1", 0x000000, 0x100000, CRC(5a6e94e5) SHA1(bbc7e2c9eaec287fc65a0dfb6d2c7934ec7afc4c) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2evo ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265evo.p1", 0x000000, 0x100000, CRC(60AF82AB) SHA1(dfa4b99f16ca3f7fbe06604788272acf82ba57fa) ) + ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x100000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) ) + + NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265evo.c7", 0x3000000, 0x800000, CRC(B4C87865) SHA1(8df7ac8bbf5f61d2fbca4cd7424074e95887ad3d) ) + ROM_LOAD16_BYTE( "265evo.c8", 0x3000001, 0x800000, CRC(74C10CB6) SHA1(2979ab21e3632c478ad3f70148691a1a69abd378) ) +ROM_END + +ROM_START( kof2k2evo2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265evo2.p1", 0x000000, 0x100000, CRC(6e886994) SHA1(e67764738a83b5f34fe0fc4a9e33f2c1d67507db) ) + ROM_LOAD16_WORD_SWAP( "265evo2.p2", 0x100000, 0x400000, CRC(4c91603b) SHA1(f9db61348220a4a626dee5fbd0498b24aa74f77d) ) + + NEO_SFIX_128K( "265evo.s1", CRC(ca56e755) SHA1(ee8b05164682baef782111996f18927683acf577) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) ) + ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ibp.c7", 0x3000000, 0x800000, CRC(f501b9b2) SHA1(84e969243170382e3782cfe70ec0ad1b5638cb7b) ) + ROM_LOAD16_BYTE( "265ibp.c8", 0x3000001, 0x800000, CRC(2ebcf142) SHA1(8129ed1aa7d201d4b9ed3447ffca829d07783571) ) + ROM_LOAD16_BYTE( "265evo.c7", 0x3000000, 0x800000, CRC(B4C87865) SHA1(8df7ac8bbf5f61d2fbca4cd7424074e95887ad3d) ) + ROM_LOAD16_BYTE( "265evo.c8", 0x3000001, 0x800000, CRC(74C10CB6) SHA1(2979ab21e3632c478ad3f70148691a1a69abd378) ) +ROM_END + +ROM_START( kof2k2fy ) /* The King of Fighters 2002 - Colour fix by UNKNOWN - (Lifebar + K', Vanessa, Iori, Kula and Angel colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265fy.p2", 0x100000, 0x400000, CRC(40bf4372) SHA1(d6bbf637ae064d5d9cfc1acc71ef69cb19b03062) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2gc ) /* The King of Fighters 2002 - Colour fix by Lewis67 - (Colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265gc.p2", 0x100000, 0x400000, CRC(c0ce3064) SHA1(14179ed2c851411710f391058c6d93d829f6a821) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2gc2 ) /* The King of Fighters 2002 - Colour fix by Lewis67 - (Colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265gc2.p2", 0x100000, 0x400000, CRC(ceb56128) SHA1(f29f37efe7d18cd18c2ebaaba57ee1cfc0ccb144) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2gf ) /* The King of Fighters 2002 - Colour fix by Kumagorou - (Colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265gf.p2", 0x100000, 0x400000, CRC(23850b59) SHA1(e8ef5c834e2ef20b877713ea99e357438eb55a40) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2green ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265green.p2", 0x100000, 0x400000, CRC(74df4436) SHA1(266ccc13fe144403215527bfabbec14240f2bb33) ) + + NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2ht ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ht.p1", 0x000000, 0x100000, CRC(3852f80e) SHA1(eca7670b368f9fbf2242f52a87fd18adf6afc24c) ) + ROM_LOAD16_WORD_SWAP( "265ht.p2", 0x100000, 0x400000, CRC(dec98282) SHA1(8a3c055c6c728a77134bda1f379995ebca623654) ) + + NEO_SFIX_128K( "265ht.s1", CRC(8d2eb52e) SHA1(b3807f982e29da326c30147c2d73e1174082a05e) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2ibp ) // A few bugs with the text caused by someone in KOFON team + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ibp.p1", 0x000000, 0x100000, CRC(5133b7e4) SHA1(50ce61dd601d94dd3fd975aa0498dd082de74e82) ) + ROM_LOAD16_WORD_SWAP( "265ibp.p2", 0x100000, 0x400000, CRC(63ec01c0) SHA1(e2557e67c2dca098e03635df84b8c17ec39cbd29) ) + ROM_FILL(0xb1460,1,0x49) + ROM_FILL(0xb1461,1,0x4e) // Fix INSERT COIN // There's another bug if you insert 2 coins + ROM_FILL(0xb1462,1,0x53) + + NEO_SFIX_128K( "265ibp.s1", CRC(00e7d96c) SHA1(b7c6141fa8cd55524725f55fa396f502de9e8be3) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) ) + ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ibp.c7", 0x3000000, 0x800000, CRC(f501b9b2) SHA1(84e969243170382e3782cfe70ec0ad1b5638cb7b) ) + ROM_LOAD16_BYTE( "265ibp.c8", 0x3000001, 0x800000, CRC(2ebcf142) SHA1(8129ed1aa7d201d4b9ed3447ffca829d07783571) ) +ROM_END + +ROM_START( kof2k2ice ) /* The King of Fighters 2002 - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265ice.p2", 0x100000, 0x400000, CRC(6319dd5a) SHA1(0dfb67938aab5e1aa1e27cd80f8448ac5f4b3237) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2ic1 ) /* [OLD] The King of Fighters 2002 - (kof2k2i) - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue - 80%) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265ic1.p2", 0x100000, 0x400000, CRC(cb07680b) SHA1(e6c9aae1fea99ade21a3bf97cd74b48128d78a43) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2ic2 ) /* [OLD] The King of Fighters 2002 - (kof2k2iceo) - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265ic2.p2", 0x100000, 0x400000, CRC(dcbf29a9) SHA1(c48744476405c2b5a23e0c3b09c65e67487d81bb) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2jc ) /* The King of Fighters 2002 - Colour fix by Jui Lee - (Character colour change for Athena 3P, Kula 3P and Kula 4P) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265jc.p2", 0x100000, 0x400000, CRC(3f515638) SHA1(e902c2d47486ad57928c60067ce24033e294f6bf) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2js ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265js.p1", 0x000000, 0x100000, CRC(b486fca8) SHA1(44aab663711c0591d5f93557ac9620853ca65e01) ) + ROM_LOAD16_WORD_SWAP( "265js.p2", 0x100000, 0x400000, CRC(75185760) SHA1(5501d4d9ac7fcd83102f6fbee7d986006566bf9d) ) + + NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) ) + + NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) ) + ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) ) + ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) ) + ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) ) + ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) ) + ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) ) +ROM_END + +ROM_START( kof2k2js2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265js2.p1", 0x000000, 0x100000, CRC(8da72d5c) SHA1(315d104da120fe1df041221209dc609a2f1d41a8) ) + ROM_LOAD16_WORD_SWAP( "265js.p2", 0x100000, 0x400000, CRC(75185760) SHA1(5501d4d9ac7fcd83102f6fbee7d986006566bf9d) ) + + NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) ) + + NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265js2.v1", 0x000000, 0x800000, CRC(6e7e3508) SHA1(9d995fd9e9665da26153704a9fa539259759c105) ) + ROM_LOAD( "265js2.v2", 0x800000, 0x800000, CRC(2157b90f) SHA1(407422df7a24530d21119ef9233b831fb0166661) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) ) + ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) ) + ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) ) +ROM_END + +ROM_START( kof2k2js4 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265js4.p1", 0x000000, 0x100000, CRC(1003a13b) SHA1(a4a722a5319be46c6b5ac735142f50aab75defff) ) + ROM_LOAD16_WORD_SWAP( "265js4.p2", 0x100000, 0x400000, CRC(27b26aad) SHA1(12ab5034ab4bf302599ffe1bc1c841f56cc083f5) ) + + NEO_SFIX_128K( "265js4.s1", CRC(1ac24409) SHA1(6c294e4651c4fef66a68845d3281accf5afc2d84) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2k2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265chl3.p1", 0x000000, 0x100000, CRC(4ae81447) SHA1(add9e5a6737c4b00da326a947043e227d5dfcbb8) ) + ROM_LOAD16_WORD_SWAP( "265k2.p2", 0x100000, 0x400000, CRC(7cc7cad3) SHA1(b09c628b0d4f177cd9ce8c51bcb4c68ca7afd26d) ) + + NEO_SFIX_128K( "265k2.s1", CRC(10de5d7c) SHA1(44f4f523a787cf3094923483b824d7795858aff6) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2k3o ) /* [OLD] The King of Fighters 2002 - (kof2k2k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3o.txt for more 20030629) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k3o.p1", 0x000000, 0x100000, CRC(3e63f35d) SHA1(1943c1b7619229c59802828543e2138d033e87a8) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k32 ) /* [OLD] The King of Fighters 2002 - [OLD] The King of Fighters 2002 - (kof2k2k3r2) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r2.txt for more 20030725) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k32.p1", 0x000000, 0x100000, CRC(06404013) SHA1(a0ea9b1bfcf3a046f9faa6e8fe4fdaa2eeae1c5a) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k33 ) /* (kof2k2k3r3) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r3.txt for more 20030730) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k33.p1", 0x000000, 0x100000, CRC(f1b0e086) SHA1(5c99e2f3c8297ff99aaadd0e677fda2d2d27a57c) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k34 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r4) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r4.txt for more 20030805) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k34.p1", 0x000000, 0x100000, CRC(8e696bc6) SHA1(85b7687c7609dddd6e8a4aa876b143804d2fca67) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k35 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r5) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r5.txt for more 20030815) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k35.p1", 0x000000, 0x100000, CRC(7be62755) SHA1(bc8c9fcfee147477065957f0e6d4c6e69d1979d9) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k36 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r6) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r6.txt for more 20030818) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k36.p1", 0x000000, 0x100000, CRC(ee866a5f) SHA1(2d4a37f874a6636948013eddde52d82a769c6111) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k37 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r7) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r7.txt for more 20030823) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k37.p1", 0x000000, 0x100000, CRC(b61f27ee) SHA1(8a74527696a6b019241fb0ad2468123cfbc09b79) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k38 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r8) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r8.txt for more 20030824) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k38.p1", 0x000000, 0x100000, CRC(7aab9c67) SHA1(4e6eb6acada027e91b943e359a291f1713f37ec8) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k39 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r9) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r9.txt for more 20030829) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k39.p1", 0x000000, 0x100000, CRC(7d6e0295) SHA1(d8cd5c9650858bc8af35cc31e932ae024af2963a) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k3a ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r10) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r10.txt for more 20030907) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k3a.p1", 0x000000, 0x100000, CRC(aa2539b4) SHA1(b8ed72edc7811afd117ccf4db0ba05bb8f39862f) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k3b ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r11) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r11.txt for more 20030908) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k3b.p1", 0x000000, 0x100000, CRC(88aad54e) SHA1(03aff6b613a6f1e5198803e4ee0c931b81940653) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k3c ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r12) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r12.txt for more 20031005) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k3c.p1", 0x000000, 0x100000, CRC(a54ef179) SHA1(a6bc835b2803c26d915dbb6c5496997134fde085) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k3d ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r13) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r13.txt for more 20031009) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k3d.p1", 0x000000, 0x100000, CRC(07ba5eaf) SHA1(f6e51f1240c38991886fd23185f45d72702aca07) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k3e ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r14) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r14.txt for more 20031016) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k3e.p1", 0x000000, 0x100000, CRC(1fd40e4d) SHA1(b0f355c5b99d2f3a2281c63d3f3d23fa809ceb2e) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k3f ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r15) - Remix by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20031202) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k3f.p1", 0x000000, 0x100000, CRC(2d7cd2b8) SHA1(a7a6c23431d01a0a8d6d8d63b4dbae78e9a762cb) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2k3g ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r16) - Remix by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20040418) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265k3g.p1", 0x000000, 0x100000, CRC(035d16f9) SHA1(7472fe8887d4f88e85838913821aac7452391aef) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2kai ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265kai.p1", 0x000000, 0x100000, CRC(243bd906) SHA1(ec7c2034b050dbe93a2b3bc23a1e9dc22f5b1d40) ) + ROM_LOAD16_WORD_SWAP( "265kai.p2", 0x100000, 0x400000, CRC(c1200d66) SHA1(73b6c449c5de4dae84f5a3bbad67799a39a6a5d5) ) + + NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) ) + ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2kc ) /* The King of Fighters 2002 - Colour fix by Fighters Kim - (Colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265kc.p2", 0x100000, 0x400000, CRC(86b62f43) SHA1(f9afbce58843258d236144b4de8c3370a9185f1a) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2kc2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265kc2.p1", 0x000000, 0x100000, CRC(811512bb) SHA1(510f5bb0ba8c72ca5377b18f75d71816e8eb79d1) ) + ROM_LOAD16_WORD_SWAP( "265kc2.p2", 0x100000, 0x400000, CRC(7808c018) SHA1(2d671596de7a878b324d81ba464b58530088eb33) ) + + NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265kc2.c7", 0x3000000, 0x800000, CRC(54fa8789) SHA1(71311275bed0c47af2ddbcd1c5f77664c6a73a56) ) + ROM_LOAD16_BYTE( "265kc2.c8", 0x3000001, 0x800000, CRC(ce62cb09) SHA1(30f17893ce6441bf41257ab93df5b99683098cfc) ) +ROM_END + +ROM_START( kof2k2kk ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265kk.p1", 0x000000, 0x100000, CRC(69301bc9) SHA1(6f5d0ebe12e88c98ec1f416d440ad7d569886966) ) + ROM_LOAD16_WORD_SWAP( "265kk.p2", 0x100000, 0x400000, CRC(816c5aa2) SHA1(8821f91d4eeab58e3df669f3ab8817a94010f297) ) + + NEO_SFIX_128K( "265kk.s1", CRC(dd1dcb5b) SHA1(a24b4d725e1a3640f9a5cc46ed26192ffef79862) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265smg.c7", 0x3000000, 0x800000, CRC(febfa475) SHA1(ed69f7536d39522b85bfaa512e75b85d08b439e9) ) + ROM_LOAD16_BYTE( "265smg.c8", 0x3000001, 0x800000, CRC(8f9b7991) SHA1(9c6e6af48c18e81ecba68563f8fb9caa85899672) ) +ROM_END + +ROM_START( kof2k2lb ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265lb.p1", 0x000000, 0x100000, CRC(1602f059) SHA1(8a94d7f5efadd2a4e5a0bd360825746592e351b3) ) + ROM_LOAD16_WORD_SWAP( "265lb.p2", 0x100000, 0x400000, CRC(7f8298fb) SHA1(b902d72793e0de74ed44b30475999ef0e3722394) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2leon ) // Credit display is incorrect + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265leon.p1", 0x000000, 0x100000, CRC(eba68160) SHA1(1d226e00782df71556666222e20f48268c17968c) ) + ROM_LOAD16_WORD_SWAP( "265leon.p2", 0x100000, 0x400000, CRC(952fae3d) SHA1(09f868eb02b8df425c80f59ad43adbc3107755ab) ) + + NEO_SFIX_128K( "265leon.s1", CRC(adf096e9) SHA1(812e321319d9426dbeeb55f14b2bf61bd9c2998e) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265leon.c7", 0x3000000, 0x800000, CRC(c02c8a0c) SHA1(f757dc124d8375c47af05b650bfc69997a27c63b) ) + ROM_LOAD16_BYTE( "265leon.c8", 0x3000001, 0x800000, CRC(45ac1284) SHA1(d59357d629557c09d559518d235c0379fa88dd70) ) +ROM_END + +ROM_START( kof2k2mcr ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265mcr.p1", 0x000000, 0x100000, CRC(1aeb806a) SHA1(a79d0021c4076efe4aae00994dfa7f3ddfd41bc5) ) + ROM_LOAD16_WORD_SWAP( "265mcr.p2", 0x100000, 0x400000, CRC(4134dc22) SHA1(20d887b96957d5255f2b18950ea45b6ecd782b51) ) + + NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265spls.c7", 0x3000000, 0x800000, CRC(31e7aaa3) SHA1(733710493cd885701f5f34078a875bc77ed57442) ) + ROM_LOAD16_BYTE( "265spls.c8", 0x3000001, 0x800000, CRC(f26a445b) SHA1(3fba6d95c1af77a6fe2e65af39eba0ce3e4134b7) ) +ROM_END + +ROM_START( kof2k2moi2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265moir.p1", 0x000000, 0x100000, CRC(0851940b) SHA1(5f374412c783b2d2392693d64c084dac4a7f3438) ) + ROM_LOAD16_WORD_SWAP( "265moir.p2", 0x100000, 0x400000, CRC(95c2783d) SHA1(49eb7ceba441988ff974bc5b9b935036b8701291) ) + + NEO_SFIX_128K( "265k2.s1", CRC(10de5d7c) SHA1(44f4f523a787cf3094923483b824d7795858aff6) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265moi2.c1", 0x0000000, 0x800000, CRC(4d15a195) SHA1(68e4fd57a32e671f259ce1d3a98727af3d91d0ba) ) + ROM_LOAD16_BYTE( "265moi2.c2", 0x0000001, 0x800000, CRC(4468df56) SHA1(979973716d75f319c265969555a939d15424b74e) ) + ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) ) + ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) ) + ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) ) +ROM_END + +ROM_START( kof2k2moir ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265moir.p1", 0x000000, 0x100000, CRC(adb10912) SHA1(1b352dc12010822b54893ae291b0cc19c20475f8) ) + ROM_LOAD16_WORD_SWAP( "265moir.p2", 0x100000, 0x400000, CRC(e9204705) SHA1(421f50e90753c97a497172e655094871cd99b43c) ) + + NEO_SFIX_128K( "265moir.s1", CRC(627af296) SHA1(f2a24587896d05927456a35ef3e749505ac27dbb) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2mp1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265mp1.p1", 0x000000, 0x100000, CRC(aba169fe) SHA1(934dd20f6e3da261cb9f3587cdd8145ecdcdfa84) ) + ROM_LOAD16_WORD_SWAP( "265ht.p2", 0x100000, 0x400000, CRC(dec98282) SHA1(8a3c055c6c728a77134bda1f379995ebca623654) ) + + NEO_SFIX_128K( "265mp1.s1", CRC(29c0693e) SHA1(a852d15a8558b4a1cadf1ed9ef357d765ff88d35) ) + + NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2mp3 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265mp3.p1", 0x000000, 0x100000, CRC(0cdbe99c) SHA1(d1c0c953a1c313d10105a7882dadd5927bca3e4f) ) + ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) ) + + NEO_SFIX_128K( "265mp3.s1", CRC(4d0c4e77) SHA1(6e65b3e0ec2a04de4553f8ccf9c3197a0126e332) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) ) + ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) ) + ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) ) +ROM_END + +ROM_START( kof2k2mpu ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265mpu.p1", 0x000000, 0x100000, CRC(96388f42) SHA1(4129ca8d2a3f6543303bafafef479a48460e58ec) ) + ROM_LOAD16_WORD_SWAP( "265mpu.p2", 0x100000, 0x400000, CRC(d8a309e1) SHA1(a0625455f8d72bc9bcf1c880bf00e8d1814a830b) ) + + NEO_SFIX_128K( "265mpu.s1", CRC(561a7dd9) SHA1(5e57c6e670e2ecaaa0937a6bede9c391af8a38d4) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) ) + ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) ) +ROM_END + +ROM_START( kof2k2ngp ) // colour change of kof2k2br1 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265br1.p1", 0x000000, 0x100000, CRC(b73033df) SHA1(c8e1ce1d35be1dd537709a533e7dac37e047f428) ) + ROM_LOAD16_WORD_SWAP( "265ngp.p2", 0x100000, 0x400000, CRC(644fc435) SHA1(35de9b2db631a41d66dc7e141131d79b5fbeff42) ) + + NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2nu ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265nu.p1", 0x000000, 0x100000, CRC(ebedae17) SHA1(5f84562f9ef7a6b007290e59b31a62aca208f579) ) + ROM_LOAD16_WORD_SWAP( "265nu.p2", 0x100000, 0x400000, CRC(2c4b2098) SHA1(8468149138c06cd98152c71d0064d04d9befc713) ) + + NEO_SFIX_128K( "265nu.s1", CRC(c401c4fd) SHA1(ff3289d9320fc461cd57dda847d98c8c22094368) ) + + NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265nu.c3", 0x1000000, 0x800000, CRC(263c7a65) SHA1(9b7532c63aad57cd9c274e4b8ec857e9d695b2af) ) + ROM_LOAD16_BYTE( "265nu.c4", 0x1000001, 0x800000, CRC(bdfd88a2) SHA1(a3ac23eeb883616d25207ad872cca8ae28b93292) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2olp ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265olp.p1", 0x000000, 0x100000, CRC(76bb0cfc) SHA1(243b6daeaf573e48cc99df343232cfb5e66de564) ) + ROM_LOAD16_WORD_SWAP( "265olp.p2", 0x100000, 0x400000, CRC(9240c85c) SHA1(6ed323d31deaae3db6a4faa908b37a5b14440199) ) + + NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2omg8 ) // KOF-ON Team omega 0.8 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265omg8.p1", 0x000000, 0x100000, CRC(53086581) SHA1(a548625cfe62bc6f164276fda8e589a0e734af25) ) + ROM_LOAD16_WORD_SWAP( "265omg8.p2", 0x100000, 0x400000, CRC(40228fe5) SHA1(6beb7be722c1b0da70f1127b262b1e8a737cb22c) ) + + NEO_SFIX_128K( "265omg8.s1", CRC(65351d40) SHA1(84035a80c1d0a35e487da831063cd4a77790a86f) ) + + NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265omg8.c1", 0x0000000, 0x800000, CRC(e144302d) SHA1(8156a7f52b4c0f73d0f770314ccd8da07eab7266) ) + ROM_LOAD16_BYTE( "265omg8.c2", 0x0000001, 0x800000, CRC(b10c6958) SHA1(e2112d1640cbcdeaaa0cb2bbf87d759184d4a6f0) ) + ROM_LOAD16_BYTE( "265omg8.c3", 0x1000000, 0x800000, CRC(2367927c) SHA1(31a5b58feaeb2ecbde5573b48b50cdd8bcaa6ab4) ) + ROM_LOAD16_BYTE( "265omg8.c4", 0x1000001, 0x800000, CRC(4ad48c29) SHA1(9908a7c2d579059a97927d58f4ea95b17deb9952) ) + ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) ) + ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) ) + ROM_LOAD16_BYTE( "265omg8.c7", 0x3000000, 0x800000, CRC(890c2a4a) SHA1(04e8720ee62782b8fd6621ef4dc4e7469f57b10c) ) + ROM_LOAD16_BYTE( "265omg8.c8", 0x3000001, 0x800000, CRC(b726009d) SHA1(29e84e7012cd5c109937ea2e6a455ed9829776ac) ) +ROM_END + +ROM_START( kof2k2omg9 ) // omega v9 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265omg9.p2", 0x100000, 0x400000, CRC(cd503fcf) SHA1(8f83fd34f441d706fabac6eee1357e27cb55d60b) ) + + NEO_SFIX_128K( "265omg9.s1", CRC(4562fb20) SHA1(623bc397f5fa9e2686ea098d16e8c11215bfd61d) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265omg9b.c1", 0x0000000, 0x800000, CRC(c8314ae2) SHA1(7d89b556de98e0d89448e5118ffeea4239461635) ) + ROM_LOAD16_BYTE( "265omg9b.c2", 0x0000001, 0x800000, CRC(e0ddced5) SHA1(d8b5bd419bc825b99c206f54fbce97305839bcc9) ) + ROM_LOAD16_BYTE( "265omg9b.c3", 0x1000000, 0x800000, CRC(6898f6e2) SHA1(4d8101534f85838eff3823ead72bdbcee57a3a50) ) + ROM_LOAD16_BYTE( "265omg9b.c4", 0x1000001, 0x800000, CRC(9232e491) SHA1(e56b5657842d5e147e56c485dfa9a5a0a6ffba2d) ) + ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) ) + ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) ) + ROM_LOAD16_BYTE( "265omg9b.c7", 0x3000000, 0x800000, CRC(6954ef57) SHA1(807f7bcdac379c5dce7745f10925e5c4a10c2c85) ) + ROM_LOAD16_BYTE( "265omg9b.c8", 0x3000001, 0x800000, CRC(3e394883) SHA1(03e92267bdef8651bac6278c8068892dadba3ad8) ) +ROM_END + +ROM_START( kof2k2omg9b ) // omega v9 beta + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265omg9b.p2", 0x100000, 0x400000, CRC(a171b684) SHA1(2b8ef67c0e2709e77a07d3c139cf411961470e49) ) + + NEO_SFIX_128K( "265omg9b.s1", CRC(7e3f391a) SHA1(2680cdf630f8c726d8efaee4b4108108028c4c38) ) + + NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265omg9b.c1", 0x0000000, 0x800000, CRC(c8314ae2) SHA1(7d89b556de98e0d89448e5118ffeea4239461635) ) + ROM_LOAD16_BYTE( "265omg9b.c2", 0x0000001, 0x800000, CRC(e0ddced5) SHA1(d8b5bd419bc825b99c206f54fbce97305839bcc9) ) + ROM_LOAD16_BYTE( "265omg9b.c3", 0x1000000, 0x800000, CRC(6898f6e2) SHA1(4d8101534f85838eff3823ead72bdbcee57a3a50) ) + ROM_LOAD16_BYTE( "265omg9b.c4", 0x1000001, 0x800000, CRC(9232e491) SHA1(e56b5657842d5e147e56c485dfa9a5a0a6ffba2d) ) + ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) ) + ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) ) + ROM_LOAD16_BYTE( "265omg9b.c7", 0x3000000, 0x800000, CRC(6954ef57) SHA1(807f7bcdac379c5dce7745f10925e5c4a10c2c85) ) + ROM_LOAD16_BYTE( "265omg9b.c8", 0x3000001, 0x800000, CRC(3e394883) SHA1(03e92267bdef8651bac6278c8068892dadba3ad8) ) +ROM_END + +ROM_START( kof2k2on ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265on.p1", 0x000000, 0x100000, CRC(398ebaff) SHA1(6055bca69cd1cc922d269ff0c5a036e5482ca9b8) ) + ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x100000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) ) + + NEO_SFIX_128K( "265ori2.s1", CRC(99ca0abc) SHA1(cb0e5646590f1ed998e02a70a009c432fbaef2e2) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) ) + ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2or ) /* The King of Fighters 2002 - Third Strike of Orochi */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265or.p1", 0x000000, 0x100000, CRC(eb84d68f) SHA1(8dccf250cf04e129529793abcc655f5fc7fb6629) ) + ROM_LOAD16_WORD_SWAP( "265or.p2", 0x100000, 0x400000, CRC(293bbf78) SHA1(647eea522d0a163675205aeab9b0b9ebb3a47eea) ) + + NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) ) + ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) ) +ROM_END + +ROM_START( kof2k2ori ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ori.p1", 0x000000, 0x100000, CRC(081406DB) SHA1(3fbf24c222ebb5e4d6084f3664ab00caae24e156) ) + ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) ) + + NEO_SFIX_128K( "265ori.s1", CRC(98622D30) SHA1(dad20e619a3158b890e6b129179befc5770cf4c0) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) ) + ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) ) + ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) ) +ROM_END + +ROM_START( kof2k2ori2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ori2.p1", 0x000000, 0x100000, CRC(42a7a398) SHA1(355edf6c75a52c535118b1ed58c3eb348e0770ca) ) + ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) ) + + NEO_SFIX_128K( "265ori2.s1", CRC(99ca0abc) SHA1(cb0e5646590f1ed998e02a70a009c432fbaef2e2) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) ) + ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) ) + ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) ) +ROM_END + +ROM_START( kof2k2pa ) /* same as kof2k2plb except s1 from smg, p1 is new */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265pa.p1", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2pjw ) /* The King of Fighters 2002 - Enhance by Jason/K3 and Wesker - ('Plus' version by Jason/K3 and Wesker) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265pjw.p1", 0x000000, 0x100000, CRC(a87c318e) SHA1(58703a572cf37565e024dec570723b8e8f2c22e2) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2plb ) /* bootleg - same as MAME kf2k2pls except m1 & s1 are different */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "2k2-p1p.bin",0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_128K( "265plb.s1", CRC(2072d5e9) SHA1(45f9eb101f4b58ce40c307fd9fa8b1e95215a81b) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2pr ) /* [OLD] The King of Fighters 2002 - (kof2k2pr) - Remix by Raymonose - (Character move change 20% 20030607) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265pr.p1", 0x000000, 0x100000, CRC(a950f9e2) SHA1(769d4b4d8e8dd1cf8db95398534a1242ab12a0ae) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2pro ) /* [OLD] The King of Fighters 2002 - (kof2k2pre) - Remix by Raymonose - (Character move change 20% 20030607) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265pro.p1", 0x000000, 0x100000, CRC(76efe13e) SHA1(c280e942cfdae74da19dbb37e69f29a99fe5eed3) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2ps2 ) /* The King of Fighters 2002 - PS2 ver */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ps2.p1", 0x000000, 0x100000, CRC(5a8c7f2f) SHA1(c661a189b5e83c457135cb535c551f68afe82c0d) ) + ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) ) + + NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x5000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) ) + ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) ) + ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) ) + ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) ) +ROM_END + +ROM_START( kof2k2ps2a ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ps2a.p1", 0x000000, 0x100000, CRC(336c4ca8) SHA1(132d6444d63c065205357adabd437adf9cdea585) ) + ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) ) + + NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) ) + + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x5000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) ) + ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) ) + ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) ) + ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) ) +ROM_END + +ROM_START( kof2k2ps2mp ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ps2mp.p1", 0x000000, 0x100000, CRC(8c111128) SHA1(6a8017a236e331786a5eaaee50daf9a7d8d5f358) ) + ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) ) + + NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x5000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) ) + ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) ) + ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) ) + ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) ) +ROM_END + +ROM_START( kof2k2pur ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265pur.p1", 0x000000, 0x100000, CRC(e3fbd156) SHA1(a71cdef591a7d15e40d05617fb73929607d1a895) ) + ROM_LOAD16_WORD_SWAP( "265pur.p2", 0x100000, 0x400000, CRC(fd3c0e06) SHA1(50b10e7838c683852811dcdfb7d6b4297cd8597c) ) + + NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2ra ) /* [OLD] The King of Fighters 2002 - (kof2k2ra) - Revise by Ruin Angel - (Fighter combat moves revision - bases on CHL´s work 2003/04) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ra.p1", 0x000000, 0x100000, CRC(e08d9418) SHA1(b99fd8cea5b0cb16c8b58f748898d6bdaf8035f1) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rgl ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rgl.p1", 0x000000, 0x100000, CRC(188d4288) SHA1(f745718329718852b42267cd9a17ea5cd107d0bf) ) + ROM_LOAD16_WORD_SWAP( "265rgl.p2", 0x100000, 0x400000, CRC(f0a176a9) SHA1(5344fd686f03d4fc9c9aded4556b42ae5d5150c5) ) + + NEO_SFIX_128K( "265rgl.s1", CRC(ca827be9) SHA1(0f2acadb0f840809420e6f96f0f89d357815ef4c) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) ) + ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) ) + ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) ) + ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265rgl.c7", 0x3000000, 0x800000, CRC(0e13aace) SHA1(419eb29e3a479cb5dbd5d99f1d79e8846770d0cb) ) + ROM_LOAD16_BYTE( "265rgl.c8", 0x3000001, 0x800000, CRC(986d4825) SHA1(558f929929c207207442798d72459baed837c1a3) ) +ROM_END + +ROM_START( kof2k2rm ) /* [OLD] The King of Fighters 2002 - (kof2k2rm) - Remix by Raymonose - (Remix 33%) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rm.p1", 0x000000, 0x100000, CRC(8dd5a885) SHA1(80959a2909b499c61c815929b17df05efa59ba46) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rma ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rma.p1", 0x000000, 0x100000, CRC(b98ba35a) SHA1(14c3e255da8d1b75b9d47a1d5a8eb0172e35abf0) ) + ROM_LOAD16_WORD_SWAP( "265rma.p2", 0x100000, 0x400000, CRC(26ea77d2) SHA1(4a63fd6296c9e0e3cb663602d478b3fde60ad9df) ) + + NEO_SFIX_128K( "265rma.s1", CRC(8544b8ea) SHA1(bb25fae3aedba6023ca6bfdc0dd3db0c57ad14d0) ) + + NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) ) + ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) ) + ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) ) + ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265rma.c7", 0x3000000, 0x800000, CRC(5e79a235) SHA1(610a8073c61c5346f23e95a79369ed7950a02d63) ) + ROM_LOAD16_BYTE( "265rma.c8", 0x3000001, 0x800000, CRC(a2b54e2d) SHA1(3f534ac51f3c2b1efe8a76cabd7e154ea9f1f13e) ) +ROM_END + +ROM_START( kof2k2rmb ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rma.p1", 0x000000, 0x100000, CRC(b98ba35a) SHA1(14c3e255da8d1b75b9d47a1d5a8eb0172e35abf0) ) + ROM_LOAD16_WORD_SWAP( "265rmb.p2", 0x100000, 0x400000, CRC(8684acf0) SHA1(364cde00d3c35b3aca60fe5d0bf6ffa774898787) ) + + NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) ) + + NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) ) + ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) ) + ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) ) + ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) ) + ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) ) +ROM_END + +ROM_START( kof2k2rm1 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm1) - Remix by Raymonose - (Remix revision 1 - 66%) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rm1.p1", 0x000000, 0x100000, CRC(0ba302d8) SHA1(ce919c4acd305e8c5e0412fdc4fcb84ec2da9c9d) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rm2 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm2) - Remix by Raymonose - (Remix revision 2 - 80% 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rm2.p1", 0x000000, 0x100000, CRC(2c9db5d8) SHA1(0ba62a1012114e40a30c7d437930397274e30920) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rm3 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm3) - Remix by Raymonose - (Remix revision 3 - 89% 20030420) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rm3.p1", 0x000000, 0x100000, CRC(aa5a8d6a) SHA1(1bc7666d255c9c6e076b396030dff3b71dd7ca02) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rm13 ) // kf2k2rm13 at gametroniks + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rm13.p1", 0x000000, 0x100000, CRC(D4CA84AC) SHA1(df33693f980b1db4d2baef562364bf9d7172b53a) ) + ROM_LOAD16_WORD_SWAP( "265rm13.p2", 0x100000, 0x400000, CRC(3CAA9FF2) SHA1(a55099baba9df85c45c1449289ffb89cd2a486d7) ) + + NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) ) + + NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265rm13.v1", 0x000000, 0x400000, CRC(fbb908d7) SHA1(35805022a36a539033fa4ec07cfbebcaac4cb972) ) + ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) ) + ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) ) + ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) ) + ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) ) +ROM_END + +ROM_START( kof2k2rr ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr.p1", 0x000000, 0x100000, CRC(8c66baae) SHA1(bed090cf6b2a0ebfdde891ef2f319b9bb79236e1) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rr1 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr1.p1", 0x000000, 0x100000, CRC(a0929b00) SHA1(0539553e9a8778ef0f1d613527b316b6f0e99a7c) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rr2 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr2.p1", 0x000000, 0x100000, CRC(13b61d63) SHA1(0649f25bc6a64a8059b82d6b09e62eb1f2537e50) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rr3 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr3.p1", 0x000000, 0x100000, CRC(67b64636) SHA1(d9537596bcbc86d9f5a162501829212ee9f941dd) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rr4 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr4.p1", 0x000000, 0x100000, CRC(4a12ef24) SHA1(dfe2f34d4181643f3f06d8223fdf1e43dbe3110a) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rr5 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr5.p1", 0x000000, 0x100000, CRC(aba2827f) SHA1(6477110e0649db35a0494f5f63b37626a5af6391) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rr6 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr6.p1", 0x000000, 0x100000, CRC(c6b9d2c7) SHA1(d49613a2f9793ea684c9aa6af4685a4b25cab596) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rr7 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr7.p1", 0x000000, 0x100000, CRC(56c9e089) SHA1(248b9c4c00179fbd6b877ba8df2b8acd45f71adf) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rr8 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rr8.p1", 0x000000, 0x100000, CRC(f0a14d18) SHA1(6b4e4ceda6d516966e02906b30e861508addc705) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rs ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rs.p1", 0x000000, 0x100000, CRC(fcd1b366) SHA1(403103f959ad36026924f62701f9ef465950215e) ) + ROM_LOAD16_WORD_SWAP( "265rs.p2", 0x100000, 0x400000, CRC(346d0bae) SHA1(9c01a1767b3ba79cabcc7f86634d486a30c1cf62) ) + + NEO_SFIX_128K( "265rs.s1", CRC(914bd3f7) SHA1(b2db65fac73367b0f956bf5a0d80a9aaffd432f1) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265rs.c7", 0x3000000, 0x800000, CRC(ea3405d4) SHA1(9d3291a2dd3b50f8f9a82ce1c56dd3695e32a7cc) ) + ROM_LOAD16_BYTE( "265rs.c8", 0x3000001, 0x800000, CRC(41c547fa) SHA1(b08f86a56a78e7080275031da2c590417a21b2e9) ) +ROM_END + +ROM_START( kof2k2rs2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rs.p1", 0x000000, 0x100000, CRC(fcd1b366) SHA1(403103f959ad36026924f62701f9ef465950215e) ) + ROM_LOAD16_WORD_SWAP( "265rs2.p2", 0x100000, 0x400000, CRC(4fc9c70c) SHA1(99c97634af60fc54318685f1a8e90e8c402195fd) ) + + NEO_SFIX_128K( "265rs.s1", CRC(914bd3f7) SHA1(b2db65fac73367b0f956bf5a0d80a9aaffd432f1) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265rs.c7", 0x3000000, 0x800000, CRC(ea3405d4) SHA1(9d3291a2dd3b50f8f9a82ce1c56dd3695e32a7cc) ) + ROM_LOAD16_BYTE( "265rs.c8", 0x3000001, 0x800000, CRC(41c547fa) SHA1(b08f86a56a78e7080275031da2c590417a21b2e9) ) +ROM_END + +ROM_START( kof2k2ru ) /* The King of Fighters 2002 - Remix Ultra by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20040820 - v2.5) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ru.p1", 0x000000, 0x100000, CRC(4455e4b3) SHA1(ac607cb5620f757e4707503e01582e6049212135) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2rw ) /* The King of Fighters 2002 - Remix by Wesker - (Character move change - can choose Kusanagi and Rugal 200310xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265rw.p1", 0x000000, 0x100000, CRC(4cb3582e) SHA1(e990d8159d4ab9d20ad563b144a5d789a2a25087) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2sb ) /* [OLD] The King of Fighters 2002 - (kof2k2sb) - Revise by Streetboy - (Fighter combat moves revision - bases on CHL´s work 2003/04) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265sb.p1", 0x000000, 0x100000, CRC(a3c73508) SHA1(b2ab64f8828bf2a1d94f129e2b8a911b2f3f461e) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2seh ) /* The King of Fighters 2002 - Super Enhance Hack by Creamymami - (Can choose Kusanagi and Rugal - ultra kill start is max - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265seh.p1", 0x000000, 0x100000, CRC(41616bff) SHA1(cc75e2704a6058c4775978b58003d7b46a7f114c) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2se2 ) /* The King of Fighters 2002 - Super Enhance Hack by Creamymami - (Can select Rugal and Kusanagi - ultra kill start is max - ultra power hack - modif. kf2k2seh) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265se2.p1", 0x000000, 0x100000, CRC(c02f73c1) SHA1(e7c1d0c18f1f3ba4044aca4337ed1f9302f42909) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2sm ) // bad gfx on train scene + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265sm.p1", 0x000000, 0x100000, CRC(8599ad97) SHA1(d5d1225bcc57ae7bc980ab43072e66936367c419) ) + ROM_LOAD16_WORD_SWAP( "265sm.p2", 0x100000, 0x400000, CRC(7633f140) SHA1(a6b1f582290b8212c6f74a4b944186b1bb0e0a01) ) + + NEO_SFIX_128K( "265sm.s1", CRC(f060242d) SHA1(4bc27e74f49ef924916de653c34339f77f648f35) ) + + NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) ) + ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) ) + ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) ) + ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265sm.c1", 0x0000000, 0x800000, CRC(2c6642dd) SHA1(19cf4a674b7f78e5639c9b5517242f20695c6713) ) + ROM_LOAD16_BYTE( "265sm.c2", 0x0000001, 0x800000, CRC(1410aaa2) SHA1(2698ba6dd348feb0b7fc8e331e2e6a59f7fc6ef3) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) ) + ROM_LOAD16_BYTE( "265sm.c5", 0x2000000, 0x800000, CRC(59ccfd5a) SHA1(b532a8a5ce96ab73cfc6b1e19144797a04837df6) ) + ROM_LOAD16_BYTE( "265sm.c6", 0x2000001, 0x800000, CRC(2bfa516d) SHA1(89971bc824093684f3ac3f97e3c1b152f18f7502) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2smg ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265smg.p1", 0x000000, 0x100000, CRC(8c07ce4e) SHA1(754d588fb41cbaf9466c677e9daccac4e2025925) ) + ROM_LOAD16_WORD_SWAP( "265smg.p2", 0x100000, 0x400000, CRC(dc836917) SHA1(b0d6701d07cadc7e202c7ef3755872f721dca679) ) + + NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265smg.c7", 0x3000000, 0x800000, CRC(febfa475) SHA1(ed69f7536d39522b85bfaa512e75b85d08b439e9) ) + ROM_LOAD16_BYTE( "265smg.c8", 0x3000001, 0x800000, CRC(8f9b7991) SHA1(9c6e6af48c18e81ecba68563f8fb9caa85899672) ) +ROM_END + +ROM_START( kof2k2smg2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265smg.p1", 0x000000, 0x100000, CRC(8c07ce4e) SHA1(754d588fb41cbaf9466c677e9daccac4e2025925) ) + ROM_LOAD16_WORD_SWAP( "265smg2.p2", 0x100000, 0x400000, CRC(ba178ab6) SHA1(94dd06bbac4d38f78d186a02f0b808821b00a621) ) + + NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) ) + + NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof2k2soi ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265soi.p1", 0x000000, 0x100000, CRC(f4390d0f) SHA1(36cbb7bca856220667d42d94061d295cee655bf9) ) + ROM_LOAD16_WORD_SWAP( "265soi.p2", 0x100000, 0x400000, CRC(5114896e) SHA1(c7e468ea8087b19bebf10ace9e57b28ec3888c43) ) + + NEO_SFIX_128K( "265soi.s1", CRC(5ea6a39b) SHA1(095d6bc61ca742db8553c441c97cb526acdd3f30) ) + + NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) ) + ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) ) + ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) ) + ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) ) + ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) ) + ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) ) + ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) ) + ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) ) +ROM_END + +ROM_START( kof2k2sp ) /* The King of Fighters 2002 - Remix by Wesker - (Character special move change - can choose Kusanagi and Rugal) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265sp.p1", 0x000000, 0x100000, CRC(22599a10) SHA1(93ffd9569179e176d7b2a532b47e6a6b806e6cb8) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2spl ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265spl.p1", 0x000000, 0x100000, CRC(ed966da6) SHA1(9e6a284da9605a6bb5816c85b9936ef620ef9087) ) + ROM_LOAD16_WORD_SWAP( "265spl.p2", 0x100000, 0x400000, CRC(a871ab1e) SHA1(99d1e5805b194c179bb544d588eadd5174be897c) ) + + NEO_SFIX_128K( "265spl.s1", CRC(aeed9b6f) SHA1(afd41686b70e37149f5ae8ff956c9166ef481559) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) ) + ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265spl.c7", 0x3000000, 0x800000, CRC(d5c5712b) SHA1(ff1f32a44a2e42355d5148614771b52074dea672) ) + ROM_LOAD16_BYTE( "265spl.c8", 0x3000001, 0x800000, CRC(7dfbea39) SHA1(f698308ef7d8a7019c21005089d7a5f801e3a07a) ) +ROM_END + +ROM_START( kof2k2spls ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265spls.p1", 0x000000, 0x100000, CRC(7481af02) SHA1(32561e4d6481123f580322c4e5d4b8f6a28258a5) ) + ROM_LOAD16_WORD_SWAP( "265spls.p2", 0x100000, 0x400000, CRC(6578f2c6) SHA1(7881dd50fd1e613a9b448799e19257d57ff215ed) ) + + NEO_SFIX_128K( "265spls.s1", CRC(196592f6) SHA1(67f64aa251d65220ddaa69a10c526c1cd85540a6) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) + ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265spls.c7", 0x3000000, 0x800000, CRC(31e7aaa3) SHA1(733710493cd885701f5f34078a875bc77ed57442) ) + ROM_LOAD16_BYTE( "265spls.c8", 0x3000001, 0x800000, CRC(f26a445b) SHA1(3fba6d95c1af77a6fe2e65af39eba0ce3e4134b7) ) +ROM_END + +ROM_START( kof2k2spo ) /* [OLD] The King of Fighters 2002 - (kof2k2spo) - Remix by Wesker - (Character special move change - can choose Kusanagi and Rugal 20030830) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265spo.p1", 0x000000, 0x100000, CRC(546b71bb) SHA1(0fb3e5600a5ae07be3d7e736012163b66ab9800e) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2tc ) /* The King of Fighters 2002 - Colour fix by T.Com - (Character colour change - attack spark colour change for Iori and Orochi-Chris) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) + ROM_LOAD16_WORD_SWAP( "265tc.p2", 0x100000, 0x400000, CRC(35186b8a) SHA1(d82a4a4d8fbb5a5725166756e11fc4c45b00c0b7) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2ul ) /* The King of Fighters 2002 - Remix Ultra by Raymonose - (Character move change 20030515) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ul.p1", 0x000000, 0x100000, CRC(a54ef7f2) SHA1(16623a51f54b598b8fcdcfeda662c5482956df91) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2ule ) /* The King of Fighters 2002 - Remix Ultra by Raymonose - (Character move change - can choose Kusanagi and Rugal - ultra kill start is max - ultra power hack 20030515) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265ule.p1", 0x000000, 0x100000, CRC(7af1ef2e) SHA1(2ede44cf00b3ce23d891b03afd492c1ebdbf5f87) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2wuk ) /* The King of Fighters 2002 - Enhance by Wesker - (Ultra kill style revision max2 - perfect) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265wuk.p1", 0x000000, 0x100000, CRC(4d63b5fb) SHA1(f3409543c8a72a944cf26cdc91252096887835c0) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) +ROM_END + +ROM_START( kof2k2xxx ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265xxx.p1", 0x000000, 0x100000, CRC(E8E548B5) SHA1(77e13e4a8ec6031bd956378ab95913f91e35ded4) ) + //ROM_LOAD16_WORD_SWAP( "265xxx.p2", 0x100000, 0x400000, CRC(5E7866B6) SHA1(da0c9d677f73661856d3ad294dc790fcbd8448d3) ) + // alternate rom + ROM_LOAD16_WORD_SWAP( "265xxx.p2", 0x100000, 0x400000, CRC(51c6d9de) SHA1(e0ff1b78b159cc1afa6ed9b868697687ab3054e8) ) + + NEO_SFIX_128K( "265xxx.s1", CRC(0F78A636) SHA1(465d438e7edbb38ae5c29a59d4829a8e10c92321) ) + + NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) ) + ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + + + +GAME( 2002, kof2002d, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002d, ROT0, "Eolith / Playmore", "Kof2002 (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, kof2002x, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002, ROT0, "hack", "Kof2002 (Babel ice field remix)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ath, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Athena hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2b, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2?", "Kof2002 (Add Char set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2b1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2?", "Kof2002 (Add Char set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2bd, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2bd, ROT0, "hack", "Kof2002 Challenge to Ultimate Battle (Bootleg, Decrypted)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2bh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2", "Kof2002 (Add Char set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2bjh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ben Jeremy", "Kof2002 (Diff Moves 031025)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2bjo, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ben Jeremy", "Kof2002 (Diff Moves 031013)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2bld, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 BLOOD PLUS", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2blood2,kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 BLOOD PLUS 2", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2br, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "hack", "Kof2002 (Portuguese set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2br1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "hack", "Kof2002 (Portuguese set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2br2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "hack", "Kof2002 (Portuguese set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2bs, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Kof2002 (Boss Dodowang Hack (red flame))", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof2k2c2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / EGHT", "Kof2002 (3rd Strike of the Orochi)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2cf1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Iori p3 and p4 Color Changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2cf2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.2 030827)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2cf3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.3 030831)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2cfc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.4 031017)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ch, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Coolhot", "Kof2002 (Move rev - Based on CHL and Ricky)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2chl, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - 030410)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2cl2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - Rev.2 030413)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2cl3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - Rev.3 030413)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2cn, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU / ZUOJIE", "Kof2002 (Chinese Translation by FoxUU & ZUOJIE)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof2k2cori, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj / EGCG / EGHT", "Kof2002 (3rd Strike By IsmaMj)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2dbh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "Dodowang","Kof2002 (Add Char- MVS timer flaw)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2e1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Kurouri", "Kof2002 (Add Char set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2e2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char set 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2e3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ehr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 33%)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2er2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 66%)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2er3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 80% 030414)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2er4, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 89% 030420)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2erx, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. xx%)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2evo, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jimmyi", "Kof2002 (Evolution)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2evo2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT / EGHT", "Kof2002 (Evolution v1.3, by FCHT/EGHT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2fy, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Unk", "Kof2002 (Lifebar + K', Vanessa, Iori, Kula and Angel color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2gc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Lewis67", "Kof2002 (Color changed set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2gc2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Lewis67", "Kof2002 (Color changed set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2gf, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Kumagorou", "Kof2002 (Color changed set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2green, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Green colour hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, kof2k2ht, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FMG CO", "Kof2002 (HT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof2k2ibp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj", "Kof2002 (Ice Blue Perfect)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ic1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue - 80%)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ic2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue - Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ice, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2jc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Jui Lee", "Kof2002 (Char color changed for Athena 3P, Kula 3P and Kula 4P)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2js, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason / FCHT", "Kof2002 KOF REMIX ULTRA (v3.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2js2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason / FCHT", "Kof2002 KOF REMIX ULTRA (v3.5)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2js4, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof2002 KOF REMIX ULTRA (v2.5 SDM)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, kof2k2k2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 10th Style", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k3o, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030629)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k32, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030725)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k33, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030730)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k34, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030805)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k35, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030815)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k36, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030818)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k37, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030823)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k38, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 030824)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k39, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030829)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k3a, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 030907)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k3b, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030908)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k3c, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031005)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k3d, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031009)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k3e, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031016)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2k3f, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Ultra - Add Char - Diff Moves 031202)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof2k2k3g, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Remix Ultra - Add Char - Diff Moves 040418)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof2k2kai, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Boss Hack Kai Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2kc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof2k2kc2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT / KOF-ON Team", "Kof2002 (3rd Strike Remixed by Kof ON Team)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2kk, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Hack Johnkof Remixed by KalcenTin)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2lb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2lb, ROT0, "LB70", "Kof2002 RETROPOKTER: VER 1.0", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2leon, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (dedicated to Leon9000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2mcr, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neht", "Kof2002 MERRY X'MAS MIX", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2moi2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof2002ex2", "Kof2002 2002EX 2(Magic Orochi Iori 2.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2moir, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof2002 (Retropokter Ver 1.0 - Magic Orochi Iori Remake)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2mp1, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Magic Plus)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof2k2mp3, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj", "Kof2002 (Magic Plus III)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2mpu, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof2002 (Plus)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ngp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Portuguese negative colour)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kof2k2nu, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack by BXX", "Kof2002 (Super Black Nude Mix)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2olp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Orochi Leona 97 color style)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof2k2omg8, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.8)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kof2k2omg9, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.9)", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, kof2k2omg9b, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.9 beta)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2on, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 ONTEAM", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof2k2or, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (3rd strike of Orochi)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ori, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Orochi's Iori Remixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ori2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof2002 (Orochi's Iori by (FCHT) - Remixed by NEHT (Set 2))", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2pa, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "hack", "Kof2002 (Plus (hack 2))", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2pjw, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3 and Wesker", "Kof2002 Plus (Jason/K3 and Wesker)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2plb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "bootleg", "Kof2002 Plus (set 3, bootleg)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2pr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 20% - 030607)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2pro, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 20% - 030607 Older?)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof2k2ps2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (PS2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof2k2ps2a, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2ps2a, ROT0, "EGHT", "Kof2002 (PlayStation 2 ver 0.4, EGHT hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof2k2ps2mp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (PlayStation 2 Beta (Magic Plus))", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2pur, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kawada7278", "Kof2002 (Boss Purple Kawada7278 Hack)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ra, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ruin Angel", "Kof2002 (Diff Moves - Based on CHL set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2rgl, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 Magic Unique Crazy Rugal Plus (Kof on Team)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2rm, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix 33%)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rm1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.1 - 66%)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rm2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.2 - 80% - 030414)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2rm3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.3 - 89% - 030420)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2rm13, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof2002 KOF REMIX ULTRA (1.3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2rma, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 KOF REMIX ULTRA (2010-07-23)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2rmb, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 KOF REMIX ULTRA", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030430)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030508)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030508 Boss)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030509)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr4, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030509 Boss)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr5, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030517)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr6, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030610)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr7, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - rev.u)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rr8, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - rev.u1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2rs, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Slovakia", "Kof2002 (Iori Special Remix)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2rs2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Slovakia", "Kof2002 Super Plus (Ultimate Edition v2.0 by Slovakia)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ru, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 Remix Ultra v2.5 (Add Char - Diff Moves ultra rev - 040820)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2rw, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Diff Moves - 0310xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2sb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Streetboy", "Kof2002 (Diff Moves - Based on CHL set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2se2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2seh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max - Ultra pow hack set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof2k2sm, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Maitry Maker", "Kof2002 (Super Mix)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2smg, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker/Abbas", "Kof2002 (SMG by Abbas)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2smg2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arn", "Kof2002 (Recompilation of SMG by Arn)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2soi, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ACM1PT", "Kof2002 Super Orochi Iori (by ADM1PT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2sp, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Special move change)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2spl, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof2002 Super Plus (Ultimate Edition by NeHt)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2spls, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "JasonK, Danpaji1, Marcochen", "Kof2002 Super Plus (JasonK, Danpaji1, Marcochen)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k2spo, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Special move change Old 030830)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2tc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "T.Com", "Kof2002 (Char color changed - Attack spark color changed for Iori and Orochi-Chris)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ul, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 030515)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2ule, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Diff Move - Ultra kill start max - Ultra pow hack 030515)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2wuk, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Ultra kill style - rev max2 - perfect)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof2k2xxx, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Peggy / Kim", "Kof2002 (Perfect revised edition)", MACHINE_SUPPORTS_SAVE ) +///GAME( 2002, kof2002d, kof2002, neogeo_noslot, neogeo, neogeo_state, kof2002d, ROT0, "hack", "Kof2002 (NGM-2650)(NGH-2650) (decrypted C)", MACHINE_SUPPORTS_SAVE ) +///GAME( 2002, kf2k2plb, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k2pls, ROT0, "bootleg", "Kof2002 Plus (set 3, bootleg / hack)", MACHINE_SUPPORTS_SAVE ) +///GAME( 2002, kf2k2plc, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k2plc, ROT0, "bootleg", "Kof2002 Super (set 4, bootleg / hack)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof2003.cpp b/docs/release/src/hbmame/drivers/kof2003.cpp new file mode 100644 index 00000000000..861d0edfd9b --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof2003.cpp @@ -0,0 +1,497 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2003b ) +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->kf2k3bl_install_protection(m_maincpu, m_banked_cart, cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size, 1); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2003d ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k3br ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k3d ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k3hd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size); // different to kof2k3d + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k3pcd ) // decrypted C & decrypted Bios +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_pvc_prot->kf2k3pcb_decrypt_68k(cpuregion, cpuregion_size); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + + // Extra m1 decryption + int i; + UINT8* rom = memregion("audiocpu")->base(); + for (i = 0; i < 0x90000; i++) + rom[i] = BITSWAP8(rom[i], 5, 6, 1, 4, 3, 0, 7, 2); + + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + neogeo_noslot_state::kf2k3pcb_decrypt_s1data(); + m_maincpu->space(AS_PROGRAM).install_rom(0xc00000, 0xc7ffff, 0, 0x080000, memregion("mainbios")->base()); // 512k bios +} + + + +ROM_START( kof2003d ) + ROM_REGION( 0x700000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271d.p0", 0x000000, 0x100000, CRC(7c2aee16) SHA1(b4373569c4a26829a93759ba6917879518f2fb20) ) + ROM_LOAD16_WORD_SWAP( "271b.p1", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) ) + ROM_LOAD16_WORD_SWAP( "271d.p2", 0x500000, 0x200000, CRC(0d0a5861) SHA1(823dd3d11574a42f98588a6d1f9bb5d721f34be2) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) ) + ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) ) +ROM_END + +ROM_START( kof2003f ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271f.p1", 0x000000, 0x400000, CRC(d29a0d06) SHA1(a5ba68ceac0b4bceb0c37d65844d96835eb244e4) ) + ROM_LOAD16_WORD_SWAP( "271f.p2", 0x400000, 0x400000, CRC(95477dd4) SHA1(3a57befa3e0772b2989ba5b76afd95f3aed1936b) ) + + NEO_SFIX_128K( "271f.s1", CRC(7c7829aa) SHA1(22f8d38d1d0891295d0593741d9477fbe6b4f48c) ) + + NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) ) + ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) ) + ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) ) + ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) ) + ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) + ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) +ROM_END + +ROM_START( kof2003rebh ) // no watchdog + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271rebh.p1", 0x000000, 0x800000, CRC(cd7c9f42) SHA1(d99f25a0d7c640c8594aef25e818ee017845de90) ) + + NEO_SFIX_128K( "271rebh.s1", CRC(e146f5cc) SHA1(1ca3e36ec87b40c8eaa7c92d1bf7a066fdb0b26c) ) + + NEO_BIOS_AUDIO_128K( "271rebh.m1", CRC(396e17cd) SHA1(b2962aef711883402e67fcfb475265abe68e2cba) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) + ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) + ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) + ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) + ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) +ROM_END + +ROM_START( kof2k3b ) /* The King of Fighters 2003 BOOTLEG - (kof2k3b) - Hack by Gledson01 - (Can choose Kusanagi, Chizuru, Maki, Mukai and Adelheid) */ + ROM_REGION( 0x700000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271b.p1", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) ) + ROM_LOAD16_WORD_SWAP( "271b.p2", 0x500000, 0x200000, CRC(fb01a5b3) SHA1(3c8e92362f8169f5e64d6e1d1fea41edd2e7a6a3) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) + ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) + ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) + ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) + ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) +ROM_END + +ROM_START( kof2k3br ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271br.p1", 0x000000, 0x800000, CRC(a131786e) SHA1(3754e6361063221138c95c52a3edb3e88a74048a) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + //ROM_LOAD( "271bs4.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) ) + //ROM_LOAD( "271bs4.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) ) + ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) + ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) + ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) + ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271br.c7", 0x3000000, 0x800000, CRC(f3d81b6e) SHA1(62bf0c9d1d9f7a016d125df64c8328e01e003e43) ) + ROM_LOAD16_BYTE( "271br.c8", 0x3000001, 0x800000, CRC(5310c6dc) SHA1(e9cb89392fa5604d3ac3ba58acdb1b739d1267be) ) +ROM_END + +ROM_START( kof2k3bs4 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271bs4.p1", 0x000000, 0x800000, CRC(536d02e7) SHA1(5432c79d3808da3bbf47521a0e2f0ed3f9e7a435) ) + + NEO_SFIX_128K( "271bs4.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) ) + + NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271bs4.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) ) + ROM_LOAD( "271bs4.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271bs4.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) ) + ROM_LOAD16_BYTE( "271bs4.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) ) +ROM_END + +ROM_START( kof2k3d ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "271-p1c.p1", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) ) + ROM_LOAD32_WORD_SWAP( "271-p2c.p2", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) ) + ROM_LOAD16_WORD_SWAP( "271-p3c.p3", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271d.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271d.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271d.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271d.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271d.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271d.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) ) + ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) ) +ROM_END + +ROM_START( kof2k3evo ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271evo.p1", 0x000000, 0x800000, CRC(ce221039) SHA1(755feabb4a3b2b02f72bd2747b13051fe3d0116c) ) + + NEO_SFIX_128K( "271evo.s1", CRC(2849fbfb) SHA1(1c46decf77c9802589bbd445344f6e3b9e82afd2) ) + + NEO_BIOS_AUDIO_128K( "271rebh.m1", CRC(396e17cd) SHA1(b2962aef711883402e67fcfb475265abe68e2cba) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) + ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) + ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) + ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) + ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) +ROM_END + +ROM_START( kof2k3gc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3gc) - Colour fix by Gledson01 - (Character colour change for Terry (4P), Athena (3P), Ash (3P), Leona (3P), K' (4P) and King (2P) ) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271gc.p1", 0x100000, 0x400000, CRC(ba621186) SHA1(061e072fb5baaf8454f362a9a81bf51a324cc73d) ) + ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) ) + ROM_IGNORE( 0x100000 ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) + ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) + ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) + ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) + ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) +ROM_END + +ROM_START( kof2k3hd ) // decrypted version of kof2003h + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "271-p1k.p1", 0x000000, 0x400000, CRC(d0d0ae3e) SHA1(538d054ac50c91694fbbfefcce548b063713e14e) ) + ROM_LOAD32_WORD_SWAP( "271-p2k.p2", 0x000002, 0x400000, CRC(fb3f79d9) SHA1(f253d10e732d6e23ae82d74ac9269d21f69ddb4d) ) + ROM_LOAD16_WORD_SWAP( "271-p3k.p3", 0x800000, 0x100000, CRC(232702ad) SHA1(6045046027dac1cbd4cbd14b5c1ece522bc6197f) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) ) + ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) ) +ROM_END + +ROM_START( kof2k3pcd ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "271-p1.p1", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) ) + ROM_LOAD32_WORD_SWAP( "271-p2.p2", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) ) + ROM_LOAD16_WORD_SWAP( "271-p3.p3", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) ) + + ROM_Y_ZOOM + ROM_REGION( 0x100000, "fixed", ROMREGION_ERASE00 ) /* larger char set */ + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "271pcd.sp1", 0x00000, 0x080000, CRC(e873f1ef) SHA1(e7f7a6084b9d7f4b4f8819ea0fd115b1f2cac2c2) ) + + ROM_REGION( 0x80000, "audiocrypt", 0 ) + ROM_LOAD( "271-m1.m1", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) ) + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271-v1.v1", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) ) + ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) ) + ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) ) + ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) ) + ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) + ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) +ROM_END + +ROM_START( kof2k3ps2 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271ps2.p1", 0x000000, 0x800000, CRC(8e66056d) SHA1(8ddbbf66bdcefbae15e9c0597aea846bbcfccadd) ) + + NEO_SFIX_128K( "271ps2.s1", CRC(c2e48e98) SHA1(8734c3d1c936aff3d7d1f460b5d211e25a816cc5) ) + + NEO_BIOS_AUDIO_512K( "271ps2.m1", CRC(4374cb5c) SHA1(d245a09fcebc8fe59f4af2de2fc30a0871e56d68) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271bs4.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) ) + ROM_LOAD( "271bs4.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271bs4.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) ) + ROM_LOAD16_BYTE( "271bs4.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) ) +ROM_END + +ROM_START( kof2k3ryu ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271ryu.p1", 0x000000, 0x800000, CRC(0e82da28) SHA1(61fd4cf63f804752095f47450e4aac10672bd53f) ) + + NEO_SFIX_128K( "271ryu.s1", CRC(d05be6db) SHA1(a523e6b7b8f07e6636043d13626a2286c79de930) ) + + NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) ) + ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) ) + ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) ) + ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) ) + ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) + ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) +ROM_END + +ROM_START( kof2k3sc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3sc) - Colour fix by SHIPDS - (Colour change) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271sc.p1", 0x100000, 0x400000, CRC(ef4ee94e) SHA1(f3b8b9e7279dfc4c04dc5971c323134d8db3b42c) ) + ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) ) + ROM_IGNORE( 0x100000 ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) + ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) + ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) + ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) + ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) +ROM_END + +ROM_START( kof2k3tc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3tc) - Colour fix by T.Com - (Character colour change for Kyo (2P/4P), DUOLON (4P), K' (4P) ) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271tc.p1", 0x100000, 0x400000, CRC(0d1a1da9) SHA1(0ba0d11c3bb3c30bc95f9aae181769ea874da096) ) + ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) ) + ROM_IGNORE( 0x100000 ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) + ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) + ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) + ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) + ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) +ROM_END + +ROM_START( kof2k3zgf ) /* The King of Fighters 2003 BOOTLEG - (kof2k3zgf) - Colour fix by Zhaolu94 - (Attack cremation green) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "271zgf.p1", 0x100000, 0x400000, CRC(9a76d66f) SHA1(4697b521105759d135f859e47940e3696f49506b) ) + ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) ) + ROM_IGNORE( 0x100000 ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) + ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) + ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) + ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) + ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) + ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) + ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) + ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) + ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) + ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) + ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) +ROM_END + + + +GAME( 2003, kof2003d, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003d, ROT0, "hack", "Kof2003 (Decrypted P&C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2003f, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 Original (Fully Decrypted - Fixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2003rebh,kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (unknown rebh)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3b, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Gledson01", "Kof2003 (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3br, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2k3br, ROT0, "Neogeo BR team", "Kof2003 Portuguese Brazilian Hack", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3bs4, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss, PS2 version, EGCG/FCHT Hack Set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3d, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2k3d, ROT0, "hack", "Kof2003 (NGM-2710)(decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3evo, kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (Evolution 1.4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3gc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Gledson01", "Kof2003 (Char color changed for Terry (4P), Athena (3P), Ash (3P), Leona (3P), K' (4P) and King (2P) )", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3hd, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2k3hd, ROT0, "hack", "Kof2003 (NGH-2710)(decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3pcd, kf2k3pcb, neogeo_noslot, neogeo, neogeo_hbmame, kof2k3pcd, ROT0, "hack", "Kof2003 (Japan, JAMMA PCB / decrypted C&Bios)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3ps2, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (PS2 beta 1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3ryu, kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "Iori Yagami", "Kof2003 (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3sc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "SHIPDS", "Kof2003 (Color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3tc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "T.Com", "Kof2003 (Char color changed for Kyo (2P/4P), DUOLON (4P), K' (4P) )", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2k3zgf, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Zhaolu94", "Kof2003 (Attack cremation green)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof94.cpp b/docs/release/src/hbmame/drivers/kof94.cpp new file mode 100644 index 00000000000..7205f88d969 --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof94.cpp @@ -0,0 +1,346 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +ROM_START( kof94b ) /* The King of Fighters '94 - Hack by Ydmis - (Can choose Rugal) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055b.p1", 0x100000, 0x100000, CRC(c4c1b20a) SHA1(963befa89ea08104cae0e195f9ed6b153af67f9c) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94blk ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055blk.p1", 0x100000, 0x100000, CRC(b1107150) SHA1(b85edff511eb7d04c3c4a1f83f522e187033a130) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94br ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055br.p1", 0x100000, 0x100000, CRC(0138a992) SHA1(48c857ed371de236861d172552e3b5bf38def776) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055br.c1", 0x000000, 0x200000, CRC(6fb14154) SHA1(bdc0e1933b9e903a69a2303c2e0e4243d3e1c95e) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94cyk ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055cyk.p1", 0x100000, 0x100000, CRC(c66acf73) SHA1(a0fd5281362b00fe6891a6313c85c21e6c2a5d91) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94eh ) /* The King of Fighters '94 - Enhance by Ydmis - (Can choose Rugal - power hack ABC) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055eh.p1", 0x100000, 0x100000, CRC(255487ea) SHA1(49e26566b52cd8588b5e34d1c9a5d6803d3e809e) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94h ) + ROM_REGION( 0x200000, "maincpu", 0 ) + // rom missing + ROM_LOAD16_WORD_SWAP( "055h.p1", 0x100000, 0x100000, CRC(2b0bc82d) SHA1(131906f00ed3c5854e251518c3074b3c19cb23d5) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94k ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055k.p1", 0x100000, 0x100000, CRC(7dff8b81) SHA1(86198059a921cb97646e2e39bf842e7b291c83a2) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055k.c1", 0x000000, 0x200000, CRC(fcf9ac7c) SHA1(3ff7d34264188764f411168ef0aa2ad6174c2289) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94ru ) /* The King of Fighters '94 - Remix Ultra by Jason/K3 - (Character move change ultra revision v1.0) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055ru.p1", 0x100000, 0x100000, CRC(DA5FA694) SHA1(9E937556F821477F6538A0785DF377A2DEA2831A) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94ruj ) // Remix Ultra 1.0 by JasonK3 + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055ruj.p1", 0x100000, 0x100000, CRC(29c916b2) SHA1(6057aea20398e7e4849cf5bac942a02e244893d2) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94rz ) // Hack Boss Remixed by ZKW + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055rz.p1", 0x100000, 0x100000, CRC(38410fdf) SHA1(e4053b41afd8c8934b7b2977df6d64d8b6338370) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055rz.s1", CRC(286ab67d) SHA1(c414c1543d13097c49090e46c474c5dd3c524c9c) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94seh ) /* The King of Fighters '94 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Rugal - ultra power hack ABC) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055seh.p1", 0x100000, 0x100000, CRC(3b29945c) SHA1(bac514690165a07886fce08680a26d75487f896c) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94sri ) // Super Remixed By IsmaMj + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055sri.p1", 0x100000, 0x100000, CRC(c689c85b) SHA1(00661821128225e0d5264d4b1e09fbc32bbe7ed9) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + +ROM_START( kof94y ) // Hack Boss By Ydmis + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055y.p1", 0x100000, 0x100000, CRC(3757022c) SHA1(2da01b9304cf470d8718f70e37ee448f1b31c864) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) +ROM_END + + + +GAME( 1994, kof94b, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94blk, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'94 (Boss Fix Black Xtreme 0.8)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof94br, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neogeo BR team", "Kof'94 (Portuguese Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94cyk, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji & Kawada7278", "Kof'94 (Hack Boss and Color)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94eh, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94h, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof'94 Remix Ultra", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94k, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Korean Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94ru, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'94 KOF REMIX ULTRA (v1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94ruj, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'94 KOF REMIX ULTRA (1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94rz, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'94 (Hack Boss Remixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94seh, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'94 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE ) // Rugal +GAME( 1994, kof94sri, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'94 KOF REMIX ULTRA (Super Remixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94y, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Hack Boss)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof95.cpp b/docs/release/src/hbmame/drivers/kof95.cpp new file mode 100644 index 00000000000..12081a18dd1 --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof95.cpp @@ -0,0 +1,318 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +ROM_START( kof95b ) /* The King of Fighters '95 - Hack by UNKNOWN - (Can choose Kusanagi and Rugal) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084b.p1", 0x100000, 0x100000, CRC(64d9aa39) SHA1(2f1f1adf33e4944bd4d1ae913bb48c73a97d6ea2) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + +ROM_START( kof95bln ) // Boss - Like NeogeoCD Version (Eddids hack) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084bln.p1", 0x100000, 0x100000, CRC(66f5db66) SHA1(742c8e1d8f6135004bd025ecccc0c61e14368d54) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + +ROM_START( kof95brz ) // Boss Remixed by ZKW + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084brz.p1",0x100000, 0x100000, CRC(754261d7) SHA1(195d10c0748b1d4607e6ca2297c59893e978fc58) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084brz.s1", CRC(4b7e9b31) SHA1(32d29be92881879ef5ce6ad74dc8640e6f70346e) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( kof95ce ) // Color Edit + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084ce.p1",0x100000, 0x100000, CRC(86ffcab0) SHA1(124211a9a85f46cd14eb0b70783147ea9a216a24) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084brz.s1", CRC(4b7e9b31) SHA1(32d29be92881879ef5ce6ad74dc8640e6f70346e) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( kof95d ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084d.p1", 0x000000, 0x200000, CRC(467a442f) SHA1(d58a5a0b0ac253caf1186ee6a688b16154bf145d) ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084d.c5", 0x1000000, 0x400000, CRC(fd45472a) SHA1(e2d370bf629390e54c6c124570970ae7e568eee7) ) + ROM_LOAD16_BYTE( "084d.c6", 0x1000001, 0x400000, CRC(5ab5ea75) SHA1(f68ce2f621e6b6c94080cad00e84e8b42d1d68a9) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + +ROM_START( kof95eh ) /* The King of Fighters '95 - Enhance by Ydmis - (Can choose Kusanagi and Rugal - power hack ABC) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084eh.p1", 0x100000, 0x100000, CRC(fe421168) SHA1(2970b26c851d486493eb5fd127d1ed5e42578816) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + +ROM_START( kof95hp ) /* The King of Fighters '95 - Hack by HackPlus - (Can choose Kusanagi and Rugal) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084hp.p1", 0x100000, 0x100000, CRC(865642a4) SHA1(726d918b1f4a8e9b7dccd57944979d57448e9f3e) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + +ROM_START( kof95pjc ) /* The King of Fighters '95 - Colour fix by TcwLee - (Character colour change - can choose Kusanagi and Rugal) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084pjc.p1", 0x100000, 0x100000, CRC(da14c25e) SHA1(03309a228783864bbb3cb70295c874812e63e959) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + +ROM_START( kof95ru ) /* The King of Fighters '95 - Remix Ultra by Jason/K3 - (Character move change ultra revision v1.0) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084ru.p1", 0x100000, 0x100000, CRC(08492B09) SHA1(25AF69066E96958B25CCECE77013945E640F7B83) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + +ROM_START( kof95seh ) /* The King of Fighters '95 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Kusanagi and Rugal - ultra power hack ABC) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084seh.p1", 0x100000, 0x100000, CRC(7b39effe) SHA1(2d19defbb01f74d46d8d303705d6ff8b48c6391e) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + +ROM_START( kof95xg ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084xg.p1", 0x100000, 0x100000, CRC(2b54003a) SHA1(9def4100b72c50a8c9138f0ac7985bae85eae198) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kof95y ) /* The King of Fighters '95 - Hack by Ydmis - (Can choose Kusanagi and Rugal) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084y.p1", 0x100000, 0x100000, CRC(c838b32b) SHA1(7fa1a21f4e3b975989eaa86cad4679bad579908d) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) +ROM_END + + + +GAME( 1995, kof95b, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Add Char set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95bln, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "Kof'95 (Boss - Like NeogeoCD Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95brz, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'95 (Boss Remixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95ce, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Color Edit)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95d, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (unknown hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95eh, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'95 (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95hp, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'95 (Add Char set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95pjc, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'95 (Add Char - Char color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95ru, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'95 KOF REMIX PRO (Diff Moves ultra rev v1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95seh, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'95 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95xg, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "PPX Hack Team", "Kof'95 (Boss)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95y, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'95 (Add Char set 1)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof96.cpp b/docs/release/src/hbmame/drivers/kof96.cpp new file mode 100644 index 00000000000..bf76252e248 --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof96.cpp @@ -0,0 +1,1390 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +// kof96ep has an extra rom with crossed wires which overrides part of the +// main p1 rom. This init unscrambles the extra rom and inserts the new +// code into the correct place. +DRIVER_INIT_MEMBER( neogeo_hbmame, kof96ep ) +{ + DRIVER_INIT_CALL(neogeo); + int i,j; + UINT8 *rom = cpuregion; + for ( i=0; i < 0x080000; i++ ) + { + j=i+0x300000; + if (rom[j] - rom[i] == 8) rom[j]=rom[i]; + } + memcpy(rom, rom+0x300000, 0x080000); +} + + + +ROM_START( kof96a ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214a.ep1", 0x000000, 0x080000, CRC(a6101486) SHA1(51357c216cc8e52fc4ecf5b2db4814e87d016132) ) + ROM_LOAD16_WORD_SWAP( "214a.ep2", 0x080000, 0x080000, CRC(6abc7ae5) SHA1(1bcbed38ef1934a0701d1c95b30ffe63316f92a8) ) + ROM_LOAD16_WORD_SWAP( "214a.ep3", 0x100000, 0x080000, CRC(a588dff4) SHA1(32d30bdf9b7bc9201b3930f5a0f126c79af97f3d) ) + ROM_LOAD16_WORD_SWAP( "214a.ep4", 0x180000, 0x080000, CRC(6d6f17eb) SHA1(51f61c9a4215584493cf1dc37c4e307e1216626c) ) + ROM_LOAD16_WORD_SWAP( "214a.p5", 0x200000, 0x100000, CRC(9f3c6bc9) SHA1(90370a2ad42421a533182569e63ab81822e37878) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ae ) // 10th Anniversary 2009 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ae.p1", 0x000000, 0x100000, CRC(c038e932) SHA1(ad9cbe9d82a07378d901323eb721ab171164286b) ) + ROM_LOAD16_WORD_SWAP( "214ae.p2", 0x100000, 0x400000, CRC(66da868f) SHA1(8bada399828d0c55c82a00bfe605de95b8ca07f6) ) + + NEO_SFIX_128K( "214ae.s1", CRC(0f902790) SHA1(9f7d95299f828af7bd62cb18680c8127e0e10ecc) ) + + NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214ae.v3", 0x800000, 0x400000, CRC(3cfd1295) SHA1(cfc6ed642ab736592673e96652232534b0e88080) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214ae.c1", 0x0000000, 0x400000, CRC(b308c1f9) SHA1(0c026b49ef45065c0691255a538921b0b4ad11dd) ) + ROM_LOAD16_BYTE( "214ae.c2", 0x0000001, 0x400000, CRC(220a92b2) SHA1(4f33fc76a199aef2880b3ba1760f92973315edfa) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214ae.c5", 0x1000000, 0x400000, CRC(41dbd677) SHA1(447d081bd8c390df63b9800ef302d2ada660796a) ) + ROM_LOAD16_BYTE( "214ae.c6", 0x1000001, 0x400000, CRC(1e6a3961) SHA1(ac09dc3e38209033e7797ec6896dd176f3ce6272) ) + ROM_LOAD16_BYTE( "214ae.c7", 0x1800000, 0x400000, CRC(08021fd6) SHA1(77c8fed7ac39e6a1a24a294f95c095c098a85c11) ) + ROM_LOAD16_BYTE( "214ae.c8", 0x1800001, 0x400000, CRC(bbd21b08) SHA1(4e060195b632e99634ca9c67fb2398c5a91c3341) ) + ROM_LOAD16_BYTE( "214ae.c9", 0x2000000, 0x400000, CRC(2efceab8) SHA1(e38c4d2be4d1101d9463cb7c7295f42676cbedb9) ) + ROM_LOAD16_BYTE( "214ae.c10", 0x2000001, 0x400000, CRC(9f7e1492) SHA1(11315f6ef47210b56004036162767d2e1f7b39b2) ) + ROM_LOAD16_BYTE( "214ae.c11", 0x2800000, 0x400000, CRC(183cd8fd) SHA1(bd4d47780bf80e382759fd4bbe25fefd4a180610) ) + ROM_LOAD16_BYTE( "214ae.c12", 0x2800001, 0x400000, CRC(b3d30499) SHA1(34e8009e05cdc8a2fc41e8551df4a5f681a329c1) ) +ROM_END + +ROM_START( kof96ae1 ) // 10th Anniversary 2007 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ae1.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) ) + ROM_LOAD16_WORD_SWAP( "214ae1.p2", 0x100000, 0x400000, CRC(824ff3eb) SHA1(c3efdcd7e72ac4164721f80b097e874b98539720) ) + + NEO_SFIX_128K( "214ae1.s1", CRC(203b3aaf) SHA1(5a82e9130c9218ca163e195863e3a759130a4594) ) + + NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214ae1.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214ae.c1", 0x0000000, 0x400000, CRC(b308c1f9) SHA1(0c026b49ef45065c0691255a538921b0b4ad11dd) ) + ROM_LOAD16_BYTE( "214ae.c2", 0x0000001, 0x400000, CRC(220a92b2) SHA1(4f33fc76a199aef2880b3ba1760f92973315edfa) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214ae1.c5", 0x1000000, 0x400000, CRC(6e03cb0c) SHA1(b75bef8025ab84e8b36404e94901092d19b3543a) ) + ROM_LOAD16_BYTE( "214ae1.c6", 0x1000001, 0x400000, CRC(a90bc55d) SHA1(75e141fc9debe5cb1db3875094c51afc9d852fac) ) + ROM_LOAD16_BYTE( "214ae.c7", 0x1800000, 0x400000, CRC(08021fd6) SHA1(77c8fed7ac39e6a1a24a294f95c095c098a85c11) ) + ROM_LOAD16_BYTE( "214ae.c8", 0x1800001, 0x400000, CRC(bbd21b08) SHA1(4e060195b632e99634ca9c67fb2398c5a91c3341) ) + ROM_LOAD16_BYTE( "214ae1.c9", 0x2000000, 0x400000, CRC(57e5bf80) SHA1(ef9a8f08ba094376257f29beb3fce04324edc4bf) ) + ROM_LOAD16_BYTE( "214ae1.c10", 0x2000001, 0x400000, CRC(cbe44c81) SHA1(be87a92a1f8f1985b5441608db7329aabb745bbb) ) + ROM_LOAD16_BYTE( "214ae1.c11", 0x2800000, 0x400000, CRC(5c7ddc8b) SHA1(34e0ae91968a58392db273f209dccfa11890fd26) ) + ROM_LOAD16_BYTE( "214ae1.c12", 0x2800001, 0x400000, CRC(48d8b574) SHA1(fa9be64f0cde68b9685146d5768dc95ddf9d54b8) ) +ROM_END + +ROM_START( kof96ae1a ) // 10th Anniversary 2007, different gfx roms + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ae1.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) ) + ROM_LOAD16_WORD_SWAP( "214ae1.p2", 0x100000, 0x400000, CRC(824ff3eb) SHA1(c3efdcd7e72ac4164721f80b097e874b98539720) ) + + NEO_SFIX_128K( "214ae1.s1", CRC(203b3aaf) SHA1(5a82e9130c9218ca163e195863e3a759130a4594) ) + + NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214ae1.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214ae1a.c1", 0x0000000, 0x1800000, CRC(c68508df) SHA1(f7e9ad7cfe506658a7aec51c79ebc119db456655) ) + ROM_LOAD16_BYTE( "214ae1a.c2", 0x0000001, 0x1800000, CRC(078d9390) SHA1(ef78328ee7e663a38318bb4c20f4c9c3316536ea) ) +ROM_END + +ROM_START( kof96b ) /* The King of Fighters '96 - Hack by UNKNOWN - (Can choose Chizuru Kagura and Goenitz) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214b.p1", 0x000000, 0x100000, CRC(0b385fab) SHA1(ea544d95438b373e3f5f530528413ff583d2b329) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96b1 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214b1.p1", 0x000000, 0x100000, CRC(9ec8c837) SHA1(bcf2286fc8ba0128a3f597ae6411949d3dac1db7) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96bb ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) + ROM_LOAD16_WORD_SWAP( "214bb.p2", 0x100000, 0x200000, CRC(6d4ca2ec) SHA1(9bac19d64e3fb058610df451622fcc927642006d) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96c ) /* The King of Fighters '96 - (kof96c) - Hack by Kyofun - (Chinese Ver.1.0) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214c.p1", 0x000000, 0x800000, CRC(51990a7f) SHA1(eef003e5a7e43d670fe916c983c161d213337627) ) + + NEO_SFIX_128K( "214c.s1", CRC(f917527a) SHA1(8c4778f9dc5e0651042f8ff6f1a18e3f40d0bf7c) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214c.c1", 0x0000000, 0x1800000, CRC(a89789ba) SHA1(25632122b747eb97a4ffb94d8e0cd7c20940d118) ) + ROM_LOAD16_BYTE( "214c.c2", 0x0000001, 0x1800000, CRC(e4a5e70d) SHA1(4f4691d386cfd63015812475bc58b1e8ae4b23ff) ) +ROM_END + +ROM_START( kof96cbi ) // Change Blood For Other Hack By IsmaMj (02-03-11) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214cbi.p1", 0x000000, 0x100000, CRC(4110ab9f) SHA1(f45eb631ceccac6d7d94ad6d0bdb1bc1bc198246) ) + ROM_LOAD16_WORD_SWAP( "214cbi.p2", 0x100000, 0x200000, CRC(2b5fa72a) SHA1(3b44765a3155cb830fdfb1d1ddc357405a42d1cf) ) + + NEO_SFIX_128K( "214cbi.s1", CRC(46a20a2c) SHA1(ef9584afee4cef53f166f247ec9e6b2ff0c29da8) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214cbi.c7", 0x1800000, 0x400000, CRC(e306d179) SHA1(dbacbb4a8417ca9cc3578a91121a8f98ce7c1974) ) + ROM_LOAD16_BYTE( "214cbi.c8", 0x1800001, 0x400000, CRC(7a8cdac6) SHA1(59a61a5764859ea141d6caa9c10e9e8fed4be877) ) +ROM_END + +ROM_START( kof96ckvs ) /* The King of Fighters '96 - (kof96ckvs) - Hack by KVS - (Chinese Version) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ckvs.p1", 0x000000, 0x800000, CRC(802a8874) SHA1(c76857acf29366af9e3ac8bf07fad0976ec2607f) ) + + NEO_SFIX_128K( "214ckvs.s1", CRC(3e9c7f67) SHA1(8d08e7861fbc3c8305b7160b8856326d8d407237) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214ckvs.v1", 0x000000, 0xa00000, CRC(4f14a72b) SHA1(fb1105aa271ea14016f777017cf6079ff61e176f) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214ckvs.c1", 0x0000000, 0x1800000, CRC(252e41e9) SHA1(2844b65dce7a47c04da4473d5ef519cbbdab0e09) ) + ROM_LOAD16_BYTE( "214c.c2", 0x0000001, 0x1800000, CRC(e4a5e70d) SHA1(4f4691d386cfd63015812475bc58b1e8ae4b23ff) ) +ROM_END + +ROM_START( kof96chj ) /* [OLD] The King of Fighters '96 - (kof96chj) - Remix by CHL and Jason/K3 - (Character move change - ultra kill style change) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214chj.p1", 0x000000, 0x100000, CRC(2a2a63ad) SHA1(92fca18b6bfc77569572262fcfbee732510dc3d6) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96cn ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214cn.p1", 0x000000, 0x100000, CRC(a8c25f0a) SHA1(f6b0f82ec7baa235fa68713bb1b12e3e83db8be5) ) + ROM_LOAD16_WORD_SWAP( "214cn.p2", 0x100000, 0x200000, CRC(0edface5) SHA1(2fb7a3e84758a6ce3977b6a1f306867cb52fe0f5) ) + ROM_LOAD16_WORD_SWAP( "214cn.p3", 0x300000, 0x500000, CRC(8724a441) SHA1(409a93e3bd7f40dfd623c2ed1f7173fa55f597b8) ) + + NEO_SFIX_128K( "214cn.s1", CRC(f917527a) SHA1(8c4778f9dc5e0651042f8ff6f1a18e3f40d0bf7c) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) + ROM_LOAD16_BYTE( "214cn.c9", 0x2000000, 0x400000, CRC(a9f811d2) SHA1(abd1bd95d2f44fc4b604294c12c5509b41509ed7) ) + ROM_LOAD16_BYTE( "214cn.c10", 0x2000001, 0x400000, CRC(1147406a) SHA1(2bccbd2f38f15c13eb7d5a89fd9d85f595e23bc3) ) +ROM_END + +ROM_START( kof96cr ) /* The King of Fighters '96 - Remix by CHL - (Character move and behaviour change) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214cr.p1", 0x000000, 0x100000, CRC(7d07f47d) SHA1(bc539a4cd318a3d68e97a71ae572c53827bcfcd6) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96de ) // Dragon Edition set 2 + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214de.p1", 0x000000, 0x100000, CRC(d2a9a727) SHA1(ecfcfc0a537827707cf7e4f4789c23b376362198) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96eh ) /* The King of Fighters '96 - Enhance by Ydmis - (Can choose Chizuru Kagura and Goenitz - power hack ABC) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214eh.p1", 0x000000, 0x100000, CRC(103ba0e4) SHA1(dd4964f2ad5f0c3540dff495d103890b9ecf0cbb) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ep ) + ROM_REGION( 0x380000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + ROM_LOAD16_WORD_SWAP( "214ep.p1", 0x300000, 0x080000, CRC(e5f2fb43) SHA1(5efff9873b30679ea924b7770606c889a1076315) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ep2 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ep2.p1", 0x000000, 0x100000, CRC(8233b2cf) SHA1(14fd815d80ff6f719539f746e5bd041d4fe85ecb) ) + ROM_LOAD16_WORD_SWAP( "214ep2.p2", 0x100000, 0x200000, CRC(9c57ae89) SHA1(65140219665938fe5365c2e4d1efd3424eaadd2f) ) + + NEO_SFIX_128K( "214ep2.s1", CRC(773aeb80) SHA1(04db79cba617b5c0634cb0f1cef6c9f1228eb31c) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214ep2.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) ) + ROM_LOAD16_BYTE( "214ep2.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) ) +ROM_END + +ROM_START( kof96ep3 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ep3.p1", 0x000000, 0x100000, CRC(687f1ba8) SHA1(9734e1b7ad9e13c8d5a7fbe411aae338373acf4a) ) + ROM_LOAD16_WORD_SWAP( "214ep2.p2", 0x100000, 0x200000, CRC(9c57ae89) SHA1(65140219665938fe5365c2e4d1efd3424eaadd2f) ) + + NEO_SFIX_128K( "214ep2.s1", CRC(773aeb80) SHA1(04db79cba617b5c0634cb0f1cef6c9f1228eb31c) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214ep2.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) ) + ROM_LOAD16_BYTE( "214ep2.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) ) +ROM_END + +ROM_START( kof96evo ) /* The King of Fighters '96 - KOF96 Evolution by Wesker - (Character move and style revision) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214evo.p1", 0x000000, 0x200000, CRC(6e10e1af) SHA1(f013e827e74a296d462bd00594b823dd02b4dc76) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96evoo ) /* [OLD] The King of Fighters '96 - (kof96evoo) - Remix by Wesker - (Character move change and style revision) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214evoo.p1", 0x000000, 0x200000, CRC(1e970d76) SHA1(2904241785c2544f270263f9203eef5207defef4) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ey ) /* The King of Fighters '96 - Enhance by Ydmis - (Power hack ABC) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ey.p1", 0x000000, 0x100000, CRC(2342fd92) SHA1(0901db47ff1f504d1635da0b2fdd417bbdd71839) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96hp ) /* The King of Fighters '96 - Hack by HackPlus - (Can choose Chizuru Kagura and Goenitz) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214hp.p1", 0x000000, 0x100000, CRC(fcf57652) SHA1(c423bf3ea2d02b3d8df338b69559861479360b02) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96hpr ) /* The King of Fighters '96 - Hack by HackPlus - (Can choose Chizuru Kagura and Goenitz - revised) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214hpr.p1", 0x000000, 0x100000, CRC(92c9df44) SHA1(f9d42176858c7c466c6e34ca3b360cb87cbf131c) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96k ) /* The King of Fighters '96 -Hack by Kurouri - (Can choose Chizuru Kagura and Goenitz - power hack ABC) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214k.p1", 0x000000, 0x100000, CRC(e0256484) SHA1(3b7b281962665c6198329e64b4c5d9c4ef871a04) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96k1 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) + ROM_LOAD16_WORD_SWAP( "214k1.p2", 0x100000, 0x200000, CRC(93ac7dff) SHA1(e8a8679c2b0860ace773eb48f021045d3ad02d1a) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96k3 ) /* The King of Fighters '96 - Remix by Jason/K3 - (Character move change to Kof98 style 20030725) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214k3.p1", 0x000000, 0x100000, CRC(800b8213) SHA1(06622e0bfa615195b888858c5806bd262434761b) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96k3o ) /* [OLD] The King of Fighters '96 - (kof96k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof96k3o.txt for more 20030710) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214k3o.p1", 0x000000, 0x100000, CRC(09173d9f) SHA1(85d60c976d04468b7c9dc3247c00ff99ec6fd4cc) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96kt ) // Korean Translation + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214kt.p1", 0x000000, 0x100000, CRC(a54e1812) SHA1(46b6eee1303a8d0efdd4659080a30a53ae2aeb15) ) + ROM_LOAD16_WORD_SWAP( "214kt.p2", 0x100000, 0x200000, CRC(2ad66289) SHA1(2d6be57436c84eadb0f1c59f0fa021c2799d1518) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214kt.c1", 0x0000000, 0x400000, CRC(0524e33e) SHA1(f844f2b075f1982ccb75691a422d957500ba8623) ) + ROM_LOAD16_BYTE( "214kt.c2", 0x0000001, 0x400000, CRC(e1374ccc) SHA1(7bff6465c21b53fbe85ea49fdb1fe8ea4b77394d) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96lx ) /* The King of Fighters '96 - Hack by Luxo */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) ) + ROM_LOAD16_WORD_SWAP( "214lx.p2", 0x100000, 0x400000, CRC(3cb8c583) SHA1(7863c1518fea1ef02e60d9456e68b4c2591b7716) ) + + NEO_SFIX_128K( "214lx.s1", CRC(f8984c6f) SHA1(f8aba219c2be132f21d9dbc4f13b127170a245e8) ) + + NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214lx.c1", 0x000000, 0x1800000, CRC(c8dbad80) SHA1(8b18b5b6f91e7f47cc04f370ed6218c084df6575) ) + ROM_LOAD16_BYTE( "214lx.c2", 0x000001, 0x1800000, CRC(8139ac33) SHA1(6200460abd7d00d7d85d00ffb8117dcf8a99016a) ) +ROM_END + +ROM_START( kof96ncd ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ncd.p1", 0x000000, 0x100000, CRC(18acfd90) SHA1(3da8848dfb06602684ceb2da097568aaccb2e709) ) + ROM_LOAD16_WORD_SWAP( "214ncd.p2", 0x100000, 0x200000, CRC(8dee366d) SHA1(bd05fb7a0481d2b6e64cd847239c39aad319fca8) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96oib ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214oib.p1", 0x000000, 0x100000, CRC(ab7e5fe8) SHA1(ce162e826d713ebe1743296889626c454ed81ba8) ) + ROM_LOAD16_WORD_SWAP( "214oib.p2", 0x100000, 0x200000, CRC(229d74d4) SHA1(b1384c18bc07f30b7c082f5befde20b72a9c0818) ) + + NEO_SFIX_128K( "214oib.s1", CRC(794769b4) SHA1(45b74cc5f875ff2c95545a4a21599af4b3a54078) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214oib.c5", 0x1000000, 0x400000, CRC(5ad89fe4) SHA1(4e53740ebd0f87bf33947c4ca6f6b64f98f1846a) ) + ROM_LOAD16_BYTE( "214oib.c6", 0x1000001, 0x400000, CRC(77dd026e) SHA1(410ddfd9901cdab8dfca1e44c1b583f218e208d9) ) + ROM_LOAD16_BYTE( "214oib.c7", 0x1800000, 0x400000, CRC(5e690993) SHA1(9de1771f643a9c4f433c256b3a23d9d380ecc07b) ) + ROM_LOAD16_BYTE( "214oib.c8", 0x1800001, 0x400000, CRC(ec6d3c59) SHA1(8387cc622b8e310c6d187f5e8ab42be31701017b) ) +ROM_END + +ROM_START( kof96oib2 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214oib.p1", 0x000000, 0x100000, CRC(ab7e5fe8) SHA1(ce162e826d713ebe1743296889626c454ed81ba8) ) + ROM_LOAD16_WORD_SWAP( "214oib2.p2", 0x100000, 0x200000, CRC(2e6fe5e2) SHA1(cfd8e35201bff14a76cdfbec42ef01b7abad5a60) ) + + NEO_SFIX_128K( "214oib.s1", CRC(794769b4) SHA1(45b74cc5f875ff2c95545a4a21599af4b3a54078) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214oib.c5", 0x1000000, 0x400000, CRC(5ad89fe4) SHA1(4e53740ebd0f87bf33947c4ca6f6b64f98f1846a) ) + ROM_LOAD16_BYTE( "214oib.c6", 0x1000001, 0x400000, CRC(77dd026e) SHA1(410ddfd9901cdab8dfca1e44c1b583f218e208d9) ) + ROM_LOAD16_BYTE( "214oib2.c7", 0x1800000, 0x400000, CRC(87348536) SHA1(df871243a15e9fbe0e6c9c6210c83c4853aa11c8) ) + ROM_LOAD16_BYTE( "214oib2.c8", 0x1800001, 0x400000, CRC(bee6c915) SHA1(884ff9f7b4262d55fdc8750de471a7067a17ea7d) ) +ROM_END + +ROM_START( kof96oih ) // Orochi Iori (unknown hack) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214oih.p1", 0x000000, 0x100000, CRC(db7eb010) SHA1(d19336fffcc7df186416b90d783c984237226113) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96oir ) // Orochi Iori Remix by IsmaMj + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214oir.p1", 0x000000, 0x100000, CRC(da24ce88) SHA1(0e6d7b3b142dee026a41ca3a3996a6692bd10fdf) ) + ROM_LOAD16_WORD_SWAP( "214rf.p2", 0x100000, 0x200000, CRC(3a7912f0) SHA1(27f2e82e543d5d8c66613babd0012e5bb2f3d0ec) ) + + NEO_SFIX_128K( "214oir.s1", CRC(39ef1161) SHA1(1366895edcc541091f2405d16ba99b16b72b6218) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96pjc ) /* The King of Fighters '96 - Colour fix by TcwLee - (Character colour change) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) + ROM_LOAD16_WORD_SWAP( "214pjc.p2", 0x100000, 0x200000, CRC(fde97cb6) SHA1(676ca59ef75844d9b398126b352d82683d890867)) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96pm ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214pm.p1", 0x000000, 0x100000, CRC(f8cdadde) SHA1(efc37896946a445c7b86f0e14615634f960a2097) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96rcw) /* The King of Fighters '96 - Remix by CHL and Wesker - (Character move and ultra kill style change) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214rcw.p1", 0x000000, 0x200000, CRC(7b12a4f1) SHA1(f3bcf418d8ecd63d9373c70b138ea7ea391b0cb9) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96rf ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214rf.p1", 0x000000, 0x100000, CRC(3ef73a54) SHA1(e82dc88aeef611249ff4a39d61de23d961230f37) ) + ROM_LOAD16_WORD_SWAP( "214rf.p2", 0x100000, 0x200000, CRC(3a7912f0) SHA1(27f2e82e543d5d8c66613babd0012e5bb2f3d0ec) ) + + NEO_SFIX_128K( "214rf.s1", CRC(d4899497) SHA1(d40c7f1d9b6e39d668cb635182b29f3ce03b802b) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214rf.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) ) + ROM_LOAD16_BYTE( "214rf.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) ) +ROM_END + +ROM_START( kof96rfs ) // Remix Final Standard + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214rfs.p1", 0x000000, 0x300000, CRC(8f9cf253) SHA1(e212ae9b092ebdf0435cc0f84bcb7bf43a0ffaf4) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214rfs.s1", CRC(08811ec1) SHA1(4a2f20999e8333763897b3b5d852b693a8c81c3e) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ri ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ri.p1", 0x000000, 0x100000, CRC(b327398e) SHA1(698fbfd310994e5cc20001f28f5d327bf4a997f2) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ri1 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ri1.p1", 0x000000, 0x100000, CRC(1eb17023) SHA1(ceed639edfcc1b120c420f08aeb036d8912bbcb5) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ri2 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ri2.p1", 0x000000, 0x100000, CRC(abef3f56) SHA1(563f77eb86068ed70bc0484291499d220a07dd84) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ri3 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ri3.p1", 0x000000, 0x100000, CRC(c58d9eea) SHA1(287d679c0caf00e163ac2d55d17809e8d5e911a6) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ri4 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030527) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ri4.p1", 0x000000, 0x100000, CRC(ef2b1662) SHA1(eb23ea0875f6b19dcc400699fd9fb0e846caedf3) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ri5 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030527) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ri5.p1", 0x000000, 0x100000, CRC(386420b2) SHA1(7ce3eee22112f53d808cc798c0e15b16cc290a0b) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96rm ) // Remix 2.5 by Marcochen + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214rm.p1", 0x000000, 0x100000, CRC(76913b21) SHA1(265f233baf200e7e591e5e463a7bac45fb1aeb52) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96rp ) // Remix Pro 1 + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214rp.p1", 0x000000, 0x100000, CRC(4f75f758) SHA1(81ff5ffb6f41c922fa25cd5eb720abdf44abd572) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96rp1 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214rp1.p1", 0x000000, 0x100000, CRC(e412a600) SHA1(3040b7704fd124725f38a1954914119cc09aa0e5) ) + ROM_LOAD16_WORD_SWAP( "214rp1.p2", 0x100000, 0x200000, CRC(6bd3d75e) SHA1(c1e517f575d2dc4148360b27dee55fba2251e59e) ) + + NEO_SFIX_128K( "214rp1.s1", CRC(36a14c3b) SHA1(2ab1a75bc8ba6b69fd8f99ff31d8082ac3d50c34) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96rss ) // Remix Spring Special + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214rss.p1", 0x000000, 0x300000, CRC(93abe27c) SHA1(478032f51ebd0b6f22d9ce4cbe17a4808218dd70) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214rss.s1", CRC(f304df75) SHA1(f696aed96dba4a086415374c7bbdf8c3b4f5b457) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ru ) /* The King of Fighters '96 - Remix Ultra by CHL and Jason/K3 - (Character move change - ultra kill style change - can choose Chizuru Kagura and Goenitz 20031203) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ru.p1", 0x000000, 0x100000, CRC(620da697) SHA1(146d396903fed547f586f095d6b7b4ec519c1479) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96rw ) /* The King of Fighters '96 - Remix By Wesker - (Character move change) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214rw.p1", 0x000000, 0x100000, CRC(1de99755) SHA1(69740ffc88d287d6f2bc218665a3f1fa358e5fc3) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96ryu ) // Ryu Hack by Iori Yagami + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214ryu.p1", 0x000000, 0x100000, CRC(ff399656) SHA1(27895e26ac82461850a594e1384b994bfa3772e5) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + +ROM_START( kof96seh ) /* The King of Fighters '96 - Super Enhance Hack by Ydmis - (Can choose Chizuru Kagura and Goenitz - ultra power hack ABC) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214seh.p1", 0x000000, 0x100000, CRC(76fc560c) SHA1(618b01b00235e1ff3d083e5c077e43482864f774) ) + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) +ROM_END + + + +GAME( 1996, kof96a, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, kof96ae, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof96ae1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof96ae1a, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96b, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96b1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 Boss Hack (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96bb, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 Boss Hack (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof96c, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Guangzhou Game Team", "Kof'96 (Chinese Ver.1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, kof96cbi, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Change Blood For Other Hack (02-03-11))", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ckvs, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KVS", "Kof'96 (Chinese ver)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96chj, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL and Jason/K3", "Kof'96 (Diff Moves - Ultra kill style changed set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 200?, kof96cn, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Chinese Edition ver 1.0, hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96cr, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'96 (Diff Moves and Style)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96de, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Dragon Edition set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96eh, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Add Char - Pow hack ABC set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ep, kof96, neogeo_noslot, neogeo, neogeo_hbmame, kof96ep, ROT0, "bootleg", "Kof'96 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ep2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Bootleg / Hack Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ep3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Bootleg / Hack Set 3 All Boss)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof96evo, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker/Fight China", "Kof'96 Evolution", MACHINE_SUPPORTS_SAVE ) // Moves and style rev +GAME( 2004, kof96evoo, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker/Fight China", "Kof'96 Evolution (Old)", MACHINE_SUPPORTS_SAVE ) // Moves and style rev Old +GAME( 1996, kof96ey, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Pow hack ABC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96hp, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'96 (Add Char set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96hpr, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'96 (Add Char set 2 - revised)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof96k, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Guangzhou Game Team", "Kof'96 (Add Char - Pow hack ABC set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96k1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Korean Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96k3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'96 Remix (Kof98 Moves 030725)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96k3o, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'96 Remix (Kof98 Moves 030710)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96kt, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Korean Translation)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof96lx, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ncd, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids FCHT", "Kof'96 (Boss, Like NEOGEOCD Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, kof96oib, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Special Orochi Iori/Boss Hack v3.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, kof96oib2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Special Orochi Iori/Boss Hack v3.0 alt)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96oih, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Orochi Iori (unknown hack))", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof96oir, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Orochi Iori Remix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96pjc, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'96 (Char color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96pm, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF1996", "Kof'96 Practice Mode (Hack by KOF1996)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof96rcw, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker/Fight China", "Kof'96 (Diff Moves - Ultra kill style changed set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96rf, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 Remix Final (2007 Revised Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, kof96rfs, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 (Remix Final Standard 1.4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ri, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ri1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ri2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ri3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ri4, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030527 set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ri5, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz","Kof'96 (Igniz rev 030527 set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96rm, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Marcochen", "Kof'96 (Remix 2.5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96rp, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Remix Pro 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, kof96rp1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 Remix Plus 2008 SP", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96rss, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 (Remix Spring Special 1.5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ru, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL and Jason/K3", "Kof'96 Remix Ultra (Diff Moves - Ultra kill style changed - Add Char 031203)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96rw, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'96 (Diff Moves)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96ryu, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Iori Yagami", "Kof'96 (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96seh, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof97.cpp b/docs/release/src/hbmame/drivers/kof97.cpp new file mode 100644 index 00000000000..4fbf47a3a6d --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof97.cpp @@ -0,0 +1,1898 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof97pla ) +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + // The following was used in Ash build, purpose unknown: + //m_bootleg_prot->patch_kof97pla(cpuregion, cpuregion_size); + // This contains: + //void ngbootleg_prot_device::patch_kof97pla(UINT8* cpurom, UINT32 cpurom_size) + //cpurom[0x1394A] = 0x6C; + //cpurom[0x1394B] = 0xD1; + //cpurom[0x1394C] = 0x3A; + //cpurom[0x1394D] = 0x1; + //cpurom[0x1394E] = 0x6C; + //cpurom[0x1394F] = 0x91; +} + + + +ROM_START( kof97aa ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232aa.p1", 0x000000, 0x100000, CRC(35a1a664) SHA1(5fc3835e5a3747f5e5d6bfe63e1562e33d26526e) ) + ROM_LOAD16_WORD_SWAP( "232aa.p2", 0x100000, 0x400000, CRC(6a732dff) SHA1(c3199941b69db945a7d754c52261aa97d39bb316) ) + + NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97ae ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232ae.p1", 0x000000, 0x100000, CRC(02ac80f0) SHA1(3273b537f927ed819f39d13be37c40eea4cc5db0) ) + ROM_LOAD16_WORD_SWAP( "232ae.p2", 0x100000, 0x400000, CRC(8cffe3f3) SHA1(c2dcac7d41576ddf97b585f515a9418f6b931e29) ) + + NEO_SFIX_128K( "232ae.s1", CRC(d4957067) SHA1(b756c97b050296db9b00e0bc6cdd79e4d2e2273e) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232ae.c1", 0x0000000, 0x800000, CRC(ea16b711) SHA1(e54d1a0b559f1ef326ee86bc89e9f1b399f08b32) ) + ROM_LOAD16_BYTE( "232ae.c2", 0x0000001, 0x800000, CRC(b7bef674) SHA1(378a67dfa7dba03900dd7c70a3473c12f9879af1) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97ae1 ) + ROM_REGION( 0x700000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232ae1.p1", 0x000000, 0x100000, CRC(49cfaded) SHA1(e42d4ccd8e91747e4f87799bb813a0e6382b79db) ) + ROM_LOAD16_WORD_SWAP( "232ae1.p2", 0x100000, 0x600000, CRC(030a85fb) SHA1(afe2249bde61ef401c2cfae9dddb3a6b51c258d9) ) + + NEO_SFIX_128K( "232ae1.s1", CRC(67d4cd7a) SHA1(b4f7d6a10523aa1d6322a04dc755ed4258003de0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232ae1.c1", 0x0000000, 0x800000, CRC(bc35a6dc) SHA1(81d0b5a2c7fb6f5d0f19e3ab3ef2cc9d98806532) ) + ROM_LOAD16_BYTE( "232ae1.c2", 0x0000001, 0x800000, CRC(66bf2938) SHA1(a45933a286cf6c1d4e63f687819262751650a9cd) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97bh ) /* The King of Fighters '97 - Hack by Dodowang - (Can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona - Orochi has icon in menue - extra stage select) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232bh.p1", 0x000000, 0x100000, CRC(b49a3fcf) SHA1(2dcb95e184b86a455ef23b70aca00bbcd28f23c5) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232bh.s1", CRC(71c426e6) SHA1(1fd4a2537daf6a26e1e2707183b0f1762d7a25ff) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97bng ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232bng.p1", 0x000000, 0x100000, CRC(8d699492) SHA1(a70958426a6de040f3af5a6050e6e8f82c016aa0) ) + ROM_LOAD16_WORD_SWAP( "232bng.p2", 0x100000, 0x400000, CRC(d86d0095) SHA1(53d76659dacc6a7d3113fd51c29904e2ef0cf171) ) + + NEO_SFIX_128K( "232bng.s1", CRC(c24e2cb7) SHA1(79f298997b773ed869a49a897aa38b74a43b051c) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) ) + ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232bng.c5", 0x2000000, 0x400000, CRC(e749d4d2) SHA1(8f4c54c0355decebfc47b8d11b863dcd84647688) ) + ROM_LOAD16_BYTE( "232bng.c6", 0x2000001, 0x400000, CRC(dc7c5cd7) SHA1(f33b62a1ded71edf0b2bd8e6f2495da34c7b1984) ) +ROM_END + +ROM_START( kof97bs ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232bs.p1", 0x000000, 0x100000, CRC(6802a9d1) SHA1(e5ccd06e96a12133d5176f154209b4c766009cb0) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232bs.c1", 0x0000000, 0x800000, CRC(47932f00) SHA1(3dcedd194a2138cd8b006462a42b52e925f6b5ce) ) + ROM_LOAD16_BYTE( "232bs.c2", 0x0000001, 0x800000, CRC(f87c3d84) SHA1(0de2dcb6a475ea6475d67c60a254e6b7cbcde951) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97cb2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232cb2.p1", 0x000000, 0x100000, CRC(4fb095a5) SHA1(1d8ae617967c8d96aa219b674568063e5a0d9b27) ) + ROM_LOAD16_WORD_SWAP( "232cb2.p2", 0x100000, 0x400000, CRC(203d656a) SHA1(e3ee823a881527483908d4466fefcd0875503193) ) + + NEO_SFIX_128K( "232cb2.s1", CRC(8fe6d842) SHA1(e209b7fca380093f711d3b3396f1160beb7b33bd) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97chl ) /* [OLD] The King of Fighters '97 - (kof97chl) - Revise by CHL - (Character move change by chl 20030325) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232chl.p1", 0x000000, 0x100000, CRC(ce99174b) SHA1(3ff2e0c71e24c55741c9718725d214368a144c53) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97chl2 ) /* [OLD] The King of Fighters '97 - (kof97chl2) - Revise by CHL - (Character move change by chl revision 2 20030409) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232chl2.p1", 0x000000, 0x100000, CRC(fd7efa7d) SHA1(383aa8054ec1a1b832983fbacfc93e6740712e18) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97chris ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) + ROM_LOAD16_WORD_SWAP( "232chris.p2", 0x100000, 0x400000, CRC(2b43d718) SHA1(e932a7d5f215baaf799cfc64f80bb8a1312ab82a) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232chris.c5", 0x2000000, 0x800000, CRC(7a47b7c7) SHA1(a12a0cf57f5d81bb6d8eab0429f6204427c52c75) ) + ROM_LOAD16_BYTE( "232chris.c6", 0x2000001, 0x800000, CRC(867c138b) SHA1(fa9c5237ed5d59aed23b8df5bb2504e629433e01) ) +ROM_END + +ROM_START( kof97cn ) + ROM_REGION( 0x700000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232cn.p1", 0x000000, 0x100000, CRC(082933c8) SHA1(e6f8bc7eb0e4ed25b37cc9324ccf170c69331212) ) + ROM_LOAD16_WORD_SWAP( "232cn.p2", 0x100000, 0x600000, CRC(d22d3ca3) SHA1(f7cb7cbd7dd043c5436030b8280456271a4d782a) ) + + NEO_SFIX_128K( "232cn.s1", CRC(de5ad278) SHA1(3d041c5e51b5076dacef235cd2847b09722e86a2) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232cn.c1", 0x0000000, 0x800000, CRC(8c3d2c0c) SHA1(e61e0e3620a35695a80403a91ba9b889e38c2581) ) + ROM_LOAD16_BYTE( "232cn.c2", 0x0000001, 0x800000, CRC(43ce69ae) SHA1(16b65a55d4631602d751bd91ef9bdc49fedd41fe) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97co ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232co.p1", 0x000000, 0x100000, CRC(117cb452) SHA1(df7fad0484e486fe743899cc07ac2a9eb5e98ebd) ) + ROM_LOAD16_WORD_SWAP( "232co.p2", 0x100000, 0x400000, CRC(4a97480c) SHA1(a12b05c4f8c4305d809fafe8d525cdb2ee0e0e7e) ) + + NEO_SFIX_128K( "232cb2.s1", CRC(8fe6d842) SHA1(e209b7fca380093f711d3b3396f1160beb7b33bd) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97co6 ) // Ivex's KOF97 COMBO 2006 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232co6.p1", 0x000000, 0x100000, CRC(9a8762e2) SHA1(c4b6c330acc9dfd1cb8bb3389dfe3881ed689cb4) ) + ROM_LOAD16_WORD_SWAP( "232co6.p2", 0x100000, 0x400000, CRC(3586a046) SHA1(3eb354d929bbf36188a7e99798ee37ce18c4a377) ) + + NEO_SFIX_128K( "232co6.s1", CRC(e9960efa) SHA1(2af54d22368204e70ac7b6697ba4ad148271c08b) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97cr ) /* The King of Fighters '97 - Remix by CHL Hack by Leather - (Character move and behaviour change - extra stage select) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232cr.p1", 0x000000, 0x100000, CRC(76ec749d) SHA1(7b8c208eb6559f350a0fac031b936d6e04928ae6) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97eh ) /* The King of Fighters '97 - Super Enhance Hack by Creamymami, Leather and Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - ultra power hack ABC - extra stage select) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232eh.p1", 0x000000, 0x100000, CRC(3d4eb515) SHA1(7d1ca643fb3872495fa681bc28a975d92822b7f0) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97eh2 ) /* The King of Fighters '97 - Super Enhance Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - power hack ABC - extra stage select) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232eh2.p1", 0x000000, 0x100000, CRC(dc81f242) SHA1(24457a3570b8ef802d90576f4e32f1701ebf2018) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97eho ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - power hack ABC) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232eho.p1", 0x000000, 0x100000, CRC(83caa31c) SHA1(8db7f86464b91a56a168ec3d639f4c1fbaaa0499) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97evo ) // Evolution + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232evo.p1", 0x000000, 0x100000, CRC(8ee0d743) SHA1(7bfd8428efb0a738decccf0f2120dac1c4bc3a6a) ) + ROM_LOAD16_WORD_SWAP( "232evo.sp2", 0x100000, 0x400000, CRC(5cbb2499) SHA1(58e21c1ff7afbfcca0a733e2b3e9f54b2317ed42) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97evoa ) // Old evolution + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232evoa.p1", 0x000000, 0x100000, CRC(d439c4ed) SHA1(67117ffce3c95615d75eb298c50224685df5f0b7) ) + ROM_LOAD16_WORD_SWAP( "232evoa.p2", 0x100000, 0x400000, CRC(d7da3056) SHA1(85327e846a60dbe24d997fe2dc1714e884bb46d1) ) + + NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97hk ) // Evolution Hakeshu + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232evoa.p1", 0x000000, 0x100000, CRC(d439c4ed) SHA1(67117ffce3c95615d75eb298c50224685df5f0b7) ) + ROM_LOAD16_WORD_SWAP( "232hk.p2", 0x100000, 0x400000, CRC(e912c4b8) SHA1(78df184e5000f871e0188b1b7785291525ca11e6) ) + + NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) ) + ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232hk.c5", 0x2000000, 0x800000, CRC(03aa727d) SHA1(e8e571fb00252dccc68ecfc9e20cf5e64491e6a4) ) + ROM_LOAD16_BYTE( "232hk.c6", 0x2000001, 0x800000, CRC(d7663c50) SHA1(790c761a5fab033851700de3d63d7ab4257f6caf) ) +ROM_END + +ROM_START( kof97hl ) // Fall Ban Edition + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232hl.p1", 0x000000, 0x100000, CRC(16767f2b) SHA1(84ee5c13d437611706a429635cb51fe61d477c02) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97hxd ) /* The King of Fighters '97 - Hack by Hxdhome - (Can choose Orochi + 5 add. characters) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232hxd.p1", 0x000000, 0x100000, CRC(ec95b2cf) SHA1(0f5ac8bc9eaeb32441ee72a9ce93fbb9d9462359) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97ice ) /* The King of Fighters '97 - Colour fix by Cz-Kyo97 - (Colour change - ice) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) + ROM_LOAD16_WORD_SWAP( "232ice.p2", 0x100000, 0x400000, CRC(b26e3767) SHA1(6b3d513b523d3513e9300db54891abd1079a5865) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97kai ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232kai.p1", 0x000000, 0x100000, CRC(e96524fe) SHA1(e9a523233228ed57bdbc2b8eb620054cadb381f2) ) + ROM_LOAD16_WORD_SWAP( "232kai.p2", 0x100000, 0x400000, CRC(839c4b8c) SHA1(23ae586feef65ab091fe02eb9d845cedfc4e00b1) ) + + NEO_SFIX_128K( "232kai.s1", CRC(1455f002) SHA1(6e164be5303e75f366eb1172423b8552a9257a9c) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97kp ) /* The King of Fighters '97 - Hack by KofPerfect - (Can choose Orochi) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232kp.p1", 0x000000, 0x100000, CRC(f29de6b6) SHA1(aafb7925df9fed83762ecf363855b971baaf614f) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97kp1 ) + ROM_REGION( 0x700000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232kp1.p1", 0x000000, 0x100000, CRC(d0c63184) SHA1(71cc96a0388a09695cfa5b5f7c04dbb40ab49615) ) + ROM_LOAD16_WORD_SWAP( "232kp1.p2", 0x100000, 0x600000, CRC(fddde211) SHA1(6e8280ad7a9dda204f30e40d9575e31d3e436ef2) ) + + NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) ) + ROM_LOAD16_BYTE( "232kp1.c2", 0x0000001, 0x800000, CRC(5869e4ad) SHA1(17b3d921ad0118e9fb61fd665639901c4b3bc2f5) ) + ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) ) + ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) ) + ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) ) + ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) ) +ROM_END + +ROM_START( kof97lb ) // LB70's Quanhuang Shaman 3.0 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232lb.p1", 0x000000, 0x100000, CRC(2e88c8e6) SHA1(87b947e735b52803f87b77033471b156c2e83a4d) ) + ROM_LOAD16_WORD_SWAP( "232lb.p2", 0x100000, 0x400000, CRC(76111847) SHA1(a7791f28d6f63379b03ea8af292524ffd7784872) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97lc ) /* The King of Fighters '97 - Colour fix by Liuzheng0131 - (Colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) + ROM_LOAD16_WORD_SWAP( "232lc.p2", 0x100000, 0x400000, CRC(852cfee6) SHA1(8db51a12a05f2312c2a241027c61711137a0ca94) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97lr ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232lr.p1", 0x000000, 0x100000, CRC(447e81b2) SHA1(26c1056488803782f49d4f8f4ae2df3c840fcf57) ) + ROM_LOAD16_WORD_SWAP( "232lr.p2", 0x100000, 0x400000, CRC(a9ecc9d7) SHA1(5860da51bd304b2837d30aef698d498c12a13d20) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232lr.c1", 0x0000000, 0x800000, CRC(6c224c0b) SHA1(54ace1387646728ddd2fe3feea4b22c46e75fc7d) ) + ROM_LOAD16_BYTE( "232lr.c2", 0x0000001, 0x800000, CRC(badf8fa5) SHA1(07381d1d64f5fd4cd11989a2f715298c6d4827cd) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97m ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232m.p1", 0x000000, 0x100000, CRC(eaea9193) SHA1(ca3d9216ae1e092f369f197335ae57fe40d5dcc0) ) + ROM_LOAD16_WORD_SWAP( "232m.p2", 0x100000, 0x400000, CRC(a50f6113) SHA1(ebe5f66b482e3e3818de0c894cf4b1cb1c262ece) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97mit ) /* The King of Fighters '97 - Enhance by MIT - (Character style enhance, see kof97mit.txt for more 20050324) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232mit.p1", 0x000000, 0x100000, CRC(B96600CE) SHA1(260A42AAF117DE392A32A473E552E73253FC0EA7) ) + ROM_LOAD16_WORD_SWAP( "232mit.p2", 0x100000, 0x400000, CRC(44FECE8E) SHA1(F1604613267297FF3B375DAD397CE6E1256078E6) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97mj ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232mj.p1", 0x000000, 0x100000, CRC(21f97218) SHA1(8433172fe2df08f608c54479671153803da9d8cf) ) + ROM_LOAD16_WORD_SWAP( "232mj.p2", 0x100000, 0x400000, CRC(acfec2d1) SHA1(2bb218bcc1bbadb94af0ad2bda49b71cad8e5ef5) ) + + NEO_SFIX_128K( "232mj.s1", CRC(436a47bd) SHA1(051185a2ab766e7ab5e6e81628c478c3e89c70b2) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232mj.c1", 0x0000000, 0x800000, CRC(6099f8fa) SHA1(77df1bc28e983d485a92c44b290334052e096d58) ) + ROM_LOAD16_BYTE( "232mj.c2", 0x0000001, 0x800000, CRC(c7440dfd) SHA1(83040bf02153de6529a163348e6b8aeceeb8799e) ) + ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) ) + ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) ) + ROM_LOAD16_BYTE( "232bng.c5", 0x2000000, 0x400000, CRC(e749d4d2) SHA1(8f4c54c0355decebfc47b8d11b863dcd84647688) ) + ROM_LOAD16_BYTE( "232bng.c6", 0x2000001, 0x400000, CRC(dc7c5cd7) SHA1(f33b62a1ded71edf0b2bd8e6f2495da34c7b1984) ) +ROM_END + +ROM_START( kof97nd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232nd.p1", 0x000000, 0x100000, CRC(fb677720) SHA1(a27205842835564b364f442fd21e95aa70ac0f89) ) + ROM_LOAD16_WORD_SWAP( "232nd.p2", 0x100000, 0x400000, CRC(edd56448) SHA1(5ce8ac573ffffce0408c2a5f57d44eb9a0d63bd1) ) + + NEO_SFIX_128K( "232nd.s1", CRC(85cec2a2) SHA1(476ddddc7aafe0042f0fe07a95398ba1ca96e944) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) ) + ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) ) + ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) ) + ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) ) + ROM_LOAD16_BYTE( "232nd.c5", 0x2000000, 0x400000, CRC(07064635) SHA1(66608e7291c05a10d897c3c342b3a2d98c8cb0a6) ) + ROM_LOAD16_BYTE( "232nd.c6", 0x2000001, 0x400000, CRC(0f33ade8) SHA1(1228c312d2a77f1678f14606289754a22ad8d03b) ) +ROM_END + +ROM_START( kof97ne ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232ne.p1", 0x000000, 0x100000, CRC(E742C038) SHA1(018a0273c959a7885bda850aade75e411c11c633) ) + ROM_LOAD16_WORD_SWAP( "232ne.p2", 0x100000, 0x400000, CRC(A028904B) SHA1(f099a31d9f61fc9c63f8816f942c13fb67f56d52) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6FE02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) ) + ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0F96C84A) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) ) +ROM_END + +ROM_START( kof97neo ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232neo.p1", 0x000000, 0x100000, CRC(676504e1) SHA1(0a802cf782a97a52251582ff35e70f16fb77fc44) ) + ROM_LOAD16_WORD_SWAP( "232neo.p2", 0x100000, 0x400000, CRC(10f61d2a) SHA1(b687c3813fc262d351a37c6f47cc141a3f4fba00) ) + + NEO_SFIX_128K( "232neo.s1", CRC(7995d156) SHA1(d218dd4829b5c4891975a1da9c277a116ab6ecb4) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97nude ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) ) + ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232nude.c5", 0x2000000, 0x400000, CRC(f0336a63) SHA1(aefb4ac0341d1b35d1b61395b3baf99af2e9ab98) ) + ROM_LOAD16_BYTE( "232nude.c6", 0x2000001, 0x400000, CRC(52968b9f) SHA1(9f3be2219e3c1a19626624ec16f175ac25723bce) ) +ROM_END + +ROM_START( kof97phl ) // Plus Hack by Liyang1983 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232phl.p1", 0x000000, 0x100000, CRC(195cb02f) SHA1(6ced6f7c94b0c8a850ee1ae4ffdf2ab5a3c4627f) ) + ROM_LOAD16_WORD_SWAP( "232phl.p2", 0x100000, 0x400000, CRC(4cb23f07) SHA1(efd888c5cde03a687547e42e494aac2886198b00) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97pj ) /* The King of Fighters '97 - Hack by TcwLee - (A fixed HXD version - can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232pj.p1", 0x000000, 0x100000, CRC(91692771) SHA1(ef1c2d7be60798bd778785d6a8d4fd2250b64679) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97pjc ) /* The King of Fighters '97 - (kof97pjc) - Colour fix by TcwLee - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) + ROM_LOAD16_WORD_SWAP( "232pjc.p2", 0x100000, 0x400000, CRC(a42ff099) SHA1(498d14dbf18640e543cb417733c90e7d2f93d715) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97pl2 ) /* Plus hack set 2 */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232pl2.p1", 0x000000, 0x100000, CRC(1a20007a) SHA1 (70d92f1c848b4303d037423549c7b6d596680b23) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232pl2.s1", CRC(71c426e6) SHA1(1fd4a2537daf6a26e1e2707183b0f1762d7a25ff) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97pl3 ) /* Plus hack set 3 */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232pl3.p1", 0x000000, 0x100000, CRC(d5d92967) SHA1(04079b92fe73ee8ee2c08f63388a74435e894945) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232pl3.s1", CRC(cf6afb00) SHA1(aca3d9f571af3195a96bf044f353b3f0bc4cfc3a) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97pla ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232pla.p1", 0x000000, 0x100000, CRC(035911c5) SHA1(3321862384ec91174f1822cfdbc2bf1d1407e775) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232pla.s1", CRC(4ee2149a) SHA1(180a1a90021031eac1a643b769d9cdeda56518f5) ) // scrambled + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97plc ) // Plus Black Edition by ZKW + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232plc.p1", 0x000000, 0x100000, CRC(1fc4c254) SHA1(77d6cca4f27c30965f44b39f38bc2cce471d0f92) ) + ROM_LOAD16_WORD_SWAP( "232plc.p2", 0x100000, 0x400000, CRC(c6901879) SHA1(bcd2998750f89421bef0ae3bae401914cac973df) ) + + NEO_SFIX_128K( "232plc.s1", CRC(d8266286) SHA1(ce59a15ec4d8c8a8ae759c10d0ebb5df0bef85d9) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232plc.c5", 0x2000000, 0x400000, CRC(763040eb) SHA1(998df039fce45b13a1dbeecaf44e2f9e290141da) ) + ROM_LOAD16_BYTE( "232plc.c6", 0x2000001, 0x400000, CRC(60b303b1) SHA1(5da1d5fcdd0dcdf1ff583378ac34a977273e4f2b) ) +ROM_END + +ROM_START( kof97plus ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232plus.p1", 0x000000, 0x100000, CRC(0b124634) SHA1(1c272a5601447ee26629eb99482c5de9148615a7) ) + ROM_LOAD16_WORD_SWAP( "232plus.p2", 0x100000, 0x400000, CRC(1cb2023c) SHA1(6a81f7e7e8aa88e21f50fff1117a051056c90c41) ) + + NEO_SFIX_128K( "232kai.s1", CRC(1455f002) SHA1(6e164be5303e75f366eb1172423b8552a9257a9c) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) ) + ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) ) + ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) ) + ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) ) +ROM_END + +ROM_START( kof97pm ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232pm.p1", 0x000000, 0x100000, CRC(34ccabae) SHA1(9d631b5dfac3d7564aa60a17bd15b565081bca02) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97ps ) // Playstation Hack + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232ps.p1", 0x000000, 0x100000, CRC(fc25feec) SHA1(5e2677ce1011789bd74c208cd6b1286f4ca8f4bd) ) + ROM_LOAD16_WORD_SWAP( "232ps.p2", 0x100000, 0x400000, CRC(90723643) SHA1(62d95957ae51732de30af903dc8f07f5556d15f5) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232ps.c1", 0x0000000, 0x800000, CRC(748ade86) SHA1(3b4d84e978b03f8cd8f2155da524870096e3734f) ) + ROM_LOAD16_BYTE( "232ps.c2", 0x0000001, 0x800000, CRC(3270fa6e) SHA1(16d6afdf0ed437303a069184bbbbcbc0719f3db6) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232ps.c5", 0x2000000, 0x400000, CRC(47711a8c) SHA1(4105b1326a83d042dd998431c7bea18ee08f124c) ) + ROM_LOAD16_BYTE( "232ps.c6", 0x2000001, 0x400000, CRC(6703a48a) SHA1(ffdc3f8e65a0197d9fcb9bd0d1d945061bf9736e) ) +ROM_END + +ROM_START( kof97rev ) // KOF97 revival + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232rev.p1", 0x000000, 0x100000, CRC(565adea2) SHA1(fa179e2b958096033692bd523571e130f8f52b77) ) + ROM_LOAD16_WORD_SWAP( "232rev.p2", 0x100000, 0x400000, CRC(96848312) SHA1(198ddbbbc0834b8cdabf1f765d6c82e382de95ff) ) + + NEO_SFIX_128K( "232rev.s1", CRC(61a87d84) SHA1(3e5c17c13eacf48c92fbb3863c0af89570e44b31) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232rev.c1", 0x0000000, 0x800000, CRC(ba114558) SHA1(8e66d600b3c65061f83622934585f58ba8809691) ) + ROM_LOAD16_BYTE( "232rev.c2", 0x0000001, 0x800000, CRC(cb287153) SHA1(d08559131d0fc9900de12433733af176d698dff4) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232rev.c5", 0x2000000, 0x400000, CRC(9c543bc6) SHA1(cb227c71aca5e632a08fbd7f5af53581b5b28f93) ) + ROM_LOAD16_BYTE( "232rev.c6", 0x2000001, 0x400000, CRC(e3feb991) SHA1(978b106bccd31c8229c9abcc6e682a7b5fc98154) ) +ROM_END + +ROM_START( kof97rk ) // Hack by Risko + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232rk.p1", 0x000000, 0x100000, CRC(940409b7) SHA1(94d1e0ec3460f5a2087f5fc1e1455df123f18c28) ) + ROM_LOAD16_WORD_SWAP( "232rk.p2", 0x100000, 0x400000, CRC(b5cc5323) SHA1(30d156629a6cf69a2a9f6efb679c206e4ed9b2bf) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97rv ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232rv.p1", 0x000000, 0x100000, CRC(eff2926f) SHA1(d9a64806ace1d2b08d8a5b2092bbfeb93c3230fd) ) + ROM_LOAD16_WORD_SWAP( "232rv.p2", 0x100000, 0x400000, CRC(478a61bd) SHA1(e826fcf4c3392a833045a285d354a72421a527bc) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) ) + ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) ) +ROM_END + +ROM_START( kof97saw ) /* The King of Fighters '97 - (kof97saw) - Hack by Wesker - (Shingo: The content must kill the technique entire flame special effect is the red flame) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232saw.p1", 0x000000, 0x100000, CRC(eb99d0d0) SHA1(43d7495ec873b3c1f9cc33ecdc124f020851e1f7) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97sed ) // unknown hack + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) + ROM_LOAD16_WORD_SWAP( "232sed.p2", 0x100000, 0x400000, CRC(ca63e700) SHA1(1b6a4d3491e467eb3cb0d2d947707482cac3ea34) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232sed.c1", 0x0000000, 0x800000, CRC(085bcdfa) SHA1(042deb49b20763bbe0a3e8236a6d5798b3036536) ) + ROM_LOAD16_BYTE( "232sed.c2", 0x0000001, 0x800000, CRC(78613707) SHA1(68f244a83e7314fe62a61bad0d0e5253a493da54) ) + ROM_LOAD16_BYTE( "232sed.c3", 0x1000000, 0x800000, CRC(afde78ed) SHA1(2075d68980a867b498fe812f3265a36bddd57a81) ) + ROM_LOAD16_BYTE( "232sed.c4", 0x1000001, 0x800000, CRC(9d61d6ca) SHA1(03d81bcda5d1d08fbe2eb2569937bcb0fdf83269) ) + ROM_LOAD16_BYTE( "232sed.c5", 0x2000000, 0x400000, CRC(10ea56c6) SHA1(8324418820f88264c19be5fd73a0fe98fe5b0c0e) ) + ROM_LOAD16_BYTE( "232sed.c6", 0x2000001, 0x400000, CRC(d48fe6c9) SHA1(6fec93dcc562b7243b2f550857073323f81d3db7) ) +ROM_END + +ROM_START( kof97sex ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) + ROM_LOAD16_WORD_SWAP( "232sex.p2", 0x100000, 0x400000, CRC(ca63e700) SHA1(1b6a4d3491e467eb3cb0d2d947707482cac3ea34) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232sex.c1", 0x0000000, 0x800000, CRC(085bcdfa) SHA1(042deb49b20763bbe0a3e8236a6d5798b3036536) ) + ROM_LOAD16_BYTE( "232sex.c2", 0x0000001, 0x800000, CRC(78613707) SHA1(68f244a83e7314fe62a61bad0d0e5253a493da54) ) + ROM_LOAD16_BYTE( "232sex.c3", 0x1000000, 0x800000, CRC(afde78ed) SHA1(2075d68980a867b498fe812f3265a36bddd57a81) ) + ROM_LOAD16_BYTE( "232sex.c4", 0x1000001, 0x800000, CRC(9d61d6ca) SHA1(03d81bcda5d1d08fbe2eb2569937bcb0fdf83269) ) + ROM_LOAD16_BYTE( "232sex.c5", 0x2000000, 0x400000, CRC(10ea56c6) SHA1(8324418820f88264c19be5fd73a0fe98fe5b0c0e) ) + ROM_LOAD16_BYTE( "232sex.c6", 0x2000001, 0x400000, CRC(d48fe6c9) SHA1(6fec93dcc562b7243b2f550857073323f81d3db7) ) +ROM_END + +ROM_START( kof97shi ) // Evolution Shin Edition + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232shi.p1", 0x000000, 0x100000, CRC(dbcec604) SHA1(5bf014bad8ce228f9683151e2e4b0e359108c920) ) + ROM_LOAD16_WORD_SWAP( "232shi.p2", 0x100000, 0x400000, CRC(5a500cf6) SHA1(3239e819cc68011e460160b534fb6c5c26604c8a) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97sm ) // Smoke Version + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) + ROM_LOAD16_WORD_SWAP( "232sm.p2", 0x100000, 0x400000, CRC(d7e62250) SHA1(34d56d01e4e15a05ea7890bda0148994a7763c39) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97svs ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232svs.p1", 0x000000, 0x454fd8, CRC(8edbfb69) SHA1(1c5893f24d0cdb7fe275a7b14f844ef9e2296417) ) + ROM_LOAD16_WORD_SWAP( "232svs.p2", 0x100000, 0x454f46, CRC(9deca038) SHA1(dbb756ad859e8ec4f7ed1400f5d839401068ee58) ) + + NEO_SFIX_128K( "232svs.s1", CRC(867a9aec) SHA1(9483eb67ce8bad9a5933554e25a34f68b1ad6f13) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232svs.c1", 0x0000000, 0x800000, CRC(7173901b) SHA1(a0eb2c269560baaabb083f733b7bea6aab954eae) ) + ROM_LOAD16_BYTE( "232svs.c2", 0x0000001, 0x800000, CRC(404ef620) SHA1(e3ca4e677c6f76e467e482172d9acbb60cc819b8) ) + ROM_LOAD16_BYTE( "232svs.c3", 0x1000000, 0x800000, CRC(27a27dd5) SHA1(658000df70768f3ca257d64eaedadad26e34fc95) ) + ROM_LOAD16_BYTE( "232svs.c4", 0x1000001, 0x800000, CRC(e6a91916) SHA1(b21fda210dac93174585c70fd58735ed42a5b7f0) ) + ROM_LOAD16_BYTE( "232svs.c5", 0x2000000, 0x800000, CRC(89dc1ee5) SHA1(4eda0211a3e59ca3c70cec294fa671c789ec905e) ) + ROM_LOAD16_BYTE( "232svs.c6", 0x2000001, 0x800000, CRC(6f047b36) SHA1(9df4cb34f3b28a97c0b903394b3e2cdb79906582) ) +ROM_END + +ROM_START( kof97sw ) /* The King of Fighters '97 - (kof97sw) - Hack by Wesker - (Shingo: 26a\c the 623a\c special effect is the red flame) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232sw.p1", 0x000000, 0x100000, CRC(b4378ad4) SHA1(18210a5259f1499123277532dabb00b0c7bee50e) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97wh ) /* The King of Fighters '97 - (kof97wh) - Hack by Wesker - (Style change for Kyo to 95' Kyo) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232wh.p1", 0x000000, 0x100000, CRC(a2534a20) SHA1(5717e30eeac96de6e23e0e5d4e9b1792362c8ae3) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97wpls ) /* The King of Fighters '97 - (kof97wpls) - Hack by Wesker - ('PLUS' version by Wesker) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232wpls.p1", 0x000000, 0x100000, CRC(036c885d) SHA1(7c5b1c2901a11f627c3552c6846a2aca35397eaf) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97xbt ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232xbt.p1", 0x000000, 0x100000, CRC(518416bd) SHA1(db1f1f739ddb182d4215482a41ecf177909fe2c5) ) + ROM_LOAD16_WORD_SWAP( "232xbt.p2", 0x100000, 0x400000, CRC(3a1f7c4e) SHA1(a4f2059543e0d31b6e7e27775966955a9a41e049) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232xbt.c5", 0x2000000, 0x400000, CRC(6fe02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) ) + ROM_LOAD16_BYTE( "232xbt.c6", 0x2000001, 0x400000, CRC(0f96c84a) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) ) +ROM_END + +ROM_START( kof97xi ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232xi.p1", 0x000000, 0x100000, CRC(acc7bfb2) SHA1(64e0b8897a7f80627ac020452daaa1aa2a073ffe) ) + ROM_LOAD16_WORD_SWAP( "232xi.p2", 0x100000, 0x400000, CRC(098f4871) SHA1(d4e7bfe953f6602b71ccb69bb91fc8e78d911467) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232xi.c1", 0x0000000, 0x800000, CRC(47932f00) SHA1(3dcedd194a2138cd8b006462a42b52e925f6b5ce) ) + ROM_LOAD16_BYTE( "232xi.c2", 0x0000001, 0x800000, CRC(f87c3d84) SHA1(0de2dcb6a475ea6475d67c60a254e6b7cbcde951) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232xi.c5", 0x2000000, 0x800000, CRC(1e441dd9) SHA1(5ae1973f87abec4b84ab76a64dd30c56d8a535ac) ) + ROM_LOAD16_BYTE( "232xi.c6", 0x2000001, 0x800000, CRC(69d1435a) SHA1(21a1f739dd77ea6d4112896608cde0158c2adf6b) ) +ROM_END + +ROM_START( kof97xp ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232xp.p1", 0x000000, 0x100000, CRC(265396cd) SHA1(aac58b1582bef6de401f70455da26b835e6fd0af) ) + ROM_LOAD16_WORD_SWAP( "232xp.p2", 0x100000, 0x400000, CRC(da48eb75) SHA1(da516b2fe5de0b740b9126302528805b433335ea) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232lr.c1", 0x0000000, 0x800000, CRC(6c224c0b) SHA1(54ace1387646728ddd2fe3feea4b22c46e75fc7d) ) + ROM_LOAD16_BYTE( "232xp.c2", 0x0000001, 0x800000, CRC(badf8fa5) SHA1(07381d1d64f5fd4cd11989a2f715298c6d4827cd) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97xt ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232xt.p1", 0x000000, 0x100000, CRC(2e4f4e3b) SHA1(122b749fe68057fa030d4f0af270883e99246a31) ) + ROM_LOAD16_WORD_SWAP( "232xt.p2", 0x100000, 0x400000, CRC(6d4503ce) SHA1(95217d0b8f51a92cb98eb17d4a9c106a1a0a7920) ) + + NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) ) + ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232xt.c5", 0x2000000, 0x800000, CRC(c1bd2375) SHA1(1fbd0e714d5e0e61b90a7a04c5eab3fa4652dfe5) ) + ROM_LOAD16_BYTE( "232xt.c6", 0x2000001, 0x800000, CRC(a7c8506a) SHA1(c545b5ca9a8559caa17593c5dc137f939f4f42e7) ) +ROM_END + +ROM_START( kof97xt1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232xt1.p1", 0x000000, 0x100000, CRC(a6cd80ee) SHA1(948f977b19f05a971bb54a7c416a05c05b31caaa) ) + ROM_LOAD16_WORD_SWAP( "232xt1.p2", 0x100000, 0x400000, CRC(541fdd36) SHA1(64ce02fd84b326bdf1e5857374441ff1dba0976b) ) + + NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232xt1.c1", 0x0000000, 0x800000, CRC(e6ad03e0) SHA1(18caab6d6c4d1f26b5f7cca9fc5f715d82086dac) ) + ROM_LOAD16_BYTE( "232xt1.c2", 0x0000001, 0x800000, CRC(ca25742c) SHA1(69dd52092baf917d00ab7f16235780cbb9f8bfa1) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232xt1.c5", 0x2000000, 0x800000, CRC(780bdd4b) SHA1(f44c3da9f0938a9bcc3ea78a044511e8a5e3fd9f) ) + ROM_LOAD16_BYTE( "232xt1.c6", 0x2000001, 0x800000, CRC(9e68846d) SHA1(1d389b48d7be965ac7ee7b97f49aace372f266c8) ) +ROM_END + +ROM_START( kof97xxx ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232xxx.p1", 0x000000, 0x100000, CRC(d5d92967) SHA1(04079b92fe73ee8ee2c08f63388a74435e894945) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) ) + ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232xxx.c5", 0x2000000, 0x400000, CRC(f0336a63) SHA1(aefb4ac0341d1b35d1b61395b3baf99af2e9ab98) ) + ROM_LOAD16_BYTE( "232xxx.c6", 0x2000001, 0x400000, CRC(52968b9f) SHA1(9f3be2219e3c1a19626624ec16f175ac25723bce) ) +ROM_END + +ROM_START( kof97y ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232y.p1", 0x000000, 0x100000, CRC(d1893f4e) SHA1(64258216d12cd7445062574c4e6690a6bf5b1541) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97ya ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose Orochi) (set 1) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232ya.p1", 0x000000, 0x100000, CRC(36a82fb7) SHA1(5f45d51b0e28d3b0cc71388934d8cd6830654f53) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97yb ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose Orochi) (set 2) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yb.p1", 0x000000, 0x100000, CRC(55557bf2) SHA1(46f681a86b6f0e70d2a177e346937e9ef8d33fc9) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97ye ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) (set 1) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232ye.p1", 0x000000, 0x100000, CRC(35e1bbab) SHA1(beb43970025e9e04eae52386c93621feb4373d7f) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97yg ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yg.p1", 0x000000, 0x100000, CRC(2ef7c10d) SHA1(b223ddad9547f2899885cd7306bb2baa188c64f2) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97yh ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) (set 2) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yh.p1", 0x000000, 0x100000, CRC(a1d23d62) SHA1(3ddb3a5f917c2b4ed3505fd13b1e8c4d0bfdaaa6) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97yk ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yk.p1", 0x000000, 0x100000, CRC(e10200f8) SHA1(9a224395b601c2df6616f888ab6b69e2039fd19f) ) + ROM_LOAD16_WORD_SWAP( "232yk.p2", 0x100000, 0x400000, CRC(e6bfaee4) SHA1(36ddfabe092aaa0604d34838785624857d7ff5ef) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) ) + ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) ) + ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) ) + ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) ) + ROM_LOAD16_BYTE( "232yk.c5", 0x2000000, 0x800000, CRC(94f234e1) SHA1(0eb67d21572fa1e7b0503d88f526caac65e23a78) ) + ROM_LOAD16_BYTE( "232yk.c6", 0x2000001, 0x800000, CRC(c794f747) SHA1(242fe9b75f86719dc02493ea6f295cf3b3d7fc7e) ) +ROM_END + +ROM_START( kof97yk1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yk1.p1", 0x000000, 0x100000, CRC(cdbcdf48) SHA1(4ac5649955afcbf06a44c4a265db9e6262f00f82) ) + ROM_LOAD16_WORD_SWAP( "232yk1.p2", 0x100000, 0x400000, CRC(89716899) SHA1(55c3bd5f12dbaf4e6f11582986d8f8e73fbe3c4b) ) + + NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) ) + ROM_LOAD16_BYTE( "232yk1.c2", 0x0000001, 0x800000, CRC(6b77e767) SHA1(7f625fa348754a248d9b58bd2f085c47142faf91) ) + ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) ) + ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) ) + ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) ) + ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) ) +ROM_END + +ROM_START( kof97yk2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yk2.p1", 0x000000, 0x100000, CRC(03086c94) SHA1(52fe6701f215b60d4fc1771b7c06474ff6d2cfbc) ) + ROM_LOAD16_WORD_SWAP( "232yk2.p2", 0x100000, 0x400000, CRC(387561f1) SHA1(d03da7857a2d379e899f9556d05eb7d79f49b2c9) ) + + NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) ) + ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) ) + ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) ) + ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) ) + ROM_LOAD16_BYTE( "232yk2.c5", 0x2000000, 0x800000, CRC(d82772b2) SHA1(87626ad6ab30063e9784a1b2748c510219c17fcc) ) + ROM_LOAD16_BYTE( "232yk2.c6", 0x2000001, 0x800000, CRC(0b06fba8) SHA1(528b66d6d53682316dd1f33d1cf8b689b3642364) ) +ROM_END + +ROM_START( kof97yl ) /* The King of Fighters '97 - Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - extra stage select) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yl.p1", 0x000000, 0x100000, CRC(b74278b8) SHA1(5fe72fa346c54229b3b80121720af624a7eca95c) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97yl2 ) /* The King of Fighters '97 - Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - extra stage select - based on kof97eh/eh2) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yl2.p1", 0x000000, 0x100000, CRC(ce22762f) SHA1(1be39a25a51db1f50633412aec35db79846938ee) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + +ROM_START( kof97yo ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232yo.p1", 0x000000, 0x100000, CRC(3aeeba44) SHA1(71329e0b141bd1507f750a046b9e718abd653840) ) + ROM_LOAD16_WORD_SWAP( "232yo.p2", 0x100000, 0x400000, CRC(1bb72a6e) SHA1(7edc3f44619c72debeba7d4cd2965ad27b5f0a90) ) + + NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232yo.c5", 0x2000000, 0x800000, CRC(10475333) SHA1(244f209925525fe9f9aca2a57e3e8d10ea28c7a3) ) + ROM_LOAD16_BYTE( "232yo.c6", 0x2000001, 0x800000, CRC(1d8a90fe) SHA1(5ee10a7d5fbf3f31e5efc02177a1111aaafa361e) ) +ROM_END + +ROM_START( kof97z ) // Hack by Zuojie + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232z.p1", 0x000000, 0x100000, CRC(2d0d243d) SHA1(96234897b91a90cbdee0ead735a00615dffa4ca1) ) + ROM_LOAD16_WORD_SWAP( "232z.p2", 0x100000, 0x400000, CRC(505e3981) SHA1(a8bcddcffc5e6a3f1879e91fc07ea5c9177b8f37) ) + + NEO_SFIX_128K( "232z.s1", CRC(ece9abba) SHA1(608ea08ef8fd5f32e97a99df4edf285eb9f2e108) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232z.c1", 0x0000000, 0x800000, CRC(972bea52) SHA1(236d70abceb993d340a89cfa0cd0bd5f2c5753b1) ) + ROM_LOAD16_BYTE( "232z.c2", 0x0000001, 0x800000, CRC(301a1328) SHA1(2b30a2576a663e01f34aca3b1136ae870108f8c1) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) ) + ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) ) +ROM_END + +ROM_START( kof97zm ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232zm.p1", 0x000000, 0x100000, CRC(a2c45045) SHA1(511c96507c39e4c58543caf56dbe40f40c821b19) ) + ROM_LOAD16_WORD_SWAP( "232zm.p2", 0x100000, 0x400000, CRC(ca11478d) SHA1(484533266ba677fa2930e977226c4b72a59de8e2) ) + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) +ROM_END + + + +GAME( 1997, kof97aa, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Simaguang", "Kof'97 (Plus Athena)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97ae, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex, EGHT", "Kof'97 10TH ANNIVERSARY (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97ae1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex, EGHT", "Kof'97 10TH ANNIVERSARY (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97bh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Kof'97 (Add Char - Orochi icon - Extra stage select)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof97bng, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006 set 1", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97bs, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "0-DAY", "Kof'97 (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof97cb2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006 set 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97cr, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL and Leather", "Kof'97 (Moves and Style changed - Extra stage select)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97chl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'97 (Diff Moves - 030325)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97chl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'97 (Diff Moves rev.2 - 030409)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97chris,kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Chris Like 2k2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof97cn, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'97 (10th Anniversary Chinese Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof97co, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2010/02/07", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof97co6, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97eh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Leather and Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Ultra pow hack ABC - Extra stage select)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97eh2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Pow hack ABC - Extra stage select)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97eho, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Pow hack ABC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97evo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'97 EVOLUTION", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97evoa, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 EVOLUTION (Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97hk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 EVOLUTION (Hakeshu)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97hl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Fall Ban Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97hxd, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hxdhome", "Kof'97 (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97ice, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Cz-Kyo97", "Kof'97 Ice", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97kai, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kai", "Kof'97 PLUS", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97kp, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KofPerfect", "Kof'97 (Add Orochi set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, kof97kp1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (KP 2000)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97lb, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'97 (Quanhuang Shaman 3.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97lc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Liuzheng0131", "Kof'97 (Color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof97lr, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Lover Red)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kof97m, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Maerd", "Kof'97 KOF97 MAERD 20120628", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97mit, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MIT", "Kof'97 (Char style enhanced 050324)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof97mj, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 SHION EDITION HACK", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97nd, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Baidu", "Kof'97 (Baidu)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97ne, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof'97 (Remixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97neo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neo Charity Team", "Kof'97 (hack by Neo Charity Team)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97nude, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Nude", MACHINE_SUPPORTS_SAVE ) // no nudes here?? +GAME( 1997, kof97pj, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'97 (hxd fixed ver - Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97pjc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'97 (Char color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97phl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Liyang1983", "Kof'97 (Plus Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97pl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Kof'97 PLUS set 2", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof97pl3, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Kof'97 PLUS set 3", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof97pla, kof97, neogeo_noslot, neogeo, neogeo_hbmame,kof97pla, ROT0, "bootleg", "Kof'97 PLUS set 1", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof97plc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'97 PLUS (Black Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof97plus, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS 2006", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97pm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF1996", "Kof'97 Practice Mode", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97ps, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Playstation Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2016, kof97rev, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BisMill Hassan", "Kof'97 (The Revival 2016)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97rk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Risko", "Kof'97 (Hack by Risko)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97rv, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (revised edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97saw, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (Kill red flame special effect)", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, kof97sed, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (hack 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97sex, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Katana", "Kof'97 (Extra/Sexy Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97shi, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'97 (Evolution Shin Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97sm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Smoke Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97svs, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (unknown hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97sw, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (26a-c and 623a-c red flame special effect)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97wh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (Style Kyo to 95' Kyo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97wpls, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97xbt, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 BT X Version", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97xi, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jacky", "Kof'97 XI Flash Version", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof97xp, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xuhui", "Kof'97 (Xuhui plus)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof97xt, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Final Battle (hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97xt1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Chris Love", "Kof'97 (Unfinished version by Cross Love)", MACHINE_SUPPORTS_SAVE ) +GAME( 200?, kof97xxx, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Nude mix)", MACHINE_SUPPORTS_SAVE ) // no nudes here?? +GAME( 1997, kof97y, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97ya, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Orochi set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97yb, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Orochi set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97ye, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi - Pow hack ABC in Extra Mode set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97yg, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - Pow hack ABC in Extra Mode)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97yh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi - Pow hack ABC in Extra Mode set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof97yk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97yk1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97yk2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97yl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Extra stage select set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97yl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Extra stage select set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97yo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Seven Yoga Community Imitation 98", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97z, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie", "Kof'97 (Hack by Zoujie)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97zm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'97 RISK01983 ZMonanger", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/kof98.cpp b/docs/release/src/hbmame/drivers/kof98.cpp new file mode 100644 index 00000000000..d35f1c66c24 --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof98.cpp @@ -0,0 +1,3388 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +ROM_START( kof98aas ) // Asamiya Athena 99 Style by Ivex + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) ) + ROM_LOAD16_WORD_SWAP( "242aas.p2", 0x100000, 0x400000, CRC(c42a4608) SHA1(8cb95c85e0590400645b771352f6c361055269f6) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242aas.c3", 0x1000000, 0x800000, CRC(39c4210d) SHA1(aca8198441acbe3d8b4680b1446bd5616355c4b2) ) + ROM_LOAD16_BYTE( "242aas.c4", 0x1000001, 0x800000, CRC(9089241f) SHA1(ec9845914f8f817bbe92ce20a1c72a65ba0701ee) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98ae ) // not used, for experimentation + ROM_REGION( 0x700000, "maincpu", 0 ) + // These are corrupt during attract mode fight (where cars are driving past), do not use + //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(c9188c66) SHA1(9b248df5438cd555314ec71e52e7da6cfb192219) ) + //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(74e20ae9) SHA1(84d17fb0ee462fe491e3220e935cb588f8121611) ) + //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(23a80b3e) SHA1(b1afaf382ffd5a1d72ae5ca18c11a751a11d7654) ) + ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) ) + + NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) ) + + NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) ) + + ROM_REGION( 0x1400000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) ) + ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) ) + ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) ) + ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) ) + ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) ) + ROM_LOAD16_BYTE( "242ae.c9", 0x4000001, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) ) + ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) ) + ROM_LOAD16_BYTE( "242ae.c11", 0x5000001, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) ) + ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) ) +ROM_END + +ROM_START( kof98ae0 ) // Anniversary Edition, multiple problems with bad gfx + ROM_REGION( 0x700000, "maincpu", 0 ) + // These are corrupt during attract mode fight (where cars are driving past), do not use + ROM_LOAD16_WORD_SWAP( "242ae0.p1", 0x000000, 0x100000, CRC(23a80b3e) SHA1(b1afaf382ffd5a1d72ae5ca18c11a751a11d7654) ) + ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) ) + + NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) ) + + NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) ) + + ROM_REGION( 0x1400000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) ) + ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) ) + ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) ) + ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) ) + ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) ) + ROM_LOAD16_BYTE( "242ae.c9", 0x4000001, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) ) + ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) ) + ROM_LOAD16_BYTE( "242ae.c11", 0x5000001, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) ) + ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) ) +ROM_END + +ROM_START( kof98ae1 ) // Anniversary Edition, multiple problems with bad gfx + ROM_REGION( 0x700000, "maincpu", 0 ) + // These are corrupt during attract mode fight (where cars are driving past), do not use + ROM_LOAD16_WORD_SWAP( "242ae1.p1", 0x000000, 0x100000, CRC(c9188c66) SHA1(9b248df5438cd555314ec71e52e7da6cfb192219) ) + ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) ) + + NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) ) + + NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) ) + + ROM_REGION( 0x1400000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) ) + ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) ) + ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) ) + ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) ) + ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) ) + ROM_LOAD16_BYTE( "242ae.c9", 0x4000001, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) ) + ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) ) + ROM_LOAD16_BYTE( "242ae.c11", 0x5000001, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) ) + ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) ) +ROM_END + +ROM_START( kof98ae2 ) // Anniversary Edition, multiple problems with bad gfx + ROM_REGION( 0x700000, "maincpu", 0 ) + // These are corrupt during attract mode fight (where cars are driving past), do not use + ROM_LOAD16_WORD_SWAP( "242ae2.p1", 0x000000, 0x100000, CRC(74e20ae9) SHA1(84d17fb0ee462fe491e3220e935cb588f8121611) ) + ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) ) + + NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) ) + + NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) ) + + ROM_REGION( 0x1400000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) ) + ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) ) + ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) ) + ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) ) + ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) ) + ROM_LOAD16_BYTE( "242ae.c9", 0x4000001, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) ) + ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) ) + ROM_LOAD16_BYTE( "242ae.c11", 0x5000001, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) ) + ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) ) +ROM_END + +ROM_START( kof98b ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242b.p1", 0x000000, 0x100000, CRC(238ed528) SHA1(9f0155cf298886842cd20d5a797a057889e65e04) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98bh ) // Boss Hack 2006 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242bh.p1", 0x000000, 0x100000, CRC(5b5c822b) SHA1(0c4652630ff2122167f2defe4edff2a4e97f0ce0) ) + ROM_LOAD16_WORD_SWAP( "242bh.p2", 0x100000, 0x400000, CRC(289b09d7) SHA1(25f14caf6b57c516c484e50ddee6867de4513406) ) + + NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cd.c1", 0x0000000, 0x800000, CRC(05edf0ff) SHA1(99afddc2d59ba274f2d9d9f5ef86c925518b8278) ) + ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c2006 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242c2006.p1", 0x000000, 0x100000, CRC(68dbd3ca) SHA1(839d8ed003351809b1d8b8a4529b29a57af23333) ) + ROM_LOAD16_WORD_SWAP( "242c2006.p2", 0x100000, 0x400000, CRC(4fc4544c) SHA1(b8912e61b26813237c46ca6511a6c88f5c5e511e) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242c2006.c1", 0x0000000, 0x800000, CRC(efc547b0) SHA1(badb1147729e187cc395ade357b49444e27810e5) ) + ROM_LOAD16_BYTE( "242c2006.c2", 0x0000001, 0x800000, CRC(395ed6af) SHA1(543286e4f346f38c4866ab9a84080b6839d53412) ) + ROM_LOAD16_BYTE( "242c2006.c3", 0x1000000, 0x800000, CRC(882e5246) SHA1(6cf81cd540a1511e085f2534511f8fa93f44d51f) ) + ROM_LOAD16_BYTE( "242c2006.c4", 0x1000001, 0x800000, CRC(4f3f2123) SHA1(5cc61e82b0c7ee3d162c89262379f36f21ee5311) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20070720 ) // kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cgg20.p1", 0x000000, 0x100000, CRC(549b46bf) SHA1(bbed5b2a131ba4ed9161aa5c246cf7d324aacf3d) ) + ROM_LOAD16_WORD_SWAP( "242cgg20.p2", 0x100000, 0x400000, CRC(d256446d) SHA1(821365a7e7fe65488171633b8218207b70dcd0f6) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20070923 ) // no idea what other roms go with this, using ones from kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cgi23.p1", 0x000000, 0x100000, CRC(07c7e389) SHA1(e0df96dd1dc3459d3017a6b3b53c25d89431abc0) ) + ROM_LOAD16_WORD_SWAP( "242cgi23.p2", 0x100000, 0x400000, CRC(45c64fc4) SHA1(922fee0ab1377123acde003cb96b5790c90ca84c) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20080524 ) // no idea what other roms go with this, using ones from kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242che24.p1", 0x000000, 0x100000, CRC(f2dc0ec8) SHA1(90901c20f56d08ef05da66ec7cba327820909f9a) ) + ROM_LOAD16_WORD_SWAP( "242che24.p2", 0x100000, 0x400000, CRC(e2149cc5) SHA1(7d66bdf54b4bbf7f0aa163287a526cf48502bc3b) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20080616 ) // no idea what other roms go with this, using ones from kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242chf16.p1", 0x000000, 0x100000, CRC(de3c91fe) SHA1(706a75fe92780ea68707b37e42b1f70d507bb1c7) ) + ROM_LOAD16_WORD_SWAP( "242chf16.p2", 0x100000, 0x400000, CRC(52314cc5) SHA1(83416affb1a789647647992ea8492a55c0a62b8d) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20080712 ) // no idea what other roms go with this, using ones from kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242chg12.p1", 0x000000, 0x100000, CRC(c0b4095a) SHA1(b8c027ccf3bdda62e8bb21766ac1ad716b7cdb9a) ) + ROM_LOAD16_WORD_SWAP( "242chg12.p2", 0x100000, 0x400000, CRC(7e8d3bd3) SHA1(811c563146c1827a6322a61090570c956cdb4df0) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98cta ) // Combo 10th Anniversary - this is kof98c20080801 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cta.p1", 0x000000, 0x100000, CRC(d5646ed9) SHA1(9c0f7eb5b27f0787d6390dcde9c1566a83232890) ) + ROM_LOAD16_WORD_SWAP( "242cta.p2", 0x100000, 0x400000, CRC(2b78c216) SHA1(4e47d9ef6dd8b82c652688ca7fb3d51c869a55e1) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20090620 ) // no idea what other roms go with this, using ones from kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cif20.p1", 0x000000, 0x100000, CRC(fc3a3397) SHA1(538e04ce5bf495374e9bf3af5bd18efb3d7dabe7) ) + ROM_LOAD16_WORD_SWAP( "242cif20.p2", 0x100000, 0x400000, CRC(c2e6e6c7) SHA1(f2217bda316986a3c5730dd7927b472f20094952) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20090923 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cii23.p1", 0x000000, 0x100000, CRC(35cbbaa7) SHA1(e9d773b24d999ad55c3813e627836e4d91f239f6) ) + ROM_LOAD16_WORD_SWAP( "242cii23.p2", 0x100000, 0x400000, CRC(658e3940) SHA1(b71f08491db50aeb8e0b20541808f3c31e9c598c) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20100214 ) // no idea what other roms go with this, using ones from kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cjb14.p1", 0x000000, 0x100000, CRC(eb02e1d2) SHA1(9217827f905580851343b78e26c1494e76584454) ) + ROM_LOAD16_WORD_SWAP( "242cjb14.p2", 0x100000, 0x400000, CRC(9afe10b6) SHA1(1c5fb7e099c8790b44313a9b412a93bc80421791) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20110114 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cka14.p1", 0x000000, 0x100000, CRC(8b520854) SHA1(2e6d8677b343abb6d85b62a1996fc3cec2d86477) ) + ROM_LOAD16_WORD_SWAP( "242cka14.p2", 0x100000, 0x400000, CRC(bbfa3154) SHA1(7dbe0d6eb3850c6f8c30a5e49e5bf914d0f23b7f) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20120116 ) // no idea what other roms go with this, using ones from kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cla16.p1", 0x000000, 0x100000, CRC(99255778) SHA1(d6eb448f06cebabff3aea71cade6c7b742bad337) ) + ROM_LOAD16_WORD_SWAP( "242cla16.p2", 0x100000, 0x400000, CRC(fc1582fb) SHA1(6be894251c7a91cf1821a48a5f2d9e1bea6251ec) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20120915 ) // no idea what other roms go with this, using ones from kof98co + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cli15.p1", 0x000000, 0x100000, CRC(9e86180d) SHA1(67772aa99452a8b8ace0a770c09d2ae503ac298f) ) + ROM_LOAD16_WORD_SWAP( "242cli15.p2", 0x100000, 0x400000, CRC(e88dfce2) SHA1(e16e98eec8d27a1f125fd69b58108d7621bff968) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20130213 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cmb13.p1", 0x000000, 0x100000, CRC(1192b05d) SHA1(a5bfb8f303d0c59897d18695344c6d643aca0992) ) + ROM_LOAD16_WORD_SWAP( "242cmb13.p2", 0x100000, 0x400000, CRC(44d6f231) SHA1(f23aa553d2ce326fdd87c6a0de61c0f8a190a5d6) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20130311 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cmc11.p1", 0x000000, 0x100000, CRC(a840d48e) SHA1(f95246ea20174bfb6ffa1421d5e3691d5a4d57ac) ) + ROM_LOAD16_WORD_SWAP( "242cmc11.p2", 0x100000, 0x400000, CRC(a125307b) SHA1(fea9a7d945d51bdc137a7a5cc47009f77d1b2f11) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20130509 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cme09.p1", 0x000000, 0x100000, CRC(04f0ee1b) SHA1(6b0c61bf769e3a1f8e16bf80f998a16231b1d37f) ) + ROM_LOAD16_WORD_SWAP( "242cme09.p2", 0x100000, 0x400000, CRC(7a3d7339) SHA1(68e6d693e1010c75e235cb732c186edfcf5ee121) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20130528 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cme28.p1", 0x000000, 0x100000, CRC(3a2c9ecf) SHA1(f18534a4332d6162d1d7c0797c2aabafe9b3ae8d) ) + ROM_LOAD16_WORD_SWAP( "242cme28.p2", 0x100000, 0x400000, CRC(d1f608a3) SHA1(20f0ac8a696f47fc122a876b5892b7982f643101) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20130617 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cmf17.p1", 0x000000, 0x100000, CRC(871c1400) SHA1(7c543dfe62151eea0479b0d6685ff99a79d7b99d) ) + ROM_LOAD16_WORD_SWAP( "242cmf17.p2", 0x100000, 0x400000, CRC(5f6a6827) SHA1(df507f8367bb03bb404a7c978123fccf2cfee2bf) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20130808 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cmh08.p1", 0x000000, 0x100000, CRC(5c45d223) SHA1(04617aaea513e5c7e8cf014e89945aa2eb5948e2) ) + ROM_LOAD16_WORD_SWAP( "242cmh08.p2", 0x100000, 0x400000, CRC(ae323e72) SHA1(fe204f78faef8be01e8664a57f4cec380457cea6) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20130820 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cmh20.p1", 0x000000, 0x100000, CRC(f17061ad) SHA1(2b99224bc32526e811fa46b934531ecc25bb5f48) ) + ROM_LOAD16_WORD_SWAP( "242cmh20.p2", 0x100000, 0x400000, CRC(8b7afee8) SHA1(88080f59588b2e8360af126519e547bbf55f80fb) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20131113 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cmk13.p1", 0x000000, 0x100000, CRC(6c60a3ef) SHA1(d9437ee77ad3ff38a56c2d90b8c0334fb3404342) ) + ROM_LOAD16_WORD_SWAP( "242cmk13.p2", 0x100000, 0x400000, CRC(fe685f71) SHA1(aaf84b3f6c44662b8a6696cf1a48ead10eae7e30) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140101 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cna01.p1", 0x000000, 0x100000, CRC(fc6edddc) SHA1(06096bf35bd19aa816541a0db2e517ab9ea6f108) ) + ROM_LOAD16_WORD_SWAP( "242cna01.p2", 0x100000, 0x400000, CRC(ae9cc41b) SHA1(2b3b433eca1da8836ccdae4648af9f742abb3c3a) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140110 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cna10.p1", 0x000000, 0x100000, CRC(f5173db2) SHA1(3ed5de29fe05bd42f1e61db99bb62a21dd18ee45) ) + ROM_LOAD16_WORD_SWAP( "242cna10.p2", 0x100000, 0x400000, CRC(277c46ad) SHA1(3d718bb9b6a616c912d0b61bf04c25acf9edd19b) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140118 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cna18.p1", 0x000000, 0x100000, CRC(d0e11829) SHA1(a1ad8372e24315e4e5d7a2e2b730065d3e63419d) ) + ROM_LOAD16_WORD_SWAP( "242cna18.p2", 0x100000, 0x400000, CRC(57710699) SHA1(c1dd6677b61b3bced57441160560ef52636e43a6) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140204 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnb04.p1", 0x000000, 0x100000, CRC(281a0134) SHA1(23231f74c82a2c130e5323338f5b85e61e464f52) ) + ROM_LOAD16_WORD_SWAP( "242cnb04.p2", 0x100000, 0x400000, CRC(5c0b42ed) SHA1(835c075fb30f96b69eec89980279a9fa516bf839) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140213 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnb13.p1", 0x000000, 0x100000, CRC(338fe20c) SHA1(149dd81dc7dda509ace4fadf796908a9af0b2111) ) + ROM_LOAD16_WORD_SWAP( "242cnb13.p2", 0x100000, 0x400000, CRC(138577d5) SHA1(97592df7350f9741b0b2b686a136f62cae650d5c) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140217 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnb17.p1", 0x000000, 0x100000, CRC(52ef6564) SHA1(46a9ada52dd44db8697f118a1e7b43e11d9878c5) ) + ROM_LOAD16_WORD_SWAP( "242cnb17.p2", 0x100000, 0x400000, CRC(a31b7b2a) SHA1(a5324f49f19850cd6bcc8d3e66edf0dda220bd41) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140228 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnb28.p1", 0x000000, 0x100000, CRC(97e9c8cc) SHA1(b38ef0f8e55f24e96c09cf5f28954661cd8ea8b8) ) + ROM_LOAD16_WORD_SWAP( "242cnb28.p2", 0x100000, 0x400000, CRC(7b99f052) SHA1(ea204a7a14b6620e64a5ac0b34d048ccd0c6fc0e) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140302 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnc02.p1", 0x000000, 0x100000, CRC(c478dd93) SHA1(759311b986b9606acc9e735f83cc33e6c4cfe151) ) + ROM_LOAD16_WORD_SWAP( "242cnc02.p2", 0x100000, 0x400000, CRC(5b81a4f0) SHA1(f0dd68bb17fa76671a08ee77a22bda773c93e810) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140310 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnc10.p1", 0x000000, 0x100000, CRC(25d26cd5) SHA1(65e301dbc2d57ba657eae49edeb53ef07a21b85e) ) + ROM_LOAD16_WORD_SWAP( "242cnc10.p2", 0x100000, 0x400000, CRC(f109629f) SHA1(827f3f6a0f66a0741c72ebc85ea5b203acb56ae0) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140317 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnc17.p1", 0x000000, 0x100000, CRC(952efa43) SHA1(2cc2a1c9b4e7159f6b42bcd7c7d4215de046dd71) ) + ROM_LOAD16_WORD_SWAP( "242cnc17.p2", 0x100000, 0x400000, CRC(43dfe9b0) SHA1(128c0d18d1d71a01ba2f8a66b9432dbbe0b58f8a) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140403 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnd03.p1", 0x000000, 0x100000, CRC(57fe473e) SHA1(d83eef73825611abaac1df9ecc81a85a910e6a23) ) + ROM_LOAD16_WORD_SWAP( "242cnd03.p2", 0x100000, 0x400000, CRC(96f73721) SHA1(fc910b437eb527244a063b519776ae54af31db77) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140412 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnd12.p1", 0x000000, 0x100000, CRC(4cb73079) SHA1(db5d0663f91936bfa68d389766ad1d2849cee300) ) + ROM_LOAD16_WORD_SWAP( "242cnd12.p2", 0x100000, 0x400000, CRC(3d30dad4) SHA1(097ead60f133fa00f7d5a903cff6c10915b1ba0b) ) + + NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140416 ) // no idea what other roms go with this, using ones from kof98c20120915 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnd16.p1", 0x000000, 0x100000, CRC(25783b16) SHA1(e3748583ab2e4fa934f489e6a46a8725ae8dda35) ) + ROM_LOAD16_WORD_SWAP( "242cnd16.p2", 0x100000, 0x400000, CRC(23f70495) SHA1(73975803d48cc37b92153dc3519d9efb4a86df49) ) + + NEO_SFIX_128K( "242cnd16.s1", CRC(06186f52) SHA1(714415c30626fd4cd2eed80b0af32a4a1d8db19f) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) ) + ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140419 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnd19.p1", 0x000000, 0x100000, CRC(95853626) SHA1(7db1ab39ff7c908c81c915c587247b9f101b28dc) ) + ROM_LOAD16_WORD_SWAP( "242cnd19.p2", 0x100000, 0x400000, CRC(43475633) SHA1(f57f9744e7d041a9428602b82335038ec3d85f6d) ) + + NEO_SFIX_128K( "242cnd19.s1", CRC(75e932d8) SHA1(d8ebd9ecab29fb52994d1fdd5fbeceba3213620a) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140428 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnd28.p1", 0x000000, 0x100000, CRC(9ff156f0) SHA1(18879b3a82172613ef3e744303b00560bac27dda) ) + ROM_LOAD16_WORD_SWAP( "242cnd28.p2", 0x100000, 0x400000, CRC(ee298a6b) SHA1(5c556142abb0ddd57db33f6dac5675ca5a8e8f8c) ) + + NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140504 ) // no idea what other roms go with this, using ones from kof98c20140428 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cne04.p1", 0x000000, 0x100000, CRC(d965cbf5) SHA1(e87ceb1ffe9b0757d2d9a5af970ea0f5f416767a) ) + ROM_LOAD16_WORD_SWAP( "242cne04.p2", 0x100000, 0x400000, CRC(6e96ab13) SHA1(19800094015ed659023d49dfd8b63c0578ea2952) ) + + NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140524 ) // no idea what other roms go with this, using ones from kof98c20140428 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cne24.p1", 0x000000, 0x100000, CRC(f97629ad) SHA1(8fb4329907780f8508c39f6463d7a2447f81ca08) ) + ROM_LOAD16_WORD_SWAP( "242cne24.p2", 0x100000, 0x400000, CRC(89f1bf6c) SHA1(01e09eaf7a288652eef26054ddfeb3d2148265ee) ) + + NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140606 ) // no idea what other roms go with this, using ones from kof98c20140428 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnf06.p1", 0x000000, 0x100000, CRC(b030bd09) SHA1(254aa86a78af1f893efda3db151dee32c9aa6b1a) ) + ROM_LOAD16_WORD_SWAP( "242cnf06.p2", 0x100000, 0x400000, CRC(0178de06) SHA1(69bab33a6e1e2c5f7d1dd13e863aed3d77e42a2a) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140620 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnf20.p1", 0x000000, 0x100000, CRC(da4e1cc5) SHA1(d139cf4dd437c5c39385e6cd199ccc71a1ea919e) ) + ROM_LOAD16_WORD_SWAP( "242cnf20.p2", 0x100000, 0x400000, CRC(a21eb0fc) SHA1(adb826e45128bd24d1d65ead2e85483fe3b79257) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140717 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cng17.p1", 0x000000, 0x100000, CRC(7048bed4) SHA1(1a8704d6d993c45f623352821ff7c7718a73197c) ) + ROM_LOAD16_WORD_SWAP( "242cng17.p2", 0x100000, 0x400000, CRC(8435b965) SHA1(f4da383de4d13636b4b26ce1674f8ef7f7245e89) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140809 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnh09.p1", 0x000000, 0x100000, CRC(0d88b29e) SHA1(c3232ab3abf7fbb51bebac652b8eed6fec2c12d9) ) + ROM_LOAD16_WORD_SWAP( "242cnh09.p2", 0x100000, 0x400000, CRC(b42ebf83) SHA1(c4405f07b8ef96eb5d9b624bc518171b5de1c546) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140816 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnh16.p1", 0x000000, 0x100000, CRC(59ae0525) SHA1(da283d53479973202046929f47b78d3a378eeb74) ) + ROM_LOAD16_WORD_SWAP( "242cnh16.p2", 0x100000, 0x400000, CRC(cfff4986) SHA1(2434b58db6e6acb87799888cee12cd7eadafb46c) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140824 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnh24.p1", 0x000000, 0x100000, CRC(ac02f016) SHA1(ce8a4c5d4adb77ceaa2c4fb02ecae639a58b1e11) ) + ROM_LOAD16_WORD_SWAP( "242cnh24.p2", 0x100000, 0x400000, CRC(224ef92b) SHA1(e104f085eb7f090c49c7fb6270d8d0cf20e26858) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140906 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cni06.p1", 0x000000, 0x100000, CRC(2b67d1fd) SHA1(b00d1cde6e70f0800722e3f676b419a24dc730a5) ) + ROM_LOAD16_WORD_SWAP( "242cni06.p2", 0x100000, 0x400000, CRC(1d935839) SHA1(eaf2c03dda42f00d1346108dda593ba669da15de) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20140924 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cni24.p1", 0x000000, 0x100000, CRC(37fa2233) SHA1(0e84d11835d4a6516dec82e56dc1075a19c50697) ) + ROM_LOAD16_WORD_SWAP( "242cni24.p2", 0x100000, 0x400000, CRC(eaa3890e) SHA1(b8f783a5ce948b69bd98f6f0514714cf9a592378) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20141002 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnj02.p1", 0x000000, 0x100000, CRC(d1085e45) SHA1(c718cc7bf444c240d114e286f7c4d864ffc774dd) ) + ROM_LOAD16_WORD_SWAP( "242cnj02.p2", 0x100000, 0x400000, CRC(80511be2) SHA1(4e2922f92f3d0ef7c13c50419c57d4fb7878a9e4) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20141020 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cnj20.p1", 0x000000, 0x100000, CRC(93cae16e) SHA1(1445a267a299b733bd0c67d79b197fa55ac6d95a) ) + ROM_LOAD16_WORD_SWAP( "242cnj20.p2", 0x100000, 0x400000, CRC(e3c2e36d) SHA1(bf9b7b830f24e4682b0e6abe431e96103372d7e6) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150201 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cob01.p1", 0x000000, 0x100000, CRC(b127666b) SHA1(3d852d55dc728622e31b160ac178a5efb9c86d8c) ) + ROM_LOAD16_WORD_SWAP( "242cob01.p2", 0x100000, 0x400000, CRC(745606f4) SHA1(2d50a6b42365b02248c286f39293e760ae68381a) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150228 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cob28.p1", 0x000000, 0x100000, CRC(385de2db) SHA1(f07e764595a4da02a4517e2e244aeb6d4dd68049) ) + ROM_LOAD16_WORD_SWAP( "242cob28.p2", 0x100000, 0x400000, CRC(e68be25d) SHA1(44170fc9ebed30d2a8cac44210692b4693224ad0) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150302 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242coc02.p1", 0x000000, 0x100000, CRC(803afe36) SHA1(78b0787eeffb4f53decf0f6eee2fdce93dafc6d9) ) + ROM_LOAD16_WORD_SWAP( "242coc02.p2", 0x100000, 0x400000, CRC(7e76f991) SHA1(fab7479337e00c93f75cb9a613b18a5c81513d91) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150310 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242coc10.p1", 0x000000, 0x100000, CRC(e7b69efe) SHA1(d641b7419d18ffca5dba199af7d6197fa824a238) ) + ROM_LOAD16_WORD_SWAP( "242coc10.p2", 0x100000, 0x400000, CRC(b4e8d712) SHA1(62d437d6c4aec43f50959d121ffb99293c68099f) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150330 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242coc30.p1", 0x000000, 0x100000, CRC(7693c342) SHA1(a78907075247a4aad74060025f179ed0ac522cdf) ) + ROM_LOAD16_WORD_SWAP( "242coc30.p2", 0x100000, 0x400000, CRC(0d03f931) SHA1(bc2694d653ad28310de2ecb321b815e8f85dd1de) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150528 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242coe28.p1", 0x000000, 0x100000, CRC(82a247f9) SHA1(e472633878a993e5ada4a78b654e775dc5647544) ) + ROM_LOAD16_WORD_SWAP( "242coc30.p2", 0x100000, 0x400000, CRC(0d03f931) SHA1(bc2694d653ad28310de2ecb321b815e8f85dd1de) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150614 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cof14.p1", 0x000000, 0x100000, CRC(1df50acf) SHA1(4a13e5e92781b42d91da8c6b3c625715213f0bfe) ) + ROM_LOAD16_WORD_SWAP( "242cof14.p2", 0x100000, 0x400000, CRC(0e4c921c) SHA1(a0879fc90051111dec8e2bcc0f7177b892661b03) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150705 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cog05.p1", 0x000000, 0x100000, CRC(fe8c3218) SHA1(0426ba382e1207dd517a2f950651b383c786564d) ) + ROM_LOAD16_WORD_SWAP( "242cog05.p2", 0x100000, 0x400000, CRC(30477896) SHA1(d3834c7353e4b3781874742fc0a0154656806cef) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150729 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cog29.p1", 0x000000, 0x100000, CRC(9c485873) SHA1(bdbd18de319723f4a6730236f5b22b54489fce09) ) + ROM_LOAD16_WORD_SWAP( "242cog29.p2", 0x100000, 0x400000, CRC(8ab6db32) SHA1(fa8d317a5e4185343f91c8dd2a84d3e375b1ec4b) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20150827 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242coh27.p1", 0x000000, 0x100000, CRC(4cb8bd3d) SHA1(968f859f48f8893e9376d9777022ffc5cd56ea3b) ) + ROM_LOAD16_WORD_SWAP( "242coh27.p2", 0x100000, 0x400000, CRC(83590f75) SHA1(808b13f90a437651372872fd47d921854555c4ca) ) + + NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20151103 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cok03.p1", 0x000000, 0x100000, CRC(e5d553c0) SHA1(bee0d432276a534e1ba511a2c1eb73722079b42f) ) + ROM_LOAD16_WORD_SWAP( "242cok03.p2", 0x100000, 0x400000, CRC(0bba8a3e) SHA1(9f8278b5c9b61e4ecc7849efedfbdc8692fbc9be) ) + + NEO_SFIX_128K( "242cok03.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20151108 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cok08.p1", 0x000000, 0x100000, CRC(971bae37) SHA1(9b66bd0d893eae0cf6d17d7c4ff3d5f6f7a3d83a) ) + ROM_LOAD16_WORD_SWAP( "242cok08.p2", 0x100000, 0x400000, CRC(9cdd6455) SHA1(24014e66b5e773456987acef055f8307f731874e) ) + + NEO_SFIX_128K( "242cok03.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20151110 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cok10.p1", 0x000000, 0x100000, CRC(4d1ffdf4) SHA1(9630499b8f88d332bbfea965b55854fd6d40c134) ) + ROM_LOAD16_WORD_SWAP( "242cok10.p2", 0x100000, 0x400000, CRC(064a18c9) SHA1(cc68ee70f738365674c63cc31954c994a6b2aeba) ) + + NEO_SFIX_128K( "242cok03.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98c20151223 ) // only p1,p2 are confirmed + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242col23.p1", 0x000000, 0x100000, CRC(7549069f) SHA1(3c083f77f4598c1525fc327f41dbd25a89a66723) ) + ROM_LOAD16_WORD_SWAP( "242col23.p2", 0x100000, 0x400000, CRC(c53f8c35) SHA1(005b52da53dd57053d0123febfd004c2137cbace) ) + + NEO_SFIX_128K( "242cok03.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) ) + + NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) ) + ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) ) + ROM_LOAD16_BYTE( "242cni24.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) ) + ROM_LOAD16_BYTE( "242cni24.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98cd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cd.p1", 0x000000, 0x100000, CRC(1a748f96) SHA1(bddb07fa6dc59ae547aed32218a6601b8b80816e) ) + ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) ) + + NEO_SFIX_128K( "242cd.s1", CRC(53f14b31) SHA1(c9aa1627bd4d55196dc2efa72c2b3bea1d90e699) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cd.c1", 0x0000000, 0x800000, CRC(05edf0ff) SHA1(99afddc2d59ba274f2d9d9f5ef86c925518b8278) ) + ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98cd1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cd1.p1", 0x000000, 0x100000, CRC(0a411dda) SHA1(7c45fb93b9285d1bd63ab79576392205d6f2b2c5) ) + ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) ) + + NEO_SFIX_128K( "242sp.s1", CRC(9ccbae05) SHA1(f89dcce6a804b86e0f7362df7c16c7a4a978ee62) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cd1.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) ) + ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98ch ) /* The King of Fighters '98 - Remix by Chase - (Character move change 20030503) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242ch.p1", 0x000000, 0x100000, CRC(c6244126) SHA1(c99b20917c5ad2780f7ecabe95f6aded6a7f0038) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98chl ) /* [OLD] The King of Fighters '98 - Revise by CHL - (Character move change 20030320) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242chl.p1", 0x000000, 0x100000, CRC(8dff0265) SHA1(9a1ffaf13ed95dcb035e081f93b8eb461212c713) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98chris ) // Chris 2k2 Style + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) ) + ROM_LOAD16_WORD_SWAP( "242chris.p2", 0x100000, 0x400000, CRC(99adc897) SHA1(4f8b3e58c8509a765536fb1f4895e8594c2237c2) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242chris.c7", 0x3000000, 0x800000, CRC(5ef4d3c3) SHA1(312cc9aa1c4657b7bc745348f3bac7476ef3c894) ) + ROM_LOAD16_BYTE( "242chris.c8", 0x3000001, 0x800000, CRC(d8b5d903) SHA1(3c5f0cf4b7cec79a81ad3af8cafeca2a14509995) ) +ROM_END + +ROM_START( kof98cn ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cn.p1", 0x000000, 0x100000, CRC(9f8cb001) SHA1(0d159627815175a25e39b2d84aa0f9c7afb16b68) ) + ROM_LOAD16_WORD_SWAP( "242cn.p2", 0x100000, 0x400000, CRC(d7d3ad2c) SHA1(f344a6093dc0ed08b77c786c4272be065039cf67) ) + + NEO_SFIX_128K( "242cn.s1", CRC(65080259) SHA1(6c531bb975ab338981db8337fd787b53ac48ece6) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) ) + ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98cn1 ) // hack of kof98y + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242y.p1", 0x000000, 0x100000, CRC(20848b37) SHA1(eb44baa6f273d6ab596204f89427078343c0ace5) ) + ROM_LOAD16_WORD_SWAP( "242cn.p2", 0x100000, 0x400000, CRC(d7d3ad2c) SHA1(f344a6093dc0ed08b77c786c4272be065039cf67) ) + + NEO_SFIX_128K( "242cn1.s1", CRC(3b054e79) SHA1(4a56fa412065efb159f283f2bbab9f76e4160d85) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) ) + ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98cos ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cos.p1", 0x000000, 0x100000, CRC(1db1c200) SHA1(2fcac911720ecfc878c0d47b2a4c8ca17eec5588) ) + ROM_LOAD16_WORD_SWAP( "242cos.p2", 0x100000, 0x400000, CRC(48c87162) SHA1(e29d90f101a4b585d98cd51a941e876356cc77f0) ) + + NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cos.c1", 0x0000000, 0x800000, CRC(9f8b0ee6) SHA1(a13b07a2cfdb5e318a11cdd054d0f3ec612cbc15) ) + ROM_LOAD16_BYTE( "242cos.c2", 0x0000001, 0x800000, CRC(2e21efeb) SHA1(35eeb1657fc62c1298c019f16978e3108c25d068) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98cos1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cos1.p1", 0x000000, 0x100000, CRC(fb883c88) SHA1(6136a051afc714f3e190f05dcf35b77e06151c66) ) + ROM_LOAD16_WORD_SWAP( "242cos1.p2", 0x100000, 0x400000, CRC(8b303816) SHA1(63501eb059bd0afe4a77b891cb8eabfefd344648) ) + + NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cos1.c1", 0x0000000, 0x800000, CRC(8dd08778) SHA1(1e7ab8b8111d7584789781f6b8d9949f85b601bc) ) + ROM_LOAD16_BYTE( "242cos1.c2", 0x0000001, 0x800000, CRC(c2618f28) SHA1(085b39c5eb730df8a9e4d5fe439098c5bc000ac3) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98cos2 ) // Cosmic 2.0 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cos2.p1", 0x000000, 0x100000, CRC(ab79dd93) SHA1(3b59df27be009dd19508cdd028bf260c6141c2ad) ) + ROM_LOAD16_WORD_SWAP( "242cos2.p2", 0x100000, 0x400000, CRC(6df5820b) SHA1(608c4f4987d8174dd8b60b274b773e6978fdbc92) ) + + NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cos2.c1", 0x0000000, 0x800000, CRC(96762b9a) SHA1(5d62188c1a4816b6cd5001b618d695597c9b61a6) ) + ROM_LOAD16_BYTE( "242cos2.c2", 0x0000001, 0x800000, CRC(e7617290) SHA1(371441d1f204e83783a2a5c0e86d1a3968e0892d) ) + ROM_LOAD16_BYTE( "242cos2.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) ) + ROM_LOAD16_BYTE( "242cos2.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98dc ) /* The King of Fighters '98 - Colour fix by Dodowang - (character colour change - the "negative colour style */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) + ROM_LOAD16_WORD_SWAP( "242dc.p2", 0x200000, 0x400000, CRC(4bce4de3) SHA1(5c210782853250772cf27c1492f018d92a5357fc) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98ehr ) /* The King of Fighters '98 - Remix by Raymonose - (Character move change - ultra kill start is max in Advanced Mode - ultra power hack ABC - bases on kof98eh) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242ehr.p1", 0x000000, 0x100000, CRC(451acfca) SHA1(2d0ec5f999c54749b39dd2a03fedf62f4bf79cd4) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98evl ) // Ultra Evolution Lite + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242evl.p1", 0x000000, 0x100000, CRC(91fec4c3) SHA1(4a0a4c340f67d8f11fee1d2851b6aec0b1feae08) ) + ROM_LOAD16_WORD_SWAP( "242evl.p2", 0x100000, 0x400000, CRC(3c76d7cc) SHA1(0385bd3860add3431097ed207d9de80491482fa0) ) + + NEO_SFIX_128K( "242evl.s1", CRC(33429d5b) SHA1(68e0c1a6408029b034b7f7936bbb12152aa6d5bc) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) ) + ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) ) + ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) ) +ROM_END + +ROM_START( kof98evo ) // Evolution + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242new.p1", 0x000000, 0x100000, CRC(f9a22b2f) SHA1(730e9ae8391d8fa70141c5d73479cf9cff91a672) ) + ROM_LOAD16_WORD_SWAP( "242evo.p2", 0x100000, 0x400000, CRC(65547465) SHA1(6f3d8bc995e2ef195e682885c050715a274913e7) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) ) + ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) ) +ROM_END + +ROM_START( kof98evo2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242evo2.p1", 0x000000, 0x100000, CRC(39ef1761) SHA1(5e4267ae5d63b44ff18ec26117d779eb9b2b7613) ) + ROM_LOAD16_WORD_SWAP( "242evo2.p2", 0x100000, 0x400000, CRC(230faff7) SHA1(8df8a15c09adf7fad96204567e848ac0f7afcdc0) ) + + NEO_SFIX_128K( "242evo2.s1", CRC(536defd3) SHA1(dda5e94531f8009013185a243227f775a574c6c2) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242sp2.c1", 0x0000000, 0x800000, CRC(3c4458cc) SHA1(0869f72a9d7226b19ffea5108f618d0f62c01291) ) + ROM_LOAD16_BYTE( "242sp2.c2", 0x0000001, 0x800000, CRC(f060b0f4) SHA1(b4230c5c8dd35c0907b7c7d23f964051e6c24723) ) + ROM_LOAD16_BYTE( "242new.c3", 0x1000000, 0x800000, CRC(3e554882) SHA1(c2a0dd3621180e9aae0f41adb46ea7fcce0764e8) ) + ROM_LOAD16_BYTE( "242new.c4", 0x1000001, 0x800000, CRC(e9e0f676) SHA1(4b46dc18b9ce502097e615c9c236ca0ac5b280e0) ) + ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) ) + ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) ) + ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) ) + ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) ) +ROM_END + +ROM_START( kof98f ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242f.p1", 0x000000, 0x100000, CRC(c17a0ace) SHA1(b5496062954bdc3ab45a9b4e7787ab3426ff7404) ) + ROM_LOAD16_WORD_SWAP( "242f.p2", 0x100000, 0x400000, CRC(d7477a42) SHA1(f20980ab53ebc36907712b0e0b8db18c42d1198c) ) + ROM_FILL(0x182,1,0x00) + ROM_FILL(0x183,1,0x0A) + + NEO_SFIX_128K( "242f.s1", CRC(bdd8c78e) SHA1(2df58aad109ac3012f7814f873d8c966faef8aa1) ) + + NEO_BIOS_AUDIO_256K( "242f.m1", CRC(d73ccd25) SHA1(54dfdf4baf8efb621e234f602939929b17330bfc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242f.v1", 0x000000, 0x400000, CRC(5c6d6b00) SHA1(ef87aa9573d66e3ee35d7fa0bb680dfea52da144) ) + ROM_LOAD( "242f.v2", 0x400000, 0x400000, CRC(392953d5) SHA1(53468da327e64cb471fb3f0ea71977ec2bfb31f7) ) + ROM_LOAD( "242f.v3", 0x800000, 0x400000, CRC(a2e57162) SHA1(6c3f010035d6426a420dbbfbe8d3cecc879e8ee7) ) + ROM_LOAD( "242f.v4", 0xc00000, 0x400000, CRC(91c353c5) SHA1(58f1fb75191b662f087929f8a401719375274d1f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242f.c1", 0x0000000, 0x800000, CRC(69a77e68) SHA1(4b0a0d6b52b1136b2c0ce237536532e9333f918a) ) + ROM_LOAD16_BYTE( "242f.c2", 0x0000001, 0x800000, CRC(315609de) SHA1(44d92b59e93f8340b27bbd91b6a6ed74c1e88cf4) ) + ROM_LOAD16_BYTE( "242f.c3", 0x1000000, 0x800000, CRC(bd6ba838) SHA1(5142ca697b2b6e203df7737e6a4ada126706bac3) ) + ROM_LOAD16_BYTE( "242f.c4", 0x1000001, 0x800000, CRC(ad1a89a2) SHA1(ab470673d561955c9d0640c06c5d6b931f2d095c) ) + ROM_LOAD16_BYTE( "242f.c5", 0x2000000, 0x800000, CRC(6cb4a77c) SHA1(73bcefd2e090db70d9bc693d6086cf6ab2af049b) ) + ROM_LOAD16_BYTE( "242f.c6", 0x2000001, 0x800000, CRC(7bf63b7d) SHA1(6e5c38dc450272d4410c150d5906b0870e753480) ) + ROM_LOAD16_BYTE( "242f.c7", 0x3000000, 0x800000, CRC(c4a3ef6b) SHA1(28fc5b7d1e0bf641483190ff27f30e4b9f48d80a) ) + ROM_LOAD16_BYTE( "242f.c8", 0x3000001, 0x800000, CRC(1c506f21) SHA1(5a96a8649c1027fdcbdd34be6176c3110271f74d) ) +ROM_END + +ROM_START( kof98fr ) /* The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242fr.p1", 0x000000, 0x100000, CRC(2f29984c) SHA1(6feb8412d335e8b38a0d7231f51af91251901dd4) ) + ROM_LOAD16_WORD_SWAP( "242fr.p2", 0x100000, 0x400000, CRC(c2fc3506) SHA1(ddcedbc30474d2e1db70d640a6a258171ecb900c) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242fr.c1", 0x0000000, 0x800000, CRC(07bd2146) SHA1(124c580667887d9f027b3fb2dbb6db39b346359c) ) + ROM_LOAD16_BYTE( "242fr.c2", 0x0000001, 0x800000, CRC(c935e740) SHA1(375624da3f24ea3b752c0cc3d9b75457e27c31d0) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98fro ) /* [OLD] The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242fro.p1", 0x000000, 0x100000, CRC(6500efce) SHA1(933de9a1b3ee32ac0043179448b4dda776eb86ba) ) + ROM_LOAD16_WORD_SWAP( "242fro.p2", 0x100000, 0x400000, CRC(c7fa95ee) SHA1(4de91d9151fbc510751f2c5277da7c8f49872c26) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242fro.c1", 0x0000000, 0x800000, CRC(bae65fc5) SHA1(933f587955ee29f3beca9be495a35331530e7206) ) + ROM_LOAD16_BYTE( "242fr.c2", 0x0000001, 0x800000, CRC(c935e740) SHA1(375624da3f24ea3b752c0cc3d9b75457e27c31d0) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98fro2 ) /* [OLD] The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242fro2.p1", 0x000000, 0x100000, CRC(71d4650f) SHA1(d0719d54070c3dea1d72b95c1fc830bd911ea49c) ) + ROM_LOAD16_WORD_SWAP( "242fro.p2", 0x100000, 0x400000, CRC(c7fa95ee) SHA1(4de91d9151fbc510751f2c5277da7c8f49872c26) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98frp ) // The Slutfest: French satire by Cigarette Patch + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242frp.p1", 0x000000, 0x100000, CRC(b9d5d3a5) SHA1(f58e1bae237c271e9f3e0c081b89118e5f910f94) ) + ROM_LOAD16_WORD_SWAP( "242frp.p2", 0x100000, 0x400000, CRC(dccb944f) SHA1(9bd4fe01c44ddfd74583f9f46dd3342aef1bae68) ) + + NEO_SFIX_128K( "242frp.s1", CRC(6db59470) SHA1(e4333cd4dac667779958a72249202082df74b00f) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242frp.c1", 0x0000000, 0x800000, CRC(3833c1aa) SHA1(4e4f1c3c932b0da708d48af0ce0473ac51d0908d) ) + ROM_LOAD16_BYTE( "242frp.c2", 0x0000001, 0x800000, CRC(c3a8234f) SHA1(ba55e5c0cc61e828a71f9dcdba4c4b6ea40beab2) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98gold ) // Gold Color Hack + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) ) + ROM_LOAD16_WORD_SWAP( "242gold.p2", 0x100000, 0x400000, CRC(c0f6802d) SHA1(f86c141efe454e949cb28585f1e88088b3894b16) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98hk ) // Hakeshu + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242hk.p1", 0x000000, 0x100000, CRC(701423b1) SHA1(3f062282ef119800ee7e0a7dc8e7fdbc1de69edb) ) + ROM_LOAD16_WORD_SWAP( "242hk.p2", 0x100000, 0x400000, CRC(8fe4e5ae) SHA1(247c5eded83c1b59ec601a4be98fd88edc1ae4ac) ) + + NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cos2.c1", 0x0000000, 0x800000, CRC(96762b9a) SHA1(5d62188c1a4816b6cd5001b618d695597c9b61a6) ) + ROM_LOAD16_BYTE( "242cos2.c2", 0x0000001, 0x800000, CRC(e7617290) SHA1(371441d1f204e83783a2a5c0e86d1a3968e0892d) ) + ROM_LOAD16_BYTE( "242hk.c3", 0x1000000, 0x800000, CRC(3a731ff6) SHA1(bf1dedd95b4f387f474b38118763722f1e45a135) ) + ROM_LOAD16_BYTE( "242hk.c4", 0x1000001, 0x800000, CRC(ba6b4f20) SHA1(adfca3d095a0d5f25f223263c9c241d029ba000f) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242chris.c7", 0x3000000, 0x800000, CRC(5ef4d3c3) SHA1(312cc9aa1c4657b7bc745348f3bac7476ef3c894) ) + ROM_LOAD16_BYTE( "242chris.c8", 0x3000001, 0x800000, CRC(d8b5d903) SHA1(3c5f0cf4b7cec79a81ad3af8cafeca2a14509995) ) +ROM_END + +ROM_START( kof98ice ) /* The King of Fighters '98 - Colour fix by Diablo_Hu - (Colour change - ice) */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) + ROM_LOAD16_WORD_SWAP( "242ice.p2", 0x200000, 0x400000, CRC(43449225) SHA1(0ac7154ecee354e9c9a3fde27ec195062e6f3cee) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98ico ) /* [OLD] The King of Fighters '98 - Colour fix by Diablo_Hu - (Colour change - ice) */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) + ROM_LOAD16_WORD_SWAP( "242ico.p2", 0x200000, 0x400000, CRC(7d018eab) SHA1(cea90992777ffe43d3921a4c0151b371c63bc204) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98iori ) // Iori Special Hack by Qiou2719 (13-02-10) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242iori.p1", 0x000000, 0x100000, CRC(ba59819e) SHA1(afcc1dadec63563d0c4de20871d972d251fbbaba) ) + ROM_LOAD16_WORD_SWAP( "242iori.p2", 0x100000, 0x400000, CRC(273e2232) SHA1(123c5541b21fcbaa85f3a687d9c738b083ab7b9e) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) ) + ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) ) + ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98jh ) /* The King of Fighters '98 - Enhance by Jason/K3 and Ydmis - (Secret character enable for Rugal - Athena style change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242jh.p1", 0x000000, 0x100000, CRC(238ed528) SHA1(9f0155cf298886842cd20d5a797a057889e65e04) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98k95 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242k95.p1", 0x000000, 0x100000, CRC(f3e75f06) SHA1(ac5c848030a50da9d96f2e974f50f6fb6e7152ba) ) + ROM_LOAD16_WORD_SWAP( "242k95.p2", 0x100000, 0x400000, CRC(417e154f) SHA1(6dfad87d49ea14a25844746179e82bd47bca6a8d) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242k95.c7", 0x3000000, 0x800000, CRC(936ee534) SHA1(f447da4b0dc2f36ee72305a9cdd6726b87b819b5) ) + ROM_LOAD16_BYTE( "242k95.c8", 0x3000001, 0x800000, CRC(b874ead0) SHA1(0f16e017fcb05a6cc4ffd18c50a857bd31e71cc4) ) +ROM_END + +ROM_START( kof98klc ) // Hack of Ivex combo 20090923 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242cii23.p1", 0x000000, 0x100000, CRC(35cbbaa7) SHA1(e9d773b24d999ad55c3813e627836e4d91f239f6) ) + ROM_LOAD16_WORD_SWAP( "242klc.p2", 0x100000, 0x400000, CRC(5d10ed32) SHA1(974622115a7d157259b5e4f2a18ede14ebe6c5e4) ) + + NEO_SFIX_128K( "242klc.s1", CRC(30441357) SHA1(87e4a0e003092044a13a84b18a7a25026aca4d43) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) ) + ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) ) + ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) ) + ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98lb ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242lb.p1", 0x000000, 0x100000, CRC(da7c4acc) SHA1(a99133c37ceb07c7fe5f0d821488b26d85351bc8) ) + ROM_LOAD16_WORD_SWAP( "242lb.p2", 0x100000, 0x400000, CRC(ec048f7b) SHA1(9af19079461c8a05817de064b13801e79c7f528b) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) ) + ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) ) +ROM_END + +ROM_START( kof98lv ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242lv.p1", 0x000000, 0x100000, CRC(bf81f196) SHA1(e92b86844b0c5f77327b0f51b24c60db664bf70d) ) + ROM_LOAD16_WORD_SWAP( "242lv.p2", 0x100000, 0x400000, CRC(c9ade63f) SHA1(bf4cc7dd3cff29d8b3bd5b5bf1cdcd42021233e3) ) + + NEO_SFIX_128K( "242lv.s1", CRC(c6d05b6b) SHA1(787e4f8db203ce380d4ec5e911ac438f356e8c31) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242lv.c1", 0x0000000, 0x800000, CRC(835fa4e1) SHA1(72fdbc671204b46b90254c6d106d37c4ebaa0281) ) + ROM_LOAD16_BYTE( "242lv.c2", 0x0000001, 0x800000, CRC(e2ef9582) SHA1(3b53d7137b461019a7ff0b0646130e8c49b752f7) ) + ROM_LOAD16_BYTE( "242cos2.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) ) + ROM_LOAD16_BYTE( "242cos2.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242lv.c7", 0x3000000, 0x800000, CRC(7786c5bf) SHA1(baad4060949a886e89502ea1711cf1739071dc17) ) + ROM_LOAD16_BYTE( "242lv.c8", 0x3000001, 0x800000, CRC(5f8a130b) SHA1(3e93a22f165dc3bd2cc02abb19951117f45d6022) ) +ROM_END + +ROM_START( kof98m ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242m.p1", 0x000000, 0x100000, CRC(4ebfc026) SHA1(70dfe1522d8f6aa64ba0ec1ce5021db40fe67403) ) + ROM_LOAD16_WORD_SWAP( "242m.p2", 0x100000, 0x400000, CRC(45430595) SHA1(523218c133eabba081ff1aed59860addf9ebc009) ) + + NEO_SFIX_128K( "242-s1.bin", CRC(935d55a4) SHA1(5bca2169dd64e4f4d71220ac59f0d5be50e35e0b) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x5000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242m.c7", 0x3000000, 0x800000, CRC(924a1e4b) SHA1(6de2c48b63cab647bca5d554a01d6a39c24924dc) ) + ROM_LOAD16_BYTE( "242m.c8", 0x3000001, 0x800000, CRC(fa1cfd45) SHA1(1922cf380f8d61770080cc0d7bc7727b78509384) ) + ROM_LOAD16_BYTE( "242m.c9", 0x4000000, 0x800000, CRC(cad3eae8) SHA1(39557e0f559761b60e03062d99251b1056ecd8db) ) + ROM_LOAD16_BYTE( "242m.c10", 0x4000001, 0x800000, CRC(930f41f8) SHA1(6e0349f9fe622890bc0111c8a554f67909cd810f) ) +ROM_END + +ROM_START( kof98mix ) // 2011-10-01 version + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242mix.p1", 0x000000, 0x100000, CRC(4a0525b1) SHA1(14c0356fd63ba55040b1f744f3b4450bfbf32a93) ) + ROM_LOAD16_WORD_SWAP( "242mix.p2", 0x100000, 0x400000, CRC(75aeef82) SHA1(5fdd52b88160ef670e1e5b592967db4e1ae8f407) ) + + NEO_SFIX_128K( "242mix.s1", CRC(07999beb) SHA1(e72372ca3c43083f39a9e0279af0f64d0994e9ba) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x5000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242mix.c7", 0x3000000, 0x800000, CRC(374eb904) SHA1(060ccdca943b6493890c9e42eacf943cf4acc100) ) + ROM_LOAD16_BYTE( "242mix.c8", 0x3000001, 0x800000, CRC(eddd2789) SHA1(e1fe8238ed51ee328d8c7eebb58fa6230b9e48c5) ) + ROM_LOAD16_BYTE( "242mix.c9", 0x4000000, 0x800000, CRC(83ef6611) SHA1(c65415d1933e6d2c19265047a22172d46484d900) ) + ROM_LOAD16_BYTE( "242mix.c10", 0x4000001, 0x800000, CRC(c22c67f8) SHA1(4f4bc61af37a2a14fa059785a0de0e82078b89e5) ) +ROM_END + +ROM_START( kof98nc ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242nc.p1", 0x000000, 0x100000, CRC(a9ebe406) SHA1(7c72271ae2da41547d06fb244c245760c32c0259) ) + ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cd1.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) ) + ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98new ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242new.p1", 0x000000, 0x100000, CRC(f9a22b2f) SHA1(730e9ae8391d8fa70141c5d73479cf9cff91a672) ) + ROM_LOAD16_WORD_SWAP( "242new.p2", 0x100000, 0x400000, CRC(5c650818) SHA1(7b3a0d5a4448de3d3e010e7ce5b521d3bf008a08) ) + + NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242new.c3", 0x1000000, 0x800000, CRC(3e554882) SHA1(c2a0dd3621180e9aae0f41adb46ea7fcce0764e8) ) + ROM_LOAD16_BYTE( "242new.c4", 0x1000001, 0x800000, CRC(e9e0f676) SHA1(4b46dc18b9ce502097e615c9c236ca0ac5b280e0) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) ) + ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) ) +ROM_END + +ROM_START( kof98pjc ) /* The King of Fighters '98 - Colour fix by TcwLee - (Character colour change) */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) + ROM_LOAD16_WORD_SWAP( "242pjc.p2", 0x200000, 0x400000, CRC(d7e4ca54) SHA1(b325f46494b31ce5a1ad7cdfae6c25ad7d061d23) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98rh ) /* The King of Fighters '98 - Hack by Raymonose - (Style change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242rh.p1", 0x000000, 0x100000, CRC(f3cf5e74) SHA1(aac4a1f355bb2b0f45030fafd8e0360b7990540a) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98rh1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242rh1.p1", 0x000000, 0x100000, CRC(87e30f4e) SHA1(68d776bfb8b4a017d9853ead31b643930cb0486a) ) + ROM_LOAD16_WORD_SWAP( "242rh1.p2", 0x100000, 0x400000, CRC(8196b644) SHA1(b0c2fbe2874c58eb8d5955faa0f6c1b26390666b) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98rl ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242rl.p1", 0x000000, 0x100000, CRC(cb209c51) SHA1(62023af00595e1921ff2e076ec6b39226e094a14) ) + ROM_LOAD16_WORD_SWAP( "242rl.p2", 0x100000, 0x400000, CRC(404ef576) SHA1(ab0d85d033f4102f7b5181661cc08d676173fc14) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) ) + ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) ) +ROM_END + +ROM_START( kof98rm ) /* The King of Fighters '98 - Remix by Raymonose - (Character move change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242rm.p1", 0x000000, 0x100000, CRC(6232a4e8) SHA1(56f1e69f3e16992d956f33b48478af3e56cb8c96) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98seh ) /* The King of Fighters '98 - Super Enhance Hack by Creamymami and Ydmis - (Ultra kill start is max in Advanced Mode - ultra power hack ABC) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242seh.p1", 0x000000, 0x100000, CRC(4684eda8) SHA1(0987bd16a9246a34046183cc06d543224aaf2e31) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98seho ) /* The King of Fighters '98 - Super Enhance Hack by Ydmis - (Ultra kill start is max in Advanced Mode - power hack ABC) (Old) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242seho.p1", 0x000000, 0x100000, CRC(86c9d1e6) SHA1(cfd987ee06e07528ad53f4107f3cf6771f401a5a) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98sof ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242sof.p1", 0x000000, 0x115470, CRC(b1619062) SHA1(ddf3d90e6484c33b86cc5eb0c96e989bc9a75dcc) ) + ROM_LOAD16_WORD_SWAP( "242sof.p2", 0x100000, 0x400000, CRC(d3b724e0) SHA1(8fe6b39abb3300ab17ef00c7e2093e9a7cabd31d) ) + + NEO_SFIX_128K( "242sof.s1", CRC(7cfe20af) SHA1(80e23884e0e30a990da73853eaf6570cdf4b611f) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) ) + ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98sp ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242sp.p1", 0x000000, 0x100000, CRC(058127d8) SHA1(9dd6e5a34d69670ef84fa6186e0001c7adb05a52) ) + ROM_LOAD16_WORD_SWAP( "242sp.p2", 0x100000, 0x400000, CRC(c3dd89f7) SHA1(6aef3c92688a2af4e63165a92555258954a9da94) ) + + NEO_SFIX_128K( "242sp.s1", CRC(9ccbae05) SHA1(f89dcce6a804b86e0f7362df7c16c7a4a978ee62) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) ) + ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) ) +ROM_END + +ROM_START( kof98sp2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242sp2.p1", 0x000000, 0x100000, CRC(ce56bf36) SHA1(2f8b28b4e35c74f6ce9976186fe004a4daf0def2) ) + ROM_LOAD16_WORD_SWAP( "242sp2.p2", 0x100000, 0x400000, CRC(bec83808) SHA1(bcdae4c9493ce7595fa3315cc02e2da7e434a14f) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242sp2.c1", 0x0000000, 0x800000, CRC(3c4458cc) SHA1(0869f72a9d7226b19ffea5108f618d0f62c01291) ) + ROM_LOAD16_BYTE( "242sp2.c2", 0x0000001, 0x800000, CRC(f060b0f4) SHA1(b4230c5c8dd35c0907b7c7d23f964051e6c24723) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) ) + ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98sr ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242sr.p1", 0x000000, 0x100000, CRC(63ee75b8) SHA1(d4443b97bbbae428992b8577369c9b82e008b95c) ) + ROM_LOAD16_WORD_SWAP( "242sr.p2", 0x100000, 0x400000, CRC(44695e4d) SHA1(4194e9da6a93192c26b32532252e5bd5275b8a10) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242cd.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) ) + ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242sr.c7", 0x3000000, 0x800000, CRC(bf1810e5) SHA1(03eed63bad855b00a666332982e2933685eaf740) ) + ROM_LOAD16_BYTE( "242sr.c8", 0x3000001, 0x800000, CRC(7919b330) SHA1(fd7cc8360307ba8527e3c596c4412df5eed42b3f) ) +ROM_END + +ROM_START( kof98tim ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242tim.p1", 0x000000, 0x100000, CRC(dbd6ab5a) SHA1(b4f1fe9feebc063c90ebc2b401d1590ddeb6fe3d) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98ul ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242ul.p1", 0x000000, 0x100000, CRC(4a4cf2f4) SHA1(7bf35c9cbb86d4335902abd6606c48eed8813f5c) ) + ROM_LOAD16_WORD_SWAP( "242ul.p2", 0x100000, 0x400000, CRC(b821e275) SHA1(89df56bcd5da6a75f4e2c7fc8d859994933d26db) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98ur ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242ur.p1", 0x000000, 0x100000, CRC(8c41b391) SHA1(fef64fc10d95c5e4eeeac758f3f2d3ccacb3899b) ) + ROM_LOAD16_WORD_SWAP( "242ur.p2", 0x100000, 0x400000, CRC(6a48c7bc) SHA1(0791092ecf87678758549e49f8d5d53a5e66eeb4) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98urf ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242urf.p1", 0x000000, 0x100000, CRC(e1960b0f) SHA1(ea6516a0e93d35c63f3dabdb8b785531304ad807) ) + ROM_LOAD16_WORD_SWAP( "242urf.p2", 0x100000, 0x400000, CRC(cde0fa91) SHA1(da56d2e6e2095a0c3d3682acebef9a4790828424) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98wh ) /* The King of Fighters '98 - Hack by Wesker - (Style change for Kyo to 95' Kyo) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242wh.p1", 0x000000, 0x100000, CRC(0c24ce14) SHA1(8bc889b16803c912640c39305a95812aed4e4323) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98wh1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242wh1.p1", 0x000000, 0x100000, CRC(676650af) SHA1(7f7650c83a46625d34654f303b17aaa43032c225) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98wh2 ) /* The King of Fighters '98 N - (kof98wh2) - Hack by Wesker - (Style change for Kyo to 95' Kyo, Iori and Rugal) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242wh2.p1", 0x000000, 0x100000, CRC(63267ea9) SHA1(fb82a8519cf5d164a9456f9f11aca36243b76f62) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98xi ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242xi.p1", 0x000000, 0x100000, CRC(8cd47f05) SHA1(db19d8457d4ac250b102d8af50d1d1b676997c60) ) + ROM_LOAD16_WORD_SWAP( "242xi.p2", 0x100000, 0x400000, CRC(8dcf495d) SHA1(9cafdaaad215f8f912b93a0ba7fa1fb8a4d20ece) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242xi.c5", 0x2000000, 0x800000, CRC(d4e28d5f) SHA1(bd93278bb610565f24d468f596121ae1dd7d2686) ) + ROM_LOAD16_BYTE( "242xi.c6", 0x2000001, 0x800000, CRC(fcfa6e58) SHA1(14da7d42692da09ed4d489459270bd83fe83cf4a) ) + ROM_LOAD16_BYTE( "242xi.c7", 0x3000000, 0x800000, CRC(960f0df4) SHA1(0bf8381d14be1fe16ffc122df0f49a425cfef9bc) ) + ROM_LOAD16_BYTE( "242xi.c8", 0x3000001, 0x800000, CRC(f1eab90b) SHA1(224f829bbc75d51f1152e16e60e58951c62d188c) ) +ROM_END + +ROM_START( kof98y ) /* The King of Fighters '98 - Hack by Ydmis - (Secret character enable for Rugal) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242y.p1", 0x000000, 0x100000, CRC(20848b37) SHA1(eb44baa6f273d6ab596204f89427078343c0ace5) ) + ROM_LOAD16_WORD_SWAP( "242y.p2", 0x100000, 0x400000, CRC(3ae6a0b6) SHA1(d3fb3d24da69d590095b183ce5eb5715e0d46e96) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + +ROM_START( kof98yh ) /* The King of Fighters '98 - Enhance by Ydmis - (Secret character enable for Rugal - power hack ABC in Extra Mode) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242yh.p1", 0x000000, 0x100000, CRC(4ee6f162) SHA1(66036540d459268198c556397db3ab3c175165a4) ) + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) +ROM_END + + + +GAME( 1998, kof98aas, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 (Asamiya Athena 99 Style)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, kof98ae, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Anniversary Edition", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2009, kof98ae0, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Anniversary Edition (set 0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2009, kof98ae1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (set 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2009, kof98ae2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98b, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof98bh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Boss Hack 2006)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof98c2006, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo 2006", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof98c20070720, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2007-07-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof98c20070923, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2007-09-23)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself +GAME( 2008, kof98c20080524, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-05-24)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself +GAME( 2008, kof98c20080616, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-06-16)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself +GAME( 2008, kof98c20080712, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-07-12)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself +GAME( 2009, kof98c20090620, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-06-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself +GAME( 2010, kof98c20090923, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-09-23)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself +GAME( 2010, kof98c20100214, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2010-02-14)", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, kof98c20110114, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2011-01-14)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kof98c20120116, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2012-01-16)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kof98c20120915, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2012-09-15)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof98c20130213, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-02-13)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof98c20130311, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-03-19)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof98c20130509, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-05-09)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof98c20130528, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-05-30)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof98c20130617, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-06-17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof98c20130808, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-08-08)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof98c20130820, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-08-20)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof98c20131113, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-11-13)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140101, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-01)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140110, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140118, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-18)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140204, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-04)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140213, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-13)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140217, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140228, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-28)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140302, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-02)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140310, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140317, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140403, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-03)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140412, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-12)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140416, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-16)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140419, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-19)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140428, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-28)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140504, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-05-04)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140524, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-05-24)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140606, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-06-06)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140620, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-06-20)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140717, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-07-17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140809, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-09)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140816, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-16)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140824, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-24)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140906, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-09-06)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20140924, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-09-24)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20141002, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-10-02)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof98c20141020, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-10-20)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150201, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-02-01)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150228, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-02-28)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150302, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-02)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150310, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150330, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-30)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150528, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-05-28)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150614, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-06-14)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150705, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-07-05)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150729, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-07-29)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20150827, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-08-27)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20151103, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-03)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20151108, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-08)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof98c20151110, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2016, kof98c20151223, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-12-23)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98cd, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98cd1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 (NGCD Ver 1.04f [EGHT])", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof98ch, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Chase", "Kof'98 (Diff Moves 030503)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof98chl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'98 (Diff Moves 030320)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98chris,kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Chris 2k2 Style)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98cn, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU, Zuojie", "Kof'98 (Chinese Translation)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98cn1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU, Zuojie", "Kof'98 (Chinese Translation, hack of kof98y)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98cos, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98cos1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98cos2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic 2.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, kof98cta, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo 10th Anniversary", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself +GAME( 1998, kof98dc, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Dodowang", "Kof'98 (Char color changed - Negative style)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98ehr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Diff Moves - Ultra kill start max in Adv Mode - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98evl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Ultra Evolution Lite)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98evo, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Evolution)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98evo2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Evolution Orochi Baozou Hack Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98f, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 ('fake')", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof98fr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2004)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof98fro, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2003)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kof98fro2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2002)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof98frp, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Cigarette Patch", "Kof'98 Slutfest (French parody)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98gold, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Gold Color Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98hk, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Hakeshu)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98ice, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Diablo_Hu", "Kof'98 Ice", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98ico, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Diablo_Hu", "Kof'98 Ice (Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98iori, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Iori Special Hack by Qiou2719 (13-02-10))", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98jh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3 and Ydmis", "Kof'98 (Add Rugal - Athena style changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98k95, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (EX KYO SP)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof98klc, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-09-23)(Kalce combo mix)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself +GAME( 1998, kof98lb, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'98 (hack by lb70)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, kof98lv, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Love Edition (27-12-09))", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98m, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 MIX", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, kof98mix, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Mix (2011-10-01)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98nc, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'98 (Neo-Geo CD 1.2 by Eddids from FCHT)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98new, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 New Version", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98pjc, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "TcwLee", "Kof'98 (Char color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98rh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Style changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98rh1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Real Rugal Hack - Yashional)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98rl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Risko", "Kof'98 (Relive by Risko)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98rm, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Diff Moves)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98seh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'98 (Ultra kill start max in Adv Mode - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98seho, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Ultra kill start max in Adv Mode - Pow hack ABC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98sof, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Silver Omega Tributo a Fliperman)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98sp, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZWJ", "Kof'98 Super Plus (Hack by ZWJ)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98sp2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZWJ", "Kof'98 Super Plus (Alternate Set, Hack by ZWJ)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98sr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 SR ( EGHT )", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98tim, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT, Creamymami, Raymonose", "Kof'98 (Triple Impact Remix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98ul, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Ultra Leona)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98ur, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Ultra Rugal)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98urf, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Ultra Rugal Final Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98wh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'98 (Style changes for Kyo to 95' Kyo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98wh1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Remix BT Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98wh2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'98 (Style changes for Kyo to 95' Kyo, Iori and Rugal)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98xi, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (XI Flash Version (Jacky hack))", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98y, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Add Rugal)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98yh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Add Rugal - Pow hack ABC in Extra Mode)", MACHINE_SUPPORTS_SAVE ) + diff --git a/docs/release/src/hbmame/drivers/kof99.cpp b/docs/release/src/hbmame/drivers/kof99.cpp new file mode 100644 index 00000000000..22f3abe902b --- /dev/null +++ b/docs/release/src/hbmame/drivers/kof99.cpp @@ -0,0 +1,2504 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +// Rules: no encryption, has s1 rom -> neogeo_state,neogeo +// no s1 rom -> neogeo_hbmame,cmc42sfix +// encrypted gfx -> m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, 0, 0, KOF99_GFX_KEY); +// encrypted gfx and no s1 rom -> m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY); + +// encrypted gfx and has s1 rom +DRIVER_INIT_MEMBER( neogeo_hbmame, kof99bh ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, 0, 0, KOF99_GFX_KEY); +} + +// encrypted except for cx roms +DRIVER_INIT_MEMBER( neogeo_hbmame, kof99d ) +{ + DRIVER_INIT_CALL(neogeo); + m_sma_prot->kof99_decrypt_68k(cpuregion); + m_sprgen->m_fixed_layer_bank_type = 1; + m_sma_prot->kof99_install_protection(m_maincpu, m_banked_cart); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + + + +ROM_START( kof99ab ) /* The King of Fighters '99 - Hack by Marcochen/PPX Hack Team - (Rolls moves sideways version) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ab.p1", 0x000000, 0x100000, CRC(8ABC720E) SHA1(3D8FDC2F3AE1F4F1DC121587EF37240C15548280) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +/* The King of Fighters '99 - Anniversary Edition. + Unfortunately Yashional does not put revision dates in his games, + so we've had to guess which roms to use. + For the name, we go by the date on the zipfile (if provided). */ +ROM_START( kof99ae ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ae.p1", 0x000000, 0x100000, CRC(67f52d45) SHA1(cadf1c5c8c3e234204c8b32677f347e66d0373e5) ) + ROM_LOAD16_WORD_SWAP( "251ae.p2", 0x100000, 0x400000, CRC(67134a67) SHA1(c853f67ec66b0f01273c3ce1e1003262cbca0a60) ) + + NEO_SFIX_128K( "251ae.s1", CRC(6243a70b) SHA1(452371f20e31c4d79022a128fc5335e951a6af1e) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + ROM_REGION( 0xe00000, "ymsnd", 0 ) + ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) ) + ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251ae.c1", 0x0000000, 0x800000, CRC(d0048356) SHA1(3a5a381f531751c8469d74b59e9e668d21cbc06b) ) + ROM_LOAD16_BYTE( "251ae.c2", 0x0000001, 0x800000, CRC(1d405bb0) SHA1(76c4b1d6e5ff0d5814b19203fbdd1f02d663de3e) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) ) + ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) ) + ROM_LOAD16_BYTE( "251ae.c9", 0x4000000, 0x800000, CRC(7d90d06d) SHA1(a72e91d689ef23b4bab43266c4360f663fc7836f) ) + ROM_LOAD16_BYTE( "251ae.c10", 0x4000001, 0x800000, CRC(3e2bf178) SHA1(e606e69595c0e9601c1dea142f0fcf77c2964347) ) + ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) ) + ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) ) +ROM_END + +ROM_START( kof99ae0 ) /* Original Version - Decrypted GFX */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ae0.p1", 0x000000, 0x100000, CRC(17aec0ae) SHA1(ca88256c9dc118667165ae66fae34ee49bfa1b09) ) + ROM_LOAD16_WORD_SWAP( "251ae0.p2", 0x100000, 0x400000, CRC(e9630204) SHA1(f5f88eaf4563163c5ddeb39223f1dc5d56658987) ) + + NEO_SFIX_128K( "251ae0.s1", CRC(9f515051) SHA1(c5d6553b7c84db3c72b3d2feb9b0a580afa35382) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) ) + ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251ae.c1", 0x0000000, 0x800000, CRC(d0048356) SHA1(3a5a381f531751c8469d74b59e9e668d21cbc06b) ) + ROM_LOAD16_BYTE( "251ae.c2", 0x0000001, 0x800000, CRC(1d405bb0) SHA1(76c4b1d6e5ff0d5814b19203fbdd1f02d663de3e) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) ) + ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) ) + ROM_LOAD16_BYTE( "251ae.c9", 0x4000000, 0x800000, CRC(7d90d06d) SHA1(a72e91d689ef23b4bab43266c4360f663fc7836f) ) + ROM_LOAD16_BYTE( "251ae.c10", 0x4000001, 0x800000, CRC(3e2bf178) SHA1(e606e69595c0e9601c1dea142f0fcf77c2964347) ) + ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) ) + ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) ) +ROM_END + +ROM_START( kof99ae20140408 ) // latest date on the roms + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251aend.p1", 0x000000, 0x100000, CRC(8913d6e4) SHA1(2cd0d9db1b521f123c20105dc95d3319e39c60ce) ) + ROM_LOAD16_WORD_SWAP( "251aend.p2", 0x100000, 0x400000, CRC(9c458ee5) SHA1(c2bd37c6d53e2119724160c9626e38f7138f6c8b) ) + ROM_LOAD16_WORD_SWAP( "251aend.p3", 0x500000, 0x400000, CRC(64979453) SHA1(730ad832959cc9eab8fb30fd1266f4ed8902ae03) ) + + NEO_SFIX_128K( "251ae.s1", CRC(6243a70b) SHA1(452371f20e31c4d79022a128fc5335e951a6af1e) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + ROM_REGION( 0xe00000, "ymsnd", 0 ) + ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) ) + ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) ) + ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) ) + ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) ) + ROM_LOAD16_BYTE( "251aend.c9", 0x4000000, 0x800000, CRC(0b7a7f25) SHA1(1582f85ce96b74b361565408cccf35815267ac52) ) + ROM_LOAD16_BYTE( "251aend.c10", 0x4000001, 0x800000, CRC(4b840d63) SHA1(4cb4c5cb34aef6f1e188f08984e870a50b41b9f2) ) + ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) ) + ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) ) +ROM_END + +ROM_START( kof99ae20140624 ) /* The King of Fighters '99 - Anniversary Edition */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251aenf.p1", 0x000000, 0x100000, CRC(924122bc) SHA1(5240c2317e79ee27abcdb484800c569e78a1172f) ) + ROM_LOAD16_WORD_SWAP( "251aenf.p2", 0x100000, 0x400000, CRC(6ba36969) SHA1(18cb69260f5592a4279f07bfd0d3af2f3e7ff288) ) + ROM_LOAD16_WORD_SWAP( "251aenf.p3", 0x500000, 0x400000, CRC(99697d6e) SHA1(c505afdfb7ea506c30d2d581d166f49f7fd7c88c) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + NEO_SFIX_128K( "251aenf.s1", CRC(18c1562d) SHA1(afeaa541998a3c23a0ecb87da0231370f08213f2) ) + + ROM_REGION( 0xe00000, "ymsnd", 0 ) + ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) ) + ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) ) + ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) ) + ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) ) + ROM_LOAD16_BYTE( "251aenf.c9", 0x4000000, 0x800000, CRC(53d028c0) SHA1(be59fc381e3b9c3bc42a5ca691b3dfa05e1f2b1c) ) + ROM_LOAD16_BYTE( "251aenf.c10", 0x4000001, 0x800000, CRC(707ce1a7) SHA1(afc41c9ee37eca8f2a77b2b40a120bb01d8eb4bd) ) + ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) ) + ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) ) +ROM_END + +ROM_START( kof99ae20150121 ) /* The King of Fighters '99 - Anniversary Edition */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251aeoa.p1", 0x000000, 0x100000, CRC(110a01b4) SHA1(df16c7c0e79717d939f594e80469a525eed62b07) ) + ROM_LOAD16_WORD_SWAP( "251aeoa.p2", 0x100000, 0x400000, CRC(0f8e548a) SHA1(f195d02793f3f139975bc8789ec288438622abdb) ) + ROM_LOAD16_WORD_SWAP( "251aeoa.p3", 0x500000, 0x400000, CRC(84280fed) SHA1(06f8afac0dcaff5b9ec7d5fd36a88760f329c482) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + NEO_SFIX_128K( "251aenj.s1", CRC(18c1562d) SHA1(afeaa541998a3c23a0ecb87da0231370f08213f2) ) + + ROM_REGION( 0xe00000, "ymsnd", 0 ) + ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) ) + ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) ) + ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) ) + ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) ) + ROM_LOAD16_BYTE( "251aeoa.c9", 0x4000000, 0x800000, CRC(cd0911ba) SHA1(01a2e644532bc483ce8ee2f9ea7cba2fa7492cd1) ) + ROM_LOAD16_BYTE( "251aeoa.c10", 0x4000001, 0x800000, CRC(a910b5bb) SHA1(976686caec9727fd0e028bd7007806d2962af2cd) ) + ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) ) + ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) ) +ROM_END + +ROM_START( kof99ae20150520 ) /* The King of Fighters '99 - Anniversary Edition */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251aeoe.p1", 0x000000, 0x100000, CRC(149bd289) SHA1(c1818ce416c7036b8cc51d6ec752b2a612b7d2b1) ) + ROM_LOAD16_WORD_SWAP( "251aeoe.p2", 0x100000, 0x400000, CRC(86658d87) SHA1(d3d8a2f596b145a1bc98d65fcf3715d86b7a6dd6) ) + ROM_LOAD16_WORD_SWAP( "251aeoe.p3", 0x500000, 0x400000, CRC(e66a79c0) SHA1(a13bf66ceb15a4d42855c539a658427845c7d148) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) ) + + ROM_REGION( 0xe00000, "ymsnd", 0 ) + ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) ) + ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) ) + ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) ) + ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) ) + ROM_LOAD16_BYTE( "251aex.c9", 0x4000000, 0x800000, CRC(f33d51d5) SHA1(b7d95afc0e85fec3c3279a766e22227cce91f3f4) ) + ROM_LOAD16_BYTE( "251aex.c10", 0x4000001, 0x800000, CRC(852770d7) SHA1(734520728d7e8162021fd1cc93f2fe2f8bd02e75) ) + ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) ) + ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) ) +ROM_END + +ROM_START( kof99ae20150711 ) /* The King of Fighters '99 - Anniversary Edition */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251aeog.p1", 0x000000, 0x100000, CRC(78057e71) SHA1(f027654620c2490ef834713265deec1ada542e9b) ) + ROM_LOAD16_WORD_SWAP( "251aeog.p2", 0x100000, 0x800000, CRC(b7e50e35) SHA1(9706fe6bce816d75893ee8882eb4e9cd0590daac) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) ) + + ROM_REGION( 0xe00000, "ymsnd", 0 ) + ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) ) + ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) ) + ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) ) + ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) ) + ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) ) + ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) ) + ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) ) + ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) ) +ROM_END + +ROM_START( kof99bh ) /* The King of Fighters '99 - Hack by Dodowang - (Can choose Krizalid and Krizalid' - have icons in character select menu) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251bh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99bhs ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251bhs.p1", 0x000000, 0x100000, CRC(c2d1b2fc) SHA1(016f168e5d657abbfb1b81389b1b1613a225d1ad) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99bs ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251bs.p1", 0x000000, 0x100000, CRC(43ce0028) SHA1(7f6ee38c5eb89410f56907f66e6c45f38384da2c) ) + ROM_LOAD16_WORD_SWAP( "251bs.p2", 0x100000, 0x400000, CRC(e20677c4) SHA1(3ada6a734a5ec274f96b012146ca3416b66b6865) ) + + NEO_SFIX_128K( "251bs.s1", CRC(697c1f85) SHA1(117d12908b060db62716a8ac8a155c8303287746) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251bs.c1", 0x0000000, 0x800000, CRC(a472f1db) SHA1(f941f39e95da3a866e5b05e61fffabe7731bdfcf) ) + ROM_LOAD16_BYTE( "251bs.c2", 0x0000001, 0x800000, CRC(11037779) SHA1(93a9c5031844aa8a13e758283621bf32cf41bb5b) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251bs.c7", 0x3000000, 0x800000, CRC(165607a2) SHA1(7899a0cff743a942fa3af7def57dac6684e76231) ) + ROM_LOAD16_BYTE( "251bs.c8", 0x3000001, 0x800000, CRC(720c9304) SHA1(ecd5813bd0ab8df55191b21c9f425176945726c3) ) +ROM_END + +ROM_START( kof99ch ) /* The King of Fighters '99 - Remix by Chase - (Character move change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ch.p1", 0x000000, 0x100000, CRC(6efd349b) SHA1(f876df9137801125b8f142102d4165295607ba02) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99chf ) /* The King of Fighters '99 - Remix by Chase - (Character move change - fixed) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251chf.p1", 0x000000, 0x100000, CRC(34387e01) SHA1(cc56d936d931d793a7d02dddf4a4521ed09e1e52) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99co ) // combo + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251co.p1", 0x000000, 0x100000, CRC(99242c0c) SHA1(11d9d52783e4958a53f12469a75a784846d7ba49) ) + ROM_LOAD16_WORD_SWAP( "251co.p2", 0x100000, 0x400000, CRC(c3ddba7b) SHA1(1890a3cbf33b76d532b4d31eb602698dbff840ea) ) + + NEO_SFIX_128K( "251co.s1", CRC(6c36e84f) SHA1(80052ce8e9f09c4e2f7edf5c6423f3b5588eb33b) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99co2 ) // combo + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251co2.p1", 0x000000, 0x100000, CRC(857276bd) SHA1(722ab77fea24a0db8691e64c4c3ed098d1dc5360) ) + ROM_LOAD16_WORD_SWAP( "251co2.p2", 0x100000, 0x400000, CRC(c79df28d) SHA1(352edc22d5b5ecb84748cb703135de5c2a7a0032) ) + + NEO_SFIX_128K( "251co2.s1", CRC(10b87e35) SHA1(f466e9b3ecc7b14cde42a767c3fac73a9eed282b) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99d ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) ) + ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) + ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99eh ) /* The King of Fighters '99 - Enhance by Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251eh.p1", 0x000000, 0x100000, CRC(93f05c57) SHA1(e92e18e0572ae313952b2416c76d06c86202f755) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99ehr ) /* The King of Fighters '99 - Remix by Raymonose - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra kill start is max - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ehr.p1", 0x000000, 0x100000, CRC(08dfc6cb) SHA1(5f3fed5e1c598c580aa33b66aeb92d5d95d2b2e6) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99eur ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251eur.p1", 0x000000, 0x100000, CRC(66fa20fd) SHA1(6fbda6db41558e4d7a073c7d5fc568f7cc57df2d) ) + ROM_LOAD16_WORD_SWAP( "251eur.p2", 0x100000, 0x400000, CRC(aec93904) SHA1(9270e1a920c6f99dc2b716fc1d3536ce7783cd74) ) + + NEO_SFIX_128K( "251eur.s1", CRC(a6747969) SHA1(6577c00aceb0d612819c703b3334ebb6c760e126) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251eur.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) ) + ROM_LOAD( "251eur.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) ) + ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251eur.c7", 0x3000000, 0x800000, CRC(f0b5ff02) SHA1(b9a25e6dad48547acce8edb5623be9d35bff1b4c) ) + ROM_LOAD16_BYTE( "251eur.c8", 0x3000001, 0x800000, CRC(7107b8d5) SHA1(6754113de3eb6a34c1913bb5117dd12d705b961c) ) +ROM_END + +ROM_START( kof99eur1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251eur1.p1", 0x000000, 0x100000, CRC(a10ddd49) SHA1(0d524db74f414d2ac5694b9f0fd8a39e1bc41322) ) + ROM_LOAD16_WORD_SWAP( "251eur1.p2", 0x100000, 0x400000, CRC(cbb73011) SHA1(984a0581a146bde46834ea3672c6003c5eb4539a) ) + + NEO_SFIX_128K( "251eur1.s1", CRC(f0c559ea) SHA1(43f7409fa56a851e621d42d76c7be440427c6ad3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) ) + ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251eur1.c7", 0x3000000, 0x800000, CRC(295e8e9c) SHA1(26c6df1ec94b0c524b2477223b645dc797e1e198) ) + ROM_LOAD16_BYTE( "251eur1.c8", 0x3000001, 0x800000, CRC(638614a6) SHA1(8a9d8fee7272e13eb500faefc5125ed0844acf07) ) +ROM_END + +ROM_START( kof99eur2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251eur2.p1", 0x000000, 0x100000, CRC(df07d4f6) SHA1(b14c6449bffcb3b6719408e5ea48a18b43536f64) ) + ROM_LOAD16_WORD_SWAP( "251eur2.p2", 0x100000, 0x400000, CRC(4b6fdd2b) SHA1(2321c4e0f8da21fc47b3db782c50598810ebae9a) ) + + NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) ) + ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251eur2.c7", 0x3000000, 0x800000, CRC(52da5196) SHA1(956fc48d62f397c45b576f08003c1360ecd7f9ed) ) + ROM_LOAD16_BYTE( "251eur2.c8", 0x3000001, 0x800000, CRC(f5276981) SHA1(0a70429be7a8488f73b4f2d071ccfe9c24c9cdb4) ) +ROM_END + +ROM_START( kof99eur3 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251eur3.p1", 0x000000, 0x100000, CRC(31ebbcd6) SHA1(236dc2b5b53bbde0e0fb3fe5101341dd1ffee1cd) ) + ROM_LOAD16_WORD_SWAP( "251eur3.p2", 0x100000, 0x400000, CRC(b777285d) SHA1(ed613324ded46983dd3a40bd3f00c34b37166c31) ) + + NEO_SFIX_128K( "251eur.s1", CRC(a6747969) SHA1(6577c00aceb0d612819c703b3334ebb6c760e126) ) + + NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251eur.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) ) + ROM_LOAD( "251eur.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) ) + ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251eur.c7", 0x3000000, 0x800000, CRC(f0b5ff02) SHA1(b9a25e6dad48547acce8edb5623be9d35bff1b4c) ) + ROM_LOAD16_BYTE( "251eur.c8", 0x3000001, 0x800000, CRC(7107b8d5) SHA1(6754113de3eb6a34c1913bb5117dd12d705b961c) ) +ROM_END + +ROM_START( kof99evo ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251evo.p1", 0x000000, 0x100000, CRC(18960f8b) SHA1(41dae74f7d429873946752b28527655466dd38c9) ) + ROM_LOAD16_WORD_SWAP( "251evo.p2", 0x100000, 0x400000, CRC(c6431b4a) SHA1(cd30903f200428b9ea6901aab1bd7fdd1672713f) ) + + NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) ) + + NEO_BIOS_AUDIO_128K( "251wet.m1", CRC(8c96b012) SHA1(8ae72cd0d88c742791b1f1f1d2af2253bf4f762d) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99fc ) /* The King of Fighters '99 - Remix Pro200 Final - FCHT */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251fc.p1", 0x000000, 0x100000, CRC(6d3d14c4) SHA1(f40784505b82f59d289ce45e3de8f7fb8e87069b) ) + ROM_LOAD16_WORD_SWAP( "251fc.p2", 0x100000, 0x400000, CRC(01e111b3) SHA1(4ae2fbd552246779146684d2191a7bc9a3554c59) ) + + NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) ) + + NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) ) + ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) ) + ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) ) + ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) ) + ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) ) +ROM_END + +ROM_START( kof99fc1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251fc1.p1", 0x000000, 0x100000, CRC(48b8641d) SHA1(cb8e9992762d00cdb04f019398975d8d3b0cf1eb) ) + ROM_LOAD16_WORD_SWAP( "251fc1.p2", 0x100000, 0x400000, CRC(143a7080) SHA1(29007713d2f1298e890d82d8a11c5700a6e680e6) ) + + NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) ) + + NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) ) + ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) ) + ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) ) + ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) ) + ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) ) +ROM_END + +ROM_START( kof99fc2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251fc2.p1", 0x000000, 0x100000, CRC(7f14f664) SHA1(0f17b6fbe919b78f63de4e10fc95c6e7e688206d) ) + ROM_LOAD16_WORD_SWAP( "251fc.p2", 0x100000, 0x400000, CRC(01e111b3) SHA1(4ae2fbd552246779146684d2191a7bc9a3554c59) ) + + NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) ) + + NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) ) + ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) ) + ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) ) + ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) ) + ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) ) +ROM_END + +ROM_START( kof99fmi ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251fmi.p1", 0x000000, 0x100000, CRC(ac853905) SHA1(e72abc420f3213ca90a60e46674ced48b0ef2f30) ) + ROM_LOAD16_WORD_SWAP( "251fmi.p2", 0x100000, 0x400000, CRC(abbc9bf3) SHA1(72ac57e9b12f1533712379d1d33b6a80bcd7a4e1) ) + + NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251xxx.c7", 0x3000000, 0x800000, CRC(a02acaf8) SHA1(4136b4bedf51e02f0e22488bf8ca21847ad63f93) ) + ROM_LOAD16_BYTE( "251xxx.c8", 0x3000001, 0x800000, CRC(e3cee593) SHA1(1ea4b9f13344b33348ef3fb95b325509399ef756) ) +ROM_END + +ROM_START( kof99hbi ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251hbi.p1", 0x000000, 0x100000, CRC(0b17b5fb) SHA1(72e0ad53fa4081df04c5aec193caf83c5baaaa7b) ) + ROM_LOAD16_WORD_SWAP( "251hbi.p2", 0x100000, 0x400000, CRC(b73cabf7) SHA1(8c2e387c8f66ca6f710be5acf21bf56284f1bbda) ) + + NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251hbi.c7", 0x3000000, 0x800000, CRC(0e12697e) SHA1(65a8d5666d98ba53c3d3e5b29f24f4306c32534c) ) + ROM_LOAD16_BYTE( "251hbi.c8", 0x3000001, 0x800000, CRC(ca3b76c8) SHA1(d28c818f6561b06c2ac2d95b76f704d566549caa) ) +ROM_END + +ROM_START( kof99iori ) /* The King of Fighters '99 - iori */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251iori.p1", 0x000000, 0x100000, CRC(6140956d) SHA1(e4dabd3b134701459c1360fffec4bcb27a48dac0) ) + ROM_LOAD16_WORD_SWAP( "251iori.p2", 0x100000, 0x400000, CRC(d31111e3) SHA1(c6396c0eefd464320b0c3d68f7bcfaddb31b63ba) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99jh ) /* The King of Fighters '99 - Hack by Jason/K3 - (Simple move revision - Athena style change - can choose Krizalid - can choose Kyo and Iori in MVS mode 20031018) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251jh.p1", 0x000000, 0x100000, CRC(855936ca) SHA1(bf788fa7c49cf3365e1e859df3811a5ca0ff69cc) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99jho ) /* [OLD] The King of Fighters '99 N - Hack by Jason/K3 - (Simple move revision - Athena style change - can choose Krizalid - can choose Kyo and Iori in MVS mode 20030924) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251jho.p1", 0x000000, 0x100000, CRC(690ea82d) SHA1(2938738e57514a672c79abe1d3696c51f9fdc04d) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99lb ) /* The King of Fighters '99 - Hack by lb70 */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251lb.p1", 0x000000, 0x100000, CRC(38d49ceb) SHA1(474e5bca53cfb78727fbe17577fbd7f710b78c9b) ) + ROM_LOAD16_WORD_SWAP( "251lb.p2", 0x100000, 0x400000, CRC(095524ce) SHA1(59009b5f74d0c02f85bf2e59f2833d65863ba8c3) ) + + NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251lb.c7", 0x3000000, 0x800000, CRC(c5a4d2e6) SHA1(ca0e8b45b126bc091242ad62c846c1b2a685b396) ) + ROM_LOAD16_BYTE( "251lb.c8", 0x3000001, 0x800000, CRC(7160d0dd) SHA1(37a3fb72a32bcfdd2ba3ae7a957c4b3ba593b528) ) +ROM_END + +ROM_START( kof99m ) /* The King of Fighters '99 - Hack by MasakiAnton - (Can choose Krizalid and Krizalid') */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251m.p1", 0x000000, 0x100000, CRC(e056b767) SHA1(86cc38fa6158aa6b72fe0cb74a43f98ef4b285c6) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99nd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99ndh ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ndh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99ob ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ob.p1", 0x000000, 0x100000, CRC(b6147b23) SHA1(921dad6a2f1011ad67a82a6f9874b30658f233b0) ) + ROM_LOAD16_WORD_SWAP( "251ob.p2", 0x100000, 0x400000, CRC(f88a4970) SHA1(6cce092f0d60aff7c0fcad796e9604cdf440219f) ) + + NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) ) + + NEO_BIOS_AUDIO_128K( "251ob.s1", CRC(151c7a8d) SHA1(ccf557d1818edb579aa72e05f494305e5449d5ee) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251ob.v1", 0x000000, 0x400000, CRC(33d2e8b4) SHA1(f1ff9facc59eadc257edc06ba6bb3dddf27cfae2) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ob.c7", 0x3000000, 0x800000, CRC(f3b25375) SHA1(80d6b06adce5190bb71f2f0233db60008a33c51e) ) + ROM_LOAD16_BYTE( "251ob.c8", 0x3000001, 0x800000, CRC(d2d0041a) SHA1(02283e2ac22e2f0521c3b2d126aff624ac820b63) ) +ROM_END + +ROM_START( kof99ob2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ob2.p1", 0x000000, 0x100000, CRC(13f57712) SHA1(d08cc331049950d19e59a6016a2dcd8cdc733a14) ) + ROM_LOAD16_WORD_SWAP( "251ob2.p2", 0x100000, 0x400000, CRC(7a747b84) SHA1(dd38867d055d51465630254dcff32e9fdc9f523e) ) + + NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) ) + + NEO_BIOS_AUDIO_128K( "251ob.s1", CRC(151c7a8d) SHA1(ccf557d1818edb579aa72e05f494305e5449d5ee) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251ob.v1", 0x000000, 0x400000, CRC(33d2e8b4) SHA1(f1ff9facc59eadc257edc06ba6bb3dddf27cfae2) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251ob2.c7", 0x3000000, 0x800000, CRC(b9123865) SHA1(1f99321a2695a8be372c27bd012b5d476fbef318) ) + ROM_LOAD16_BYTE( "251ob2.c8", 0x3000001, 0x800000, CRC(f34606e5) SHA1(7ba4b28afda82383361e935dd83dc9d158fc2e5e) ) +ROM_END + +ROM_START( kof99pb ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251pb.p1", 0x000000, 0x100000, CRC(1cdf4d3e) SHA1(2019ffe300651d9faabc65e53e95d4dc98bba6bf) ) + ROM_LOAD16_WORD_SWAP( "251pb.p2", 0x100000, 0x400000, CRC(e0a0100a) SHA1(21a723818faa1bfbeff850caa1837f1ad566adda) ) + + NEO_SFIX_128K( "251pb.s1", CRC(0b3d79d3) SHA1(2647c617c52d9955ee29520c416b59febfe7c0db) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251pb.c7", 0x3000000, 0x800000, CRC(65c896fb) SHA1(7d673bca1b38438f7ceb7aab26fe2beb452c74e7) ) + ROM_LOAD16_BYTE( "251pb.c8", 0x3000001, 0x800000, CRC(6db9afe1) SHA1(beeed20292320e2a742d31c2a3ad05ffeb0d6f61) ) +ROM_END + +ROM_START( kof99pjc1 ) /* The King of Fighters '99 - Colour fix by TcwLee - (Character colour change revision 1 200209xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) + ROM_LOAD16_WORD_SWAP( "251pjc1.p2", 0x100000, 0x400000, CRC(79aa31b0) SHA1(04a15e211b4453cb4e249f8cbd175ce09136d92a) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99pjc2 ) /* The King of Fighters '99 - Colour fix by TcwLee - (Character colour change revision 2 20030302) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) + ROM_LOAD16_WORD_SWAP( "251pjc2.p2", 0x100000, 0x400000, CRC(024c5b3f) SHA1(e52b9035c5853027b37534c97872fdd1dd0a2791) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99pjc3 ) /* The King of Fighters '99 N - (kof99pjcr3) - Colour fix by TcwLee - (Character colour change revision 3 20030720) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) + ROM_LOAD16_WORD_SWAP( "251pjc3.p2", 0x100000, 0x400000, CRC(8054a5d5) SHA1(b240d427baf1c68cdc4ce2ab9e8d93471afa701a) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99pjco ) /* [OLD] The King of Fighters '99 N - Colour fix by TcwLee - (Character colour change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) + ROM_LOAD16_WORD_SWAP( "251pjco.p2", 0x100000, 0x400000, CRC(4b08d6b3) SHA1(481b740bde2141abbdc6c516d27564d9ffa03662) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99pt ) /* The King of Fighters '99 - Hack by Creamymami - (Ultra kill hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251pt.p1", 0x000000, 0x100000, CRC(c14497cc) SHA1(ce275b3c146b48b40ded3a7754c71b722d6eab67) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99r ) /* The King of Fighters '99 - Hack by Raymonose - (General character move change 200310xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251r.p1", 0x000000, 0x100000, CRC(7374f261) SHA1(1277e33d4ae4e40b0dbb49c9ac156cd132b6d890) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99revo ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251revo.p1", 0x000000, 0x100000, CRC(38FD8609) SHA1(fded1624a670835ae107dc19707c2fa8b06d6cea) ) + ROM_LOAD16_WORD_SWAP( "251revo.p2", 0x100000, 0x400000, CRC(361F64DB) SHA1(a789df74ff197f2c552a87be4db8d321603d404e) ) + + NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251revo.c7", 0x3000000, 0x800000, CRC(4E8865B2) SHA1(8d7283d3782278b4fd5344a8986b1c9611118c32) ) + ROM_LOAD16_BYTE( "251revo.c8", 0x3000001, 0x800000, CRC(040FCFCB) SHA1(27cb93f13ffa6f1ef97d2b967ffd4b4d757b1ca0) ) +ROM_END + +ROM_START( kof99rp ) /* The King of Fighters '99 - KOF Remix PRO by FCHT - (Character move change v1.07a 20041224) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp.p1", 0x000000, 0x100000, CRC(5806CDD2) SHA1(279A8181374ECF77DA4605D1CBE1152324784B97) ) + ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp0 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp0.p1", 0x000000, 0x100000, CRC(0570df7e) SHA1(f6a66cf39e8aff68b2962115aa65c79ca222cc74) ) + ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(c923ee2b) SHA1(98b4f40812d5479f7d6e683e5ef4002f4c86785c) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963d51b3) SHA1(b50a585e1cf7b47052a3d6fd85f47ea739b08ba8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99rp1 ) /* [OLD] The King of Fighters '99 N - KOF Remix PRO by FCHT - (Character move change v1.02 final1 20031010) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp1.p1", 0x000000, 0x100000, CRC(c21d1580) SHA1(a81380d9f2e66036f92e02fe5b3b54741f2e59fc) ) + ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp2 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101c-b) - Remix PRO by FCHT - (Remix pro 1.01c by FCHT Built 0309h 200309xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp2.p1", 0x000000, 0x100000, CRC(07c52235) SHA1(2ca600d7c0d4bf2780c1313f31e23ec767d1f636) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp3 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101b-b) - Remix PRO by FCHT - (Remix pro 1.01b by FCHT Built 0309e 200309xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp3.p1", 0x000000, 0x100000, CRC(7e2da123) SHA1(4a5275ccce118244fb02416ef1cca72b71a55b1a) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp4 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101a2-b) - Remix PRO by FCHT - (Remix pro 1.01a2 by FCHT 200309xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp4.p1", 0x000000, 0x100000, CRC(0758dfef) SHA1(3a3254a2dcb073da00351921291fb9595a504a3c) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp5 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101a-b) - Remix PRO by FCHT - (Remix pro 1.01a by FCHT 200309xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp5.p1", 0x000000, 0x100000, CRC(b00aa815) SHA1(bf199a9977d542b38d953cf9c9347e22f8c31fbb) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp6 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101-b) - Remix PRO by FCHT - (Remix pro 1.01 by FCHT Built 0308b 200309xx) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp6.p1", 0x000000, 0x100000, CRC(9c3308e7) SHA1(e443a8bd184f6fc49f9d288b2884d95a5c7bca63) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp7 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpcex-b) - Remix PRO by FCHT - (Remix pro 1.00c by FCHT Built 0308e EX-Version) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp7.p1", 0x000000, 0x100000, CRC(da91f15c) SHA1(64e2b0bc6592b5ca148ccec9f4ccfa0d6ac4aaf7) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp8 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpc-b) - Remix PRO by FCHT - (Remix pro 1.00c by FCHT Built 0308e) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp8.p1", 0x000000, 0x100000, CRC(55d97c9a) SHA1(35b176cc4005c07478df1dc99fe40344210e690b) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rp9 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rse-b) - Remix PRO by FCHT - (Remix pro 1.00b by FCHT - Enhance) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rp9.p1", 0x000000, 0x100000, CRC(9ef748b0) SHA1(8f2cccc36d2ce019f8d0e69dec267240978bef4e) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rpa ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rps-b) - Remix PRO by FCHT - (Remix pro 1.00b by FCHT) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rpa.p1", 0x000000, 0x100000, CRC(e390960c) SHA1(992f9ca6bffb34d589287ed1ab3c7a53d5940078) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rpb ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpe-b) - Remix PRO by FCHT - (Remix pro 1.00a by FCHT - Enhance) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rpb.p1", 0x000000, 0x100000, CRC(69f172ce) SHA1(c40f72d58331cd416154eef6f58d5398effe75ef) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rpc ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp-b) - Remix PRO by FCHT - (Remix pro 1.00a by FCHT) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rpc.p1", 0x000000, 0x100000, CRC(1496ac72) SHA1(60b4cb55ad8cfa27342b489fd2b53c5d41feea18) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rpp ) /* [OLD] The King of Fighters '99 N - KOF Remix PRO PLUS by FCHT - (Character move change v1.02 FINAL PRO PLUS 20040327) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rpp.p1", 0x000000, 0x100000, CRC(f954fc44) SHA1(654d1252dec3dfcf3fd3b8b19689bc68cd221e39) ) + ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99rr ) /* The King of Fighters '99 - Remix by Raymonose - (Character move change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rr.p1", 0x000000, 0x100000, CRC(fd7399b5) SHA1(bac6892fec986942bb02c00fe96d00fc11a0ddda) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99seh ) /* The King of Fighters '99 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra power hack - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251seh.p1", 0x000000, 0x100000, CRC(3dd574cf) SHA1(9005041b52e196639f70675abbc8949f3f52e6af) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99sp ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251sp.p1", 0x000000, 0x100000, CRC(48017E49) SHA1(67b84e227a1b8389b660008d326cd2b4c2830101) ) + ROM_LOAD16_WORD_SWAP( "251sp.p2", 0x100000, 0x400000, CRC(0B1396A9) SHA1(dbd0d462a0a7558dc35d8cfd01359e6fbf6e1f68) ) + + NEO_SFIX_128K( "251sp.s1", CRC(C72989A5) SHA1(c23bc663610340259a29aeaf536f90c244e218f8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "251sp.c7", 0x3000000, 0x800000, CRC(4E8BB555) SHA1(f68c597c1f10fb0f756e8252fa83de41ded27417) ) + ROM_LOAD16_BYTE( "251sp.c8", 0x3000001, 0x800000, CRC(D79A6E0D) SHA1(f6b1b930a62982ef20d1374b213d246f6352d558) ) +ROM_END + +ROM_START( kof99sr ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251sr.p1", 0x000000, 0x100000, CRC(b96da0bf) SHA1(260b8fd7888b54f5f61fa07175dacd1743f1c6bb) ) + ROM_LOAD16_WORD_SWAP( "251sr.p2", 0x100000, 0x400000, CRC(9f1d1660) SHA1(d23466a5aac70c69d10c6bec59f019419940d914) ) + + NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251sr.c7", 0x3000000, 0x800000, CRC(65de862c) SHA1(83c0446f19ca567cd7664956f617f4f7625422b7) ) + ROM_LOAD16_BYTE( "251sr.c8", 0x3000001, 0x800000, CRC(3ff457fe) SHA1(1838de77ceaf78cb75604f227ffdf59311c0bbe5) ) +ROM_END + +ROM_START( kof99srr ) /* The King of Fighters '99 - Remix by Raymonose - (Character move change) Super Remix Red */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251srr.p1", 0x000000, 0x100000, CRC(c7cd6ffe) SHA1(f0130b9bd80b4b9d452f53fac85853d9fa563144) ) + ROM_LOAD16_WORD_SWAP( "251srr.p2", 0x100000, 0x400000, CRC(a7f4ed1d) SHA1(5f3024c66370c8b4be3a1b7bbe7225574c19fc4c) ) + + NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99the4 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251the4.p1", 0x000000, 0x100000, CRC(6055c72c) SHA1(45089a3e17e6476113f2c471632b3029b3344743) ) + ROM_LOAD16_WORD_SWAP( "251the4.p2", 0x100000, 0x400000, CRC(62757ec3) SHA1(ad1d1f5b341e08ebb17a247c42b3e28dde989f12) ) + + NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99the42 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251the42.p1", 0x000000, 0x100000, CRC(d7d0b651) SHA1(de739b9f9ba5816a12ce7936d3f285d3ec8fc1f7) ) + ROM_LOAD16_WORD_SWAP( "251the4.p2", 0x100000, 0x400000, CRC(62757ec3) SHA1(ad1d1f5b341e08ebb17a247c42b3e28dde989f12) ) + + NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99wet ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251ndh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) ) + ROM_LOAD16_WORD_SWAP( "251wet.p2", 0x100000, 0x400000, CRC(bdb6e48c) SHA1(af0ce253e48df64693c45a123c3ddb03e5679cba) ) + + NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) ) + + NEO_BIOS_AUDIO_128K( "251wet.m1", CRC(8c96b012) SHA1(8ae72cd0d88c742791b1f1f1d2af2253bf4f762d) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) ) + ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) ) +ROM_END + +ROM_START( kof99xxx ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251xxx.p1", 0x000000, 0x100000, CRC(29ac1595) SHA1(db2452de23dfbbb27c06c4d9abc9da4c9f3adacb) ) + ROM_LOAD16_WORD_SWAP( "251xxx.p2", 0x100000, 0x400000, CRC(3d930046) SHA1(1f04c000f1b16b334240f88bea386a8435185989) ) + + NEO_SFIX_128K( "251xxx.s1", CRC(d55f8b72) SHA1(6843e41836611fcdb5db084047ab35a4606999c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) ) + ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) ) + ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) ) + ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) ) + ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) ) + ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) ) + ROM_LOAD16_BYTE( "251xxx.c7", 0x3000000, 0x800000, CRC(a02acaf8) SHA1(4136b4bedf51e02f0e22488bf8ca21847ad63f93) ) + ROM_LOAD16_BYTE( "251xxx.c8", 0x3000001, 0x800000, CRC(e3cee593) SHA1(1ea4b9f13344b33348ef3fb95b325509399ef756) ) +ROM_END + +ROM_START( kof99y ) /* The King of Fighters '99 - Hack by Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251y.p1", 0x000000, 0x100000, CRC(17a293ae) SHA1(b0f84a6c7688995eb93e5a4a13a4ca2a4e3645eb) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +ROM_START( kof99yd ) /* The King of Fighters '99 - Hack by Ydmis - (Ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251yd.p1", 0x000000, 0x100000, CRC(9caffc4d) SHA1(100bb80ffc9f938b107dbd7994a2b6febd7b3a9c) ) + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) +ROM_END + +/* Hacks of the Prototype */ + +ROM_START( kof99fc0 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251fc0.p1", 0x000000, 0x100000, CRC(ab81c822) SHA1(6091c9018b9384c34fd87bcad03e3e17d984bc56) ) + ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) ) + + NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99fix ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251fix.p1", 0x000000, 0x100000, CRC(a71a0541) SHA1(49cac7ceedd6ef986987b2efed32f93a983d2319) ) + ROM_LOAD16_WORD_SWAP( "251fix.p2", 0x100000, 0x400000, CRC(e45ffa4f) SHA1(1ee1956eaba2283ffadfd7fd70618e9fcbeda7a8) ) + + NEO_SFIX_128K( "251fix.s1", CRC(1d264e1b) SHA1(6e694465c31b75a8d75711abf653c2d878927f25) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "251fix.c7", 0x3000000, 0x800000, CRC(4e8bb555) SHA1(f68c597c1f10fb0f756e8252fa83de41ded27417) ) + ROM_LOAD16_BYTE( "251fix.c8", 0x3000001, 0x800000, CRC(d79a6e0d) SHA1(f6b1b930a62982ef20d1374b213d246f6352d558) ) +ROM_END + +ROM_START( kof99hp ) /* The King of Fighters '99 PROTOTYPE - Hack by HackPlus - (Can choose Krizalid and Krizalid') */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251hp.p1", 0x000000, 0x100000, CRC(15c044a1) SHA1(c78b627e7667952094066fbdb4dbb5ecd0032af3) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99kp ) /* The King of Fighters '99 PROTOTYPE - Colour fix by Fighters Kim - (Colour change - 10%) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "proto_251-p1.p1", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) ) + ROM_LOAD16_WORD_SWAP( "251kp.p2", 0x100000, 0x400000, CRC(b3aff1ed) SHA1(683561e36417152386317c30629732a1d718e188) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99pk ) /* The King of Fighters '99 PROTOTYPE - Hack by Kryso Fun - (Can choose Krizalid and Krizalid´ - bases on RS - Version + fix? data) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251pk.p1", 0x000000, 0x100000, CRC(9006f3a3) SHA1(1f09da2e94afd7f44087174a19ba4c74ea2a3d86) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99pko ) /* The King of Fighters '99 PROTOTYPE - Hack by Kryso Fun - (Can choose Krizalid and Krizalid´ - bases on RS - Version without fix? data */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251pko.p1", 0x000000, 0x100000, CRC(f7a95104) SHA1(51fd3befe4e439d9a5a17d99efa439d5f2091ed0) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99pm ) /* The King of Fighters '99 PROTOTYPE - Fix by UNKNOWN - (Mengele Fix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251pm.p1", 0x000000, 0x100000, CRC(ed68b5f5) SHA1(5a7ec30350dcba08f7617f6c53a051b5284bc00a) ) + ROM_LOAD16_WORD_SWAP( "251pm.p2", 0x100000, 0x400000, CRC(dc81f711) SHA1(2a00f9301e0e81ec00bc5eee5d39faeefa0eba8a) ) + + NEO_SFIX_128K( "251pm.s1", CRC(841a498c) SHA1(b9bb31dd9638bad0304e16f2de268e8c1cc4adb1) ) + + NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99py ) /* The King of Fighters '99 PROTOTYPE - Hack by Ydmis - (Can choose Kyo and Iori - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251py.p1", 0x000000, 0x100000, CRC(4db24015) SHA1(1103eb498eb54e4787ed4da84a99978803041366) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99rs ) /* The King of Fighters '99 PROTOTYPE - (Prototype RS-Version) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rs.p1", 0x000000, 0x100000, CRC(9ae7ab90) SHA1(4783042353b2bc796b4e3f8545308fe406019eb2) ) + ROM_LOAD16_WORD_SWAP( "251rs.p2", 0x100000, 0x400000, CRC(838e9331) SHA1(f009382b5a99f6818f83f37f76af2d14f006237f) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99rsm ) /* The King of Fighters '99 PROTOTYPE - Fix by UNKNOWN - (Mengele fix for RS-Version) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rsm.p1", 0x000000, 0x100000, CRC(788ebe35) SHA1(760d50701b8cd9a824b2b8e3e12b045bd0c0eaf1) ) + ROM_LOAD16_WORD_SWAP( "251rsm.p2", 0x100000, 0x400000, CRC(2c98268d) SHA1(552388a4ecb5318bdf654c0fac7ccac77795e760) ) + + NEO_SFIX_128K( "251pm.s1", CRC(841a498c) SHA1(b9bb31dd9638bad0304e16f2de268e8c1cc4adb1) ) + + NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99rsp ) /* The King of Fighters '99 PROTOTYPE- Fix by UNKNOWN - (Bug Fix for Prototype RS-Version) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251rsp.p1", 0x000000, 0x100000, CRC(4827d835) SHA1(aac22e61c2b2e9e4ae8f6a19ed52020c42351271) ) + ROM_LOAD16_WORD_SWAP( "251rsp.p2", 0x100000, 0x400000, CRC(b09c980d) SHA1(df6d30f01056695de4214c8273a35794faa1652a) ) + + NEO_SFIX_128K( "251rsp.s1", CRC(ee8f28a5) SHA1(b6531e6ee6bdd38f7d1f7f682dddff5426250015) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99wh1 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251wh1.p1", 0x000000, 0x100000, CRC(9e492265) SHA1(2448485e59ae2f921089f03be77a17bb32d0dd9d) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99wh2 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.02) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251wh2.p1", 0x000000, 0x100000, CRC(505a8ded) SHA1(cd939b018c43712e69aa9f3de8975a8df310503e) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99wh3 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.03) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251wh3.p1", 0x000000, 0x100000, CRC(9a312383) SHA1(29eba75aac66c5fec8ab5937312dc41155f243f8) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99wh4 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.04) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251wh4.p1", 0x000000, 0x100000, CRC(5092e49f) SHA1(09bd471e0c0951677bf76e7fc69cda8dc751e06b) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99xpsa ) /* The King of Fighters '99 PROTOTYPE - (kof99xpsa) - Fix by XPS - (00409 XPSLibrary alternate Andy striker voice fix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251xpsa.p1", 0x000000, 0x100000, CRC(5d4be286) SHA1(5052c6852cd02452ca4e103b5ef214120aae0452) ) + ROM_LOAD16_WORD_SWAP( "251xpsf.p2", 0x100000, 0x400000, CRC(6533070c) SHA1(1eff1d11ab1463bd9578055f43684949ac6602e4) ) + + NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) ) + + NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99xpsf ) /* The King of Fighters '99 PROTOTYPE - Fix by XPS - (00731 XPSLibrary final fix 20000409 - RS-Version) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251xpsf.p1", 0x000000, 0x100000, CRC(51dd4482) SHA1(71200ca31bb6fc0ac045f303c15a096fc1848901) ) + ROM_LOAD16_WORD_SWAP( "251xpsf.p2", 0x100000, 0x400000, CRC(6533070c) SHA1(1eff1d11ab1463bd9578055f43684949ac6602e4) ) + + NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) ) + + NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99xpsp ) /* The King of Fighters '99 PROTOTYPE - Fix by XPS - (00731 XPSLibrary final fix 20000409) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251xpsp.p1", 0x000000, 0x100000, CRC(6fad557f) SHA1(a647d8faf44a0ae6d600c1fb2d0b5f5cd63dc854) ) + ROM_LOAD16_WORD_SWAP( "251xpsp.p2", 0x100000, 0x400000, CRC(952ad690) SHA1(c0aa19462f3451f355b36793a95009b808914329) ) + + NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) ) + + NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + +ROM_START( kof99yb ) /* The King of Fighters '99 PROTOTYPE - Hack by Ydmis - (Can choose Kyo and Iori) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "251yb.p1", 0x000000, 0x100000, CRC(fd2eaf53) SHA1(10dcb41674d236be9560ab442d3e3a8c542ab5f1) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) +ROM_END + + + +GAME( 1999, kof99ab, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Marcochen/PPX Hack Team", "Kof'99 (Rolls moves sideways ver)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, kof99ae, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99ae0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (unknown date)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof99ae20140408, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2014-04-08)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, kof99ae20140624, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2014-06-24)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof99ae20150121, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-01-21)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof99ae20150520, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-05-20)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, kof99ae20150711, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-07-11)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99bh, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "Dodowang", "Kof'99 (2 Add Char with Icons)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99bhs, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Boss Striker Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99bs, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Boss Hack - DC version by FightChina KOF Hackteamwork)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99ch, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Chase", "Kof'99 (Diff Moves set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99chf, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Chase", "Kof'99 (Diff Moves set 3 - Fixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof99co, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'99 COMBO 2006 (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof99co2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'99 COMBO 2006 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99d, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99d, ROT0, "SNK", "Kof'99 Millennium Battle (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99eh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (4 Add Char - Ultra kill start max set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99ehr, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (4 Add Char - Ultra kill start max - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99eur, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (Yashional)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99eur1, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99eur2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99eur3, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (25-2-2011)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99evo, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Evolution", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof99fc, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (Pro200 Final)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof99fc0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCGH", "Kof'99 REMIX PRO (1.07A)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof99fc1, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (2.00B)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof99fc2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (2.00F)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99fmi, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Marcochen", "Kof'99 Orochi Iori (Hack by marcochen)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99hbi, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Okukochi", "Kof'99 (Happy Birthday to Iori)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kof99iori, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 (hack 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99jh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Jason/K3", "Kof'99 (3 Add Char - Simple moves rev - Athena style changed 031018)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99jho, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Jason/K3", "Kof'99 (3 Add Char - Simple moves rev - Athena style changed 030924)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kof99lb, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "lb70", "Kof'99 (Hack by lb70)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99m, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "MasakiAnton", "Kof'99 (2 Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99nd, kof99, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "SNK", "Kof'99 (non encrypted P,decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99ndh, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99ob, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Orochi's Blood-Another part of Leona & Iori", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99ob2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Orochi's Blood (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pb, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Perfect Boss", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pjc1, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 1 0209xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pjc2, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 2 030302)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pjc3, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 3 030720)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pjco, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pt, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Creamymami", "Kof'99 (Ultra kill hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99revo, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Okuhoshi", "Kof'99 (Christmas Revolution v1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof99rp, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - v1.07a 041224)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof99rp0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FGCH", "Kof'99 REMIX PRO (Edition v1.07a)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99rp1, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - v1.02 final1 031010)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rp2, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01c 0309xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rp3, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01b 0309xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rp4, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01a2 0309xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rp5, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01a 0309xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rp6, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01 0309xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99rp7, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00c built 0308e - EX ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99rp8, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00c built 0308e)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rp9, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00b enhanced)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rpa, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00b)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rpb, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00a enhanced)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof99rpc, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00a)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99rpp, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO PLUS (Diff Moves v1.02 final 040327)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99r, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (Moves changed 0310xx)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99rr, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (Diff Moves set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99seh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Creamymami and Ydmis", "Kof'99 (4 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99sp, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'99 (Super Plus)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99sr, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 (Summer Revolution)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99srr, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'99 (Super Remix Red)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99the4, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 The 4 Flame Manipulators (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99the42, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 The 4 Flame Manipulators (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99wet, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (hack colour wet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99xxx, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Special Boss)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99y, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (4 Add Char", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99yd, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) + +/* Hacks of the Prototype */ +GAME( 1999, kof99hp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'99 (proto) (2 Add Char set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, kof99fix, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Happy birthday to Iori special 2009)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99kp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim", "Kof'99 (proto) (Color changed - 10%)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pk, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KrysoFun", "Kof'99 (proto) (2 Add Char - Based on RS - ver + Fix? data)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pko, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KrysoFun", "Kof'99 (proto) (2 Add Char - Based on RS - ver without Fix? data)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99pm, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto) (Mengele Fix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99py, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis","Kof'99 (proto) (2 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99rs, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hack?", "Kof'99 (proto) (Proto RS-ver)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99rsm, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto) (Mengele Fix for RS-ver)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99rsp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto) (Bug Fix for RS-ver)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99wh1, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto) (Diff Moves)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99wh2, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto) (Diff Moves - v.02)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99wh3, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto) (Diff Moves - v.03)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99wh4, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto) (Diff Moves - v.04)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99xpsa, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto) (00409 XPSLibrary alternate Andy striker voice Fix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99xpsf, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto) (00731 XPSLibrary final Fix 000409 - RS-ver)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99xpsp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto) (00731 XPSLibrary final Fix 000409)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99yb, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'99 (proto) (2 Add Char set 1)", MACHINE_SUPPORTS_SAVE ) + diff --git a/docs/release/src/hbmame/drivers/kyugo.cpp b/docs/release/src/hbmame/drivers/kyugo.cpp new file mode 100644 index 00000000000..96f621f8a05 --- /dev/null +++ b/docs/release/src/hbmame/drivers/kyugo.cpp @@ -0,0 +1,46 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/kyugo.cpp" + +ROM_START( airwolffr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bfr.2s", 0x0000, 0x8000, CRC(ccf90d88) SHA1(6f88c0c4f5985d8033efdbc5e5516552007b7bdf) ) + + ROM_REGION( 0x10000, "sub", 0 ) + ROM_LOAD( "a.7s", 0x0000, 0x8000, CRC(a3c7af5c) SHA1(0f70ca94f3d168d38e0e93252e9441973f72441a) ) + + ROM_REGION( 0x01000, "gfx1", 0 ) + ROM_LOAD( "f.4a", 0x00000, 0x1000, CRC(4df44ce9) SHA1(145986009d4ae6f7dd98ce715838d0331dea005d) ) /* chars */ + + ROM_REGION( 0x06000, "gfx2", 0 ) + ROM_LOAD( "09h_14.bin", 0x00000, 0x2000, CRC(25e57e1f) SHA1(bef24bced102cd470e10bd4aa19da3c608211258) ) + ROM_LOAD( "10h_13.bin", 0x02000, 0x2000, CRC(cf0de5e9) SHA1(32f3eb4c9298d59aca1dc2530b0e92f64311946d) ) + ROM_LOAD( "11h_12.bin", 0x04000, 0x2000, CRC(4050c048) SHA1(ca21e0750f01342d9791067160339eec436c9458) ) + + ROM_REGION( 0x18000, "gfx3", 0 ) + ROM_LOAD( "e.6a", 0x00000, 0x2000, CRC(e8fbc7d2) SHA1(a9a651b4a714f490a051a89fd0327a665353d64b) ) + ROM_CONTINUE( 0x04000, 0x2000 ) + ROM_CONTINUE( 0x02000, 0x2000 ) + ROM_CONTINUE( 0x06000, 0x2000 ) + ROM_LOAD( "d.8a", 0x08000, 0x2000, CRC(c5d4156b) SHA1(f66ec33b67e39f3df016231b00e48c9757e322f3) ) + ROM_CONTINUE( 0x0c000, 0x2000 ) + ROM_CONTINUE( 0x0a000, 0x2000 ) + ROM_CONTINUE( 0x0e000, 0x2000 ) + ROM_LOAD( "c.10a", 0x10000, 0x2000, CRC(de91dfb1) SHA1(9f338542f44905d0b895d99510475113eb860f0d) ) + ROM_CONTINUE( 0x14000, 0x2000 ) + ROM_CONTINUE( 0x12000, 0x2000 ) + ROM_CONTINUE( 0x16000, 0x2000 ) + + ROM_REGION( 0x0340, "proms", 0 ) + ROM_LOAD( "01j.bin", 0x0000, 0x0100, CRC(6a94b2a3) SHA1(b1f9bd97aa26c9fb6377ef32d5dd125583361f48) ) + ROM_LOAD( "01h.bin", 0x0100, 0x0100, CRC(ec0923d3) SHA1(26f9eda4260a8b767893b8dea42819f192ef0b20) ) + ROM_LOAD( "01f.bin", 0x0200, 0x0100, CRC(ade97052) SHA1(cc1b4cd57d7bc55ce44de6b89a322ff08eabb1a0) ) + ROM_LOAD( "m1.2c", 0x0320, 0x0020, CRC(83a39201) SHA1(4fdc722c9e20ee152c890342ef0dce18e35e2ef8) ) + + ROM_REGION( 0x0400, "plds", 0 ) + ROM_LOAD_OPTIONAL( "pal16l8a.2j", 0x0000, 0x0104, NO_DUMP ) + ROM_LOAD_OPTIONAL( "epl12p6a.9j", 0x0200, 0x0034, CRC(19808f14) SHA1(d5043237be8857d2cecaf7dec079461f6b53efa9) ) + ROM_LOAD_OPTIONAL( "epl12p6a.9k", 0x0300, 0x0034, CRC(f5acad85) SHA1(ee3caeedf3e91793b12895f109eae5417f5c7631) ) +ROM_END + +GAME( 2007, airwolffr, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Arkatrad", "Airwolf (French)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/m52.cpp b/docs/release/src/hbmame/drivers/m52.cpp new file mode 100644 index 00000000000..019930dfb78 --- /dev/null +++ b/docs/release/src/hbmame/drivers/m52.cpp @@ -0,0 +1,40 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/m52.cpp" + +ROM_START( spatrol ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mpa-1.3m", 0x0000, 0x1000, CRC(5873a860) SHA1(8c03726d6e049c3edbc277440184e31679f78258) ) + ROM_LOAD( "mpa-2.3l", 0x1000, 0x1000, CRC(f4b85974) SHA1(dfb2efb57378a20af6f20569f4360cde95596f93) ) + ROM_LOAD( "mpa-3.3k", 0x2000, 0x1000, CRC(2e1a598c) SHA1(112c3c9678db8a8540a8df3708020c87fd10c91b) ) + ROM_LOAD( "mpa-4.3j", 0x3000, 0x1000, CRC(dd05b587) SHA1(727961b0dafa4a96b580d51013336db2a18aff1e) ) + + ROM_REGION( 0x8000, "irem_audio:iremsound", 0 ) + ROM_LOAD( "mp-s1.1a", 0x7000, 0x1000, CRC(561d3108) SHA1(4998c68a9e9a8002251fa8f07aa1082444a9dc80) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "spatrol.3e", 0x0000, 0x1000, CRC(130709e8) SHA1(fa3d0aca3179073c92a39c50f535d945f9b58725) ) /* chars */ + ROM_LOAD( "spatrol.3f", 0x1000, 0x1000, CRC(1ac58abc) SHA1(1a945c4efa6ef4a7d68cb6cb7b91a76be956837e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "spatrol.3m", 0x0000, 0x1000, CRC(09e18f9a) SHA1(9f41aacbc5352b8783422fdffef949426bada588) ) /* sprites */ + ROM_LOAD( "spatrol.3n", 0x1000, 0x1000, CRC(36b1891e) SHA1(e204c259ca9c37d0843b5c877debf2171c40249a) ) + + ROM_REGION( 0x1000, "gfx3", 0 ) + ROM_LOAD( "spatrol.3l", 0x0000, 0x1000, CRC(49877023) SHA1(a76b18afb20ab416318812f66bfdd57733441cb5) ) /* background graphics */ + + ROM_REGION( 0x1000, "gfx4", 0 ) + ROM_LOAD( "mpe-2.3k", 0x0000, 0x1000, CRC(c7aa1fb0) SHA1(14c6c76e1d0db2c0745e5d6d33ea6945fac8e9ee) ) + + ROM_REGION( 0x1000, "gfx5", 0 ) + ROM_LOAD( "spatrol.3h", 0x0000, 0x1000, CRC(091045ad) SHA1(715b5b964fe06ab015e30ce6e38d6737f0033510) ) + + ROM_REGION( 0x0340, "proms", 0 ) + ROM_LOAD( "mpc-4.2a", 0x0000, 0x0200, CRC(07f99284) SHA1(dfc52958f2520e1ce4446dd4c84c91413bbacf76) ) + ROM_LOAD( "mpc-3.1m", 0x0200, 0x0020, CRC(6a57eff2) SHA1(2d1c12dab5915da2ccd466e39436c88be434d634) ) /* background palette */ + ROM_LOAD( "mpc-1.1f", 0x0220, 0x0020, CRC(26979b13) SHA1(8c41a8cce4f3384c392a9f7a223a50d7be0e14a5) ) /* sprite palette */ + ROM_LOAD( "mpc-2.2h", 0x0240, 0x0100, CRC(7ae4cd97) SHA1(bc0662fac82ffe65f02092d912b2c2b0c7a8ac2b) ) /* sprite lookup table */ +ROM_END + +GAME( 2008, spatrol, mpatrol, m52, mpatrol, driver_device, 0, ROT0, "Gatinho", "Sponge Patrol", MACHINE_SUPPORTS_SAVE ) + diff --git a/docs/release/src/hbmame/drivers/maketrax.cpp b/docs/release/src/hbmame/drivers/maketrax.cpp new file mode 100644 index 00000000000..eeb3c3a9b25 --- /dev/null +++ b/docs/release/src/hbmame/drivers/maketrax.cpp @@ -0,0 +1,757 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/************************************* + * + * Make Trax input handlers + * + *************************************/ + +READ8_MEMBER(pacman_state::maketrax_special_port2_r) +{ + int data = ioport("DSW1")->read(); + int pc = space.device().safe_pcbase(); + + if ((pc == 0x1973) || (pc == 0x2389)) return data | 0x40; + + switch (offset) + { + case 0x01: + case 0x04: + data |= 0x40; break; + case 0x05: + data |= 0xc0; break; + default: + data &= 0x3f; break; + } + + return data; +} + +READ8_MEMBER(pacman_state::maketrax_special_port3_r) +{ + int pc = space.device().safe_pcbase(); + + if (pc == 0x040e) return 0x20; + + if ((pc == 0x115e) || (pc == 0x3ae2)) return 0x00; + + switch (offset) + { + case 0x00: + return 0x1f; + case 0x09: + return 0x30; + case 0x0c: + return 0x00; + default: + return 0x20; + } +} + +WRITE8_MEMBER(pacman_state::piranha_interrupt_vector_w) +{ + if (data == 0xfa) data = 0x78; + m_maincpu->set_input_line_vector(0, data ); +} + + + +/************************************* + * + * Main CPU memory handlers + * + *************************************/ + +/************************************* + * + * Main CPU port handlers + * + *************************************/ + +static ADDRESS_MAP_START( piranha_writeport, AS_IO, 8, pacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_WRITE(piranha_interrupt_vector_w) +ADDRESS_MAP_END + + +/************************************* + * + * Port definitions + * + *************************************/ + +static INPUT_PORTS_START( eyes ) + PORT_START ("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) + + PORT_START ("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL + + PORT_START ("DSW1") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x0c, "2" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPSETTING( 0x04, "4" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x30, "50000" ) + PORT_DIPSETTING( 0x20, "75000" ) + PORT_DIPSETTING( 0x10, "100000" ) + PORT_DIPSETTING( 0x00, "125000" ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) /* Not accessed */ + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START ("DSW2") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) +INPUT_PORTS_END + +static INPUT_PORTS_START( maketrax ) + PORT_START ("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) + + PORT_START ("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */ + + PORT_START ("DSW1") + PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x04, "4" ) + PORT_DIPSETTING( 0x08, "5" ) + PORT_DIPSETTING( 0x0c, "6" ) + PORT_DIPNAME( 0x10, 0x10, "First Pattern" ) + PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) + PORT_DIPNAME( 0x20, 0x20, "Teleport Holes" ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */ + + PORT_START ("DSW2") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) +INPUT_PORTS_END + + + +/************************************* + * + * Graphics layouts + * + *************************************/ + +/************************************* + * + * Machine drivers + * + *************************************/ + +static MACHINE_CONFIG_DERIVED( piranha, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_IO_MAP(piranha_writeport) +MACHINE_CONFIG_END + + +/************************************* + * + * Driver initialization + * + *************************************/ + +void pacman_state::maketrax_rom_decode() +{ + UINT8 *rom = memregion("maincpu")->base(); + + /* patch protection using a copy of the opcodes so ROM checksum */ + /* tests will not fail */ + + memcpy(m_patched_opcodes,rom,0x4000); + + m_patched_opcodes[0x0415] = 0xc9; + m_patched_opcodes[0x1978] = 0x18; + m_patched_opcodes[0x238e] = 0xc9; + m_patched_opcodes[0x3ae5] = 0xe6; + m_patched_opcodes[0x3ae7] = 0x00; + m_patched_opcodes[0x3ae8] = 0xc9; + m_patched_opcodes[0x3aed] = 0x86; + m_patched_opcodes[0x3aee] = 0xc0; + m_patched_opcodes[0x3aef] = 0xb0; +} + +DRIVER_INIT_MEMBER(pacman_state,maketrax) +{ + /* set up protection handlers */ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(FUNC(pacman_state::maketrax_special_port2_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(FUNC(pacman_state::maketrax_special_port3_r),this)); + + maketrax_rom_decode(); +} + +/************************************* + * + * ROM definitions + * + *************************************/ + +ROM_START( aa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "aa.1", 0x0000, 0x1000, CRC(7b73ff28) SHA1(3b05c9ecaa418291b9b3501fbfd4a1e48be7281e) ) + ROM_LOAD( "aa.2", 0x1000, 0x1000, CRC(848ca2fa) SHA1(d11e874a0bd0dcf88ed0781d7dc7b7d98b4ac1e8) ) + ROM_LOAD( "aa.3", 0x2000, 0x1000, CRC(b3d3ff37) SHA1(0df28470eb70f4a84f24c2a86b4b9d338b9b6a76) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "aa.5e", 0x0000, 0x1000, CRC(e69596af) SHA1(b53ef6fce2d9fa1163f722a1a6be56085bde415c) ) + ROM_LOAD( "aa.5f", 0x1000, 0x1000, CRC(c26ecd63) SHA1(40d618b171c7ea164384c2ded098520c77941cbc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( abscam ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "as0.bin", 0x0000, 0x0800, CRC(0b102302) SHA1(97f6399182db4f84efe482bf3a710aa45ca104ec) ) + ROM_LOAD( "as4.bin", 0x0800, 0x0800, CRC(3116a8ec) SHA1(259169bcc8fbe9fc73ca5100c3835a233351f530) ) + ROM_LOAD( "as1.bin", 0x1000, 0x0800, CRC(bc0281e0) SHA1(bcc6d63ede728d9b29f903489bfa80d94ec5cc00) ) + ROM_LOAD( "as5.bin", 0x1800, 0x0800, CRC(428ee2e8) SHA1(1477d1a86b32483ac0fdeea93512f517c9f66ce2) ) + ROM_LOAD( "as2.bin", 0x2000, 0x0800, CRC(e05d46ad) SHA1(87da57dbbe6ab5e1dd005fd68a982f1df917459c) ) + ROM_LOAD( "as6.bin", 0x2800, 0x0800, CRC(3ae9a8cb) SHA1(72896ad32cbdde90793788182958a943e35672f9) ) + ROM_LOAD( "as3.bin", 0x3000, 0x0800, CRC(b39eb940) SHA1(e144a1553c76ddee1c22ad1ed0cca241c2d03998) ) + ROM_LOAD( "as7.bin", 0x3800, 0x0800, CRC(16cf1c67) SHA1(0015fe64d476de87f1a030e7f2e735380dfcfd41) ) + + ROM_REGION( 0x2000, "gfx1" , 0) + ROM_LOAD( "as8.bin", 0x0000, 0x0800, CRC(61daabe5) SHA1(00503916d1d1011afe68898e3416718c0e63a298) ) + ROM_LOAD( "as10.bin", 0x0800, 0x0800, CRC(81d50c98) SHA1(6b61c666f68b5948e4facb8bac1378f986f993a7) ) + ROM_LOAD( "as9.bin", 0x1000, 0x0800, CRC(a3bd1613) SHA1(c59bb0a4d1fa5cbe596f41ee7b1a4a661ab5614b) ) + ROM_LOAD( "as11.bin", 0x1800, 0x0800, CRC(9d802b68) SHA1(4e8f37c2faedcfce91221a34c14f6490d578c80a) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "as4a.bin", 0x0020, 0x0100, CRC(1605b324) SHA1(336fce22caedbe69bcba9cea2b43e00f6f8e8067) ) + + PACMAN_SOUND_PROMS +ROM_END + +/* This game is not complete. Should a better version emerge, it will replace this one */ +/* QuadBlok works, you need to move joystick to select it, then insert coin */ +/* No sound */ +ROM_START( absurd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "absurd.1", 0x0000, 0x1000, CRC(cbda6dcb) SHA1(e17628ecc06b8877c6c9e55e2c8983272dd38e1e) ) + ROM_LOAD( "absurd.2", 0x1000, 0x1000, CRC(3b669ec6) SHA1(94db6cb04f74384a2ef1830e48b9fb79e1636739) ) + ROM_LOAD( "absurd.3", 0x2000, 0x1000, CRC(beb9024b) SHA1(9fb296e6f27373a1364a7ef439e36276e19e09f6) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "absurd.5e", 0x0000, 0x1000, CRC(0a4f5731) SHA1(0023b3175da4f25b5c59550c20b0435ac85cec2f) ) + ROM_LOAD( "absurd.5f", 0x1000, 0x1000, CRC(ae9805ee) SHA1(fd90b8bb2492a39f27216e0cda09f9594a9dada7) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "glob.7f", 0x0000, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) ) + ROM_LOAD( "absurd.4a", 0x0020, 0x0100, CRC(9379a246) SHA1(88c84668f67afc4a5ff12e794ac37a0636bd7153) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( alpaca7 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "alpaca7.6e", 0x0000, 0x1000, CRC(AF4AFCBF) SHA1(F11E2FE309818B41CB2A28408B06D18419879C09) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "alpaca.5e", 0x0000, 0x1000, CRC(3E879F02) SHA1(0B084DD449E57476231E59F15F85A209A919959C) ) + ROM_LOAD( "alpaca7.5f", 0x1000, 0x1000, CRC(A6103847) SHA1(4376996FF8C19AFD65F1757CE159B70071A4BD3B) ) + + PACMAN_PROMS +ROM_END + +ROM_START( alpaca8 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "alpaca8.6e", 0x0000, 0x1000, CRC(86027944) SHA1(C47FC62522A3BAE0D49F4B68C218F73C43ED19B5) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "alpaca.5e", 0x0000, 0x1000, CRC(3E879F02) SHA1(0B084DD449E57476231E59F15F85A209A919959C) ) + ROM_LOAD( "alpaca8.5f", 0x1000, 0x1000, CRC(856E53AE) SHA1(95460212107B3371600569DBD4DA482EC631ABDB) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2FC650BD) SHA1(8D0268DEE78E47C712202B0EC4F1F51109B1F2A5) ) + ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2BC5D339) SHA1(446E234DF94D9EF34C3191877BB33DD775ACFDF5) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( bace ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bace.1", 0x0000, 0x1000, CRC(8b60ff7c) SHA1(c787246f0ae080fc9088631acb923a2df37c14b2) ) + ROM_LOAD( "bace.2", 0x1000, 0x1000, CRC(25d8361a) SHA1(20792c3d4c583dfc0297c6b5db1c14194e053088) ) + ROM_LOAD( "bace.3", 0x2000, 0x1000, CRC(fc38d994) SHA1(319691caf79292f21282006337df3c637c033602) ) + ROM_LOAD( "bace.4", 0x3000, 0x1000, CRC(5853f341) SHA1(0794324ee1bab92baaa6f5bf2cd647ce10614200) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "bace.5e", 0x0000, 0x1000, CRC(6da99c7b) SHA1(dcd488e0117662caf77f453b73330740ae34ca55) ) + ROM_LOAD( "bace.5f", 0x1000, 0x1000, CRC(b81cdc64) SHA1(67f4cde661dbcdcf0192289e31ee80cbd0dc9dc5) ) + + PACMAN_PROMS +ROM_END + +ROM_START( crashh ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "crashh.1", 0x0000, 0x1000, CRC(04353b41) SHA1(28b774fd5b429569f44651cfe4df6a9929310190) ) + ROM_LOAD( "crashh.2", 0x1000, 0x1000, CRC(e03205c0) SHA1(8c5ae42a9e2d551f9184e952723a750abc3dfb52) ) + ROM_LOAD( "crashh.3", 0x2000, 0x1000, CRC(b0fa8e46) SHA1(2caf94d1a14d96ddc401375b54bf2b1edb13c68b) ) + ROM_LOAD( "crashh.4", 0x3000, 0x1000, CRC(bfa4d2fe) SHA1(76ef449173c01f8943049330dba9c6a54a5e760a) ) + ROM_LOAD( "crashh.5", 0x8000, 0x1000, CRC(12f2f224) SHA1(95528aaef908173e1374a7c6ed1a9cda4b685a20) ) + ROM_LOAD( "pacman.6j", 0x9000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "crashh.5e", 0x0000, 0x1000, CRC(0a25969b) SHA1(2cd54477a5cc15f91ae2cba3c4270002ac15967e) ) + ROM_LOAD( "crashh.5f", 0x1000, 0x1000, CRC(447ea79c) SHA1(886d0113608616b01e4395485c6106586adcb65a) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( dderby ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dderby.6e", 0x0000, 0x1000, CRC(6f373bd4) SHA1(e2c4f9def801c5664cf2b9684a36f762e97d12d6) ) + ROM_LOAD( "dderby.6f", 0x1000, 0x1000, CRC(2fbf16bf) SHA1(9f3714ecc40707cfa4ff1942d5fe87a03888f548) ) + ROM_LOAD( "dderby.6h", 0x2000, 0x1000, CRC(6e16cd16) SHA1(7f13a2b181e4a62d7d71294cac8fe09fd9ac64a9) ) + ROM_LOAD( "dderby.6j", 0x3000, 0x1000, CRC(f7e09874) SHA1(7080aaa47e0bc893cd8bd038de7af769ef4eddf6) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "dderby.5e", 0x0000, 0x1000, CRC(7e2c0a53) SHA1(c3c62b32927ac3c5948faeff28d4c2148fe18d0b) ) + ROM_LOAD( "dderby.5f", 0x1000, 0x1000, CRC(cb2dd072) SHA1(e5813cc4247b9799e9513ff1a624fabc066582e3) ) + + PACMAN_PROMS +ROM_END + +ROM_START( eyes ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "eyes.7d", 0x0000, 0x1000, CRC(3b09ac89) SHA1(a8f1c918da74495bb73172f39364dada38ae4713) ) + ROM_LOAD( "eyes.7f", 0x1000, 0x1000, CRC(97096855) SHA1(10d3b164bbbe5eee86e881a1434f0c114ee8adff) ) + ROM_LOAD( "eyes.7h", 0x2000, 0x1000, CRC(731e294e) SHA1(96c0308c146dbd85e244c4530af9ae8df78c86de) ) + ROM_LOAD( "eyes.7j", 0x3000, 0x1000, CRC(22f7a719) SHA1(eb000b606ecedd52bebbb232e661fb1ef205f8b0) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "eyes.5d", 0x0000, 0x1000, CRC(d6af0030) SHA1(652b779533e3f00e81cc102b78d367d503b06f33) ) + ROM_LOAD( "eyes.5e", 0x1000, 0x1000, CRC(a42b5201) SHA1(2e5cede3b6039c7bd5230de27d02aaa3f35a7b64) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "82s129.4a", 0x0020, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) ) + + PACMAN_SOUND_PROMS +ROM_END + +/* E204 - Rockola presents and copyright notice are all removed. Where it should say "EYES" on title screen, + it has some corrupt gfx instead. The rest is fine. */ +ROM_START( eyesb ) /* E204 */ + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "eyesb.7d", 0x0000, 0x1000, CRC(7e7dd02d) SHA1(a0026fec57c089dd500efa107b0e884ed9edd4d6) ) + ROM_LOAD( "eyesb.7f", 0x1000, 0x1000, CRC(d6d73eb5) SHA1(b0c51afc09dd62bdda70710d57ae5b90a5e981ac) ) + ROM_LOAD( "eyesb.7h", 0x2000, 0x1000, CRC(951ad5dd) SHA1(9aed1044256070ae6555d561856d0bea454f97a8) ) + ROM_LOAD( "eyesb.7j", 0x3000, 0x1000, CRC(acc9cd8b) SHA1(d7fcf1b4b3466ee2187f82080634346a5427385e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "eyes.5d", 0x0000, 0x1000, CRC(d6af0030) SHA1(652b779533e3f00e81cc102b78d367d503b06f33) ) + ROM_LOAD( "eyes.5e", 0x1000, 0x1000, CRC(a42b5201) SHA1(2e5cede3b6039c7bd5230de27d02aaa3f35a7b64) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "82s129.4a", 0x0020, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( kangaroh ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "kangaroh.1", 0x0000, 0x1000, CRC(bcdd9dff) SHA1(0243d9aaeaa82afb04d40eee192fdd65197fb87e) ) + ROM_LOAD( "kangaroh.2", 0x1000, 0x1000, CRC(1a381ee4) SHA1(04c6ceb5baa9f94cfd7235a89adf0bc0dbc8b4d1) ) + ROM_LOAD( "kangaroh.3", 0x2000, 0x1000, CRC(d4018655) SHA1(fb1720045c7c7ab58af894a5d2b86d289a6cd32d) ) + ROM_LOAD( "kangaroh.4", 0x3000, 0x1000, CRC(6c3f60eb) SHA1(51fc5df0ea3effdff765ea20d69f9f14575794cf) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "kangaroh.5e", 0x0000, 0x1000, CRC(c2afaa18) SHA1(138321b5efca381fb6be053aa76b37fdc7ad6afb) ) + ROM_LOAD( "kangaroh.5f", 0x1000, 0x1000, CRC(dd792694) SHA1(ded7dd8e5d184ec09d25aa3429c29e9a4ead6e92) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( ladybugh ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) ) + ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) ) + ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) ) + ROM_LOAD( "ladybugh.4", 0x3000, 0x1000, CRC(4ac90450) SHA1(7777777777777777777777777777777777777777) ) /* unavailable */ + ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) ) + ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) ) + ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( lazybug ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) ) + ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) ) + ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) ) + ROM_LOAD( "lazybug.4", 0x3000, 0x1000, CRC(22a4e136) SHA1(e41e4d3cc0b3ca29ae8cb9591bf36e009c76f2b2) ) + ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) ) + ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) ) + ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( lazybug1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) ) + ROM_LOAD( "lazyalt.2", 0x1000, 0x1000, CRC(3df8767b) SHA1(67ee2c2357a9a6e1f4d6ab95427d0c44dc3ebc1f) ) + ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) ) + ROM_LOAD( "lazybug.4", 0x3000, 0x1000, CRC(22a4e136) SHA1(e41e4d3cc0b3ca29ae8cb9591bf36e009c76f2b2) ) + ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) ) + ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) ) + ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mtturbo ) + ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for opcode copy to hack protection */ + ROM_LOAD( "maketrax.6e", 0x0000, 0x1000, CRC(0150fb4a) SHA1(ba41582d5432670654479b4bf6d938d2168858af) ) + ROM_LOAD( "maketrax.6f", 0x1000, 0x1000, CRC(77531691) SHA1(68a450bcc8d832368d0f1cb2815cb5c03451796e) ) + ROM_LOAD( "mtturbo.6h", 0x2000, 0x1000, CRC(77e0e153) SHA1(8be5cf8c0337e05eaf4635f19580d6c1477e6bcc) ) + ROM_LOAD( "maketrax.6j", 0x3000, 0x1000, CRC(0b4b5e0a) SHA1(621aece612df612065f776696956ef3671421fac) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "maketrax.5e", 0x0000, 0x1000, CRC(91bad2da) SHA1(096197d0cb6d55bf72b5be045224f4bd6a9cfa1b) ) + ROM_LOAD( "maketrax.5f", 0x1000, 0x1000, CRC(aea79f55) SHA1(279021e6771dfa5bd0b7c557aae44434286d91b7) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "2s140.4a", 0x0020, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( pachello ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pachello.6e", 0x0000, 0x1000, CRC(A8227949) SHA1(793B7BA579C7E4771094D281C2589435A1BF2FDA) ) + ROM_LOAD( "pachello.6f", 0x1000, 0x1000, CRC(D5690D97) SHA1(51A4D63265F1D848359CA8C78BA111D72A3BC2CF) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmatri ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacmatri.6e", 0x0000, 0x1000, CRC(29B0497E) SHA1(E45B225AABDF2F0549718885C02AE8A8EEF3BAEB) ) + ROM_LOAD( "pacmatri.6f", 0x1000, 0x1000, CRC(EAA7B145) SHA1(4C0ABF30F2C962B6EB2BDDA833236B9D58544A89) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pactest ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pactest.1", 0x0000, 0x1000, CRC(c0423406) SHA1(51630780dd7fa32a827d81a060906130fbe57345) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ptest.5e", 0x0000, 0x1000, CRC(a650e73e) SHA1(e51df8e976259ea8b431dd13b6bc4728ba213d19) ) + ROM_LOAD( "ptest.5f", 0x1000, 0x1000, CRC(51aa0303) SHA1(59fdfc5393e883d65bf00f8b3bbfb7173440dec3) ) + + PACMAN_PROMS +ROM_END + +ROM_START( piranha ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "pir1.bin", 0x0000, 0x0800, CRC(69a3e6ea) SHA1(c54e5d039a03d3cbee7a5e21bf1e23f4fd913ea6) ) + ROM_LOAD( "pir5.bin", 0x0800, 0x0800, CRC(245e753f) SHA1(4c1183b8449e4e7995f81079953fe0e251251c60) ) + ROM_LOAD( "pir2.bin", 0x1000, 0x0800, CRC(62cb6954) SHA1(0e01c8463b130ab5518ce23368ad028c86cd0a32) ) + ROM_LOAD( "pir6.bin", 0x1800, 0x0800, CRC(cb0700bc) SHA1(1f5e91791ea25eb58d26b9627e98e0b6c1d9becf) ) + ROM_LOAD( "pir3.bin", 0x2000, 0x0800, CRC(843fbfe5) SHA1(6671a3c55ef70447f2a127438e0c39857f8bf6b1) ) + ROM_LOAD( "pir7.bin", 0x2800, 0x0800, CRC(73084d5e) SHA1(cb04a4c9dbf1672ddf478d2fe92b0ffd0159bb9e) ) + ROM_LOAD( "pir4.bin", 0x3000, 0x0800, CRC(4cdf6704) SHA1(97af8bbd08896dffd73e359ec46843dd673c4c9c) ) + ROM_LOAD( "pir8.bin", 0x3800, 0x0800, CRC(b86fedb3) SHA1(f5eaf7ccc1ecaa2417bcc077561efca8e7cb691a) ) + + ROM_REGION( 0x2000, "gfx1" , 0) + ROM_LOAD( "pir9.bin", 0x0000, 0x0800, CRC(0f19eb28) SHA1(0335189a06be01b97ca376d3682ed54df9b121e8) ) + ROM_LOAD( "pir11.bin", 0x0800, 0x0800, CRC(5f8bdabe) SHA1(eb6a0515a381a885b087d165aaefb0277a223715) ) + ROM_LOAD( "pir10.bin", 0x1000, 0x0800, CRC(d19399fb) SHA1(c0a75a08f77adb9d0010511c4b6ea99324c33c50) ) + ROM_LOAD( "pir12.bin", 0x1800, 0x0800, CRC(cfb4403d) SHA1(1642a4917be0621ebf5f705c7f68a2b75d1c78d3) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "piranha.4a", 0x0020, 0x0100, CRC(08c9447b) SHA1(5e4fbfcc7179fc4b1436af9bb709ffc381479315) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( piranhah ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pr1.cpu", 0x0000, 0x1000, CRC(bc5ad024) SHA1(a3ed781b514a1068b24a7146a28f0a2adfaa2719) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pr3.cpu", 0x2000, 0x1000, CRC(473c379d) SHA1(6e7985367c3e544b4cb98ba8291908df88eafe7f) ) + ROM_LOAD( "pr4.cpu", 0x3000, 0x1000, CRC(63fbf895) SHA1(d328bf3b8f307fb774614834edec211117148e64) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pr5.cpu", 0x0000, 0x0800, CRC(3fc4030c) SHA1(5e45f0c19cf96daa17afd2fa1c628d7ac7f4a79c) ) + ROM_LOAD( "pr7.cpu", 0x0800, 0x0800, CRC(30b9a010) SHA1(b0ba8b6cd430feb32d11d092e1959b9f5d240f1b) ) + ROM_LOAD( "pr6.cpu", 0x1000, 0x0800, CRC(f3e9c9d5) SHA1(709a75b2457f21f0f1a3d9e7f4c8579468ee5cad) ) + ROM_LOAD( "pr8.cpu", 0x1800, 0x0800, CRC(133d720d) SHA1(8af75ed9e115a996379acedd44d0c09332ec5a03) ) + + PACMAN_PROMS +ROM_END + +ROM_START( piranhao ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "p1.bin", 0x0000, 0x0800, CRC(c6ce1bfc) SHA1(da145d67331cee292654a185fb09e773dd9d40cd) ) + ROM_LOAD( "p5.bin", 0x0800, 0x0800, CRC(a2655a33) SHA1(2253dcf5c8cbe278118aa1569cf456b13d8cf029) ) + ROM_LOAD( "pir2.bin", 0x1000, 0x0800, CRC(62cb6954) SHA1(0e01c8463b130ab5518ce23368ad028c86cd0a32) ) + ROM_LOAD( "pir6.bin", 0x1800, 0x0800, CRC(cb0700bc) SHA1(1f5e91791ea25eb58d26b9627e98e0b6c1d9becf) ) + ROM_LOAD( "pir3.bin", 0x2000, 0x0800, CRC(843fbfe5) SHA1(6671a3c55ef70447f2a127438e0c39857f8bf6b1) ) + ROM_LOAD( "pir7.bin", 0x2800, 0x0800, CRC(73084d5e) SHA1(cb04a4c9dbf1672ddf478d2fe92b0ffd0159bb9e) ) + ROM_LOAD( "p4.bin", 0x3000, 0x0800, CRC(9363a4d1) SHA1(4cb4a86d92a1f9bf233cac01aa266485a8bb7a34) ) + ROM_LOAD( "p8.bin", 0x3800, 0x0800, CRC(2769979c) SHA1(581592da26199b325de51791ddab66b474ab0413) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "p9.bin", 0x0000, 0x0800, CRC(94eb7563) SHA1(c99741ce1aebdfb89628fbfaecf5ae6b2719a0ca) ) + ROM_LOAD( "p11.bin", 0x0800, 0x0800, CRC(a3606973) SHA1(72297e1a33102c6a48b4c65f2a0b9bfc75a2df36) ) + ROM_LOAD( "p10.bin", 0x1000, 0x0800, CRC(84165a2c) SHA1(95b24620fbf9bd0ec4dd2aeeb6d9305bd475dce2) ) + ROM_LOAD( "p12.bin", 0x1800, 0x0800, CRC(2699ba9e) SHA1(b91ff586defe65b200bea5ade7374c2c7579cd80) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "piranha.4a", 0x0020, 0x0100, CRC(08c9447b) SHA1(5e4fbfcc7179fc4b1436af9bb709ffc381479315) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( ppong ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ppong.1", 0x0000, 0x1000, CRC(abf90af3) SHA1(785059f68b69d031e8017fc5c6f44d22208ba1d1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ppong.5e", 0x0000, 0x1000, CRC(57fe0ace) SHA1(87b9e980c8c30b73ebf7c2750dd40806754bed51) ) + ROM_LOAD( "ppong.5f", 0x1000, 0x1000, CRC(8bbd8de5) SHA1(feec6c9d413c6767edf2a521da439b21ccdf3d9a) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ppong2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ppong2.1", 0x0000, 0x1000, CRC(b0d6d512) SHA1(1d1ccc0cf0436680fc3b2bbd1a77292506b7514b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ppong.5e", 0x0000, 0x1000, CRC(57fe0ace) SHA1(87b9e980c8c30b73ebf7c2750dd40806754bed51) ) + ROM_LOAD( "ppong.5f", 0x1000, 0x1000, CRC(8bbd8de5) SHA1(feec6c9d413c6767edf2a521da439b21ccdf3d9a) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "ppong2.7f", 0x0000, 0x0020, CRC(e3a96194) SHA1(6eb54a64e9d1df6052fecb754852bd44dd9ed69e) ) + ROM_LOAD( "ppong2.4a", 0x0020, 0x0100, CRC(dbd17cc2) SHA1(072e20975ae0453df57cfc54c344238aa311c373) ) + + ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ + ROM_LOAD( "ppong2.1m", 0x0000, 0x0100, CRC(0d968558) SHA1(b376885ac8452b6cbf9ced81b1080bfd570d9b91) ) + ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( rainboh ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "rainboh.1", 0x0000, 0x1000, CRC(676b742e) SHA1(0ec4bd459533f3f66782d0b978a0972c66b69ed4) ) + ROM_LOAD( "rainboh.2", 0x1000, 0x1000, CRC(3c9f1ada) SHA1(8951170cf75e5397136193ed69d920d2b9744f29) ) + ROM_LOAD( "rainboh.3", 0x2000, 0x1000, CRC(fbad5604) SHA1(4cdc2a87712471ed2bba7dc215b584e9e2c37c39) ) + ROM_LOAD( "rainboh.4", 0x3000, 0x1000, CRC(1af32a9b) SHA1(9830816c11342b40c056d555d6208ef1c6537557) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "rainboh.5e", 0x0000, 0x1000, CRC(c3292da2) SHA1(11d2b8cb36dfa86c08f6072e603f18074d56c2c2) ) + ROM_LOAD( "rainboh.5f", 0x1000, 0x1000, CRC(2b7455d8) SHA1(9decb7671a97e7fd248cc05798119d82b7830097) ) + + PACMAN_PROMS +ROM_END + +ROM_START( seq1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "seq1.6e", 0x0000, 0x1000, CRC(7063B724) SHA1(3A291D26BDFBF5C895D5F6AA70FC164299E8D9F1) ) + ROM_LOAD( "seq1.6f", 0x1000, 0x1000, CRC(95DB4723) SHA1(A0C47EA05E14CEBC6493705CD2D46D1E3D12B23A) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( seq2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "seq2.6e", 0x0000, 0x1000, CRC(0EC135BE) SHA1(F2BA6F8EE4256420E6149853A34A2B11A3545EEA) ) + ROM_LOAD( "seq2.6f", 0x1000, 0x1000, CRC(1B95F321) SHA1(F9D76544CCE43CE779A1BF59A01AC00297BAA82C) ) + ROM_LOAD( "seq2.6h", 0x2000, 0x1000, CRC(5892650A) SHA1(7C63F42EA3F75FAA15C6F5864569CB6A8F8C7C79) ) + ROM_LOAD( "seq2.6j", 0x3000, 0x1000, CRC(8612016A) SHA1(4E144069F194D240E503B24DF9B10BCDE68B2C6C) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) ) + + PACMAN_PROMS +ROM_END + +/* note: the original rom was only 3154 bytes with a CRC of 0E67D062 - the one here is padded out to normal size */ +ROM_START( tst_pacm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "test.6e", 0x0000, 0x1000, CRC(fb645998) SHA1(ff57155533e1ec0fdc5c407dce8d270e86d33882) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( wavybug ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) ) + ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) ) + ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) ) + ROM_LOAD( "wavybug.4", 0x3000, 0x1000, CRC(830c47fc) SHA1(bc802de8c89417c4df91c26c2f365e471ea5efaf) ) + ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) ) + ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) ) + ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( zap ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zap.1", 0x0000, 0x1000, CRC(74e6e3a0) SHA1(3d953bfd57aa56f8fe61d1abd01db84d027df3bb) ) + ROM_LOAD( "zap.2", 0x1000, 0x1000, CRC(40e1884b) SHA1(ce303b6a6c9e765c256997c19f64e9ebfd8f435e) ) + ROM_LOAD( "blank004k.3", 0x2000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) ) + ROM_LOAD( "zap.4", 0x3000, 0x1000, CRC(17c357e6) SHA1(6486f58592b784d53a5c14f59b25c8cd513b2a0d) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "zap.5e", 0x0000, 0x1000, CRC(a0578404) SHA1(329f3e869eecff96191642e54dbfc7b6b268f026) ) + ROM_LOAD( "zap.5f", 0x1000, 0x1000, CRC(039b5c78) SHA1(36a96c996f20d1b5fb4f674393a03d10cdf4a091) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) ) + + PACMAN_SOUND_PROMS +ROM_END + +/************************************* + * + * Game drivers + * + *************************************/ + +/* Official MAME */ + +/* rom parent machine inp init */ +GAME( 1981, abscam, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Abscam", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, eyes, 0, pacman, eyes, pacman_state, eyes, ROT90, "Digitrex Techstar (Rock-ola license)", "Eyes (Digitrex Techstar)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, piranha, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Piranha", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, piranhah, puckman, pacman, mspacman, driver_device, 0, ROT90, "hack", "Piranha (hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, piranhao, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Piranha (older)", MACHINE_SUPPORTS_SAVE ) + + +/* Dave Widel's Games - http://www.widel.com */ + +GAME( 2003, aa, 0, widel, mspacpls, driver_device, 0, ROT90, "David Widel", "Alien Armada", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, bace, 0, widel, mspacpls, driver_device, 0, ROT90, "David Widel", "Balloon Ace", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, dderby, 0, widel, mspacpls, driver_device, 0, ROT90, "David Widel", "Death Derby", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kangaroh, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Kagaroo (Qbertish) (incomplete)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ladybugh, lazybug, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Ladybug on Pacman Hardware", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, lazybug, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Lazy Bug", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, lazybug1, lazybug, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Lazy Bug (Slower)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, pactest, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Test - Pacman board test", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ppong, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Pong (Pacman Hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ppong2, ppong, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Pong (Pacman Hardware) v2", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, rainboh, 0, pacman, mspacpls, driver_device, 0, ROT90, "David Widel", "Rainbow (Incomplete)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, wavybug, lazybug, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Wavy Bug", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, zap, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Space Zap Tribute", MACHINE_SUPPORTS_SAVE ) + +/* Jerronimo's Progs - www.umlautllama.com */ + +GAME( 2006, absurd, 0, pacman, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Absurd!/QuadBlok (non-working alpha ver 3)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) +GAME( 2003, alpaca7, alpaca8, pacman, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Alpaca v0.7 (Pacman Hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, alpaca8, 0, pacman, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Alpaca v0.8 (Pacman Hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pachello, 0, pachack, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Hello, World!", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pacmatri, 0, pachack, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Matrix Effect", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, seq1, 0, pachack, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "16 Step Simple Sequencer", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, seq2, seq1, pachack, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Sequencer and Music Player", MACHINE_SUPPORTS_SAVE ) + +/* Other Misc Hacks */ + +GAME( 2002, crashh, 0, woodpek, mspacpls, driver_device, 0, ROT90, "hack", "Crash", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mtturbo, 0, pacmanp, maketrax, pacman_state, maketrax, ROT270,"Tim Arcadecollecting", "Make Trax (Turbo Hack)", MACHINE_SUPPORTS_SAVE ) // http://www.arcadecollecting.com/hacks/maketrax +GAME( 1999, tst_pacm, 0, pacman, mspacpls, driver_device, 0, ROT90, "David Caldwell", "Test - Pacman Hardware", MACHINE_SUPPORTS_SAVE ) // http://www.porkrind.org/arcade/ + +/* Other misc unemulated dumps */ + +GAME( 1982, eyesb, eyes, pacman, eyes, pacman_state, eyes, ROT90, "bootleg", "Eyes (unknown bootleg)", MACHINE_SUPPORTS_SAVE ) + + +/*************************************************************************************************************************/ diff --git a/docs/release/src/hbmame/drivers/mappy.cpp b/docs/release/src/hbmame/drivers/mappy.cpp new file mode 100644 index 00000000000..ab2ad06e900 --- /dev/null +++ b/docs/release/src/hbmame/drivers/mappy.cpp @@ -0,0 +1,202 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/mappy.cpp" + +ROM_START( crackhea ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "mpx_3.1d", 0xa000, 0x2000, CRC(52e6c708) SHA1(b9722941438e93325e84691ada4e95620bec73b2) ) + ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) ) + ROM_LOAD( "mpx_1.1b", 0xe000, 0x2000, CRC(203766d4) SHA1(1dbc4f42d4c16a08240a221bec27dcc3a8dd7461) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) ) + + ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "crackh3b.32", 0x0000, 0x1000, CRC(912ffa7e) SHA1(e2fc4992ef7214e62acdcda6605a1e27b2739cbf) ) + + ROM_REGION( 0x4000, "gfx2", 0 ) + ROM_LOAD( "crackh3m.64", 0x0000, 0x2000, CRC(a263d078) SHA1(344fae10fab0f9646f5a2b39cac09faa9745ec9b) ) + ROM_LOAD( "crackh3n.64", 0x2000, 0x2000, CRC(3758ceb2) SHA1(152ba5a14514c0c160886d5c9a1296dea7a298aa) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) ) /* palette */ + ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) ) /* characters */ + ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) ) /* sprites */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) ) +ROM_END + +ROM_START( housepty ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "housep1d.64", 0xa000, 0x2000, CRC(6f778a5d) SHA1(afe1a317f8f355ad2e83d13835c2e28137d5a5e5) ) + ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) ) + ROM_LOAD( "housep1b.64", 0xe000, 0x2000, CRC(41a0c5b4) SHA1(74f74d679b42d51b8c850daaadc9df8889403712) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) ) + + ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "housep3b.32", 0x0000, 0x1000, CRC(8d565a7e) SHA1(b2730de5ea2d19ba1e2851c27a73c6b03225a479) ) + + ROM_REGION( 0x4000, "gfx2", 0 ) + ROM_LOAD( "housep3m.64", 0x0000, 0x2000, CRC(23a3c108) SHA1(266e7ca7db5f7d481f99fd295b6bdb2da3b34b93) ) + ROM_LOAD( "housep3n.64", 0x2000, 0x2000, CRC(c6822529) SHA1(1d8658a0e014d67b5b84f33cb19a9bdd8a88f623) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) ) /* palette */ + ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) ) /* characters */ + ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) ) /* sprites */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) ) +ROM_END + +ROM_START( marpy ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code for the first CPU */ + ROM_LOAD( "mpx_3.1d", 0xa000, 0x2000, CRC(52e6c708) SHA1(b9722941438e93325e84691ada4e95620bec73b2) ) + ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) ) + ROM_LOAD( "mpx_1.1b", 0xe000, 0x2000, CRC(203766d4) SHA1(1dbc4f42d4c16a08240a221bec27dcc3a8dd7461) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) ) + + ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "marpy3b.32", 0x0000, 0x1000, CRC(2aa99047) SHA1(1ad2488066e433f2833b179b16d6500dd68ebecd) ) + + ROM_REGION( 0x4000, "gfx2", 0 ) + ROM_LOAD( "marpy3m.64", 0x0000, 0x2000, CRC(ce61b84d) SHA1(33ff0ca22f347aceda084b4b8c3444a18b3d27e6) ) + ROM_LOAD( "marpy3n.64", 0x2000, 0x2000, CRC(5d0572a7) SHA1(9afecab321dd4558efe27b00dc95a5e22154eb68) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) ) /* palette */ + ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) ) /* characters */ + ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) ) /* sprites */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) ) +ROM_END + +ROM_START( superpc1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "spc1-2.1c", 0xc000, 0x2000, CRC(4bb33d9c) SHA1(dd87f71b4db090a32a6b791079eedd17580cc741) ) + ROM_LOAD( "superpc1.1b", 0xe000, 0x2000, CRC(cec50857) SHA1(d8470064bf8a334accedcb767f5da05d5dce00a1) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "superpc1.3c", 0x0000, 0x1000, CRC(1c72ed9e) SHA1(31833bd244ff0b61419566eae4f53bdd76a5a0e8) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "superpc1.3f", 0x0000, 0x2000, CRC(89f07757) SHA1(642ca413cf27496322e4840998cdb711e3c682e0) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) ) /* palette */ + ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) ) /* chars */ + ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) ) /* sprites */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "superpc1.3m", 0x0000, 0x0100, CRC(e35238c7) SHA1(c55bd51a44b4c9899ca65f47ede952ca2714ce8e) ) +ROM_END + +ROM_START( superpcn ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) ) + ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "sp1-6.3c", 0x0000, 0x1000, CRC(91c5935c) SHA1(10579edabc26a0910253fab7d41b4c19ecdaaa09) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "spv-2.3f", 0x0000, 0x2000, CRC(670a42f2) SHA1(9171922df07e31fd1dc415766f7d2cc50a9d10dc) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) ) /* palette */ + ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) ) /* chars */ + ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) ) /* sprites */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) ) +ROM_END + +ROM_START( superpcp ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) ) + ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "spv-1.3c", 0x0000, 0x1000, CRC(78337e74) SHA1(11222adb55e6bce508896ccb1f6dbab0c1d44e5b) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "spcp-2.3f", 0x0000, 0x2000, CRC(0d52ef4d) SHA1(9db8d36d80db8622dd129e8db01ef507f0e5e926) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) ) /* palette */ + ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) ) /* chars */ + ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) ) /* sprites */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) ) +ROM_END + +ROM_START( superpcs ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "spc1-2.1c", 0xc000, 0x2000, CRC(4bb33d9c) SHA1(dd87f71b4db090a32a6b791079eedd17580cc741) ) + ROM_LOAD( "superpcs.1b", 0xe000, 0x2000, CRC(8df321c2) SHA1(f8e0a004042be3003534b226a80ab7104f684e26) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "superpcs.3c", 0x0000, 0x1000, CRC(3a4f438d) SHA1(ca333d02c94380d4fc4b56c8cc5f7269157ac371) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "superpcs.3f", 0x0000, 0x2000, CRC(d477484e) SHA1(edf724a3a53c0bfd18aaa55e452b47c8b54b223e) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "superpcs.4c", 0x0000, 0x0020, CRC(5508bfda) SHA1(29aaf77e2a1dda241da31ad83e43186b9ec491f1) ) /* palette */ + ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) ) /* chars */ + ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) ) /* sprites */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "superpcs.3m", 0x0000, 0x0100, CRC(06acd480) SHA1(4963bd69e8718cf3fd08f06a5f03fe153c380af4) ) +ROM_END + +ROM_START( vectrsup ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) ) + ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */ + ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "vecsup-1.3c", 0x0000, 0x1000, CRC(618db633) SHA1(3930a12c0d76d55b3ff40cc9deca20b01c6c9f9b) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "vecsup-2.3f", 0x0000, 0x2000, CRC(62c09c6c) SHA1(f1c65b594c293b6a4eb459eac80fe28929c64eb6) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) ) /* palette */ + ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) ) /* chars */ + ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) ) /* sprites */ + + ROM_REGION( 0x0100, "namco", 0 ) /* sound prom */ + ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) ) +ROM_END + +GAME( 1998, crackhea, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Cary Barnhard", "Crackhead", MACHINE_SUPPORTS_SAVE ) // transparency error +GAME( 1998, housepty, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Jerky", "House Party", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, marpy, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Mark", "Marpy", MACHINE_SUPPORTS_SAVE ) // transparency error +GAME( 2011, superpc1, superpac, superpac, superpac, mappy_state, superpac, ROT90, "Paul Smith", "Super Pac-Man (Super Locksmith sound and gfx hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, superpcn, superpac, superpac, superpac, mappy_state, superpac, ROT90, "Namco", "Super Pac-Man (Namco)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, superpcp, superpac, superpac, superpac, mappy_state, superpac, ROT90, "Blue Justice", "Super Pac-Man Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, superpcs, superpac, superpac, superpac, mappy_state, superpac, ROT90, "Paul Smith", "Super Pac-Man (always small)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vectrsup, superpac, superpac, superpac, mappy_state, superpac, ROT90, "T-Bone", "Super Pac-Man (Vector sim)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/mario.cpp b/docs/release/src/hbmame/drivers/mario.cpp new file mode 100644 index 00000000000..48ea2e4a5b0 --- /dev/null +++ b/docs/release/src/hbmame/drivers/mario.cpp @@ -0,0 +1,38 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/mario.cpp" + +ROM_START( cenmario ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "tma1-c.7f_e-1", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) ) +// ROM_LOAD( "tma1-c.7e_e-b", 0x2000, 0x2000, CRC(b09ab857) SHA1(35b91cd1c4c3dd2d543a1ea8ff7b951715727792) ) + ROM_LOAD( "mario.7e", 0x2000, 0x2000, CRC(116b3856) SHA1(e372f846d0e5a2b9b47ebd0330293fcc8a12363f) ) + ROM_LOAD( "tma1-c.7d_e-1", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) ) +// ROM_LOAD( "tma1-c.7c_e-3", 0xf000, 0x1000, CRC(0d31bd1c) SHA1(a2e238470ba2ea3c81225fec687f61f047c68c59) ) + ROM_LOAD( "mario.7c", 0xf000, 0x1000, CRC(4a63d96b) SHA1(b09060b2c84ab77cc540a27b8f932cb60ec8d442) ) + + ROM_REGION( 0x1800, "audiocpu", 0 ) /* sound */ + /* internal rom */ + ROM_FILL( 0x0000, 0x0800, 0x00) + /* first half banked */ + ROM_LOAD( "tma1c-a.6k", 0x1000, 0x0800, CRC(06b9ff85) SHA1(111a29bcb9cda0d935675fa26eca6b099a88427f) ) + /* second half always read */ + ROM_CONTINUE( 0x0800, 0x0800) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "cenmario.3f", 0x0000, 0x1000, CRC(27bcd321) SHA1(d8f1fc65dc17af2f80d67f3e2f3edabc79eba1b3) ) + ROM_LOAD( "cenmario.3j", 0x1000, 0x1000, CRC(de1c6962) SHA1(2779715d62981baf2ea3a3f501128deb0f5559ab) ) + + ROM_REGION( 0x6000, "gfx2", 0 ) + ROM_LOAD( "cenmario.7m", 0x0000, 0x1000, CRC(41c78d70) SHA1(f5ad2b84439a9c2e7aed0a38a507bb714ad6eb3a) ) + ROM_LOAD( "cenmario.7n", 0x1000, 0x1000, CRC(659341a4) SHA1(77207279ebe9c5e33f8bfa4cdbbc7a04d0198c84) ) + ROM_LOAD( "cenmario.7p", 0x2000, 0x1000, CRC(b9e32b12) SHA1(c8c8491c3724dc10f91100299347753bdc16a091) ) + ROM_LOAD( "cenmario.7s", 0x3000, 0x1000, CRC(a5cc7370) SHA1(ac81cd6193207670ffbfdc4b2e9c15805c0eecee) ) + ROM_LOAD( "cenmario.7t", 0x4000, 0x1000, CRC(e416cbea) SHA1(ffce92c8ce25d5086379ec1245ae11c64b7719f4) ) + ROM_LOAD( "cenmario.7u", 0x5000, 0x1000, CRC(19eef39f) SHA1(41ee5184eeee10d7b502f5a06a3b006242756e57) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "mario.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) ) +ROM_END + +GAME( 2002, cenmario, 0, mario, marioj, driver_device, 0, ROT0, "Hack", "Censored Mario Bros.", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/mcr.cpp b/docs/release/src/hbmame/drivers/mcr.cpp new file mode 100644 index 00000000000..0e5b9f3ba9d --- /dev/null +++ b/docs/release/src/hbmame/drivers/mcr.cpp @@ -0,0 +1,126 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/mcr.cpp" + +ROM_START( handiman ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "scpu_pga.bin", 0x0000, 0x2000, CRC(5151770b) SHA1(26f4d830de7be228528e462dd628f439629a2641) ) + ROM_LOAD( "scpu_pgb.bin", 0x2000, 0x2000, CRC(8ddf8717) SHA1(e0c294afa8ba0b0ba89e3e0fb3ff6d8fc4398e32) ) + ROM_LOAD( "scpu_pgc.bin", 0x4000, 0x2000, CRC(4241e3a0) SHA1(24c1bd2f31e194542571c391c5dccf21354115c2) ) + ROM_LOAD( "scpu_pgd.bin", 0x6000, 0x2000, CRC(035d2fe7) SHA1(1b827ca30a439d2f4cc94fcc0e90ee0cf87e018c) ) + ROM_LOAD( "scpu_pge.bin", 0x8000, 0x2000, CRC(24c185d8) SHA1(45ac7c53f6f4eba5c7bf3fc6559cddd3821eddad) ) + ROM_LOAD( "scpu_pgf.bin", 0xA000, 0x2000, CRC(38c4bbaf) SHA1(a7cd496ce75199b8279ea963520cf70d5f562bb2) ) + + ROM_REGION( 0x10000, "ssio:cpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "ssi_0a.bin", 0x0000, 0x1000, CRC(765e6eba) SHA1(42efeefc8571dfc237c0be3368248f1e56add92e) ) + ROM_LOAD( "ssi_0b.bin", 0x1000, 0x1000, CRC(1b90ccdd) SHA1(0876e5eeaa63bb8cc97f3634a6ddd8a29a9b012f) ) + ROM_LOAD( "ssi_0c.bin", 0x2000, 0x1000, CRC(3a4bc629) SHA1(ce8452a99a313ae7429de471bbea39de08c9fd4b) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "scpu_bgg.bin", 0x00000, 0x2000, CRC(1a9ed2f5) SHA1(b0d85b47873ac8ad475da18b9540d37232cb2b7c) ) + ROM_LOAD( "scpu_bgh.bin", 0x02000, 0x2000, CRC(3220f974) SHA1(a38ea5f1db27f05d9689db838ce7a8de98f34837) ) + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "handi_vg_0.bin", 0x0c000, 0x2000, CRC(e17ec630) SHA1(7929bfeea0e5e47d412619f08ca09a31618b96da) ) + ROM_LOAD( "handi_vg_1.bin", 0x08000, 0x2000, CRC(ee776741) SHA1(02ea99dd02cd469d1425a958202efe28dc202291) ) + ROM_LOAD( "handi_vg_2.bin", 0x04000, 0x2000, CRC(c0b2b28e) SHA1(3d9d2c1b7a136f02e5c5595d52add03892cb0db1) ) + ROM_LOAD( "handi_vg_3.bin", 0x00000, 0x2000, CRC(8fb79ed7) SHA1(70e5f2aecda3d055eaedf2039128e549a94bd2cd) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "5784", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) +ROM_END + +ROM_START( shtron ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "sht_pga.bin", 0x0000, 0x2000, CRC(9AEC754C) SHA1(D17A221CEB8AF59D9087AE63A73026C0BD1D58CB) ) + ROM_LOAD( "sh-pro.01", 0x2000, 0x2000, CRC(b99f6ff8) SHA1(575cdba5bf9965c7765ce913a3376c7ba36b8291) ) + ROM_LOAD( "sht_pgc.bin", 0x4000, 0x2000, CRC(621AD715) SHA1(8CD34D33C86D10142E0503994A0666AC77C08D4B) ) + ROM_LOAD( "sh-pro.03", 0x6000, 0x2000, CRC(0a64afb9) SHA1(3ac6660d2b0166c58ec4fecfe37ce36e545064df) ) + ROM_LOAD( "sh-pro.04", 0x8000, 0x2000, CRC(22fa9175) SHA1(fd8ea76b3a7ffaf48fc11dd3b7c58e548e3e57c5) ) + ROM_LOAD( "sh-pro.05", 0xa000, 0x2000, CRC(1716e2bb) SHA1(771e4c20d63e4e1d99723e6355db67064a278ae5) ) + + ROM_REGION( 0x10000, "ssio:cpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "sht_0a.bin", 0x0000, 0x1000, CRC(9D815BB3) SHA1(51AF797E08DBE3921E11CE70C3D0DA50979336A4) ) + ROM_LOAD( "sht_0b.bin", 0x1000, 0x1000, CRC(9F253412) SHA1(A526E864073A2F9E67E2CBE53AB17FE726336241) ) + ROM_LOAD( "sht_0c.bin", 0x2000, 0x1000, CRC(7783D6C6) SHA1(1FB2117532E7DA28AFDB9837BCB6848165CF8173) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "sh-bg.00", 0x00000, 0x2000, CRC(3e2b333c) SHA1(b4347d0b3d6149e94da4a38684c0fab931e76cc5) ) + ROM_LOAD( "sh-bg.01", 0x02000, 0x2000, CRC(d1d70cc4) SHA1(550e2e8c0bcbf7913b218fe48cd3324622c8d0f4) ) + + ROM_REGION( 0x08000, "gfx2", 0 ) + ROM_LOAD( "sh-fg.00", 0x00000, 0x2000, CRC(33f4554e) SHA1(88dd803158d3c65429b79d2aaf8334130315aa93) ) + ROM_LOAD( "sh-fg.01", 0x02000, 0x2000, CRC(ba1a38b4) SHA1(cee5f0a66e40c779f1bfbb4bfafe5301385e7dae) ) + ROM_LOAD( "sh-fg.02", 0x04000, 0x2000, CRC(6b57f6da) SHA1(71165df59dd5ca037116dc0f46fd4f6aac6dbfd1) ) + ROM_LOAD( "sh-fg.03", 0x06000, 0x2000, CRC(37ea9d07) SHA1(82e006b01ee12390308be530d4b68fc2404b6b91) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "sht82s123.d12",0x0000, 0x0100, CRC(A9CC86BF) SHA1(BBCEC0570AECEB582FF8238A4BC8546A23430081) ) +ROM_END + +ROM_START( stapper ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "tappg0.bin", 0x00000, 0x4000, CRC(127171d1) SHA1(373e9a9d73b71e100c02862662d025f5ead2f94d) ) + ROM_LOAD( "tappg1.bin", 0x04000, 0x4000, CRC(9d6a47f7) SHA1(e493e46fc70a765e54bfdd7ba7ca570e6a5c79d6) ) + ROM_LOAD( "tappg2.bin", 0x08000, 0x4000, CRC(3a1f8778) SHA1(cb46a2248289ced7282b1463f433dcb970c42c1a) ) + ROM_LOAD( "tappg3.bin", 0x0c000, 0x2000, CRC(e8dcdaa4) SHA1(45bf1571a2418c7dc00ccc7061a3e04e65cb6bff) ) + + ROM_REGION( 0x10000, "ssio:cpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "tapsnda7.bin", 0x0000, 0x1000, CRC(0e8bb9d5) SHA1(9e281c340b7702523c86d56317efad9e3688e585) ) + ROM_LOAD( "tapsnda8.bin", 0x1000, 0x1000, CRC(0cf0e29b) SHA1(14334b9d2bfece3fe5bda0cbd53158ead8d27e53) ) + ROM_LOAD( "tapsnda9.bin", 0x2000, 0x1000, CRC(31eb6dc6) SHA1(b38bba5f12516d899e023f99147868e3402fbd7b) ) + ROM_LOAD( "tapsda10.bin", 0x3000, 0x1000, CRC(01a9be6a) SHA1(0011407c1e886071282808c0a561789b1245a789) ) + + ROM_REGION( 0x08000, "gfx1", 0 ) + ROM_LOAD( "s-tapbg1.bin", 0x00000, 0x4000, CRC(1326da21) SHA1(6886cbb83372ee4c53e19325a1552d312ce5de69) ) + ROM_LOAD( "s-tapbg0.bin", 0x04000, 0x4000, CRC(539b93c3) SHA1(6196516940893fd72d0c0f18efa7584a2df44833) ) + + ROM_REGION( 0x20000, "gfx2", 0 ) + ROM_LOAD( "s-tapfg1.bin", 0x00000, 0x4000, CRC(29dd8e85) SHA1(f7f7e8a3aebf075fb9a2508ce438ed3bbfdcddba) ) + ROM_LOAD( "s-tapfg0.bin", 0x04000, 0x4000, CRC(a8ba850f) SHA1(e143dab595e129936a4744266788542422e3c503) ) + ROM_LOAD( "s-tapfg3.bin", 0x08000, 0x4000, CRC(3d9133e4) SHA1(3ca946aee704d59a150a9cd8ea02edf5204022e3) ) + ROM_LOAD( "s-tapfg2.bin", 0x0c000, 0x4000, CRC(9254d87c) SHA1(084f71436c984cb0c42cd0d07ce47ab0959b64e1) ) + ROM_LOAD( "s-tapfg5.bin", 0x10000, 0x4000, CRC(5ec2544f) SHA1(1a919b0a80417c0f0e22bac2ab6932411bd4ad55) ) + ROM_LOAD( "s-tapfg4.bin", 0x14000, 0x4000, CRC(9b970c4b) SHA1(f690708107c4923db5ffe344015388199c7e879a) ) + ROM_LOAD( "s-tapfg7.bin", 0x18000, 0x4000, CRC(a2ef5c06) SHA1(cce74ff117921eb0438524e7f598fd2117044b1c) ) + ROM_LOAD( "s-tapfg6.bin", 0x1c000, 0x4000, CRC(1baca746) SHA1(3c7015e63ab1a3f98485415e212a4b80f648dcae) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "5784", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) +ROM_END + +ROM_START( stapper1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "s1-tappg0.bin",0x00000, 0x4000, CRC(c915f608) SHA1(aad2f1944334a7cdb0483613fdad40caab720259) ) + ROM_LOAD( "tappg1.bin", 0x04000, 0x4000, CRC(9d6a47f7) SHA1(e493e46fc70a765e54bfdd7ba7ca570e6a5c79d6) ) + ROM_LOAD( "tappg2.bin", 0x08000, 0x4000, CRC(3a1f8778) SHA1(cb46a2248289ced7282b1463f433dcb970c42c1a) ) + ROM_LOAD( "s1-tappg3.bin",0x0c000, 0x2000, CRC(dd4c785f) SHA1(6e19e77a0af6073c3955c61cf741b13921ce6bf0) ) + + ROM_REGION( 0x10000, "ssio:cpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "tapsnda7.bin", 0x0000, 0x1000, CRC(0e8bb9d5) SHA1(9e281c340b7702523c86d56317efad9e3688e585) ) + ROM_LOAD( "tapsnda8.bin", 0x1000, 0x1000, CRC(0cf0e29b) SHA1(14334b9d2bfece3fe5bda0cbd53158ead8d27e53) ) + ROM_LOAD( "tapsnda9.bin", 0x2000, 0x1000, CRC(31eb6dc6) SHA1(b38bba5f12516d899e023f99147868e3402fbd7b) ) + ROM_LOAD( "tapsda10.bin", 0x3000, 0x1000, CRC(01a9be6a) SHA1(0011407c1e886071282808c0a561789b1245a789) ) + + ROM_REGION( 0x08000, "gfx1", 0 ) + ROM_LOAD( "s-tapbg1.bin", 0x00000, 0x4000, CRC(1326da21) SHA1(6886cbb83372ee4c53e19325a1552d312ce5de69) ) + ROM_LOAD( "s-tapbg0.bin", 0x04000, 0x4000, CRC(539b93c3) SHA1(6196516940893fd72d0c0f18efa7584a2df44833) ) + + ROM_REGION( 0x20000, "gfx2", 0 ) + ROM_LOAD( "s-tapfg1.bin", 0x00000, 0x4000, CRC(29dd8e85) SHA1(f7f7e8a3aebf075fb9a2508ce438ed3bbfdcddba) ) + ROM_LOAD( "s-tapfg0.bin", 0x04000, 0x4000, CRC(a8ba850f) SHA1(e143dab595e129936a4744266788542422e3c503) ) + ROM_LOAD( "s-tapfg3.bin", 0x08000, 0x4000, CRC(3d9133e4) SHA1(3ca946aee704d59a150a9cd8ea02edf5204022e3) ) + ROM_LOAD( "s-tapfg2.bin", 0x0c000, 0x4000, CRC(9254d87c) SHA1(084f71436c984cb0c42cd0d07ce47ab0959b64e1) ) + ROM_LOAD( "s-tapfg5.bin", 0x10000, 0x4000, CRC(5ec2544f) SHA1(1a919b0a80417c0f0e22bac2ab6932411bd4ad55) ) + ROM_LOAD( "s-tapfg4.bin", 0x14000, 0x4000, CRC(9b970c4b) SHA1(f690708107c4923db5ffe344015388199c7e879a) ) + ROM_LOAD( "s-tapfg7.bin", 0x18000, 0x4000, CRC(a2ef5c06) SHA1(cce74ff117921eb0438524e7f598fd2117044b1c) ) + ROM_LOAD( "s-tapfg6.bin", 0x1c000, 0x4000, CRC(1baca746) SHA1(3c7015e63ab1a3f98485415e212a4b80f648dcae) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "5784", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) +ROM_END + +GAME( 1998, handiman, 0, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Bobby Tribble", "Handi-Man in Cyberworld", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, shtron, 0, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Scott Lawrence", "Satan's Hollow (Tron Hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, stapper, 0, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "DC", "Tapper (Simpsons Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, stapper1, stapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "DC", "Tapper (Simpsons Hack ver.81)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/mcr3.cpp b/docs/release/src/hbmame/drivers/mcr3.cpp new file mode 100644 index 00000000000..fa3d1670d33 --- /dev/null +++ b/docs/release/src/hbmame/drivers/mcr3.cpp @@ -0,0 +1,26 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/mcr3.cpp" + +ROM_START( sargex ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cpu_3b.bin", 0x00000, 0x8000, CRC(da31a58f) SHA1(29b97caf61f8f59042519a6b501cd1d15099dd59) ) + ROM_LOAD( "cpu_5b.bin", 0x08000, 0x8000, CRC(6800e746) SHA1(018c2b622b3654530ebc2c299b3f745777163d4b) ) + ROM_FILL( 0x0e000, 0x2000, 0xff ) /* upper 8k is not mapped on monoboard */ + + ROM_REGION( 0x10000, "tcs:cpu", 0 ) /* 64k for the Turbo Cheap Squeak */ + ROM_LOAD( "tcs_u5.bin", 0x0c000, 0x2000, CRC(a894ef8a) SHA1(7f53927fc185fff8ba1b1747f0d565e089d879e6) ) + ROM_LOAD( "tcs_u4.bin", 0x0e000, 0x2000, CRC(6ca6faf3) SHA1(4647e633dd11f55a65c3acf81adeb3af93624991) ) + + ROM_REGION( 0x04000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "til_15a.bin", 0x00000, 0x2000, CRC(685001b8) SHA1(300abd808efe5b44b022082eebc591c7c255697c) ) + ROM_LOAD( "til_14b.bin", 0x02000, 0x2000, CRC(8449eb45) SHA1(6cc43639998d55fe7ffac7e9b091d35ea169e048) ) + + ROM_REGION( 0x20000, "gfx2", 0 ) + ROM_LOAD( "sargex.8", 0x00000, 0x8000, CRC(9c0a3000) SHA1(e6f7cc05163a6eba9faa5811ed1fcd261ed400d6) ) + ROM_LOAD( "sargex.6", 0x08000, 0x8000, CRC(da7e3dbf) SHA1(20179d03746098d6a7d3d50fbf4d470bef07467f) ) + ROM_LOAD( "sargex.5", 0x10000, 0x8000, CRC(2effe749) SHA1(5c3f2da367b32c1272c51555f7d94d2dee3bcf93) ) + ROM_LOAD( "sargex.4", 0x18000, 0x8000, CRC(66149219) SHA1(2dcd43de7fa674add94b2584e6795460f486a943) ) +ROM_END + +GAME( 2009, sargex, sarge, mono_tcs, sarge, mcr3_state, sarge, ROT0, "Gatinho", "Sarge Exposed", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/mgd2.cpp b/docs/release/src/hbmame/drivers/mgd2.cpp new file mode 100644 index 00000000000..e41570f419a --- /dev/null +++ b/docs/release/src/hbmame/drivers/mgd2.cpp @@ -0,0 +1,1246 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/* These sets were dumped with the Mega Game Doctor 2 + They are reputed to be bad dumps although I have not observed any problems. + + Due to the dumping process, the P roms have the 2 halves swapped around, + and the C roms are split 32-byte-wise. + + Each rom is named thus: nxxx001z.vvv, where: + xxx = the neogeo game number + z = a/b/c/d, indicates the loading order + vvv = 038 (P rom), 378 or 3f8 (S rom), 478 or 4f8 (M rom), 178, 1f8 (V rom, region 1), + 278, 2f8 (V rom, region 2), 538, 638, 53c, 63c (C rom) + + if more than 2 V roms (or 4 C roms) are used, then z increases by a letter. + + These games run the same as the usual MAME ones, except for alpham2 which has extra sound + roms. This produces extra sounds, such as the ticking sound as soon as the game starts. */ + + +ROM_START( 2020bbd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n030001a.038", 0x000001, 0x040000, CRC(efb016a2) SHA1(6bac3f89124e9af5c04e7e5b110e467a4ed85771) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n030001a.378", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) + + NEO_BIOS_AUDIO_128K( "n030001a.4f8", CRC(bf755068) SHA1(7f624a691f7e51481949462141778da3e1eb0b91) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n030001a.1f8", 0x000000, 0x080000, CRC(33e7886e) SHA1(78bd48fea1e2b1595661c8b957fe489c11e50b92) ) + ROM_LOAD( "n030001a.1fc", 0x080000, 0x080000, CRC(e7ca3882) SHA1(40fb282ad0560d5933badd03da927d395d2a70b5) ) + ROM_LOAD( "n030001b.1f8", 0x100000, 0x080000, CRC(3cf9a433) SHA1(3065079247f1f4a44452a9bb84c9a969fbd3773b) ) + ROM_LOAD( "n030001b.1fc", 0x180000, 0x080000, CRC(88b10192) SHA1(ef486cc57a9cba6c4382b9fd8839e3beb57e916d) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n030001a.538", 0x000000, 0x40000, CRC(746bf48a) SHA1(93006169cb4e26bf72372c5354e60f814f39df3a) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n030001a.638", 0x000001, 0x40000, CRC(5c123d9c) SHA1(98ce390641ad11823db5de779e01bf06c2eabb8a) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n030001a.53c", 0x100000, 0x40000, CRC(57bdcec0) SHA1(6a0cfc50386dff079be93a9ee96722ea1b3df9fc) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n030001a.63c", 0x100001, 0x40000, CRC(2f4bb615) SHA1(5cfda589291579edbabfc84894e1b9a8875588f2) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n030001b.538", 0x200000, 0x40000, CRC(0b054a38) SHA1(4a917b0dcbe4b270eadc4b99532d6912b3d3117f) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n030001b.638", 0x200001, 0x40000, CRC(b2a86447) SHA1(d7048c283853cbe52ef6733aed1f9a3bf22d70ec) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( 3countbd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n043001a.038", 0x000001, 0x040000, CRC(10dbe66a) SHA1(b3a50100f0d41f2cc9ad92687aaba52340b6d67d) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n043001a.03c", 0x080001, 0x040000, CRC(6d5bfb61) SHA1(8ba73917d8c29a5400fcc3b58e0cbbd100dd3182) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n043001a.378", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) ) + + NEO_BIOS_AUDIO_128K( "n043001a.4f8", CRC(3377cda3) SHA1(5712cd0717585914120ebf307391e1e3171f5396) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "n043001a.1f8", 0x000000, 0x080000, CRC(2abe6ab0) SHA1(9d717d52889c9af76fc6790a0e97c54eabd3b931) ) + ROM_LOAD( "n043001a.1fc", 0x080000, 0x080000, CRC(d3fa2743) SHA1(9f065d708cad0b98e7b7b4c4e96a2a4f8da76e7e) ) + ROM_LOAD( "n043001b.1f8", 0x100000, 0x080000, CRC(f591b0a1) SHA1(68bcac77543eca84232f1628a32828cc9c4081bb) ) + ROM_LOAD( "n043001b.1fc", 0x180000, 0x080000, CRC(01f3999e) SHA1(4f9ec67e52aabe6a0d2e2210824349e25dd9269d) ) + ROM_LOAD( "n043001c.1f8", 0x200000, 0x080000, CRC(f76aa00e) SHA1(6dbde96b083c34ee77ce512edaa2284061172df5) ) + ROM_LOAD( "n043001c.1fc", 0x280000, 0x080000, CRC(851ce851) SHA1(58d2c904224c50cd9c2b5c5710bb8539b94af604) ) + ROM_LOAD( "n043001d.1f8", 0x300000, 0x080000, CRC(9e2c8366) SHA1(89ababf09a578750fed508475bcfb562bc9116a6) ) + ROM_LOAD( "n043001d.1fc", 0x380000, 0x080000, CRC(b1a0ccb0) SHA1(ccadb887818477906071edf85408bfe5d74e919a) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n043001a.538", 0x000000, 0x40000, CRC(be0d2fe0) SHA1(6c59673b5b7c362596374f45b0fc739e5608d4d2) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n043001a.638", 0x000001, 0x40000, CRC(f56dafa5) SHA1(2b9b1a1ed0a00b1bf3c7e490ac0995836c263dba) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n043001a.53c", 0x100000, 0x40000, CRC(fdb4df65) SHA1(ac59c3aaa5f794a21942015a41c3daa6a94d564c) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n043001a.63c", 0x100001, 0x40000, CRC(f2f68b2a) SHA1(3cd321ee4699be888a4c380a3202a2c4932cc240) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n043001b.538", 0x200000, 0x40000, CRC(714c2c01) SHA1(2a5e612807a6000824cc0ae848774c5e5bdcb572) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n043001b.638", 0x200001, 0x40000, CRC(b15a7f25) SHA1(c5488becc87fe5be5a402f5358cd4c6c7e7e0474) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n043001b.53c", 0x300000, 0x40000, CRC(c57ce8b0) SHA1(241d98fdf2cfb33321387c396b98011744b472c4) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n043001b.63c", 0x300001, 0x40000, CRC(25f00cd3) SHA1(55f51d80efab87ea1ea2bdcb92b97eeab3097b93) ) + ROM_CONTINUE( 0x300003, 0x40000 ) + ROM_LOAD32_BYTE( "n043001c.538", 0x400000, 0x40000, CRC(2e7e59df) SHA1(a0a5afd8259eff487d80a43405b6368bfb8a7862) ) + ROM_CONTINUE( 0x400002, 0x40000 ) + ROM_LOAD32_BYTE( "n043001c.638", 0x400001, 0x40000, CRC(341438e4) SHA1(233703b8ecd61ba173bf6636677f4f8e8972e8f4) ) + ROM_CONTINUE( 0x400003, 0x40000 ) + ROM_LOAD32_BYTE( "n043001c.53c", 0x500000, 0x40000, CRC(a93185ce) SHA1(8b979391f3dba5ee4869bbe8417cbe04f781a3bd) ) + ROM_CONTINUE( 0x500002, 0x40000 ) + ROM_LOAD32_BYTE( "n043001c.63c", 0x500001, 0x40000, CRC(fb8adce8) SHA1(e7a269db6b1f03cab4535b41caaae27e7d98dd4b) ) + ROM_CONTINUE( 0x500003, 0x40000 ) + ROM_LOAD32_BYTE( "n043001d.538", 0x600000, 0x40000, CRC(410938c5) SHA1(230e4c466a38fee7432be7352b99b9331c227532) ) + ROM_CONTINUE( 0x600002, 0x40000 ) + ROM_LOAD32_BYTE( "n043001d.638", 0x600001, 0x40000, CRC(74d995c5) SHA1(fd269844104c598cda96cc8823c0acdbddeaa9ba) ) + ROM_CONTINUE( 0x600003, 0x40000 ) + ROM_LOAD32_BYTE( "n043001d.53c", 0x700000, 0x40000, CRC(50d66909) SHA1(4458e59e7fdddd8c2383d4f0edd025a08eaa1222) ) + ROM_CONTINUE( 0x700002, 0x40000 ) + ROM_LOAD32_BYTE( "n043001d.63c", 0x700001, 0x40000, CRC(521b6df1) SHA1(aa8a072f1abe4a0bb62a917dd2662dfdbaef0faa) ) + ROM_CONTINUE( 0x700003, 0x40000 ) +ROM_END + +ROM_START( alpham2d ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n007001a.038", 0x000001, 0x040000, CRC(4400b34c) SHA1(99cd25c0383e8ffba2d83f2d9c5c6452fe69c362) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n007001a.03c", 0x080001, 0x040000, CRC(b0366875) SHA1(591a02a5cef01e190eaed922894920571f4f6bdb) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n007001a.378", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) ) + + NEO_BIOS_AUDIO_64K( "n007001a.478", CRC(0449acf5) SHA1(1275ba5dad1c5123f727dd4193b8ee2cb910760d) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n007001a.178", 0x000000, 0x080000, CRC(7ec0e76d) SHA1(5f84f0a236b5cb7dd02b588806bc7f6e35eb515d) ) + ROM_LOAD( "n007001a.17c", 0x080000, 0x080000, CRC(7a796ead) SHA1(0a5b2683acc680edef3d3aa44681e0d648dce53f) ) + ROM_LOAD( "n007001b.178", 0x100000, 0x080000, CRC(70bc86a5) SHA1(00ef9faf9b094bca2fd654b26eb03e6e40bd6f80) ) + ROM_LOAD( "n007001b.17c", 0x180000, 0x080000, CRC(29963a92) SHA1(fb2ff29e48cfee33c0f8c12f849b35bd5be27ec9) ) + + ROM_REGION( 0x400000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n007001a.278", 0x000000, 0x080000, CRC(45f5e914) SHA1(d89d9917a0aaf1c662d5633a52a29bd670577830) ) + ROM_LOAD( "n007001a.27c", 0x080000, 0x080000, CRC(07524063) SHA1(559c3f1b33cfb112dd8d70726be07cac1cafd72f) ) + ROM_LOAD( "n007001b.278", 0x100000, 0x080000, CRC(c3178623) SHA1(687e63943a22cfff9778cb41ef6c9b9ac6f43334) ) + ROM_LOAD( "n007001b.27c", 0x180000, 0x080000, CRC(65bca6b7) SHA1(8c96d98e86799f1a47b5a66d439e01d7935c213c) ) + ROM_LOAD( "n007001c.278", 0x200000, 0x080000, CRC(27cd2250) SHA1(ab5af5762f48f670b2d0a31fdd38539956681035) ) + ROM_LOAD( "n007001c.27c", 0x280000, 0x080000, CRC(43025293) SHA1(c8b612f4bead98d6e06dcf6cb8254fc8487e2c06) ) + ROM_LOAD( "n007001d.278", 0x300000, 0x080000, CRC(ae0a679a) SHA1(7fd81af67238eae3dba64502eeff41933de795e8) ) + ROM_LOAD( "n007001d.27c", 0x380000, 0x080000, CRC(6a2e400d) SHA1(656b026767596a6395f3e30f97140884cb0da5a0) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n007001a.538", 0x000000, 0x40000, CRC(c516b09e) SHA1(910b6197fef78138da2c5b18507d12d841a518e5) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n007001a.638", 0x000001, 0x40000, CRC(6b674581) SHA1(3cbf29302c2677abe79ae10ef95097c6d62ca88c) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n007001a.53c", 0x100000, 0x40000, CRC(d9a0ff6c) SHA1(f2577736d516471a6757a8134916fbf7316a9809) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n007001a.63c", 0x100001, 0x40000, CRC(4ff21008) SHA1(496a27d902342dbb3685ad8354981e76dc839f47) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n007001b.538", 0x200000, 0x40000, CRC(3a7fe4fd) SHA1(ad4d93ed7d472579b6ba5fd4809a96762f0c0c2e) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n007001b.638", 0x200001, 0x40000, CRC(d0e8eef3) SHA1(560594bf1ec6ca32b38d0fe73b4cb5b5ecb56d56) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( androdund ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n049001a.038", 0x000001, 0x040000, CRC(4639b419) SHA1(617765aea2cb26ae52b25b2f7a541caf14effac9) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n049001a.03c", 0x080001, 0x040000, CRC(11beb098) SHA1(8c8fafba019e94fcf56643fbeeae161840e4263d) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n049001a.378", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) ) + + NEO_BIOS_AUDIO_128K( "n049001a.4f8", CRC(1a009f8c) SHA1(7782dfe48e143417f34fba5353e6deb63efeaa8a) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "n049001a.1f8", 0x000000, 0x080000, CRC(577c85b3) SHA1(2c3072401fe73497dca0e9009ae2ba4053fe936d) ) + ROM_LOAD( "n049001a.1fc", 0x080000, 0x080000, CRC(e14551c4) SHA1(763a9912b9df55defb190af3f29ae034f6dd78d6) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n049001a.538", 0x000000, 0x40000, CRC(ca08e432) SHA1(4202685ea0eaa29772d3d451ed9240202e4626a4) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n049001a.638", 0x000001, 0x40000, CRC(7a0deb9e) SHA1(50953e69b8462d4b981c91c74c307bcb539b0ceb) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n049001a.53c", 0x100000, 0x40000, CRC(fcbcb305) SHA1(42fe48127593e7714f7675506de8d0ae08a70164) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n049001a.63c", 0x100001, 0x40000, CRC(b1c640f5) SHA1(6e667f4c197243f6389c952229efa90bd3a66b50) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n049001b.538", 0x200000, 0x40000, CRC(806ab937) SHA1(78867c587420b938be1a76f0b87dea4d21fbe1b0) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n049001b.638", 0x200001, 0x40000, CRC(33bee10f) SHA1(3e01859e6455c9e941f9afcf31d62a4de4806eca) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n049001b.53c", 0x300000, 0x40000, CRC(e7e1a2be) SHA1(91a68ed46975811f1abaf4d1d912f514328c7189) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n049001b.63c", 0x300001, 0x40000, CRC(70f0d263) SHA1(fccb548d4b1754c475ceb46f3e49e4e9607e6651) ) + ROM_CONTINUE( 0x300003, 0x40000 ) + ROM_LOAD32_BYTE( "n049001c.538", 0x400000, 0x40000, CRC(ca08e432) SHA1(4202685ea0eaa29772d3d451ed9240202e4626a4) ) + ROM_CONTINUE( 0x400002, 0x40000 ) + ROM_LOAD32_BYTE( "n049001c.638", 0x400001, 0x40000, CRC(7a0deb9e) SHA1(50953e69b8462d4b981c91c74c307bcb539b0ceb) ) + ROM_CONTINUE( 0x400003, 0x40000 ) + ROM_LOAD32_BYTE( "n049001c.53c", 0x500000, 0x40000, CRC(fcbcb305) SHA1(42fe48127593e7714f7675506de8d0ae08a70164) ) + ROM_CONTINUE( 0x500002, 0x40000 ) + ROM_LOAD32_BYTE( "n049001c.63c", 0x500001, 0x40000, CRC(b1c640f5) SHA1(6e667f4c197243f6389c952229efa90bd3a66b50) ) + ROM_CONTINUE( 0x500003, 0x40000 ) + ROM_LOAD32_BYTE( "n049001d.538", 0x600000, 0x40000, CRC(806ab937) SHA1(78867c587420b938be1a76f0b87dea4d21fbe1b0) ) + ROM_CONTINUE( 0x600002, 0x40000 ) + ROM_LOAD32_BYTE( "n049001d.638", 0x600001, 0x40000, CRC(33bee10f) SHA1(3e01859e6455c9e941f9afcf31d62a4de4806eca) ) + ROM_CONTINUE( 0x600003, 0x40000 ) + ROM_LOAD32_BYTE( "n049001d.53c", 0x700000, 0x40000, CRC(e7e1a2be) SHA1(91a68ed46975811f1abaf4d1d912f514328c7189) ) + ROM_CONTINUE( 0x700002, 0x40000 ) + ROM_LOAD32_BYTE( "n049001d.63c", 0x700001, 0x40000, CRC(70f0d263) SHA1(fccb548d4b1754c475ceb46f3e49e4e9607e6651) ) + ROM_CONTINUE( 0x700003, 0x40000 ) +ROM_END + +ROM_START( aofd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n044001a.038", 0x000001, 0x040000, CRC(95102254) SHA1(b4b9a0b35c2fab78fa9fd590f0f22da4e4153ac2) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n044001a.378", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) + + NEO_BIOS_AUDIO_128K( "044001a.4f8", CRC(981345f8) SHA1(5eb6a5a3f633d74a48555808e2562a0ba16d8675) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "n044001a.1f8", 0x000000, 0x080000, CRC(a4d8747f) SHA1(d9963375edd22d194c17e50fa398b12bbe2a777f) ) + ROM_LOAD( "n044001a.1fc", 0x080000, 0x080000, CRC(55219d13) SHA1(97fa9b1461e9dbf6c1580e1f814df68c79b61016) ) + ROM_LOAD( "n044001b.1f8", 0x100000, 0x080000, CRC(6eae81fa) SHA1(37d5ea320913b77a3fcdd2e1db1447a9cd77d094) ) + ROM_LOAD( "n044001b.1fc", 0x180000, 0x080000, CRC(f91676e9) SHA1(5c3e8f4230a2b18af8cea4ee32c23408de575c0c) ) + ROM_LOAD( "n044001c.1f8", 0x200000, 0x080000, CRC(d0c8bcd2) SHA1(126d56214a51027a340153b0dc29268ef7d36256) ) + ROM_LOAD( "n044001c.1fc", 0x280000, 0x080000, CRC(167db9b2) SHA1(960c32b4163d7cadba26d4f64627bce08d4da65b) ) + ROM_LOAD( "n044001d.1f8", 0x300000, 0x080000, CRC(f03969fe) SHA1(5e30c9162bdb8236ccd7ec1e99107da656764fe8) ) + ROM_LOAD( "n044001d.1fc", 0x380000, 0x080000, CRC(a823a19a) SHA1(5662874b80b9df94c60f7100eefa229e95bd91d5) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n044001a.538", 0x000000, 0x40000, CRC(a2e4a168) SHA1(7a0090f85235ae2a50498ab3538fef2f8afa7242) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n044001a.638", 0x000001, 0x40000, CRC(ca12c80f) SHA1(c7e4b241719f04860abf5fbb6e1712a802e43dee) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n044001a.53c", 0x100000, 0x40000, CRC(da389ef7) SHA1(b3c6ec60c5bdb63943a23eed028d9c952b11fc24) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n044001a.63c", 0x100001, 0x40000, CRC(d59746b0) SHA1(4d66e8384be5ce2917cf7db099000c229fb2d767) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n044001b.538", 0x200000, 0x40000, CRC(2a0c385b) SHA1(7d8e20a81e15f6806af43edb7d35e65052c32cbd) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n044001b.638", 0x200001, 0x40000, CRC(8b73b3da) SHA1(046e4a02f2c305ded91b22e09bf421d4f3d84f0c) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n044001b.53c", 0x300000, 0x40000, CRC(4a4317bf) SHA1(805405d440e4dba2cdc8b89629b0ab9616b5d357) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n044001b.63c", 0x300001, 0x40000, CRC(9fc3f8ea) SHA1(5a0520980b69724cdd011841844545dafc259ff9) ) + ROM_CONTINUE( 0x300003, 0x40000 ) + ROM_LOAD32_BYTE( "n044001c.538", 0x400000, 0x40000, CRC(471d9e57) SHA1(54200bd380f8f6b19f64768033b97a96aa8a8640) ) + ROM_CONTINUE( 0x400002, 0x40000 ) + ROM_LOAD32_BYTE( "n044001c.638", 0x400001, 0x40000, CRC(cbf8a72e) SHA1(182b7f98f414533f1ea294f3ea8b25e98857e0cd) ) + ROM_CONTINUE( 0x400003, 0x40000 ) + ROM_LOAD32_BYTE( "n044001c.53c", 0x500000, 0x40000, CRC(23fe5675) SHA1(a03b0739c3b98150a610aada2c945165a58a56d7) ) + ROM_CONTINUE( 0x500002, 0x40000 ) + ROM_LOAD32_BYTE( "n044001c.63c", 0x500001, 0x40000, CRC(5ec93c96) SHA1(6a5869fe778774ef1a641068e65e33a1ea2bd15b) ) + ROM_CONTINUE( 0x500003, 0x40000 ) + ROM_LOAD32_BYTE( "n044001d.538", 0x600000, 0x40000, CRC(204e7b29) SHA1(944865fb04e554f217dbaa2259834e1c413afe50) ) + ROM_CONTINUE( 0x600002, 0x40000 ) + ROM_LOAD32_BYTE( "n044001d.638", 0x600001, 0x40000, CRC(47763b6d) SHA1(b7e6cb423e3c49bca60ff190ff105001e3579701) ) + ROM_CONTINUE( 0x600003, 0x40000 ) + ROM_LOAD32_BYTE( "n044001d.53c", 0x700000, 0x40000, CRC(7f6d5144) SHA1(8f39666259d8fe187ae6da532372b6c606737246) ) + ROM_CONTINUE( 0x700002, 0x40000 ) + ROM_LOAD32_BYTE( "n044001d.63c", 0x700001, 0x40000, CRC(4408f4eb) SHA1(dc045494f6865def21448caab13b2ad6ee520f37) ) + ROM_CONTINUE( 0x700003, 0x40000 ) +ROM_END + +ROM_START( bakatonod ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n036001a.038", 0x000001, 0x040000, CRC(083ca651) SHA1(8d947e5de3db3a8cf4195de3b149d4a7994704c1) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n036001a.03c", 0x080001, 0x040000, CRC(b3bc26ae) SHA1(c0a741198627a78f7a100ee406d994b50e63012f) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n036001a.378", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) ) + + NEO_BIOS_AUDIO_64K( "n036001a.4f8", CRC(a5e05789) SHA1(63985ed5b3491d0f7b0e2f59785f590bfe122330) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n036001a.1f8", 0x000000, 0x080000, CRC(d3edbde6) SHA1(c8628a47e275137e340f2005775272a58a594d81) ) + ROM_LOAD( "n036001a.1fc", 0x080000, 0x080000, CRC(cc487705) SHA1(3bc30dc485917a01756ed33b3507133549e3c1f8) ) + ROM_LOAD( "n036001b.1f8", 0x100000, 0x080000, CRC(e28cf9b3) SHA1(6c0bc9f5f496edb89dd8dc7acbec3c361bcef0f3) ) + ROM_LOAD( "n036001b.1fc", 0x180000, 0x080000, CRC(96c3ece9) SHA1(357ed280157897e26eeecce080da9757f1c03b35) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n036001a.538", 0x000000, 0x40000, CRC(acb82025) SHA1(6bc9b61fdbcb04a1acc0c692a066791bf412d814) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n036001a.638", 0x000001, 0x40000, CRC(647ba28f) SHA1(761884eabcf3be81614ee1d2cf6a86515b3fb628) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n036001a.53c", 0x100000, 0x40000, CRC(c6954f8e) SHA1(b7f09c1d5800ea82abee8f0b00d0c9395882fe00) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n036001a.63c", 0x100001, 0x40000, CRC(dffefa4f) SHA1(bdc9bd4d09808a51d8fb27c337f0382d5ddd58df) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n036001b.538", 0x200000, 0x40000, CRC(eb751be8) SHA1(50db6c2055160396f7a6e4ada9fa52a458046ad2) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n036001b.638", 0x200001, 0x40000, CRC(6135247a) SHA1(0c23a0894484689124873cfc37a4e0a05e226f2d) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n036001b.53c", 0x300000, 0x40000, CRC(1d39bad6) SHA1(8f275cc73844760725b476264db0543a1327fb21) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n036001b.63c", 0x300001, 0x40000, CRC(0d40c953) SHA1(f77d84cb6b9bfe580f69a319d4f4fd98389e6d49) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( bstarsd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n002001a.038", 0x000001, 0x040000, CRC(68ce5b06) SHA1(cab050a4efcf346463609910b367f7f6c1c0158b) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n002001a.378", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) + + NEO_BIOS_AUDIO_64K( "n002001a.478", CRC(79a8f4c2) SHA1(08ca2b72fd9b0ed068dc918ecda51d13203a3481) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n002001a.178", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) + ROM_LOAD( "n002001a.17c", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) + ROM_LOAD( "n002001b.178", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) + ROM_LOAD( "n002001b.17c", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n002001a.278", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n002001a.538", 0x000000, 0x40000, CRC(c55a7229) SHA1(23a28f8ba6c1339dde4f674bbca6e6cffafabcc7) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n002001a.638", 0x000001, 0x40000, CRC(cd3eeb2d) SHA1(3997788c063cea48a901ff6033574d2c8a9e0516) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n002001a.53c", 0x100000, 0x40000, CRC(a0074bd9) SHA1(f1b1ba3630befd595d141bfc580b1bbe01bee324) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n002001a.63c", 0x100001, 0x40000, CRC(d651fecf) SHA1(3e7bbda2ecd487e568f8e8eb9b141941d6a761b9) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n002001b.538", 0x200000, 0x40000, CRC(d57767e6) SHA1(cf18dd9cf6f9da09af7be5e0c9f7f12eaa61c129) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n002001b.638", 0x200001, 0x40000, CRC(5d0a8692) SHA1(1a0f767d11f73fd41aa2f1840fc300fb23b8d262) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( burningfd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n018001a.038", 0x000001, 0x040000, CRC(188c5e11) SHA1(0f82b0e6fd93f43579f7cb2871e6840c738696af) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n018001a.378", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) + + NEO_BIOS_AUDIO_128K( "n018001a.4f8", CRC(58d10c2b) SHA1(5f1f01af284f6520d09ae1c5f6f176153a013f90) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n018001a.1f8", 0x000000, 0x080000, CRC(b55b9670) SHA1(b0ff38b2dca1361ad155e90be3674dbea1c0a53c) ) + ROM_LOAD( "n018001a.1fc", 0x080000, 0x080000, CRC(a0bcf260) SHA1(5d1f2613cf4a292557f37e6f44a90b20d11ed8cd) ) + ROM_LOAD( "n018001b.1f8", 0x100000, 0x080000, CRC(270f4707) SHA1(29e763acc9fd4b94d8b5d0ad917e20d8a66bbe49) ) + ROM_LOAD( "n018001b.1fc", 0x180000, 0x080000, CRC(924e3d69) SHA1(927091f9a098f00eb303f5567f4ee926bcb170e3) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n018001a.538", 0x000000, 0x40000, CRC(4ddc137b) SHA1(02add8810ed4df43feda93dd61c308bf1752e1dc) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n018001a.638", 0x000001, 0x40000, CRC(7d7d87dc) SHA1(efd24a8b6112c38e7d4bca46dfae227a80883be7) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n018001a.53c", 0x100000, 0x40000, CRC(896d8545) SHA1(415e5982275d43666d5b33c1a599e5fe073e0ab1) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n018001a.63c", 0x100001, 0x40000, CRC(39fe5307) SHA1(6be6306324ff63715e5ddb33c9565a538472e014) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n018001b.538", 0x200000, 0x40000, CRC(2b2cb196) SHA1(2826b07d72adb0c83cd84dbfc3d9a6eae93bd3b7) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n018001b.638", 0x200001, 0x40000, CRC(03aa8a36) SHA1(e68f12e869b0c947a0b2a0dd591edbe995e95775) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n018001b.53c", 0x300000, 0x40000, CRC(0f49caa9) SHA1(5a86c3b2a29b1bee10a2649c0106e0a4948f5ecf) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n018001b.63c", 0x300001, 0x40000, CRC(f759626e) SHA1(29e123c8d40334a53fceae33308d92a0dd3ac80d) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( crswordd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n037001a.038", 0x000001, 0x040000, CRC(42c78fe1) SHA1(4e680092f87baa8ce1ec375bedfd393b553bad11) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n037001a.378", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) ) + + NEO_BIOS_AUDIO_64K( "n037001a.4f8", CRC(66633e5e) SHA1(24611f084643c36069c2e48dac86413a18f9663b) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "n037001a.1f8", 0x000000, 0x080000, CRC(525df5c8) SHA1(de8802aa515de5b552df87ba4eb3aa27c12105c9) ) + ROM_LOAD( "n037001a.1fc", 0x080000, 0x080000, CRC(a11ecaf4) SHA1(214ef018628a6acf2464fdd98afadb02e4f609eb) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n037001a.538", 0x000000, 0x40000, CRC(4b373de7) SHA1(4a3cd07cb2b029c28bdea9918d839fa308324921) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n037001a.638", 0x000001, 0x40000, CRC(e05f5f33) SHA1(af11079524edf2db79efd8ab25b33689a0d1080b) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n037001a.53c", 0x100000, 0x40000, CRC(cddf6d69) SHA1(04f002d6648af24ca5c887bcd8b73d3a59becd2c) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n037001a.63c", 0x100001, 0x40000, CRC(91ab11a4) SHA1(b063bf2ab89382014159fbe5372a0893782fa510) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n037001b.538", 0x200000, 0x40000, CRC(61d25cb3) SHA1(fde39e2a3cc920772981afb6843f69c6b7b55f2d) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n037001b.638", 0x200001, 0x40000, CRC(01357559) SHA1(898db3366147e4c8920de9efb52b9d852dded010) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n037001b.53c", 0x300000, 0x40000, CRC(00bc3d84) SHA1(9eab28250902748563bc6a0dc4bd0ea66126a767) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n037001b.63c", 0x300001, 0x40000, CRC(28c6d19a) SHA1(96aa762ec26a6b954ec7414b74febf6b88e272aa) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( cyberlipd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n010001a.038", 0x000001, 0x040000, CRC(4012e465) SHA1(81caac2b559183f5a87980b6f1ca7e42d5338962) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n010001a.03c", 0x080001, 0x040000, CRC(ee899b19) SHA1(3d0369ad2496e8622fb5a11f751056a2c5fad7bf) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n010001a.378", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) ) + + NEO_BIOS_AUDIO_128K( "n010001a.478", CRC(8be3a078) SHA1(054ec6a061fcc88df1ecbb0a01611a31f37a7709) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n010001a.178", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) ) + ROM_LOAD( "n010001a.17c", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) ) + ROM_LOAD( "n010001b.178", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) ) + ROM_LOAD( "n010001b.17c", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n010001a.278", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n010001a.538", 0x000000, 0x40000, CRC(0239fc08) SHA1(27c2a68103ca6898780d72ded57f4447cf5f7f80) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n010001a.638", 0x000001, 0x40000, CRC(e102a1bd) SHA1(89ffd05845b452423b4cd69c4420eafa0c168507) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n010001a.53c", 0x100000, 0x40000, CRC(23f03b97) SHA1(f5a2b3c0cf039a84cf78223f089f9fa3a7d9f01a) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n010001a.63c", 0x100001, 0x40000, CRC(520571d2) SHA1(4be129b679d3962a95ce32f462c58aa08c43b1cd) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n010001b.538", 0x200000, 0x40000, CRC(065061ed) SHA1(5c1e48e31cc6b5bbc50085abc8102ab436885b23) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n010001b.638", 0x200001, 0x40000, CRC(2e31e2d2) SHA1(29c88296d10b6b716ab753d2692267e0619d6193) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n010001b.53c", 0x300000, 0x40000, CRC(e485e72d) SHA1(1fb160f403b6ec1ff28408d141dfe31245dbfb58) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n010001b.63c", 0x300001, 0x40000, CRC(9e2af4db) SHA1(0089d1a66fa40a25ea78c6da24b4872b4fd12782) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( eightmand ) + ROM_REGION(0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n025001a.038", 0x000001, 0x040000, CRC(e23e2631) SHA1(ddc9efe6e386aa89aca052f004492caf39a84d68) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n025001a.378", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) ) + + NEO_BIOS_AUDIO_128K( "n025001a.4f8", CRC(68b6e0ef) SHA1(8a6c221460454d15c3d72dd66a2318be0a3d5072) ) + + ROM_REGION(0x200000, "ymsnd", 0) /* sound samples */ + ROM_LOAD( "n025001a.1f8", 0x000000, 0x080000, CRC(0a2299b4) SHA1(96087ec57bca13a7394566c87310cd5a05eae62a) ) + ROM_LOAD( "n025001a.1fc", 0x080000, 0x080000, CRC(b695e254) SHA1(ca752c4834dcdd8c2829e336abf135e584ade603) ) + ROM_LOAD( "n025001b.1f8", 0x100000, 0x080000, CRC(6c3c3fec) SHA1(69f7cb9a4c39b651898383ec9ee6891565e93baf) ) + ROM_LOAD( "n025001b.1fc", 0x180000, 0x080000, CRC(375764df) SHA1(7288befc006bd10030911efecfbf78146ed5f781) ) + + ROM_REGION(0x300000, "sprites", 0) + ROM_LOAD32_BYTE( "n025001a.538", 0x000000, 0x40000, CRC(c916c9bf) SHA1(ac56aa28b163d21af80f355011112c1921a6797b) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n025001a.638", 0x000001, 0x40000, CRC(7114bce3) SHA1(a74abb92ec513250abea7487fd49ec2282a6531f) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n025001a.53c", 0x100000, 0x40000, CRC(4b057b13) SHA1(1d06edc938d8c618847853ae58de9a6e8dd6521f) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n025001a.63c", 0x100001, 0x40000, CRC(51da9a34) SHA1(850275621db0372839db334161c167c0df0915ac) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n025001b.538", 0x200000, 0x40000, CRC(12d53af0) SHA1(69bc5c1f6aa4386e851d2d0db04b5a9246257a90) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n025001b.638", 0x200001, 0x40000, CRC(43cf58f9) SHA1(72b4f27b66d45155aa98d65457c4fdd3b09d08e9) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( fatfury1d ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n033001a.038", 0x000001, 0x040000, CRC(47e51379) SHA1(bb1558765f55e0b8e3e0c1c5c79db8cec8b51085) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n033001a.03c", 0x080001, 0x040000, CRC(19d36805) SHA1(6b2d5326a08b06a9152d80a8de054ad9f159a453) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n033001a.378", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) + + NEO_BIOS_AUDIO_128K( "n033001a.4f8", CRC(a8603979) SHA1(512f2280a43892d4ca003ac63945ce86c5211b97) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n033001a.1f8", 0x000000, 0x080000, CRC(86fabf00) SHA1(df087f58c689128f7696b91e2fcb600ccac017af) ) + ROM_LOAD( "n033001a.1fc", 0x080000, 0x080000, CRC(ead1467b) SHA1(6f4381d7a0625f5d02739a9813ff593c2dc99dde) ) + ROM_LOAD( "n033001b.1f8", 0x100000, 0x080000, CRC(fc3bd6f7) SHA1(8d3094ecd8d5cfe3f58be9ac6d76a2bb65eb1d00) ) + ROM_LOAD( "n033001b.1fc", 0x180000, 0x080000, CRC(d312f6c0) SHA1(3fae32af628ed8d0176a7f6668ff4f2d898c9f7a) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n033001a.538", 0x000000, 0x40000, CRC(9aaa6d73) SHA1(345ed4b75a6459cd0b8fc8f71d58f4951296177f) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n033001a.638", 0x000001, 0x40000, CRC(9cae3703) SHA1(1144ccf448ea7c00ca425fe54f2ce84b8fdb3c78) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n033001a.53c", 0x100000, 0x40000, CRC(a986f4a9) SHA1(a45cc6b5902333d6614b7a2018ebd5ada7c5f075) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n033001a.63c", 0x100001, 0x40000, CRC(308b619f) SHA1(384efb66633a888d7c48d2ab0e918d823178b382) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n033001b.538", 0x200000, 0x40000, CRC(7aefe57d) SHA1(ab97881ff620ab7130d9ce1527c23bcfc0b21a5e) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n033001b.638", 0x200001, 0x40000, CRC(b39a0cde) SHA1(e5829525bc2ffe489ebb0ec4ab0094417f141027) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n033001b.53c", 0x300000, 0x40000, CRC(e3057c96) SHA1(b6a2e55633db0aad7f1ca4e8b42c2a327f772add) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n033001b.63c", 0x300001, 0x40000, CRC(737bc030) SHA1(03ceeabb84dac6f27c6f6ba2b7097b756f411270) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( fbfrenzyd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n034001a.038", 0x000001, 0x040000, CRC(c9fc879c) SHA1(24b8be60a434c3f4944f060607756a830f9365fd) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n034001a.378", CRC(8472ed44) CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) ) + + NEO_BIOS_AUDIO_128K( "n034001a.4f8", CRC(079a203c) SHA1(b0e818400c46331ec42f9bb8fa3feacb6c69006a) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n034001a.1f8", 0x000000, 0x080000, CRC(d295da77) SHA1(3015a07236714af87928a9bff1a9505a9ee9b419) ) + ROM_LOAD( "n034001a.1fc", 0x080000, 0x080000, CRC(249b7f52) SHA1(4aa1e7f73c37ecdd09098a3943c8ff3e919788be) ) + ROM_LOAD( "n034001b.1f8", 0x100000, 0x080000, CRC(e438fb9d) SHA1(0403345549e618a3161c74a37ecae894b6e8d1e0) ) + ROM_LOAD( "n034001b.1fc", 0x180000, 0x080000, CRC(4f9bc109) SHA1(05f47d9b7de8a4f51fce43c14a2f5e7d616058a3) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n034001a.538", 0x000000, 0x40000, CRC(cd377680) SHA1(0ba533dc644b4111361e6f0ef31b2a92bc974efb) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n034001a.638", 0x000001, 0x40000, CRC(8b76358f) SHA1(ba908221daa9bfe7eaf03e370329fdb4a015da5f) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n034001a.53c", 0x100000, 0x40000, CRC(2f6d09c2) SHA1(5afffa37d5782c21e0d673ebfaf03f92fb5b91e4) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n034001a.63c", 0x100001, 0x40000, CRC(77e45dd2) SHA1(a4412ddfde175405c85eba2e56eec3d9878575d3) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n034001b.538", 0x200000, 0x40000, CRC(9abe41c8) SHA1(ab350c65258e5d229ab317d45580ae4cbbcd1478) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n034001b.638", 0x200001, 0x40000, CRC(336540a8) SHA1(7be473063680987560a188e59f477c8ff9b96b01) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( gpilotsd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n020001a.038", 0x000001, 0x040000, CRC(fc5837c0) SHA1(1eb46c21b17130238a1453c219e006ea150370ee) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n020001a.03c", 0x080001, 0x040000, CRC(47a641da) SHA1(d369ee64fd70d705355df71766b72c402a236e24) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n020001a.378", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) + + NEO_BIOS_AUDIO_64K( "n020001a.478", CRC(fc05fb8b) SHA1(bab6e6af4a60ffebff25951eca4177ece68875a4) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "n020001a.178", 0x000000, 0x080000, CRC(8cc44140) SHA1(0a88d8962e057bf0cabd4819d4ba67e093c49b82) ) + ROM_LOAD( "n020001a.17c", 0x080000, 0x080000, CRC(415c61cd) SHA1(638e5fd9b02b4553df42f00188a7ac52a5a7bf84) ) + ROM_LOAD( "n020001b.178", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n020001a.278", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n020001a.538", 0x000000, 0x40000, CRC(92b8ee5f) SHA1(ff45ca2eed87863f3725d5dadd5f55ac39af033e) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n020001a.638", 0x000001, 0x40000, CRC(05733639) SHA1(a5f2639853ea53ec3ff91fe37fdb9e628a497883) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n020001a.53c", 0x100000, 0x40000, CRC(8c8e42e9) SHA1(9aa2abd11358933d72dc52ae8d0214e3b350c83b) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n020001a.63c", 0x100001, 0x40000, CRC(347fef2b) SHA1(8b4c7ab7d9cfda8e588d8e0f4796ce163b468407) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n020001b.538", 0x200000, 0x40000, CRC(4f12268b) SHA1(fa531734c9dbba62e35cb29eb40d80a219d87c54) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n020001b.638", 0x200001, 0x40000, CRC(2c586176) SHA1(0e28a27d59ae2ec6a9d1ff822244bfa4f960f338) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n020001b.53c", 0x300000, 0x40000, CRC(7c3c9c7e) SHA1(43a15669788384024ac173e1f89e53a2bdd630d2) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n020001b.63c", 0x300001, 0x40000, CRC(9b2eee8b) SHA1(420156256d5b628a62ea612edd526d293d2c7abc) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( joyjoyd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n021001a.038", 0x000001, 0x040000, CRC(ea512c9f) SHA1(094d8c06a1038dd38b74ced3d213a52b340062a6) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n021001a.378", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) + + NEO_BIOS_AUDIO_64K( "n021001a.478", CRC(058683ec) SHA1(2aff3dc18d078911ed3a09d48664faf5958b4ab5) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "n021001a.178", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n021001a.278", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n021001a.538", 0x000000, 0x40000, CRC(cb27be65) SHA1(bdadc0da89026af3ed0dc6a18f2449c0cb24ee0c) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n021001a.638", 0x000001, 0x40000, CRC(7e134979) SHA1(e33b30e39283963e8e806ccd12d9559de27c8bbe) ) + ROM_CONTINUE( 0x000003, 0x40000 ) +ROM_END + +ROM_START( kotmd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n016001a.038", 0x000001, 0x040000, CRC(d239c184) SHA1(feb139ce089385b6b1bc95970c4d7ae4fd8a7c7f) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n016001a.03c", 0x080001, 0x040000, CRC(7291a388) SHA1(16e22a8eef5391fa43d92d702f14a746dedf292b) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n016001a.378", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) + + NEO_BIOS_AUDIO_128K( "n016001a.4f8", CRC(40797389) SHA1(12ca00ba1d2d66d79bc64969661a52205cc98d66) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n016001a.1f8", 0x000000, 0x080000, CRC(c3df83ba) SHA1(2f015ccf99de241861e05e81ad47faf02aec3290) ) + ROM_LOAD( "n016001a.1fc", 0x080000, 0x080000, CRC(22aa6096) SHA1(c98fdc9fa589907cae1f7a2814fa32913d6c8648) ) + ROM_LOAD( "n016001b.1f8", 0x100000, 0x080000, CRC(df9a4854) SHA1(f9612d82ce476f8c973ce60a982ae8007bd051a1) ) + ROM_LOAD( "n016001b.1fc", 0x180000, 0x080000, CRC(71f53a38) SHA1(0fa03a2c719cc413ab163d166f93fcdc89646066) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n016001a.538", 0x000000, 0x40000, CRC(493db90e) SHA1(fb22e4f5437d9402c531779215cf675daa35401f) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n016001a.638", 0x000001, 0x40000, CRC(8bc1c3a0) SHA1(789f990b2b12bff7335a40a0ca6e64824dd6d4e2) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n016001a.53c", 0x100000, 0x40000, CRC(0d211945) SHA1(4edef3bdd73e402ab606ac27013a2b8c1467667c) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n016001a.63c", 0x100001, 0x40000, CRC(cc793bbf) SHA1(b88075e388d68601bb0e56f621a22abaf90ef39c) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n016001b.538", 0x200000, 0x40000, CRC(cabb7b58) SHA1(e7be9c459c17dddc3a812981e14fc2e0a3fb5ec3) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n016001b.638", 0x200001, 0x40000, CRC(fde45b59) SHA1(72ddca41b6cd595246eb8c8bb0c2e614c53e828c) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n016001b.53c", 0x300000, 0x40000, CRC(c7c20718) SHA1(52a2d7f4f8baede451959a351d2badf080b1e20e) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n016001b.63c", 0x300001, 0x40000, CRC(b89b4201) SHA1(74322700b9e8cf30b7d025be3909e93e1bfdaaf9) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( lbowlingd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n019001a.038", 0x000001, 0x040000, CRC(380e358d) SHA1(2f9683ca65abb2d046277a7642877f66a29d08f6) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n019001a.378", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) ) + + NEO_BIOS_AUDIO_64K( "n019001a.478", CRC(535ec016) SHA1(301733768d2b962f58fc372e54f9d7bfd6615c21) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "n019001a.178", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) ) + ROM_LOAD( "n019001a.17c", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n019001a.278", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n019001a.538", 0x000000, 0x40000, CRC(17df7955) SHA1(992558200cbe7c0f9fc96cb6b1adb63ded28b833) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n019001a.638", 0x000001, 0x40000, CRC(84fd2c90) SHA1(b0ce2ba62d682f847f238eb5196340f466e6bcda) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n019001a.53c", 0x100000, 0x40000, CRC(67bf2d89) SHA1(282a29425eed00a85f88c332112bd9e0a95770cf) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n019001a.63c", 0x100001, 0x40000, CRC(cb4fbeb0) SHA1(a9a985ef66fe39111ccd37a4c1a26707d3bf3045) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n019001b.538", 0x200000, 0x40000, CRC(00d36f90) SHA1(8d47ea266dd2bf3ccbb9fb21ba860d9e9ec22db0) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n019001b.638", 0x200001, 0x40000, CRC(c2ddf431) SHA1(2ffbea4164f3099bdf8162c6ecc782d8badfab25) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n019001b.53c", 0x300000, 0x40000, CRC(4e971be9) SHA1(f137ad0eb9da8c4fffb5893ed694d97647f7e77b) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n019001b.63c", 0x300001, 0x40000, CRC(e67f8c81) SHA1(e0e8b24171a61dfe14649e7cff6f95d0a510cb55) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( lresortd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n024001a.038", 0x000001, 0x040000, CRC(5f0a5a4b) SHA1(69e33ed94f533528038fb157529b44dc940ab231) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n024001a.378", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) + + NEO_BIOS_AUDIO_128K( "n024001a.4f8", CRC(3d40a1c6) SHA1(d98b2b2893274db0cadc9c9718349086afadadc7) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n024001a.1f8", 0x000000, 0x080000, CRC(0722da38) SHA1(66a9b463d5277908b3a01c03de82b3de9118f2cb) ) + ROM_LOAD( "n024001a.1fc", 0x080000, 0x080000, CRC(670ce3ec) SHA1(9004aa85d4a9b0ecf9cf9357b073ed55a98fdb02) ) + ROM_LOAD( "n024001b.1f8", 0x100000, 0x080000, CRC(2e39462b) SHA1(b0a9b1a3377bf0369f3020192505c46ca52927d6) ) + ROM_LOAD( "n024001b.1fc", 0x180000, 0x080000, CRC(7944754f) SHA1(d42a46c5127c6c62041ebffb0007af8a24abd360) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n024001a.538", 0x000000, 0x40000, CRC(9f7995a9) SHA1(e3efdef66f5a6136ebe8fa9e3ff917323ab3fc5e) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n024001a.638", 0x000001, 0x40000, CRC(68c70bac) SHA1(7a6ddb1beb8cb6f6991d675affeb78226c18180e) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n024001a.53c", 0x100000, 0x40000, CRC(e122b155) SHA1(c9e759302fcf5aaf989463bf94157e45d76e68ea) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n024001a.63c", 0x100001, 0x40000, CRC(f18a9b02) SHA1(5cb9cf37de1b97ef680411beeff9ca262e77b067) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n024001b.538", 0x200000, 0x40000, CRC(e7138cb9) SHA1(d65c9e4f305cec30264355dd46a8ab413221dd82) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n024001b.638", 0x200001, 0x40000, CRC(08178e27) SHA1(e03137bf8e5bcd3c000113ec49da36f7100727e9) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( maglordd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n005001a.038", 0x000001, 0x040000, CRC(e51c3815) SHA1(19f36c8393191caf95a254ca52ce9e0012e6947a) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n005001a.378", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) + + NEO_BIOS_AUDIO_64K( "n005001a.478", CRC(91ee1f73) SHA1(f060728543333a99216cc2879f7666a1f4235068) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "n005001a.178", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) + + ROM_REGION( 0x100000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n005001a.278", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) + ROM_LOAD( "n005001a.27c", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n005001a.538", 0x000000, 0x40000, CRC(86aacd0d) SHA1(ee36e015908a7c087ace6cea0650822681066c94) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n005001a.638", 0x000001, 0x40000, CRC(b62658b5) SHA1(21a1d1f9ebe8c7a442c0b0a96f12af8047b8dbf3) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n005001a.53c", 0x100000, 0x40000, CRC(3997403e) SHA1(95e8375c897953055c952fd1fd3ff282fdc68928) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n005001a.63c", 0x100001, 0x40000, CRC(bd534fe2) SHA1(eebafc4a1daf650a6e7c3a64b2628e160e130b59) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n005001b.538", 0x200000, 0x40000, CRC(fbd1e9f1) SHA1(4faa14c164000e5581bb47788d2e8e1ee74ca0c6) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n005001b.638", 0x200001, 0x40000, CRC(a6461283) SHA1(a3eb28e584b0b91a0b5b372c932815cf4047d5bd) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( minasand ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n027001a.038", 0x000001, 0x040000, CRC(86805d5a) SHA1(9f9e300f4d4aef1bddb239580e8e5e3087957a50) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n027001a.378", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) ) + + NEO_BIOS_AUDIO_64K( "n027001a.478", CRC(19ef88ea) SHA1(8eca1a342d506e97dd116ce8ffe2242895b04c7a) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "n027001a.178", 0x000000, 0x080000, CRC(79d65e8e) SHA1(8e5d8608e43564e5ce1d458a9e09b2c8100e3f4f) ) + ROM_LOAD( "n027001a.17c", 0x080000, 0x080000, CRC(0b3854d5) SHA1(27e951b47c0ab96f3c64704f913400020156895a) ) + + ROM_REGION( 0x100000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n027001a.278", 0x000000, 0x080000, CRC(0100e548) SHA1(627d16aba58602d28c865e93894f8d00d4815779) ) + ROM_LOAD( "n027001a.27c", 0x080000, 0x080000, CRC(0c31c5b0) SHA1(372168e5e6845eb5e2450a6f6daec26429b446c0) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n027001a.538", 0x000000, 0x40000, CRC(43f48265) SHA1(05500d56c808123b803be0efa71dd233a55793d1) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n027001a.638", 0x000001, 0x40000, CRC(f774d850) SHA1(5b63b4893b5b86b5c2ecf3e0be6d83d9b92e754c) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n027001a.53c", 0x100000, 0x40000, CRC(cbf9eef8) SHA1(6baf6c5f4fc52fc48d0e43014b11fdfe26e6db70) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n027001a.63c", 0x100001, 0x40000, CRC(14a81e58) SHA1(53216ad674e553829db3cc23d1e827c18d70c04e) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n027001b.538", 0x200000, 0x40000, CRC(3dae0a05) SHA1(0bf63e5676e3caab6f9d4895c9cbeb600bb6a8a1) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n027001b.638", 0x200001, 0x40000, CRC(0fb30b5b) SHA1(89f1176a55040d7ca0246231a9a0b027d2e0c304) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n027001b.53c", 0x300000, 0x40000, CRC(6979368e) SHA1(d1faae6fafbb7de21e7ee56356c30f18b7c4a130) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n027001b.63c", 0x300001, 0x40000, CRC(cfa90d59) SHA1(3185e00a030ace45f543b3a4ab6c101107727d01) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( mutnatd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n014001a.038", 0x000001, 0x040000, CRC(30cbd46b) SHA1(48357c8b704526da7101c06a120b096ec160a7bb) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n014001a.378", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) ) + + NEO_BIOS_AUDIO_128K( "n014001a.4f8", CRC(2db6862d) SHA1(35cfe136edb09f0b13d312527dd71b4250c04383) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n014001a.1f8", 0x000000, 0x080000, CRC(8db2effe) SHA1(4bdfc36ed3c986ef153e03efbc581536876a3ebb) ) + ROM_LOAD( "n014001a.1fc", 0x080000, 0x080000, CRC(a49fe238) SHA1(378842d7fa93496ee103be3a0996c6943d285274) ) + ROM_LOAD( "n014001b.1f8", 0x100000, 0x080000, CRC(2ba17cb7) SHA1(99fa247c003b74b5da56631d11a63045dd5ef0d5) ) + ROM_LOAD( "n014001b.1fc", 0x180000, 0x080000, CRC(42419a29) SHA1(5185c978edb89a1764ee0b874be980b61280c822) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n014001a.538", 0x000000, 0x40000, CRC(83d59ccf) SHA1(90daecf9594715ac33c4a6294f481914351c702f) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n014001a.638", 0x000001, 0x40000, CRC(9e115a04) SHA1(16f04c7b3c5f6888591e9c2e385efb984e393571) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n014001a.53c", 0x100000, 0x40000, CRC(b2f1409d) SHA1(ab3af0fb4f4ca4afba098a6f8e9926b530a279df) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n014001a.63c", 0x100001, 0x40000, CRC(1bb648c1) SHA1(21afaf1e5ea541d5ac9bb273887baf662c52dfab) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n014001b.538", 0x200000, 0x40000, CRC(eaa2801a) SHA1(fec321bc839e5eeb4bfc88785276ee7af345f6c0) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n014001b.638", 0x200001, 0x40000, CRC(32bf4a2d) SHA1(f68419c9414dfbcc67c3a4b8cbef42b0b5fda0bc) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n014001b.53c", 0x300000, 0x40000, CRC(c718b731) SHA1(37eb725d43ecda891f67b607b5d5f039fc81a8cb) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n014001b.63c", 0x300001, 0x40000, CRC(7d120067) SHA1(d0e4f0f8c1455a51b5d769fa4bcd5f29bd894c13) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( ncombatd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n009001a.038", 0x000001, 0x040000, CRC(89660a31) SHA1(ac37a1060ee82733d8efef8c50f79672fe312097) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n009001a.378", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) + + NEO_BIOS_AUDIO_64K( "n009001a.478", CRC(83821d6e) SHA1(687ad38aa20a113c4f59e7ebc1c911bb8e635ad7) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "n009001a.178", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) + ROM_LOAD( "n009001a.17c", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) + ROM_LOAD( "n009001b.178", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n009001a.278", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n009001a.538", 0x000000, 0x40000, CRC(0147a4b5) SHA1(0a2f60bb7166bd5a2ad669820b0f26d630e94958) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n009001a.638", 0x000001, 0x40000, CRC(e3d367f8) SHA1(8129c6845b8969f26c7cfe8761bb2bb07e5dc549) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n009001a.53c", 0x100000, 0x40000, CRC(4df6123a) SHA1(53970d86a848f498ebd5676c0a9d6fe8e026def8) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n009001a.63c", 0x100001, 0x40000, CRC(1c1f6101) SHA1(9594d199bafa9317bcf8b7447442171ea9b1056d) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n009001b.538", 0x200000, 0x40000, CRC(19441c78) SHA1(6355039f445456ffe32a512b635e365c5519d0c7) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n009001b.638", 0x200001, 0x40000, CRC(f417f9ac) SHA1(438e76b54bb82517a57cb3405a99dda0b3d66dc0) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( ncommandd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n050001a.038", 0x000001, 0x040000, CRC(fdaaca42) SHA1(aa32936bbe8ee53e717a3582847af89d1e160ff4) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n050001a.03c", 0x080001, 0x040000, CRC(b34e91fe) SHA1(3fbf40b9473bc6b0633c62fffdebc43d86785c7d) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n050001a.378", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) ) + + NEO_BIOS_AUDIO_64K( "n050001a.4f8", CRC(26e93026) SHA1(ea38754748ee2a9250864cd1836db463a1b29b1e) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "n050001a.1f8", 0x000000, 0x080000, CRC(222e71c8) SHA1(5a598414b859ae6fbe4fb1b4bf622b1198232864) ) + ROM_LOAD( "n050001a.1fc", 0x080000, 0x080000, CRC(12acd064) SHA1(c2d7f55df6e49c54c0cab6d5db4cb82f97c6bab9) ) + ROM_LOAD( "n050001b.1f8", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n050001a.538", 0x000000, 0x40000, CRC(73acaa79) SHA1(1394c93132337469e283053f34c83658a9df771e) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n050001a.638", 0x000001, 0x40000, CRC(7b24359f) SHA1(99c5f59d479afbbc6ab8ef9dc4f90b9b5d42a199) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n050001a.53c", 0x100000, 0x40000, CRC(ad56623d) SHA1(afeaeed8917f259905a5cb46deb42bf6b0e7fd35) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n050001a.63c", 0x100001, 0x40000, CRC(0913a784) SHA1(5cee03ff0b41c58ad0b663c4bf100ae4a2152ee1) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n050001b.538", 0x200000, 0x40000, CRC(c8d763cd) SHA1(1d489c22bedd324d19cb02bed874e986f2627152) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n050001b.638", 0x200001, 0x40000, CRC(574612ec) SHA1(6c5863f2fc7b63808e8762aa839614919034aaa8) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n050001b.53c", 0x300000, 0x40000, CRC(63829529) SHA1(132f835fc2a6ca073700b1935ce3ebd32ba37f3e) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n050001b.63c", 0x300001, 0x40000, CRC(990d302a) SHA1(e0d07eb287b2ad143c72eeef39a3455d9d802a4a) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( ridherod ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n006001a.038", 0x000001, 0x040000, CRC(dabfac95) SHA1(234750f08954a94b2846f7ab79b67d6db2b67f6e) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_64K( "n006001a.378", CRC(197d1a28) SHA1(3f6ec453ebdead50c9fabd71071817b699a8a82c) ) + + NEO_BIOS_AUDIO_64K( "n006001a.478", CRC(f7196558) SHA1(88c9183db5cb24849a8a548cd48d0732ee1e6219) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "n006001a.178", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) + ROM_LOAD( "n006001a.17c", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) + + ROM_REGION( 0x200000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n006001a.278", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) + ROM_LOAD( "n006001a.27c", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) + ROM_LOAD( "n006001b.278", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) + ROM_LOAD( "n006001b.27c", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n006001a.538", 0x000000, 0x40000, CRC(24096241) SHA1(60a3dd2400be7208c7a471a813621a778f083240) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n006001a.638", 0x000001, 0x40000, CRC(df6a5b00) SHA1(ffd55c36847b0caa7b94b102ef3409d89e0d66c7) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n006001a.53c", 0x100000, 0x40000, CRC(7026a3a2) SHA1(55f70d2604832125c06742d75ce8ccf5c047d580) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n006001a.63c", 0x100001, 0x40000, CRC(15220d51) SHA1(72ad9e0381f84a33219255d42223bca01a23927c) ) + ROM_CONTINUE( 0x100003, 0x40000 ) +ROM_END + +ROM_START( roboarmyd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n032001a.038", 0x000001, 0x040000, CRC(99c7b4fc) SHA1(06a5bd4dd8f6db81eb36d0a8f0612caa1c917325) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n032001a.378", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) + + NEO_BIOS_AUDIO_128K( "n032001a.4f8", CRC(98edc671) SHA1(04ed65ccaa1197fa55fcefe2caed2772e7040bdb) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n032001a.1f8", 0x000000, 0x080000, CRC(daff9896) SHA1(2f8a39b98ff2f4a0c8901b1befcc69e0cc5f5aed) ) + ROM_LOAD( "n032001a.1fc", 0x080000, 0x080000, CRC(8781b1bc) SHA1(4e3cc22ac0acd4033cd4a327269c68b5f56bbe34) ) + ROM_LOAD( "n032001b.1f8", 0x100000, 0x080000, CRC(b69c1da5) SHA1(7d5ea49338aeef711fc64755abed51fcdd939d48) ) + ROM_LOAD( "n032001b.1fc", 0x180000, 0x080000, CRC(2c929c17) SHA1(7e053035573de9f601de80d200d09ed4844506fe) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n032001a.538", 0x000000, 0x40000, CRC(e3afaf17) SHA1(b11a45e77f10764f8c845a258d4add74146f1ffe) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n032001a.638", 0x000001, 0x40000, CRC(3a098b3b) SHA1(93520f664a76de7fac0baeb81daae8943aef0749) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n032001a.53c", 0x100000, 0x40000, CRC(17098f54) SHA1(69c775685f29e6b6af4f2bed1570bdd7a9c20cec) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n032001a.63c", 0x100001, 0x40000, CRC(8e3b2b88) SHA1(3ae3c3a5b64a523b294f1166f5506c850edc7f15) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n032001b.538", 0x200000, 0x40000, CRC(13cbb7c5) SHA1(2f3a92dccd440a5dd9542f423ac74ee3f4255066) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n032001b.638", 0x200001, 0x40000, CRC(b6f5fc62) SHA1(5d520d2cdd2d99e7d1c9f3c20448464318c8a03c) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( sengokud ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n017001a.038", 0x000001, 0x040000, CRC(4483bae1) SHA1(ca5f41be42cd9ce1a2c5007f068514500849a7f4) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n017001a.03c", 0x080001, 0x040000, CRC(d0d55b2a) SHA1(3800154495fbc2f62a539604bf6e5f156316dccd) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n017001a.378", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) + + NEO_BIOS_AUDIO_128K( "n017001a.4f8", CRC(e7bc4a94) SHA1(236d8dddafe5215558f3b0fbb2de3d6c39dd622b) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n017001a.1f8", 0x000000, 0x080000, CRC(205258a7) SHA1(4cd463a78575d7e74c871660588dc0fe17cce07d) ) + ROM_LOAD( "n017001a.1fc", 0x080000, 0x080000, CRC(6fbe52c8) SHA1(487f07968854ba3238ba2c612c8b20196f94cab2) ) + ROM_LOAD( "n017001b.1f8", 0x100000, 0x080000, CRC(6421bdf3) SHA1(823ffcbb9fc8b1219857b8cb6e089e2e21144ab3) ) + ROM_LOAD( "n017001b.1fc", 0x180000, 0x080000, CRC(1f9578fb) SHA1(7ccdb0e960d6e425e773a99208180dcf5ee7856f) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n017001a.538", 0x000000, 0x40000, CRC(e834b925) SHA1(08cfdcf232f3319f62b00cfec5c02b55d7c3405e) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n017001a.638", 0x000001, 0x40000, CRC(96de5eb9) SHA1(a70dfbffb109ddec5b4a2c6f60756d6717fce03b) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n017001a.53c", 0x100000, 0x40000, CRC(66be6d46) SHA1(3cd5bf09f994159caff23ba01700e7531ebc5b57) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n017001a.63c", 0x100001, 0x40000, CRC(25f5fd7b) SHA1(f1b2d58c6b73f3001751bf4c81f3d8664c96091c) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n017001b.538", 0x200000, 0x40000, CRC(443c552c) SHA1(75203f58935eb6a554542bb6ece457f8a2b51adb) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n017001b.638", 0x200001, 0x40000, CRC(afbd5b0b) SHA1(639fecb5afd5fb31ba169149d61830330169d7df) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n017001b.53c", 0x300000, 0x40000, CRC(ecb41adc) SHA1(741ddfdb8cbfacd95c37243dbf098a09ad6d6f0b) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n017001b.63c", 0x300001, 0x40000, CRC(78b25278) SHA1(c1ed3be0e0bc5c6bebaee1bb851cfb9c0b8b243f) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( sengoku2d ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n040001a.038", 0x000001, 0x040000, CRC(d1bf3fa5) SHA1(4a6c82d9294980eca6f9311d62f4d683baca173e) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n040001a.03c", 0x080001, 0x040000, CRC(ee9d0bb4) SHA1(27748b3a1b2e59cda29a85a6a467e1a46be3fe60) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n040001a.378", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) ) + + NEO_BIOS_AUDIO_128K( "n040001a.4f8", CRC(9902dfa2) SHA1(af6284c5298328156726b76b968995ad25fdf4de) ) + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "n040001a.1f8", 0x000000, 0x080000, CRC(e6e9d82f) SHA1(a4691ef7719c55fa665dbe8f4420008cf6f23ae2) ) + ROM_LOAD( "n040001a.1fc", 0x080000, 0x080000, CRC(0504e71e) SHA1(856a200e2e4c39c0985d10b1dcd75e89e69b6f5d) ) + ROM_LOAD( "n040001b.1f8", 0x100000, 0x080000, CRC(e6c57d21) SHA1(e1f1403c3340be1ab66f027b2678bee3267b9f3c) ) + ROM_LOAD( "n040001b.1fc", 0x180000, 0x080000, CRC(000d319d) SHA1(88424ceca50e03ed41bad0493461bccfee519ec5) ) + ROM_LOAD( "n040001c.1f8", 0x200000, 0x080000, CRC(6650bc9a) SHA1(43e9da8176b9c282eaaaf8963fd7c7bd83d61953) ) + ROM_LOAD( "n040001c.1fc", 0x280000, 0x080000, CRC(c6358d62) SHA1(ca1d72a8a3ea9a2b5a800aeb091098d723eef963) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n040001a.538", 0x000000, 0x40000, CRC(da18aaed) SHA1(926500715ba30a5fad128ba877ca5f59bd98399b) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n040001a.638", 0x000001, 0x40000, CRC(5b27c829) SHA1(166ff9359b819a068763e868da69cf67976ec8c8) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n040001a.53c", 0x100000, 0x40000, CRC(19796c4f) SHA1(cf15a65c6bc5243978df6c91b3dce120e4b6db4a) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n040001a.63c", 0x100001, 0x40000, CRC(e8b46e26) SHA1(5b47903fd7b9783e6e18bbff33e0d7747305bda9) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n040001b.538", 0x200000, 0x40000, CRC(891b6386) SHA1(9d5e3b2fb6c2247712637f0f7b647042e0485eb6) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n040001b.638", 0x200001, 0x40000, CRC(93d25955) SHA1(039567a2426794bac9a502d7a46ed13bcc804764) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n040001b.53c", 0x300000, 0x40000, CRC(891b6386) SHA1(9d5e3b2fb6c2247712637f0f7b647042e0485eb6) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n040001b.63c", 0x300001, 0x40000, CRC(93d25955) SHA1(039567a2426794bac9a502d7a46ed13bcc804764) ) + ROM_CONTINUE( 0x300003, 0x40000 ) + ROM_LOAD32_BYTE( "n040001c.538", 0x400000, 0x40000, CRC(c5eaabe8) SHA1(724f0b47e7e166b65b5e5fee790850aed15d2885) ) + ROM_CONTINUE( 0x400002, 0x40000 ) + ROM_LOAD32_BYTE( "n040001c.638", 0x400001, 0x40000, CRC(432bd7d0) SHA1(662179ed7c82f9f825b89650761db093ef9f7467) ) + ROM_CONTINUE( 0x400003, 0x40000 ) + ROM_LOAD32_BYTE( "n040001c.53c", 0x500000, 0x40000, CRC(22633905) SHA1(3afcf2bf752afa1593f144a8a9749736a09f6738) ) + ROM_CONTINUE( 0x500002, 0x40000 ) + ROM_LOAD32_BYTE( "n040001c.63c", 0x500001, 0x40000, CRC(ba3f54b2) SHA1(796ac0d021552b2ed1b95f11cad1e5e1530abcc7) ) + ROM_CONTINUE( 0x500003, 0x40000 ) + ROM_LOAD32_BYTE( "n040001d.538", 0x600000, 0x40000, CRC(891b6386) SHA1(9d5e3b2fb6c2247712637f0f7b647042e0485eb6) ) + ROM_CONTINUE( 0x600002, 0x40000 ) + ROM_LOAD32_BYTE( "n040001d.638", 0x600001, 0x40000, CRC(93d25955) SHA1(039567a2426794bac9a502d7a46ed13bcc804764) ) + ROM_CONTINUE( 0x600003, 0x40000 ) + ROM_LOAD32_BYTE( "n040001d.53c", 0x700000, 0x40000, CRC(891b6386) SHA1(9d5e3b2fb6c2247712637f0f7b647042e0485eb6) ) + ROM_CONTINUE( 0x700002, 0x40000 ) + ROM_LOAD32_BYTE( "n040001d.63c", 0x700001, 0x40000, CRC(93d25955) SHA1(039567a2426794bac9a502d7a46ed13bcc804764) ) + ROM_CONTINUE( 0x700003, 0x40000 ) +ROM_END + +ROM_START( socbrawld ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n031001a.038", 0x000001, 0x040000, CRC(9fa17911) SHA1(b5a86cc8c8b6e44e392deb6e975ee59076c4392a) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + + NEO_SFIX_128K( "n031001a.378", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) + + NEO_BIOS_AUDIO_128K( "n031001a.4f8", CRC(bc45269b) SHA1(19b82e7174a6fe5caaec35c0603944a090a43b65) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "n031001a.1f8", 0x000000, 0x080000, CRC(670dc165) SHA1(f75d174cfc0d4c16375c58069b923380ae8c6923) ) + ROM_LOAD( "n031001a.1fc", 0x080000, 0x080000, CRC(abb9537b) SHA1(0f272ef6bfdb1b5b0580fe9d01070e4f60b383ff) ) + ROM_LOAD( "n031001b.1f8", 0x100000, 0x080000, CRC(600be43e) SHA1(5639e239910f0fb07f26e4f9816efd77b04f6152) ) + ROM_LOAD( "n031001b.1fc", 0x180000, 0x080000, CRC(88d30359) SHA1(884cabd8a6ccbdd470aab3b7325fdeade01679f0) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n031001a.538", 0x000000, 0x40000, CRC(945bf77c) SHA1(0f971d5c21c051d2298866b69c96715f583fe521) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n031001a.638", 0x000001, 0x40000, CRC(6708fc58) SHA1(230253fbe761cb1164efb9a3c91ac1f24f57295b) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n031001a.53c", 0x100000, 0x40000, CRC(9a210d0d) SHA1(be9b9587c138679e2fb299455d98e2ac6ffad63b) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n031001a.63c", 0x100001, 0x40000, CRC(9a97c680) SHA1(746a5cb5bf713c806cef24d21347f5b96c86ccab) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n031001b.538", 0x200000, 0x40000, CRC(057dbb51) SHA1(cab14d98cbbfc0e5714082fd2db8c73e9c6cd684) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n031001b.638", 0x200001, 0x40000, CRC(434c17c8) SHA1(629dc40ab09ac0a2f55234bc34c4ba63c0b8912f) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( superspyd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n011001a.038", 0x000001, 0x040000, CRC(2e949e32) SHA1(c5a5bb996c5c0224b27813a76223c56860ddb399) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n011001a.03c", 0x080001, 0x040000, CRC(54443d72) SHA1(5cb78d50996c1f9a182e9350d94ba2953463ed4b) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n011001a.378", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) ) + + NEO_BIOS_AUDIO_64K( "n011001a.478", CRC(64455806) SHA1(454e95503be8ec5dd2332da1ce08c832a2ab81b8) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "n011001a.178", 0x000000, 0x080000, CRC(b993bc83) SHA1(b7689a57120b9eb3d23b6675f8791c117360a267) ) + ROM_LOAD( "n011001a.17c", 0x080000, 0x080000, CRC(d7a059b1) SHA1(b13c1c674f66cb6852f0a206554e4616f5fde236) ) + ROM_LOAD( "n011001b.178", 0x100000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) + ROM_LOAD( "n011001b.17c", 0x180000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) + ROM_LOAD( "n011001c.178", 0x200000, 0x080000, CRC(b993bc83) SHA1(b7689a57120b9eb3d23b6675f8791c117360a267) ) + ROM_LOAD( "n011001c.17c", 0x280000, 0x080000, CRC(d7a059b1) SHA1(b13c1c674f66cb6852f0a206554e4616f5fde236) ) + ROM_LOAD( "n011001d.178", 0x300000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) + ROM_LOAD( "n011001d.17c", 0x380000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) + + ROM_REGION( 0x100000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n011001a.278", 0x000000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) ) + ROM_LOAD( "n011001a.27c", 0x080000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n011001a.538", 0x000000, 0x40000, CRC(239f22c4) SHA1(91f985fb9acb36ab5f8877f62c0476a291f3b591) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n011001a.638", 0x000001, 0x40000, CRC(5f2e5184) SHA1(b2704eff6815da611f0f2ad15f2a85d482a111d3) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n011001a.53c", 0x100000, 0x40000, CRC(ce80c326) SHA1(3f1f72d923dde87e87bc74080cc1858f42413ab2) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n011001a.63c", 0x100001, 0x40000, CRC(79b3e0b1) SHA1(1f627f7b8d86292d4f4cdc0f15782d060a91b551) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n011001b.538", 0x200000, 0x40000, CRC(1edcf268) SHA1(a691f76980e7a0da63948a5d75f32afa6c92c9c3) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n011001b.638", 0x200001, 0x40000, CRC(b2afe822) SHA1(56d623e4a468ac88c6bbc54ff6f640a7aa5f93f5) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n011001b.53c", 0x300000, 0x40000, CRC(a41602a0) SHA1(95ee2162de50be72982edcecb437995a43d39a07) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n011001b.63c", 0x300001, 0x40000, CRC(d425f967) SHA1(4085782d440ad265ae45f43c83b1d1fa96d15524) ) + ROM_CONTINUE( 0x300003, 0x40000 ) + ROM_LOAD32_BYTE( "n011001c.538", 0x400000, 0x40000, CRC(239f22c4) SHA1(91f985fb9acb36ab5f8877f62c0476a291f3b591) ) + ROM_CONTINUE( 0x400002, 0x40000 ) + ROM_LOAD32_BYTE( "n011001c.638", 0x400001, 0x40000, CRC(5f2e5184) SHA1(b2704eff6815da611f0f2ad15f2a85d482a111d3) ) + ROM_CONTINUE( 0x400003, 0x40000 ) + ROM_LOAD32_BYTE( "n011001c.53c", 0x500000, 0x40000, CRC(ce80c326) SHA1(3f1f72d923dde87e87bc74080cc1858f42413ab2) ) + ROM_CONTINUE( 0x500002, 0x40000 ) + ROM_LOAD32_BYTE( "n011001c.63c", 0x500001, 0x40000, CRC(79b3e0b1) SHA1(1f627f7b8d86292d4f4cdc0f15782d060a91b551) ) + ROM_CONTINUE( 0x500003, 0x40000 ) + ROM_LOAD32_BYTE( "n011001d.538", 0x600000, 0x40000, CRC(1edcf268) SHA1(a691f76980e7a0da63948a5d75f32afa6c92c9c3) ) + ROM_CONTINUE( 0x600002, 0x40000 ) + ROM_LOAD32_BYTE( "n011001d.638", 0x600001, 0x40000, CRC(b2afe822) SHA1(56d623e4a468ac88c6bbc54ff6f640a7aa5f93f5) ) + ROM_CONTINUE( 0x600003, 0x40000 ) + ROM_LOAD32_BYTE( "n011001d.53c", 0x700000, 0x40000, CRC(a41602a0) SHA1(95ee2162de50be72982edcecb437995a43d39a07) ) + ROM_CONTINUE( 0x700002, 0x40000 ) + ROM_LOAD32_BYTE( "n011001d.63c", 0x700001, 0x40000, CRC(d425f967) SHA1(4085782d440ad265ae45f43c83b1d1fa96d15524) ) + ROM_CONTINUE( 0x700003, 0x40000 ) +ROM_END + +ROM_START( tpgolfd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n003001a.038", 0x000001, 0x040000, CRC(542e93d9) SHA1(530d8e344481ae98edd4ca8b86146c44f587228f) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n003001a.03c", 0x080001, 0x040000, CRC(03f1bead) SHA1(b2e40d936636e5d2108fcdf4f440095b3e6da9b5) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n003001a.378", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) ) + + NEO_BIOS_AUDIO_64K( "n003001a.478", CRC(7851d0d9) SHA1(d021cef958cc37ab170b78d7a4b3ae94947e4d13) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "n003001a.178", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) ) + + ROM_REGION( 0x100000, "ymsnd.deltat", 0 ) + ROM_LOAD( "n003001a.278", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) ) + ROM_LOAD( "n003001a.27c", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n003001a.538", 0x000000, 0x40000, CRC(67633f80) SHA1(951e11f5f74434a3ce9b11bf75b822b2ffbf2c8f) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n003001a.638", 0x000001, 0x40000, CRC(ba49936b) SHA1(c5eb478da0dc409bc5853438387a93d9a2ecdd04) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n003001a.53c", 0x100000, 0x40000, CRC(bed644d0) SHA1(687ebf0928983e6e795619124a90696c3de3d55d) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n003001a.63c", 0x100001, 0x40000, CRC(7fc96498) SHA1(f97da62165388d321ef6e31b3121b14e17fa9a5f) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n003001b.538", 0x200000, 0x40000, CRC(977a0ea9) SHA1(a2704d9a4a576058feacd237bb7ba28508df0207) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n003001b.638", 0x200001, 0x40000, CRC(a56853ec) SHA1(242e65c73b63adc0cd527bcdb03ac82fde5be5ef) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n003001b.53c", 0x300000, 0x40000, CRC(bc0ebc0e) SHA1(ed6c4b8b126ea66e75666358c02cbfe2e90985fe) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n003001b.63c", 0x300001, 0x40000, CRC(81347ea7) SHA1(8f7b78c91f449ba8e8d449ad436dd5421b6f12a6) ) + ROM_CONTINUE( 0x300003, 0x40000 ) +ROM_END + +ROM_START( trallyd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n038001a.038", 0x000001, 0x040000, CRC(400bed38) SHA1(9ccc6a505e98e964db9253b50ae549a8d13beffb) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n038001a.03c", 0x080001, 0x040000, CRC(77196e9a) SHA1(31490ce2b97f67e9571ace32d97217232113fb72) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n038001a.378", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) ) + + NEO_BIOS_AUDIO_64K( "n038001a.4f8", CRC(308c4a8d) SHA1(6b1e5790442bcf4e3a9fb896bbd293eb33fb4990) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "n038001a.1f8", 0x000000, 0x080000, CRC(1c93fb89) SHA1(a5056e33552e3e6fc3570d41e893a73d78086077) ) + ROM_LOAD( "n038001a.1fc", 0x080000, 0x080000, CRC(39f18253) SHA1(97622e15ebc180dc24d5b9049d6603cbe039dc81) ) + ROM_LOAD( "n038001b.1f8", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n038001a.538", 0x000000, 0x40000, CRC(4d002ecb) SHA1(07330d6cbcd126bd67c702cc351ac4f668108e55) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n038001a.638", 0x000001, 0x40000, CRC(6b2f79de) SHA1(7725b9b66738a6f9fe9456cc6aadd4fa98d50bff) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n038001a.53c", 0x100000, 0x40000, CRC(b0be56db) SHA1(f511e1ef9074eec9bff37f22607cd5b491860ee7) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n038001a.63c", 0x100001, 0x40000, CRC(091f38b4) SHA1(0e579029524f004370d1c93d7b14ad47243bee66) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n038001b.538", 0x200000, 0x40000, CRC(2f213750) SHA1(fe5a8cd26b52928afeece5504ecca7ec452b7027) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n038001b.638", 0x200001, 0x40000, CRC(268be38b) SHA1(98f9dfee915ddf8d858297075c7b7d6731527aa3) ) + ROM_CONTINUE( 0x200003, 0x40000 ) +ROM_END + +ROM_START( wh1d ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE ( "n053001a.038", 0x000001, 0x040000, CRC(ab39923d) SHA1(be9fc3c89a452e64d02231d531bb298d201ef002) ) + ROM_CONTINUE ( 0x000000, 0x040000 ) + ROM_LOAD16_BYTE ( "n053001a.03c", 0x080001, 0x040000, CRC(5adc98ef) SHA1(0c87725b343f7705f974de71c4bc46afdc75c80b) ) + ROM_CONTINUE ( 0x080000, 0x040000 ) + + NEO_SFIX_128K( "n053001a.378", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) + + NEO_BIOS_AUDIO_128K( "n053001a.4f8", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "n053001a.1f8", 0x000000, 0x080000, CRC(77994663) SHA1(7adaddf13177b1d18604611dfae7fc43b35a0766) ) + ROM_LOAD( "n053001a.1fc", 0x080000, 0x080000, CRC(d74ad0da) SHA1(fe71db5808d46f7b56ea7603e500534cd8ab8beb) ) + ROM_LOAD( "n053001b.1f8", 0x100000, 0x080000, CRC(9d5fe808) SHA1(825eb3727d67e1cf8d8e254576de52952a35c25c) ) + ROM_LOAD( "n053001b.1fc", 0x180000, 0x080000, CRC(883fb383) SHA1(ceef987b5e8ce9c0201eb0c66628456b99b41fd2) ) + ROM_LOAD( "n053001c.1f8", 0x200000, 0x080000, CRC(b4ff60d7) SHA1(a1615ec7b309839fd0e690e57d19ab5a857eef1d) ) + ROM_LOAD( "n053001c.1fc", 0x280000, 0x080000, CRC(b358e4f5) SHA1(6b74306beb801f9e35e1a948b2508a38facb2080) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD32_BYTE( "n053001a.538", 0x000000, 0x40000, CRC(ad8fcc5d) SHA1(67683d40fa438032a3e9f5997c7ca5b798f50325) ) + ROM_CONTINUE( 0x000002, 0x40000 ) + ROM_LOAD32_BYTE( "n053001a.638", 0x000001, 0x40000, CRC(3182b4db) SHA1(371f898f5ef28b1efe8129fa6837ee31452e0881) ) + ROM_CONTINUE( 0x000003, 0x40000 ) + ROM_LOAD32_BYTE( "n053001a.53c", 0x100000, 0x40000, CRC(0dca726e) SHA1(9c9ea623102818b0c551a998be8b909c16967896) ) + ROM_CONTINUE( 0x100002, 0x40000 ) + ROM_LOAD32_BYTE( "n053001a.63c", 0x100001, 0x40000, CRC(1cb0a840) SHA1(c52b1dd8b4860d1bcff207f0f7c2278dfa195219) ) + ROM_CONTINUE( 0x100003, 0x40000 ) + ROM_LOAD32_BYTE( "n053001b.538", 0x200000, 0x40000, CRC(bb807a43) SHA1(f0583c2bd3ad69f12d3635edece4480414497395) ) + ROM_CONTINUE( 0x200002, 0x40000 ) + ROM_LOAD32_BYTE( "n053001b.638", 0x200001, 0x40000, CRC(c9f439f8) SHA1(be7ba30e5cfe22341f61ea2571cec551a5793bf3) ) + ROM_CONTINUE( 0x200003, 0x40000 ) + ROM_LOAD32_BYTE( "n053001b.53c", 0x300000, 0x40000, CRC(e913f93c) SHA1(af17419e46aa4f4809fc2f620a6e2d109fe17197) ) + ROM_CONTINUE( 0x300002, 0x40000 ) + ROM_LOAD32_BYTE( "n053001b.63c", 0x300001, 0x40000, CRC(80441c48) SHA1(fdfab6abd4e2212635c47270df27108c1904a15b) ) + ROM_CONTINUE( 0x300003, 0x40000 ) + ROM_LOAD32_BYTE( "n053001c.538", 0x400000, 0x40000, CRC(3c359a14) SHA1(3415bc48511d57bb54f926df1e282ee02787776d) ) + ROM_CONTINUE( 0x400002, 0x40000 ) + ROM_LOAD32_BYTE( "n053001c.638", 0x400001, 0x40000, CRC(7c4b85b4) SHA1(ae7b199f6e59b1b697c36e21ddfc525d6ad77c83) ) + ROM_CONTINUE( 0x400003, 0x40000 ) + ROM_LOAD32_BYTE( "n053001c.53c", 0x500000, 0x40000, CRC(b1327d84) SHA1(02f58cb1a18448f1f3c3752bb802b6f737151b9d) ) + ROM_CONTINUE( 0x500002, 0x40000 ) + ROM_LOAD32_BYTE( "n053001c.63c", 0x500001, 0x40000, CRC(959f29db) SHA1(f1126098840fb602c8b3349111e5954b73a66934) ) + ROM_CONTINUE( 0x500003, 0x40000 ) + ROM_LOAD32_BYTE( "n053001d.538", 0x600000, 0x40000, CRC(bb807a43) SHA1(f0583c2bd3ad69f12d3635edece4480414497395) ) + ROM_CONTINUE( 0x600002, 0x40000 ) + ROM_LOAD32_BYTE( "n053001d.638", 0x600001, 0x40000, CRC(c9f439f8) SHA1(be7ba30e5cfe22341f61ea2571cec551a5793bf3) ) + ROM_CONTINUE( 0x600003, 0x40000 ) + ROM_LOAD32_BYTE( "n053001d.53c", 0x700000, 0x40000, CRC(e913f93c) SHA1(af17419e46aa4f4809fc2f620a6e2d109fe17197) ) + ROM_CONTINUE( 0x700002, 0x40000 ) + ROM_LOAD32_BYTE( "n053001d.63c", 0x700001, 0x40000, CRC(80441c48) SHA1(fdfab6abd4e2212635c47270df27108c1904a15b) ) + ROM_CONTINUE( 0x700003, 0x40000 ) +ROM_END + + +GAME( 1993, 3countbd, 3countb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bbd, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, alpham2d, alpham2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, androdund, androdun, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, aofd, aof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bakatonod, bakatono, neogeo_mj, neogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuki (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bstarsd, bstars, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfd, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, crswordd, crsword, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, cyberlipd, cyberlip, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, eightmand, eightman, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, fatfury1d, fatfury1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fbfrenzyd, fbfrenzy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilotsd, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, joyjoyd, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kotmd, kotm, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lbowlingd, lbowling, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, lresortd, lresort, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, maglordd, maglord, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, minasand, minasan, neogeo_mj, neogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minnasanno Okagesamadesu (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mutnatd, mutnat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ncombatd, ncombat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ncommandd, ncommand, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co", "Ninja Commando (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ridherod, ridhero, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, roboarmyd, roboarmy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sengokud, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sengoku2d, sengoku2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, socbrawld, socbrawl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, superspyd, superspy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, tpgolfd, tpgolf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, trallyd, trally, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (MGD2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1d, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (MGD2)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/midtunit.cpp b/docs/release/src/hbmame/drivers/midtunit.cpp new file mode 100644 index 00000000000..bea69007a02 --- /dev/null +++ b/docs/release/src/hbmame/drivers/midtunit.cpp @@ -0,0 +1,323 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/midtunit.cpp" + +ROM_START( mkturbod ) + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) + ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) + + ROM_REGION( 0x200000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) + ROM_RELOAD( 0x40000, 0x40000 ) + ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) + ROM_RELOAD( 0xc0000, 0x40000 ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "kombo-rom-uj-12.bin", 0x00000, 0x80000, CRC(7a441f2d) SHA1(3b731bcbd73721ea0cc20157ec5181d25922523c) ) + ROM_LOAD16_BYTE( "kombo-hacked-ug-12.bin", 0x00001, 0x80000, CRC(bfab4bb6) SHA1(fc48b4b1fd4f32d9a597e292a1121916c98968d1) ) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) + ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) + ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) + ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) ) + + ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) ) + ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) ) + ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) ) + ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) ) + + ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) ) + ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) ) + ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) ) + ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) ) +ROM_END + +ROM_START( mktturboen ) + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) + ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) + + ROM_REGION( 0x100000, "adpcm:oki", 0 ) + ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) + ROM_RELOAD( 0x40000, 0x40000 ) + ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) + ROM_RELOAD( 0xc0000, 0x40000 ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_LOAD16_BYTE( "kombo-romen-uj-12.bin", 0x00000, 0x80000, CRC(53069455) SHA1(f86da6036844b3e996fa9b3769e4f9979a920b28) ) + ROM_LOAD16_BYTE( "kombo-rom-ug-12.bin", 0x00001, 0x80000, CRC(45bed5a1) SHA1(dba2c21878925afdcaf61520c18ebefd5e9617db) ) + ROM_FILL(0xF7914, 1, 0x60) + ROM_FILL(0xF7915, 1, 0x09) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) + ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) + ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) + ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) ) + + ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) ) + ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) ) + ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) ) + ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) ) + + ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) ) + ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) ) + ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) ) + ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) ) +ROM_END + +ROM_START( mktturbopi ) + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) + ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) + + ROM_REGION( 0x100000, "adpcm:oki", 0 ) + ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) + ROM_RELOAD( 0x40000, 0x40000 ) + ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) + ROM_RELOAD( 0xc0000, 0x40000 ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "kombo-rompi-uj-12.bin", 0x00000, 0x80000, CRC(f4a9a289) SHA1(a94b0a5796457c6f2789e9fd5a1cb80fd6dcf22b) ) + ROM_LOAD16_BYTE( "kombo-rom-ug-12.bin", 0x00001, 0x80000, CRC(45bed5a1) SHA1(dba2c21878925afdcaf61520c18ebefd5e9617db) ) + ROM_FILL(0xF7914, 1, 0x60) + ROM_FILL(0xF7915, 1, 0x09) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) + ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) + ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) + ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) ) + + ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) ) + ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) ) + ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) ) + ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) ) + + ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) ) + ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) ) + ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) ) + ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) ) +ROM_END + +ROM_START( mk2r33 ) + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) + ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) + ROM_RELOAD( 0x100000, 0x80000 ) + ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) + ROM_RELOAD( 0x300000, 0x80000 ) + ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) + ROM_RELOAD( 0x500000, 0x80000 ) + ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) + ROM_RELOAD( 0x700000, 0x80000 ) + ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) + ROM_RELOAD( 0x900000, 0x80000 ) + ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) + ROM_RELOAD( 0xb00000, 0x80000 ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "uj12.l33", 0x00000, 0x80000, CRC(84cb0bf4) SHA1(098e0b5be75c60733f3a63893431506cb99f0981) ) + ROM_LOAD16_BYTE( "ug12.l33", 0x00001, 0x80000, CRC(2021ec4f) SHA1(7f357abd7ae66eda8eae2b318426da668cfe1deb) ) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) + ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) + ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) + ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) + + ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) + ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) + ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) + ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) + + ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) + ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) + ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) + ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) +ROM_END + +ROM_START( umk2te50 ) + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) + ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) + ROM_RELOAD( 0x100000, 0x80000 ) + ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) + ROM_RELOAD( 0x300000, 0x80000 ) + ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) + ROM_RELOAD( 0x500000, 0x80000 ) + ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) + ROM_RELOAD( 0x700000, 0x80000 ) + ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) + ROM_RELOAD( 0x900000, 0x80000 ) + ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) + ROM_RELOAD( 0xb00000, 0x80000 ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "uj12.l50", 0x00000, 0x80000, CRC(62ef20f8) SHA1(0e0392bb4b59fb4e01369f533fdcfa6ee5fb6939) ) + ROM_LOAD16_BYTE( "ug12.l50", 0x00001, 0x80000, CRC(8c66e999) SHA1(ddb9f39149a7ded105f2e993a4c39c473067adf6) ) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) + ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) + ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) + ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) + + ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) + ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) + ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) + ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) + + ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) + ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) + ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) + ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) +ROM_END + +ROM_START( umk2te51 ) + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) + ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) + ROM_RELOAD( 0x100000, 0x80000 ) + ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) + ROM_RELOAD( 0x300000, 0x80000 ) + ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) + ROM_RELOAD( 0x500000, 0x80000 ) + ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) + ROM_RELOAD( 0x700000, 0x80000 ) + ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) + ROM_RELOAD( 0x900000, 0x80000 ) + ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) + ROM_RELOAD( 0xb00000, 0x80000 ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "uj12.l51", 0x00000, 0x80000, CRC(fbf97b24) SHA1(902614ce3a4527d1a78e148a876cd321ea221e8f) ) + ROM_LOAD16_BYTE( "ug12.l51", 0x00001, 0x80000, CRC(8d67c168) SHA1(699bf8e6924429221ace092fb66ae4c85eede8d2) ) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) + ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) + ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) + ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) + + ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) + ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) + ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) + ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) + + ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) + ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) + ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) + ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) +ROM_END + +ROM_START( umk2te52 ) + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) + ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) + ROM_RELOAD( 0x100000, 0x80000 ) + ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) + ROM_RELOAD( 0x300000, 0x80000 ) + ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) + ROM_RELOAD( 0x500000, 0x80000 ) + ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) + ROM_RELOAD( 0x700000, 0x80000 ) + ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) + ROM_RELOAD( 0x900000, 0x80000 ) + ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) + ROM_RELOAD( 0xb00000, 0x80000 ) + /* su8 and su9 are unpopulated */ + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "uj12.l52", 0x00000, 0x80000, CRC(a027088c) SHA1(10aced067d8e3a5fe905c07e2ee27904e3dd8855) ) + ROM_LOAD16_BYTE( "ug12.l52", 0x00001, 0x80000, CRC(474cf238) SHA1(fee96dc9390ade206be3768812040f3bb4ea1e2c) ) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) + ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) + ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) + ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) + + ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) + ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) + ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) + ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) + + ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) + ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) + ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) + ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) +ROM_END + +ROM_START( mkfr ) + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) + ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) + + ROM_REGION( 0x100000, "adpcm:oki", 0 ) + ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) + ROM_RELOAD( 0x40000, 0x40000 ) + ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) + ROM_RELOAD( 0xc0000, 0x40000 ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "mkt-uj12f.bin", 0x00000, 0x80000, CRC(4192e38f) SHA1(abe2e6f643a36df48a23aaa2f9027c78c6078d2d) ) + ROM_LOAD16_BYTE( "mkt-ug12f.bin", 0x00001, 0x80000, CRC(8799979d) SHA1(4f094540e68c03fbd03cd8731797c55e455f61e6) ) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) + ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) + ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) + ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) ) + + ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) ) + ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) ) + ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) ) + ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) ) + + ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) ) + ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) ) + ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) ) + ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) ) +ROM_END + +ROM_START( mk2fr ) + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) + ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) + ROM_RELOAD( 0x100000, 0x80000 ) + ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) + ROM_RELOAD( 0x300000, 0x80000 ) + ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) + ROM_RELOAD( 0x500000, 0x80000 ) + ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) + ROM_RELOAD( 0x700000, 0x80000 ) + ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) + ROM_RELOAD( 0x900000, 0x80000 ) + ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) + ROM_RELOAD( 0xb00000, 0x80000 ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "uj12fr.l31", 0x00000, 0x80000, CRC(0f801e9b) SHA1(b0dc620e1be6b89ff0a1dcd64eec678e81a2ea69) ) + ROM_LOAD16_BYTE( "ug12fr.l31", 0x00001, 0x80000, CRC(d896c9b6) SHA1(61e26c6acaf810e0788aef31000056e524b87b06) ) + + ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) + ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) + ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) + ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) + + ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) + ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) + ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) + ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) + + ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) + ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) + ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) + ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) +ROM_END + + +GAME( 1992, mkturbod, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "hack", "Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, mktturboen, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Zenomorp", "Mortal Kombat (Turbo Endurance)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, mktturbopi, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Zenomorp", "Mortal Kombat (Projectile Insanity)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r33, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.3 (prototype))", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, umk2te50, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.050)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, umk2te51, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.051)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, umk2te52, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.052)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, mkfr, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Arkatrad", "Mortal Kombat (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, mk2fr, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Arkatrad", "Mortal Kombat II (French)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/midwunit.cpp b/docs/release/src/hbmame/drivers/midwunit.cpp new file mode 100644 index 00000000000..05c13dd2eee --- /dev/null +++ b/docs/release/src/hbmame/drivers/midwunit.cpp @@ -0,0 +1,161 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/midwunit.cpp" + +ROM_START( umk3j ) + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) + ROM_LOAD16_BYTE( "umk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) + ROM_LOAD16_BYTE( "umk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) + ROM_LOAD16_BYTE( "umk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_LOAD16_BYTE( "umk3j-u54.bin", 0x00000, 0x80000, CRC(7bd7de7b) SHA1(b1787f732c15ff217bdc9ed5f83dbf2589e32cfb) ) + ROM_LOAD16_BYTE( "umk3j-u63.bin", 0x00001, 0x80000, CRC(03ba8907) SHA1(8cf79dc054fe40bc28dbd74a6198468c9ae8c948) ) + + ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "mk3-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) + ROM_LOAD32_BYTE( "mk3-u132.bin", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) + ROM_LOAD32_BYTE( "mk3-u131.bin", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) + ROM_LOAD32_BYTE( "mk3-u130.bin", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) + + ROM_LOAD32_BYTE( "mk3-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) + ROM_LOAD32_BYTE( "mk3-u128.bin", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) + ROM_LOAD32_BYTE( "mk3-u127.bin", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) + ROM_LOAD32_BYTE( "mk3-u126.bin", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) + + ROM_LOAD32_BYTE( "mk3-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) + ROM_LOAD32_BYTE( "mk3-u124.bin", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) + ROM_LOAD32_BYTE( "mk3-u123.bin", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) + ROM_LOAD32_BYTE( "mk3-u122.bin", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) + + ROM_LOAD32_BYTE( "umk3j-u121.bin", 0x0c00000, 0x100000, CRC(d17b30f3) SHA1(d9f65a475bea10aca7aae29dd32fc4b3fdd43aca) ) + ROM_LOAD32_BYTE( "umk3j-u120.bin", 0x0c00001, 0x100000, CRC(c80dbff9) SHA1(e8f903f276487b8aec899d5726b04bef38baf521) ) + ROM_LOAD32_BYTE( "umk3j-u119.bin", 0x0c00002, 0x100000, CRC(518f8083) SHA1(7e2f8e8a40224db00a658dc121df686492bd5d81) ) + ROM_LOAD32_BYTE( "umk3j-u118.bin", 0x0c00003, 0x100000, CRC(bbc57990) SHA1(fcf1a90a607d2a054aa633578671c688a8df580c) ) + + ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) + ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) + ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) ) + ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) ) +ROM_END + +ROM_START( umk3z ) + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) + ROM_LOAD16_BYTE( "umk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) + ROM_LOAD16_BYTE( "umk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) + ROM_LOAD16_BYTE( "umk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_LOAD16_BYTE( "umk3z-u54.bin", 0x00000, 0x80000, CRC(7ea6c327) SHA1(266f67302c8a98e96d077ba42bba47dbe5127882) ) + ROM_LOAD16_BYTE( "umk3z-u63.bin", 0x00001, 0x80000, CRC(51f66368) SHA1(a1e0142e39e123df0e4de525f62328d3c9049244) ) + + ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "mk3-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) + ROM_LOAD32_BYTE( "mk3-u132.bin", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) + ROM_LOAD32_BYTE( "mk3-u131.bin", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) + ROM_LOAD32_BYTE( "mk3-u130.bin", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) + + ROM_LOAD32_BYTE( "mk3-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) + ROM_LOAD32_BYTE( "mk3-u128.bin", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) + ROM_LOAD32_BYTE( "mk3-u127.bin", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) + ROM_LOAD32_BYTE( "mk3-u126.bin", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) + + ROM_LOAD32_BYTE( "mk3-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) + ROM_LOAD32_BYTE( "mk3-u124.bin", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) + ROM_LOAD32_BYTE( "mk3-u123.bin", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) + ROM_LOAD32_BYTE( "mk3-u122.bin", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) + + ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) + ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) + ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) + ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) + + ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) + ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) + ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) ) + ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) ) +ROM_END + +ROM_START( umk3te ) + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) + ROM_LOAD16_BYTE( "mk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) + ROM_LOAD16_BYTE( "mk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) + ROM_LOAD16_BYTE( "mk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_LOAD16_BYTE( "um312te.u54", 0x00000, 0x80000, CRC(6ff000b4) SHA1(4953bf5275e3bbabbd20c3114e8a0be5d10a0176) ) + ROM_LOAD16_BYTE( "um312te.u63", 0x00001, 0x80000, CRC(524b4033) SHA1(c3c16dbc83dfa49a80aa440ec6a4f121371bccd6) ) + + ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "mk3-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) + ROM_LOAD32_BYTE( "mk3-u132.bin", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) + ROM_LOAD32_BYTE( "mk3-u131.bin", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) + ROM_LOAD32_BYTE( "mk3-u130.bin", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) + + ROM_LOAD32_BYTE( "mk3-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) + ROM_LOAD32_BYTE( "mk3-u128.bin", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) + ROM_LOAD32_BYTE( "mk3-u127.bin", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) + ROM_LOAD32_BYTE( "mk3-u126.bin", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) + + ROM_LOAD32_BYTE( "mk3-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) + ROM_LOAD32_BYTE( "mk3-u124.bin", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) + ROM_LOAD32_BYTE( "mk3-u123.bin", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) + ROM_LOAD32_BYTE( "mk3-u122.bin", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) + + ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) + ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) + ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) + ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) + + ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) + ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) + ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) ) + ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) ) +ROM_END + +ROM_START( umk3te2 ) + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) + ROM_LOAD16_BYTE( "mk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) + ROM_LOAD16_BYTE( "mk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) + ROM_LOAD16_BYTE( "mk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_LOAD16_BYTE( "um312te2.u54", 0x00000, 0x80000, CRC(5b6264e5) SHA1(b2c06a729d4cf70e8f5a2721b66e3e2da4a4ca7c) ) + ROM_LOAD16_BYTE( "um312te2.u63", 0x00001, 0x80000, CRC(1ba096e0) SHA1(75aa60c75856e98f99d90c1978429fab1509eae8) ) + + ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_LOAD32_BYTE( "mk3-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) + ROM_LOAD32_BYTE( "mk3-u132.bin", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) + ROM_LOAD32_BYTE( "mk3-u131.bin", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) + ROM_LOAD32_BYTE( "mk3-u130.bin", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) + + ROM_LOAD32_BYTE( "mk3-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) + ROM_LOAD32_BYTE( "mk3-u128.bin", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) + ROM_LOAD32_BYTE( "mk3-u127.bin", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) + ROM_LOAD32_BYTE( "mk3-u126.bin", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) + + ROM_LOAD32_BYTE( "mk3-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) + ROM_LOAD32_BYTE( "mk3-u124.bin", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) + ROM_LOAD32_BYTE( "mk3-u123.bin", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) + ROM_LOAD32_BYTE( "mk3-u122.bin", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) + + ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) + ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) + ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) + ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) + + ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) + ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) + ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) ) + ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) ) +ROM_END + + +GAME( 2010, umk3j, umk3, wunit, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2) Juggernauts Hack v1.0", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, umk3z, umk3, wunit, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2) Zeus hack", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, umk3te, umk3, wunit, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 Tournament Edition (2.0.032b8)", MACHINE_SUPPORTS_SAVE ) +GAME( 2016, umk3te2, umk3, wunit, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 Tournament Edition (2.0.035)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/midyunit.cpp b/docs/release/src/hbmame/drivers/midyunit.cpp new file mode 100644 index 00000000000..0082ef26930 --- /dev/null +++ b/docs/release/src/hbmame/drivers/midyunit.cpp @@ -0,0 +1,36 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/midyunit.cpp" + +ROM_START( mkla4d ) + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_LOAD ( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) + + ROM_REGION( 0x200000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_LOAD ( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) + ROM_RELOAD( 0x40000, 0x40000 ) + ROM_LOAD ( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) + ROM_RELOAD( 0xc0000, 0x40000 ) + + ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */ + ROM_LOAD16_BYTE( "mkg-hacked-u105.la4", 0x00000, 0x80000, CRC(80d5618c) SHA1(9bdfddbc70b61c94c1871abac1de153b8b728761) ) + ROM_LOAD16_BYTE( "mkg-hacked-u89.la4", 0x00001, 0x80000, CRC(0478ae60) SHA1(186243cacc4d83070ef53b47f19668ca4c08474a) ) + + ROM_REGION( 0x800000, "gfx1", 0 ) + ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) ) + ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) ) + ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) ) + ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) ) + + ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) ) + ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) ) + ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) ) + ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) ) + + ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) ) + ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) ) + ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) ) + ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) ) +ROM_END + +GAME( 1992, mkla4d, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/mineswp.cpp b/docs/release/src/hbmame/drivers/mineswp.cpp new file mode 100644 index 00000000000..ee42f7035ba --- /dev/null +++ b/docs/release/src/hbmame/drivers/mineswp.cpp @@ -0,0 +1,256 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/*************************************************************************** + +Minesweeper driver, originally for Dotrikun hardware + +Driver by Robbbert - April 2007 + +CPU : Z-80 (4MHz) +SOUND : (none) + +**************************************************************************** + +Notes from the Readme files + +MINE SWEEPER for SEGA's Dottorikun PCB + +Distributed by Arcade roms from Japan (j-rom) + +This game is the Dottorikun port of the Windows' Mine Sweeper. +It has "Time Limit", "more Stage", etc... + +Usage: + +You must burn DT_MINEJ.BIN to 27128 and replace it to the ROM of +Dottorikun's board. I assume you can find this board easily... + +Rules: + +* The timer limit is 999 +* If you hit a mine, many counts added to the timer +* There are no mines at the start point and the corner + +Option: + +This game supports BACKUP and SOUND. If you want to play +the sound correctly, you must modify the board. If not, +some noise appears on the screen. + +* THIS MODIFY IS QUITE DIFFICULT, USE AT YOUR OWN RISK! * +* AND DON'T ASK ABOUT THIS MODIFYING INFORMATION! * + +Backup Support: + +* You have to install the RESET-IC (PST518, etc.) +* Check the power on/off +* Install the Lithium battery or super capacity condensor +* Connect the inverted RESET signal to RAM's 18pin (use 74HC04, etc.) + (You must backup both RAM and HC04) + +Sound Support: + +You must get the sound board of Wing War (Guns'n Wings). +You can hear the sonic sound if you use this sound board! + +* Cut IC17's 10pin from the board +* Use shielded cable, Connect CN2's 6pin on the sound board to the above pin +* And the shield connects GND and CN2's 5pin +* Connect IC17 10pin's board side to the GND +* This sound board has 2 set of STEREO, you have to mix them + +Secrets: + +* Push start when the power on : RAM CLEAR +* right+up lever and push 1 and 2 button : SOUND TEST + +* left+up and push 1, 2, COIN, START when the checking Backup RAM is + finished, you can see the Ending scene. + +* Push 1 and 2 when the Ending scene is changed, you can see the + secret picture (^^) + +Robbbert's notes: + +In the above, when they say 1 and 2, they mean Ctrl and Alt +By using the debugger, you can see the sound test by setting the pc to 105F, +and the ending scene by setting the pc to 0F30. + +- Backup nvram added (April 2007) +- Hooked port 20 to the colour generator (July 2008) +- Hooked up a sound click to port 20 (May 2010) + +Colours: + White (normal play / attract mode) + Yellow (new record time) + Green (new record level - must be at least level 3) + Purple (stepped on a bomb) + Red (game over) + +***************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "machine/nvram.h" +#include "sound/beep.h" + +class mineswp_state : public driver_device +{ +public: + mineswp_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_p_videoram(*this, "videoram") + , m_beep(*this, "beeper") + { } + + DECLARE_WRITE8_MEMBER(color_w); + UINT32 screen_update_mineswp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); +private: + UINT8 m_color; + virtual void machine_start(); + virtual void machine_reset(); + required_shared_ptr<UINT8> m_p_videoram; + required_device<beep_device> m_beep; +}; + + +/******************************************************************* + + Palette Setting. + +*******************************************************************/ + + +WRITE8_MEMBER( mineswp_state::color_w ) +{ + m_color = data & 7; + m_beep->set_state(BIT(data, 3)); +} + + +/******************************************************************* + + Video updating + +*******************************************************************/ +UINT32 mineswp_state::screen_update_mineswp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + UINT8 x,y,z,data; + + pen_t bg = rgb_t(pal1bit(m_color >> 3), pal1bit(m_color >> 4), pal1bit(m_color >> 5)); + pen_t fg = rgb_t(pal1bit(m_color >> 0), pal1bit(m_color >> 1), pal1bit(m_color >> 2)); + + for (y = 0; y < 96; y++) + { + x = 0; + for (z = 0; z < 16; z++) + { + data = m_p_videoram[(y<<4) | z]; + + bitmap.pix32(y, x++) = BIT(data, 7) ? fg : bg; + bitmap.pix32(y, x++) = BIT(data, 6) ? fg : bg; + bitmap.pix32(y, x++) = BIT(data, 5) ? fg : bg; + bitmap.pix32(y, x++) = BIT(data, 4) ? fg : bg; + bitmap.pix32(y, x++) = BIT(data, 3) ? fg : bg; + bitmap.pix32(y, x++) = BIT(data, 2) ? fg : bg; + bitmap.pix32(y, x++) = BIT(data, 1) ? fg : bg; + bitmap.pix32(y, x++) = BIT(data, 0) ? fg : bg; + } + } + + return 0; +} + + +/******************************************************************* + + Address maps + +*******************************************************************/ +static ADDRESS_MAP_START( mineswp_map, AS_PROGRAM, 8, mineswp_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("roms", 0) + AM_RANGE(0x8000, 0x85ff) AM_RAM AM_SHARE("videoram") + AM_RANGE(0x8600, 0x86df) AM_RAM + AM_RANGE(0x86e0, 0x86ff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0x8700, 0x87ff) AM_RAM + AM_RANGE(0xfffc, 0xffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mineswp_io, AS_IO, 8, mineswp_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") + AM_RANGE(0x20, 0x20) AM_WRITE(color_w) +ADDRESS_MAP_END + + +/******************************************************************* + + Inputs + +*******************************************************************/ +static INPUT_PORTS_START( mineswp ) + PORT_START ("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) +INPUT_PORTS_END + + +/******************************************************************* + + Machine driver + +*******************************************************************/ +void mineswp_state::machine_start() +{ + m_beep->set_state(0); + save_item(NAME(m_color)); +} + +void mineswp_state::machine_reset() +{ + m_color = 0; +} + +static MACHINE_CONFIG_START( mineswp, mineswp_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD ("maincpu", Z80, XTAL_4MHz) + MCFG_CPU_PROGRAM_MAP(mineswp_map) + MCFG_CPU_IO_MAP(mineswp_io) + MCFG_CPU_VBLANK_INT_DRIVER("screen", mineswp_state, irq0_line_hold) + MCFG_NVRAM_ADD_1FILL("nvram") + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) + MCFG_SCREEN_SIZE(128, 96) + MCFG_SCREEN_VISIBLE_AREA(0, 127, 0, 95) + MCFG_SCREEN_UPDATE_DRIVER(mineswp_state, screen_update_mineswp) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("beeper", BEEP, 950) // guess + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) +MACHINE_CONFIG_END + + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + +ROM_START( mineswp ) + ROM_REGION( 0x4000, "roms", 0 ) /* 64k for code */ + ROM_LOAD( "14479b.mpr", 0x0000, 0x4000, CRC(1cece483) SHA1(c425a09b640721c9a5b499cdb79848dc18ee66b9) ) +ROM_END + +GAME( 1998, mineswp, 0, mineswp, mineswp, driver_device, 0, ROT0, "J-Rom", "Mine Sweeper [h]", MACHINE_SUPPORTS_SAVE ) + diff --git a/docs/release/src/hbmame/drivers/mitchell.cpp b/docs/release/src/hbmame/drivers/mitchell.cpp new file mode 100644 index 00000000000..a94e9b1094c --- /dev/null +++ b/docs/release/src/hbmame/drivers/mitchell.cpp @@ -0,0 +1,26 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/mitchell.cpp" + +ROM_START( mitcdemo ) + ROM_REGION( 2*0x50000, "maincpu", 0 ) /* 320k for code */ + ROM_LOAD( "md_04.bin", 0x50000, 0x08000, CRC(f0ed5c22) SHA1(b8e26a09fca279d627bd700c31a82ffc18483192) ) /* Decrypted opcode + data */ + ROM_CONTINUE( 0x00000, 0x08000 ) + ROM_LOAD_OPTIONAL( "pang_02.bin", 0x60000, 0x20000, CRC(3f15bb61) SHA1(4f74ee25f32a201482840158b4d4c7aca1cda684) ) /* Decrypted op codes */ + ROM_LOAD_OPTIONAL( "pang_03.bin", 0x10000, 0x20000, CRC(0c8477ae) SHA1(a31a8c00407dfc3017d56e29fac6114b73248030) ) /* Decrypted data */ + + ROM_REGION( 0x100000, "gfx1", 0 ) + ROM_LOAD( "md_09.bin", 0x000000, 0x20000, CRC(f76acc9a) SHA1(31004f441fc56efb692e2e52c4ecc44748185d0a) ) /* chars */ + /* 40000-7ffff empty */ + ROM_LOAD( "md_11.bin", 0x080000, 0x20000, CRC(48f92e6f) SHA1(6c51cccf5bcf7b3bfe6579a95516a850e99c9b76) ) + /* c0000-fffff empty */ + + ROM_REGION( 0x040000, "gfx2", 0 ) + ROM_LOAD( "md10.bin", 0x000000, 0x20000, CRC(709a27b6) SHA1(b7e8d124ee207e75c420762d336a97f4cf4054f6) ) /* sprites */ + ROM_LOAD( "md9.bin", 0x020000, 0x20000, CRC(47de1ec7) SHA1(45bff13a6cdf58bc425fdc3cd2ae22d40d69a2c2) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ + ROM_LOAD_OPTIONAL( "bb1.bin", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) ) +ROM_END + +GAME( 1989, mitcdemo, 0, pang, pang, mitchell_state, pangb, ROT0, "Charles Doty", "Demo - Mitchell", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/mmagic.cpp b/docs/release/src/hbmame/drivers/mmagic.cpp new file mode 100644 index 00000000000..365b4b47945 --- /dev/null +++ b/docs/release/src/hbmame/drivers/mmagic.cpp @@ -0,0 +1,344 @@ +// license:GPL-2.0+ +// copyright-holders:Dirk Best +/*************************************************************************** + + "Monkey Magic" ?? 1979 Nintendo + + + Dumping info provided by Andrew Welburn: + + TZF-MP - Main Board + TZF-SOU - Sound Board + + # device Label PCB filename + ------------------------------------------- + 4 i2708 1AI* 2A 1AI.2A + 5 i2708 2AI* 3A 2AI.3A + 6 i2708 3AI* 4A 3AI.4A + 7 i2708 4AI* 4/5A 4AI.45A + 8 i2708 5AI* 5A 5AI.5A + + 22 H7641 6H 6HI 6H.6HI + 23 ?? ** 7H 7HI 7H.7HI + 24 H7641 6J 6JK 6J.6JK + 25 H7641 6H*** 7JK + + * Note that there is a Kana character 'I' in romaji on the end of the labels, not an I. + + ** Note this device was plastic and not ceramic, but it was dumped as a Harris 7641 as + it is logical that its compatible with the 7641. I can see the other devices all have + similar/same Harris markings in the bottom left of the IC obscured by the labels. + + *** Note that the label for the 7643 PROM at IC25 was almost scraped off, but by its position + in the sequence, it has to be 6H. I removed a little more of the label in order to + work out what the inking was on it below, turned out to be 'D-2'. the prom at IC22 also + looks like it has an inked number under the paper label, just peeking through on one side. + Without removing the paper labels entirely, these markings wont be fully known, but were + covered for some reason. + + SPECS: + + - CPU is an NEC D8085A + - Crystal is marked 6.1440, but this looks to have been replaced. + - X1/X2 clock frequency measured at pins 1 + 2 is 6.14330 mhz + - Test point with stable readings is : + - TP4 (HS) = 15.9982 khz (Horizontal sync) + - TP5 (VS) = 60.5992 hz (Vertical Sync) + +***************************************************************************/ + +#include "emu.h" +#include "cpu/i8085/i8085.h" +#include "sound/samples.h" + + +//************************************************************************** +// CONSTANTS / MACROS +//************************************************************************** + +#define LOG_AUDIO 1 + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +class mmagic_state : public driver_device +{ +public: + mmagic_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_screen(*this, "screen") + , m_palette(*this, "palette") + , m_samples(*this, "samples") + , m_vram(*this, "vram") + , m_tiles(*this, "tiles") + , m_colors(*this, "colors") + , m_ball_x(0x00) + , m_ball_y(0x00) + , m_color(0x00) + , m_audio_sw(0x80) + {} + + DECLARE_READ8_MEMBER(vblank_r); + DECLARE_WRITE8_MEMBER(ball_x_w); + DECLARE_WRITE8_MEMBER(ball_y_w); + DECLARE_WRITE8_MEMBER(color_w); + DECLARE_WRITE8_MEMBER(audio_w); + + UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + +private: + virtual void machine_start(); + required_device<cpu_device> m_maincpu; + required_device<screen_device> m_screen; + required_device<palette_device> m_palette; + required_device<samples_device> m_samples; + required_shared_ptr<UINT8> m_vram; + required_region_ptr<UINT8> m_tiles; + required_region_ptr<UINT8> m_colors; + UINT8 m_ball_x; + UINT8 m_ball_y; + UINT8 m_color; + UINT8 m_audio_sw; +}; + + +//************************************************************************** +// ADDRESS MAPS +//************************************************************************** + +static ADDRESS_MAP_START( mmagic_mem, AS_PROGRAM, 8, mmagic_state ) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x17ff) AM_ROM + AM_RANGE(0x2000, 0x21ff) AM_RAM + AM_RANGE(0x3000, 0x31ff) AM_RAM AM_SHARE("vram") + AM_RANGE(0x8002, 0x8002) AM_WRITE(ball_x_w) + AM_RANGE(0x8003, 0x8003) AM_WRITE(ball_y_w) + AM_RANGE(0x8004, 0x8004) AM_READ(vblank_r) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mmagic_io, AS_IO, 8, mmagic_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x80, 0x80) AM_WRITE(color_w) + AM_RANGE(0x81, 0x81) AM_WRITE(audio_w) + AM_RANGE(0x85, 0x85) AM_READ_PORT("paddle") + AM_RANGE(0x86, 0x86) AM_READ_PORT("buttons") + AM_RANGE(0x87, 0x87) AM_READ_PORT("dipswitch") +ADDRESS_MAP_END + + +//************************************************************************** +// INPUTS +//************************************************************************** + +static INPUT_PORTS_START( mmagic ) + PORT_START("dipswitch") + PORT_SERVICE_DIPLOC(0x01, IP_ACTIVE_LOW, "DSW:1") + PORT_DIPNAME(0x06, 0x06, DEF_STR(Bonus_Life)) PORT_DIPLOCATION ("DSW:2,3") + PORT_DIPSETTING(0x00, "30000") + PORT_DIPSETTING(0x02, "20000") + PORT_DIPSETTING(0x04, "15000") + PORT_DIPSETTING(0x06, "10000") + PORT_DIPNAME(0x18, 0x18, DEF_STR(Lives)) PORT_DIPLOCATION ("DSW:4,5") + PORT_DIPSETTING(0x00, "6") + PORT_DIPSETTING(0x08, "5") + PORT_DIPSETTING(0x10, "4") + PORT_DIPSETTING(0x18, "3") + PORT_DIPUNUSED_DIPLOC(0x20, IP_ACTIVE_LOW, "DSW:6" ) + PORT_DIPUNUSED_DIPLOC(0x40, IP_ACTIVE_LOW, "DSW:7" ) + PORT_DIPUNUSED_DIPLOC(0x80, IP_ACTIVE_LOW, "DSW:8" ) + + PORT_START("buttons") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_START1) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_START2) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_COIN1) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Debug?") // checked once at startup + + PORT_START("paddle") + PORT_BIT(0xff, 0x80, IPT_PADDLE) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_CENTERDELTA(0) +INPUT_PORTS_END + + +//************************************************************************** +// VIDEO EMULATION +//************************************************************************** + +READ8_MEMBER( mmagic_state::vblank_r ) +{ + UINT8 data = 0; + + // bit 0 = vblank + data |= m_screen->vblank() << 0; + + // other bits unused + data |= 0xfe; + + return data; +} + +WRITE8_MEMBER( mmagic_state::ball_x_w ) +{ + m_ball_x = data; +} + +WRITE8_MEMBER( mmagic_state::ball_y_w ) +{ + m_ball_y = data; +} + +WRITE8_MEMBER( mmagic_state::color_w ) +{ + // bit 3 is always set + // bit 6 switches the palette (actually there is only a single differently colored tile) + // other bits are always 0 + m_color = data; +} + +UINT32 mmagic_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + // draw playfield + for (int y = 0; y < 192 / 12; y++) + { + for (int x = 0; x < 256 / 8; x++) + { + UINT8 code = m_vram[(y * 32) + x] & 0x7f; + + // normal palette 00..7f, alternate palette 80..ff + UINT8 color = m_colors[code | (BIT(m_color, 6) << 7)]; + + // draw one tile + for (int tx = 0; tx < 12; tx++) + { + UINT8 gfx = m_tiles[(code << 4) + tx]; + + bitmap.pix32(y * 12 + tx, x * 8 + 0) = BIT(gfx, 4) ? rgb_t::black : m_palette->pen_color(color); + bitmap.pix32(y * 12 + tx, x * 8 + 1) = BIT(gfx, 5) ? rgb_t::black : m_palette->pen_color(color); + bitmap.pix32(y * 12 + tx, x * 8 + 2) = BIT(gfx, 6) ? rgb_t::black : m_palette->pen_color(color); + bitmap.pix32(y * 12 + tx, x * 8 + 3) = BIT(gfx, 7) ? rgb_t::black : m_palette->pen_color(color); + + bitmap.pix32(y * 12 + tx, x * 8 + 4) = BIT(gfx, 0) ? rgb_t::black : m_palette->pen_color(color); + bitmap.pix32(y * 12 + tx, x * 8 + 5) = BIT(gfx, 1) ? rgb_t::black : m_palette->pen_color(color); + bitmap.pix32(y * 12 + tx, x * 8 + 6) = BIT(gfx, 2) ? rgb_t::black : m_palette->pen_color(color); + bitmap.pix32(y * 12 + tx, x * 8 + 7) = BIT(gfx, 3) ? rgb_t::black : m_palette->pen_color(color); + } + } + } + + // draw ball (if not disabled) + if (m_ball_x != 0xff) + { + static const int BALL_SIZE = 4; + int ball_y = (m_ball_y >> 4) * 12 + (m_ball_y & 0x0f); + bitmap.plot_box(m_ball_x - BALL_SIZE + 1, ball_y - BALL_SIZE + 1, BALL_SIZE, BALL_SIZE, rgb_t::white); + } + + return 0; +} + + +//************************************************************************** +// AUDIO EMULATION +//************************************************************************** + +static const char *const mmagic_sample_names[] = +{ + "*mmagic", + "4", + "3", + "5", + "2", + "2-2", + "6", + "6-2", + "1", + 0 +}; + +WRITE8_MEMBER( mmagic_state::audio_w ) +{ + data ^= 0xff; + if (data != m_audio_sw) + { + if BIT(data, 7) + m_samples->start(0, m_audio_sw & 7); + + m_audio_sw = data; + } +} + + +//************************************************************************** +// DRIVER INIT +//************************************************************************** + +void mmagic_state::machine_start() +{ + // register for save states + save_item(NAME(m_ball_x)); + save_item(NAME(m_ball_y)); + save_item(NAME(m_color)); +} + + +//************************************************************************** +// MACHINE DEFINTIONS +//************************************************************************** + +static MACHINE_CONFIG_START( mmagic, mmagic_state ) + // basic machine hardware + MCFG_CPU_ADD("maincpu", I8085A, XTAL_6_144MHz) // NEC D8085A + MCFG_CPU_PROGRAM_MAP(mmagic_mem) + MCFG_CPU_IO_MAP(mmagic_io) + + // video hardware + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(XTAL_6_144MHz, 384, 0, 256, 264, 0, 192) + MCFG_SCREEN_UPDATE_DRIVER(mmagic_state, screen_update) + + MCFG_PALETTE_ADD_3BIT_RGB("palette") + + // sound hardware + // TODO: SN76477 + discrete sound + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("samples", SAMPLES, 0) + MCFG_SAMPLES_CHANNELS(1) + MCFG_SAMPLES_NAMES(mmagic_sample_names) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) +MACHINE_CONFIG_END + + +//************************************************************************** +// ROM DEFINITIONS +//************************************************************************** + +ROM_START( mmagic ) + ROM_REGION(0x1800, "maincpu", 0) + ROM_LOAD("1ai.2a", 0x0000, 0x0400, CRC(ec772e2e) SHA1(7efc1bbb24b2ed73c518aea1c4ef4b9a93034e31)) + ROM_LOAD("2ai.3a", 0x0400, 0x0400, CRC(e5d482ca) SHA1(208b808e9208bb6f5f5f89ffbeb5a885be33733a)) + ROM_LOAD("3ai.4a", 0x0800, 0x0400, CRC(e8d38deb) SHA1(d7384234fb47e4b1d0421f58571fa748662b05f5)) + ROM_LOAD("4ai.45a", 0x0c00, 0x0400, CRC(3048bd6c) SHA1(740051589f6ba44b2ee68edf76a3177bb973d78e)) + ROM_LOAD("5ai.5a", 0x1000, 0x0400, CRC(2cab8f04) SHA1(203a3c005f18f968cd14c972bbb9fd7e0fc3b670)) + // location 6a is unpopulated, if the "debug" switch is activated on bootup it would jump here + + ROM_REGION(0x800, "tiles", 0) + ROM_LOAD("6h.6hi", 0x000, 0x200, CRC(b6321b6f) SHA1(06611f7419d2982e006a3e81b79677e59e194f38)) + ROM_LOAD("7h.7hi", 0x200, 0x200, CRC(9ec0e82c) SHA1(29983f690a1b6134bb1983921f42c14898788095)) + ROM_LOAD("6j.6jk", 0x400, 0x200, CRC(7ce83302) SHA1(1870610ff07ab11622e183e04e3fce29328ff291)) + + ROM_REGION(0x200, "colors", ROMREGION_INVERT) + ROM_LOAD("7j.7jk", 0x000, 0x200, CRC(b7eb8e1c) SHA1(b65a8efb88668dcf1c1d00e31a9b15a67c2972c8)) +ROM_END + + +//************************************************************************** +// GAME DRIVERS +//************************************************************************** + +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS +GAME( 1979, mmagic, 0, mmagic, mmagic, driver_device, 0, ROT270, "Nintendo", "Monkey Magic", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/monaco.cpp b/docs/release/src/hbmame/drivers/monaco.cpp new file mode 100644 index 00000000000..be830bfce81 --- /dev/null +++ b/docs/release/src/hbmame/drivers/monaco.cpp @@ -0,0 +1,2248 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/* +Monaco GP Simulator v0.1 +http://www.jps.net/camilty/monman.htm +Phil Stroffolino + +To Do: +- abstract and externalize in-game parameters (speeds,accel,timing) +- fix distribution of computer car +- computer cars should avoid rescue car lane when present +- computer cars should move to center in bridge zone +- player lives not hooked up +- high score tracking +- extended play colors + +General: + Score Increases as a function of the player's speed. + Speed of Terrain scrolling is independent. + +Computer Cars: + The bridge section is different from the others (besides all the cars going + faster after so many points(6K and 8K). + +Display Panel: + The cockpit model displays TIME (2 digit), top 5 scores (4 digits each), + your Score (4 digits), Players to Date (3 digits)(daily), and + Ranking (3 digits) (this is final score ranking, not position during the game). + + The top 999 high scores are internally recorded in a RAM. + The player's ranking is updated only after gamplay is finished (during the + fanfare). + +Timed Play: + X000-X295 A-Smooth Zone + X295-X450 B-Slip Zone + X450-X795 A-Smooth Zone + X795-X000 C-Tunnel + +Extended Play: + X000-X095 A-Smooth Zone + X095-X150 D-Gravel Zone + X150-X295 A-Smooth Zone + X295-X475 B-Slip Zone + X475-X595 A-Smooth Zone + X595-X635 E-Bridge Zone + X635-X795 A-Smooth Zone + X795-X000 C-Tunnel Zone + +Oil Slicks (pool): + X185 (during zone A) + X685 (during zone A) + After 8000 points, two pools come out in succession + (the second about 20-30 points from the first). + +Rescue Car (firetruck) + The rescue car only appears during Extended play. Tolerance -50 (not+) + X000 + X075 + X125 + X250 + X500 + + The rescue car appears in a mid-right lane. It does not move side to side, + it just moves slowly up the screen until it goes off the screen. + + In extended play, the rescue car was observed to come out AT LEAST ONCE + during each 1000 points cycle. I have observed the rescue car coming + out as much a 3 TIMES in one 1000 point cycle. + I could not find a pattern in the time or count interval between the + rescue cars. However, 72% were between 750 and 1250 point intervals + (most around 875) while the remaining 28% were 500 point intervals or + lower. Therfore, we can narrow down WHERE the rescue cars appear, but + IF it is going to appear seems to have some randomness to it. + + +notes: + when the player first appears (game start, after a spinout, after + a crash), the player's car shows up on the extreme right of the + screen and is totally invulnerable (even if over water on the + bridge scene!). The road doesn't scroll at all until you give the + car some gas. Note that once you start moving, you can never + completely come to a stop. + + Once you move to left onto the center part of the + road, normal collision behavior takes over. You earn no points + while in the invulnerable state. The player can remain in this + state forever during timed play (until time runs out). In extended + play, the player's car will explode after several seconds of driving. + +--------------------------------------------------------------------------- + +Board 96598-P is an oscillator board that generates the game sounds. +It is activated by outputs from Board Assy A (96577X). + +Board Assy's A (96577X) and B (96578X) are the main guts of the gameplay +and contain the sprite roms. + +Board Assy A +- accepts all of the game inputs +- sends the signals for the sounds to the Oscillator board +- outputs to the L.E.D. score display board +- directly interacts with Board Assy B + Components: + Start Timer Control + Player Control (pedal, steering, shifter) + My Car light control, explosion, and pool (oil slick) skid + Other Car Control + +Board Assy B +- outputs the video +- outputs to the L.E.D. score display board +- directly interacts with Board Assy A. + Components: + Display of Letter + Road Movement Horizontal + Road Movement Vertical (Right and Left) + Background (sprite) coloring + Road Object (tunnel, bridge, water) control + Signal Sync + Rescue Car, Player Car, Bridge--Video and Control + + (On the second set, boards A and B have different part numbers + (97091X and 97092X) and two less roms. These boards were made + later then the first set. I have interchanged these boards with + each other, and they seem to be interchangable, the only + difference seems to be the rom size, which only 2 of the roms + utilize the full 1024 bytes (second set).) + +Oscillator Board 96598 +ROM ID IC# +PRm-40 IC21 PRm-40 <both type 6331-1, 16 pin> + engine (constant; pitch varies with speed) + passing (two variations) + bonus (chimes) + fanfare + explosion + slip zone + siren (rescue car) +*/ + +/* The following changes were done by Robbbert on 2007-Dec-08: + +1. Add siren sound for ambulance +2. Add slip sound for puddle +3. Save and display high scores, score, number of games played, and ranking +4. Play fanfare sound if high score exceeded +5. Fix the gears so that each has its own max speed and acceleration rates +6. Keep track of extra lives (er, cars). +7. In extended play, you lose a life. When they are all gone, the game ends +8. When game ends, all sounds are turned off, except Crash sound is allowed to finish, and fanfare can play. +9. When you crash, you nearly stop, instead of continuing at full speed. +10. Once you start moving, you cannot completely stop (as documented above) +11. Sound volume adjustment confined to the machine driver. +12. Volume adjusted so the sound is no longer grossly overdriven. +13. Add the overlay file (it was always compiled but never used), and activated the LEDs. +14. Add support for Mr.Do artwork. +15. Add speedometer + +There is a bunch more things to be done + +1. Don't get points while not on the track +2. Fall in the water if you don't line up for the bridge +3. Show the bridge warning before you reach the bridge +4. Different engine sounds depending on the speed +5. Add sounds when passing other cars +6. Plus some of what's listed above by the original author +*/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "sound/samples.h" +#include "monaco.lh" + + +#define kRESCUE_CAR_SPEED (1.75) +#define SCREEN_WIDTH 384 /* 12 car lengths */ +#define SCREEN_HEIGHT 240 /* 15 car widths */ +#define BRIDGE_YPOS ((SCREEN_HEIGHT-16)/2-8) +#define PAGE_SIZE (14*32) +#define NUM_COMPUTER_CARS 4 + +/* red */ +#define TEXT_GAMEOVER 2 +#define TEXT_EXTENDEDPLAY 0 + +/* blue */ +#define TEXT_DEPOSITCOIN 3 +#define TEXT_START 1 + +enum +{ + GFX_UNKNOWN,GFX_EXPLOSION,GFX_PLAYER,GFX_SHAKE,GFX_SPINOUT1,GFX_SPINOUT2, + GFX_SPRAY,GFX_COMPUTER,GFX_TEXT, + GFX_TREE,GFX_GRASS,GFX_SHRUB,GFX_HOUSE, + GFX_TUNNEL,GFX_POOL,GFX_BELT, + GFX_RESCUE_CAR,GFX_SIGNAL,GFX_DUMMY, + GFX_BRIDGE1,GFX_BRIDGE2 +}; + +enum +{ + CYAN_PEN = 0x91, + BLACK_PEN = 0x94, + YELLOW_PEN = 0x95, + GREY_PEN = 0x96 +}; + +enum +{ + RESCUE_CLUT = 0x50, + HOUSE_CLUT = 0x60, + WATER_CLUT = 0x70, + PLAYER_CLUT = 0x80, + TREE_CLUT = 0x84, + SHRUB_CLUT = 0x88, + GRASS_CLUT = 0x8c, + CYAN_CLUT = 0x90, + RED_CLUT = 0x92, + YELLOW_CLUT = 0x94 +}; + +enum +{ + GREEN_CAR, YELLOW_CAR, /* slow */ + CYAN_CAR, PURPLE_CAR, /* medium */ + BLUE_CAR, /* fast */ + NUM_COMPUTER_CAR_TYPES +}; + +enum +{ + PAGE_SMOOTH, + PAGE_SLIP, + PAGE_TUNNEL, + PAGE_GRAVEL, + PAGE_BRIDGE +}; + +enum +{ + COLLISION_CRASH, + COLLISION_POOL +}; + +enum monaco_mode +{ + MODE_ATTRACT, + /* cars zoom up the screen (max 2 on the screen at a time) + * player's car is not visible + * "GAME OVER" is centered near the middle-top + * "DEPOSIT COIN" is centered near the bottom + */ + MODE_START, + MODE_INVULNERABLE, + MODE_NORMAL, /* driving */ + MODE_GRAVEL, + MODE_SLIP1, /* skidding */ + MODE_SLIP2, + MODE_SPINOUT1, + MODE_SPINOUT2, + MODE_SPINOUT3, + MODE_SPINOUT4, + MODE_CRASH1, + MODE_CRASH2, + MODE_CRASH3, + MODE_CRASH4 +}; + +class monaco_state : public driver_device +{ +public: + monaco_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_samples(*this, "samples") + , m_p_ram(*this, "ram") + , m_gfxdecode(*this, "gfxdecode") + , m_palette(*this, "palette") + { } + + DECLARE_READ8_MEMBER(monaco_ram_r); + DECLARE_WRITE8_MEMBER(monaco_ram_w); + DECLARE_DRIVER_INIT(monaco); + INTERRUPT_GEN_MEMBER(monaco_interrupt); + DECLARE_MACHINE_RESET(monaco); + DECLARE_VIDEO_START(monaco); + UINT32 screen_update_monaco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); +private: + struct monaco_gfx *m_monaco_gfx; + enum monaco_mode m_monaco_mode; + UINT32 monaco_word_r (UINT16 offset); + void monaco_word_w (UINT16 offset, UINT32 data); + int get_player_xpos( void ); + void handle_collision( int sx, int sy, int width, int height, int type ); + int read_coin(); + void update_player_speed(); + double get_player_delta( void ); + void HandlePlayer(); + void update_computer_cars( void ); + void HandleRescue( void ); + void HandlePool( void ); + void GameOver(); + void HandleEvents(); + void draw_computer( bitmap_ind16 &bitmap, const rectangle clip); + void draw_pool( bitmap_ind16 &bitmap, const rectangle clip); + void draw_player( bitmap_ind16 &bitmap, const rectangle clip); + void draw_strip( bitmap_ind16 &bitmap, int sy, int x0, int x1, int xpos, int pen); + void DrawSmoothZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos); + void DrawSlipZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos); + void DrawGravelZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos); + void DrawBridgeZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos); + void DrawTunnelZone( bitmap_ind16 &bitmap, int xpos); + void DrawTunnelWall( bitmap_ind16 &bitmap, const rectangle clip, int xpos); + void draw_light_helper( bitmap_ind16 &bitmap, int xpos); + void draw_wall( bitmap_ind16 &bitmap, const rectangle clip); + void draw_light( bitmap_ind16 &bitmap); + void draw_page( bitmap_ind16 &bitmap, const rectangle clip, int which, int xpos); + void draw_background( bitmap_ind16 &bitmap, const rectangle clip); + void draw_text( bitmap_ind16 &bitmap, const rectangle clip); + void draw_leds( bitmap_ind16 &bitmap); + void draw_signal( bitmap_ind16 &bitmap); + int m_anim_timer; + + /* LED display */ + UINT16 m_plays; + UINT16 m_rank; + UINT16 m_rank_display; // shows 0 until game ends + UINT32 m_score; + UINT32 m_bonus_score; + UINT8 m_in_ext_play; + UINT8 m_gear; + UINT16 m_time; + UINT8 m_lives; + int m_bShaking; + double m_speed; + double m_player_ypos; + double m_computer_speed; + double m_xpos[NUM_COMPUTER_CARS]; + double m_ypos[NUM_COMPUTER_CARS]; + double m_dy[NUM_COMPUTER_CARS]; + double m_rescue_xpos; + double m_pool_xpos; + double m_scroll; + double m_distance; + int m_ticks; + int m_page_current; + int m_page_next; + int m_page_next2; + + double m_track_bottom_inset; + double m_track_top_inset; + double m_track_bottom_delta; + double m_track_top_delta; + int m_bSignalVisible; + int m_left_text; + int m_right_text; + int m_bExtendedPlay; + int m_left_page, m_right_page; + int m_top_inset, m_bottom_inset; + int m_player_x, m_player_y, m_player_tile, m_player_splash; + int m_pool_x, m_pool_y; + int m_rescue_x, m_rescue_y, m_rescue_tile; + int m_x[NUM_COMPUTER_CARS]; + int m_y[NUM_COMPUTER_CARS]; + int m_tile[NUM_COMPUTER_CARS]; + int m_color[NUM_COMPUTER_CARS]; + UINT32 m_led_high1; + UINT32 m_led_high2; + UINT32 m_led_high3; + UINT32 m_led_high4; + UINT32 m_led_high5; + UINT32 m_led_score; + UINT16 m_led_time; + UINT16 m_led_rank; + UINT16 m_led_plays; + UINT16 m_led_lives; + UINT16 m_led_gear; + UINT16 m_led_speed; + required_device<samples_device> m_samples; + required_shared_ptr<UINT8> m_p_ram; + required_device<gfxdecode_device> m_gfxdecode; + required_device<palette_device> m_palette; +}; + + +enum +{ + eSAMPLE_PASS1, + eSAMPLE_PASS2, + eSAMPLE_CRASH, + eSAMPLE_ENGINE, + eSAMPLE_EXTEND, + eSAMPLE_FANFARE, + eSAMPLE_SIREN, + eSAMPLE_SLIP, +// eSAMPLE_GRAVEL +}; + +#define DOWN 0x01 +#define UP 0x02 +#define RIGHT 0x04 +#define LEFT 0x08 +#define COIN 0x10 +#define ACCEL1 0x20 +#define ACCEL2 0x40 +#define ACCEL3 0x80 + +#define IS_PRESSED(key) (ioport("IN0")->read() & key) + +#define EXT_SCORE (2000<<8) // number of points needed to get extended play, 2000 +#define FIRST_TIME (90<<8) // number of seconds when coin inserted, 90 + + +READ8_MEMBER( monaco_state::monaco_ram_r ) +{ + return m_p_ram[offset]; +} + +WRITE8_MEMBER( monaco_state::monaco_ram_w ) +{ + m_p_ram[offset] = data; +} + +UINT32 monaco_state::monaco_word_r (UINT16 offset) +{ + address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + UINT8 byte0 = monaco_ram_r (space, (offset << 2)); + UINT8 byte1 = monaco_ram_r (space, (offset << 2) + 1); + UINT8 byte2 = monaco_ram_r (space, (offset << 2) + 2); + UINT8 byte3 = monaco_ram_r (space, (offset << 2) + 3); + return (byte3<<24) | (byte2<<16) | (byte1<<8) | byte0; +} + +void monaco_state::monaco_word_w (UINT16 offset, UINT32 data) +{ + address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); + UINT8 byte0 = data & 0xff; + UINT8 byte1 = (data & 0xff00) >> 8; + UINT8 byte2 = (data & 0xff0000) >> 16; + UINT8 byte3 = (data & 0xff000000) >> 24; + monaco_ram_w (space, (offset << 2), byte0); + monaco_ram_w (space, (offset << 2) + 1, byte1); + monaco_ram_w (space, (offset << 2) + 2, byte2); + monaco_ram_w (space, (offset << 2) + 3, byte3); +} + +int monaco_state::get_player_xpos( void ) +{ + return SCREEN_WIDTH-32-m_speed; +} + +void monaco_state::handle_collision( int sx, int sy, int width, int height, int type ) +{ + int px, py; + + if( m_monaco_mode == MODE_NORMAL ) + { + px = get_player_xpos(); + py = m_player_ypos + 8; + + if( px < sx + width && + sx < px + 32 && + py < sy + height && + sy < py + 16 ) + { + m_samples->start( 3, eSAMPLE_CRASH ); + m_anim_timer = 0; + m_speed = 15; /* you almost stop when you crash */ + if( type == COLLISION_CRASH ) + { + if( !m_in_ext_play ) + { + m_monaco_mode = MODE_SPINOUT1; + } + else + { + m_monaco_mode = MODE_CRASH1; + m_lives--; + } + } + else if( type == COLLISION_POOL ) + { + m_pool_xpos = 512; + m_monaco_mode = MODE_SLIP1; + } + } + } +} + +/*****************************************************************/ + +int monaco_state::read_coin() +{ + static int old_trigger; + if( IS_PRESSED(COIN) ) + { + old_trigger = 1; + } + else { + if( old_trigger ){ + old_trigger = 0; + return 1; + } + old_trigger = 0; + } + return 0; +} + +void monaco_state::update_player_speed() +{ + double desired_speed, min_speed, max_speed = 44; + int accel = 0; + + if( IS_PRESSED(ACCEL1) ) accel = 1; + if( IS_PRESSED(ACCEL2) ) accel = 2; + if( IS_PRESSED(ACCEL3) ) accel = 3; + + /* gearstick is a mechanical device which can be moved anytime */ + if( IS_PRESSED(UP) ) + m_gear = 1; + else + if( IS_PRESSED(DOWN) ) + m_gear = 0; + + if (m_monaco_mode == MODE_ATTRACT) + { + m_speed = 0; + m_in_ext_play = 0; + return; + } + else + if( m_monaco_mode == MODE_START ) + { + if( accel ) m_monaco_mode = MODE_INVULNERABLE; + else return; + } + + if (m_speed) + min_speed = m_gear?0.5:0.25; + else + min_speed = 0; + + if (m_gear) + { + max_speed = 125; + if (m_score > 6000<<8) max_speed = 152; + if (m_score > 8000<<8) max_speed = 180; + } + + /* min: 0; max: 6 */ + /* 30 is derived by absolute maximum speed (above) divided by 6 */ + desired_speed = 30*(accel?(m_gear*3+accel):min_speed); + + /* 1st gear */ + if (!m_gear) + { + if (desired_speed > m_speed) m_speed += 1; + + if (desired_speed < m_speed) m_speed -= 4; + } + else + { + if (desired_speed > m_speed) m_speed += 0.4; + + if (desired_speed < m_speed) m_speed -= 2; + } + + if (m_speed < min_speed) m_speed = min_speed; + + if (m_speed > max_speed) m_speed = max_speed; +} + +double monaco_state::get_player_delta( void ) +{ + if( m_monaco_mode == MODE_ATTRACT || m_monaco_mode == MODE_START ) return 0; + return m_speed/16.0; +} + +void monaco_state::HandlePlayer() +{ + double dy = 0; + int sy = m_player_ypos; + update_player_speed(); + if( IS_PRESSED(RIGHT) && sy>0 ) dy-=1.0; + if( IS_PRESSED(LEFT) && sy<SCREEN_HEIGHT-32 ) dy+=1.0; + if( m_page_current == PAGE_SLIP ) dy = dy*0.5; + m_player_ypos += dy; +} + +/*****************************************************************/ + +void monaco_state::update_computer_cars( void ) +{ + int i; + int delta = get_player_delta(); + for( i=0; i<NUM_COMPUTER_CARS; i++ ) + { + int top_inset = m_track_top_inset; + int bottom_inset = m_track_bottom_inset; + int sx,sy; + m_xpos[i] += delta-m_computer_speed; + if( m_xpos[i] < -256 ) + m_xpos[i] += SCREEN_WIDTH*2; + else + if( m_xpos[i] > SCREEN_WIDTH + 256 ) + m_xpos[i] -= SCREEN_WIDTH*2; + + m_ypos[i] += m_dy[i]; + + sx = m_xpos[i]; + sy = m_ypos[i]; + + if( ( m_dy[i]<0 && sy<top_inset ) || + ( m_dy[i]>0 && sy+16>SCREEN_HEIGHT-bottom_inset ) ) + { + m_dy[i] *= -1; + } + + handle_collision( sx-32, sy, 32, 16, COLLISION_CRASH ); + } +} + +#define DELTA_TIME (256.0/60) + +void monaco_state::HandleRescue( void ) +{ + if( m_rescue_xpos > -64 ) + { + m_rescue_xpos -= kRESCUE_CAR_SPEED; + handle_collision( + m_rescue_xpos, + (SCREEN_HEIGHT-32)/2, + 64, + 32, + COLLISION_CRASH ); + } +} + +void monaco_state::HandlePool( void ) +{ + if( m_pool_xpos < SCREEN_WIDTH ) + { + m_pool_xpos += get_player_delta(); + handle_collision( + m_pool_xpos, + (SCREEN_HEIGHT-32)/2, + 32, + 32, + COLLISION_POOL ); + } +} + +void monaco_state::GameOver() +{ + m_monaco_mode = MODE_ATTRACT; /* this causes speed to be zero */ + m_rank_display = m_rank; /* show rank on led display */ + monaco_word_w (m_rank, m_score); /* save players score in RAM */ + m_led_high1 = monaco_word_r(1); + m_led_high2 = monaco_word_r(2); + m_led_high3 = monaco_word_r(3); /* show the 5 highest scores on led display */ + m_led_high4 = monaco_word_r(4); + m_led_high5 = monaco_word_r(5); + m_samples->stop(0); /* turn off engine sounds */ + m_samples->stop(1); + m_samples->stop(2); +} + +void monaco_state::HandleEvents() +{ + int score = m_score>>8; + int event = (score)%1000; + + if (m_monaco_mode == MODE_ATTRACT) return; + + if( m_page_current == PAGE_SMOOTH && + (score == 8000 || score == 8030 || event == 185 || event == 685) ) + { + m_pool_xpos = -32<<8; + } + + if( m_in_ext_play ) + { + /* Extended Play */ + if( m_rescue_xpos<= -64 && + (machine().rand()&3) == 0 && + (event == 0 || event == 75 || event == 125 || event == 250 || event == 500) ) + { + m_rescue_xpos = SCREEN_WIDTH; + m_samples->start( 1, eSAMPLE_SIREN ); + } + + if( event == 0 ) m_page_next2 = PAGE_SMOOTH; + else if( event == 95 ) m_page_next2 = PAGE_GRAVEL; + else if( event == 150 ) m_page_next2 = PAGE_SMOOTH; + else if( event == 295 ) m_page_next2 = PAGE_SLIP; + else if( event == 475 ) m_page_next2 = PAGE_SMOOTH; + else if( event == 595 ) m_page_next2 = PAGE_BRIDGE; + else if( event == 635 ) m_page_next2 = PAGE_SMOOTH; + else if( event == 795 ) m_page_next2 = PAGE_TUNNEL; + } + else + { + /* Timed Play */ + if( event == 0 ) m_page_next2 = PAGE_SMOOTH; + else if( event == 295 ) m_page_next2 = PAGE_SLIP; + else if( event == 450 ) m_page_next2 = PAGE_SMOOTH; + else if( event == 795 ) m_page_next2 = PAGE_TUNNEL; + } + + if ((!m_time) && (!m_in_ext_play)) + { + if (m_score > EXT_SCORE) + { + /* Turn On Extended Play */ + m_in_ext_play = 1; +// m_samples->start( 2, eSAMPLE_EXTEND ); + } + else + m_lives = 0; + } + + if ((!m_lives) && (m_monaco_mode != MODE_ATTRACT)) + { + /* Game Over */ + if (m_rank == 1) m_samples->start (4, eSAMPLE_FANFARE); + + GameOver(); + } +} + +INTERRUPT_GEN_MEMBER( monaco_state::monaco_interrupt ) +{ + int i; + double delta = get_player_delta(); + + HandleRescue(); + HandlePool(); + HandlePlayer(); + /* increase score */ + m_score += m_speed; + /* cap the score at 9999 */ + if ( m_score > (9999<<8 | 255)) m_score = (9999<<8 | 255); + + /* Bonus car at 2000, 4000, 6000, 8000 points */ + + if ( m_score < 9000<<8) m_bonus_score += m_speed; + + if ( m_bonus_score > 2000<<8 ) + { + m_lives++; + m_bonus_score -= 2000<<8; + m_samples->start( 2, eSAMPLE_EXTEND ); + } + /* decrease time remaining */ + if( m_time>0 ) + { + if( m_monaco_mode != MODE_ATTRACT && m_monaco_mode != MODE_START ) + { + if( m_time<DELTA_TIME ) m_time = 0; + else m_time -= DELTA_TIME; + } + } + /* adjust ranking if a score is passed */ + if (m_rank > 1) + { + if (m_score > monaco_word_r (m_rank - 1)) + { + monaco_word_w ( m_rank , monaco_word_r (m_rank - 1)); + m_rank--; + } + } + + HandleEvents(); + + switch( m_monaco_mode ) + { + case MODE_ATTRACT: + m_pool_xpos = SCREEN_WIDTH; + m_rescue_xpos = -64; + + if( read_coin() ) + { + m_samples->start( 0, eSAMPLE_ENGINE, 1/*loop*/ ); + m_score = 0; + m_bonus_score = 0; + m_rank_display = 0xffff; /* rank is blank till game ends */ + m_lives = 1; + if (m_plays < 999) m_plays++; + m_rank = m_plays; + m_time = FIRST_TIME; + m_monaco_mode = MODE_START; + m_anim_timer = 0; + m_player_ypos = 0;//32; + } + default: + break; + } + + m_scroll += delta; + if( m_scroll>=14*32 ) + { + m_scroll -= 14*32; + m_page_current = m_page_next; + m_page_next = m_page_next2; + } + + m_ticks++; /* for animation */ + + if( m_page_next != PAGE_TUNNEL && m_page_current != PAGE_TUNNEL && + m_page_next != PAGE_BRIDGE && m_page_current != PAGE_BRIDGE ) + { + /* delta: player speed */ + m_track_bottom_inset += m_track_bottom_delta*delta/8; + m_track_top_inset += m_track_top_delta*delta/8; + + if( m_track_bottom_inset <= 32 ) + { + m_track_bottom_delta = 1; + } + else if( m_track_bottom_inset >= 96 ) + { + m_track_bottom_delta = -1; + } + + if( m_track_top_inset <= 32 ) + { + m_track_top_delta = 1; + } + else if( m_track_top_inset >= 64 ) + { + m_track_top_delta = -1; + } + } + + switch( m_monaco_mode ) + { + case MODE_ATTRACT: + break; + case MODE_START: + if( m_speed ) + { + m_monaco_mode = MODE_INVULNERABLE; + m_anim_timer = 0; + } + break; + + case MODE_INVULNERABLE: + m_anim_timer++; + if( m_anim_timer > 60*2 ) + { + m_monaco_mode = MODE_NORMAL; + m_anim_timer = 0; + } + break; + + case MODE_NORMAL: + break; + + case MODE_GRAVEL: +// m_samples->start (1, eSAMPLE_GRAVEL); There is no code to make this mode occur + break; + + case MODE_SLIP1: + case MODE_SLIP2: + m_anim_timer++; + if( m_anim_timer>16 ) + { + m_anim_timer = 0; + if( m_monaco_mode!=MODE_SLIP2 ) + { + m_monaco_mode = MODE_SLIP2; + } + else + { + m_monaco_mode = MODE_NORMAL; + } + } + m_samples->start( 1, eSAMPLE_SLIP ); + break; + + case MODE_SPINOUT1: + case MODE_SPINOUT2: + case MODE_SPINOUT3: + case MODE_SPINOUT4: + if( m_player_ypos > 0 ) + { + UINT8 temp = (m_anim_timer/2)&3; + if (temp == 0) m_monaco_mode = MODE_SPINOUT1; + else if (temp == 1) m_monaco_mode = MODE_SPINOUT2; + else if (temp == 2) m_monaco_mode = MODE_SPINOUT3; + else if (temp == 3) m_monaco_mode = MODE_SPINOUT4; + m_anim_timer++; + m_player_ypos-=2.0; + } + else + { + m_player_ypos = 0; + m_monaco_mode = MODE_INVULNERABLE; + m_anim_timer = 0; + } + if( m_speed > 40 ) + { + m_speed-= 1.0; + } + break; + + case MODE_CRASH1: + case MODE_CRASH2: + case MODE_CRASH3: + case MODE_CRASH4: + m_anim_timer++; + if( m_anim_timer>8 ) + { + m_anim_timer = 0; + if( m_monaco_mode == MODE_CRASH1 ) m_monaco_mode = MODE_CRASH2; + else + if( m_monaco_mode == MODE_CRASH2 ) m_monaco_mode = MODE_CRASH3; + else + if( m_monaco_mode == MODE_CRASH3 ) m_monaco_mode = MODE_CRASH4; + else + { + m_monaco_mode = MODE_INVULNERABLE; + m_player_ypos = 0; + } + } + break; + default: + break; + } + + if( m_monaco_mode == MODE_NORMAL ) + { + if( m_player_ypos+16 > m_track_top_inset+8 && + m_player_ypos+16 < SCREEN_HEIGHT - (m_track_bottom_inset+8) ) + { + m_bShaking = 0; + } + else if( m_player_ypos+16 > m_track_top_inset+8 - 16 && + m_player_ypos+16 < SCREEN_HEIGHT - (m_track_bottom_inset+8 - 16) ) + { + /* brush roadside */ + m_bShaking = 1; + } + else + { + /* crash wall */ + m_monaco_mode = MODE_SPINOUT1; + m_anim_timer = 0; + m_bShaking = 1; + } + } + else + { + m_bShaking = 0; + } + + update_computer_cars(); + + for( i=0; i<NUM_COMPUTER_CARS; i++ ) + { + m_x[i] = m_xpos[i] - 32; + m_y[i] = m_ypos[i]; + m_tile[i] = (m_ticks&2)>>1; + m_color[i] = i; /* hack */ + } + m_rescue_x = m_rescue_xpos; + m_rescue_y = BRIDGE_YPOS; + m_rescue_tile = (m_ticks&2)>>1; + m_pool_x = m_pool_xpos; + m_pool_y = (SCREEN_HEIGHT-32)/2; + m_top_inset = m_track_top_inset; + m_bottom_inset = m_track_bottom_inset; + m_bSignalVisible = (m_page_next == PAGE_BRIDGE || m_page_next == PAGE_BRIDGE ); + m_led_score = m_score; + m_led_gear = m_gear; + m_led_lives = m_lives; + m_led_time = m_time; + m_led_rank = m_rank_display; + // m_led_rank = m_rank; /* test to display real-time ranking */ + m_led_plays = m_plays; + m_led_speed = m_speed; + m_right_page = m_page_current; + m_left_page = m_page_next; + m_left_text = -1; + m_right_text = -1; + + /* we stretch the text so that it is proportioned correctly + ** compared to the rest of the in-game graphics + */ + + switch( m_monaco_mode ) + { + case MODE_ATTRACT: + m_left_text = TEXT_GAMEOVER; + m_right_text = TEXT_DEPOSITCOIN; + break; + + case MODE_START: + m_right_text = TEXT_START; + break; + + default: + break; + } + + if (m_in_ext_play) m_left_text = TEXT_EXTENDEDPLAY; + + m_player_x = get_player_xpos(); + m_player_y = m_player_ypos; + m_player_tile = -1; + m_player_splash = -1; + switch( m_monaco_mode ) + { + case MODE_ATTRACT: + break; + + case MODE_SLIP1: + m_player_splash = 0; + m_player_tile = (m_ticks&2)>>1; + break; + + case MODE_SLIP2: + m_player_splash = 1; + m_player_tile = (m_ticks&2)>>1; + break; + + case MODE_SPINOUT1: + m_player_tile = 2; + break; + + case MODE_SPINOUT2: + m_player_tile = 3; + break; + + case MODE_SPINOUT3: + m_player_tile = 4; + break; + case MODE_SPINOUT4: + m_player_tile = 5; + break; + + case MODE_CRASH1: + case MODE_CRASH2: + case MODE_CRASH3: + case MODE_CRASH4: + m_player_tile = m_monaco_mode-MODE_CRASH1 + 6; + break; + + default: + if( m_bShaking ) + { + m_player_tile = 10+((m_ticks&4)>>2); + } + else + { + m_player_tile = (m_ticks&2)>>1; + } + break; + } + + return; +} + +/*********************************************/ + +static ADDRESS_MAP_START( monaco_map, AS_PROGRAM, 8, monaco_state )/* fake */ + AM_RANGE(0x0000, 0xefff) AM_ROM + AM_RANGE(0xf000, 0xffff) AM_READWRITE(monaco_ram_r,monaco_ram_w) AM_SHARE("ram") /* scores need 4000 bytes */ +ADDRESS_MAP_END + +static INPUT_PORTS_START( monaco ) + PORT_START("IN0") /* fake */ + PORT_BIT( DOWN, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY + PORT_BIT( UP, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY + PORT_BIT( RIGHT, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY + PORT_BIT( LEFT, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY + PORT_BIT( COIN, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( ACCEL1, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( ACCEL2, IP_ACTIVE_HIGH, IPT_BUTTON2 ) + PORT_BIT( ACCEL3, IP_ACTIVE_HIGH, IPT_BUTTON3 ) +INPUT_PORTS_END + +/***************************************************************************/ + +static gfx_layout tree_layout = +{ + 32,32, + 1, /* number of characters */ + 2, /* number of bitplanes */ + { 0,4 }, + { + 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100, + 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300, + 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500, + 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78, + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8 + }, + 0 +}; + +static gfx_layout pool_layout = +{ + 32,32, + 1, /* number of characters */ + 1, /* number of bitplanes */ + { 0 }, + { + 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100, + 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300, + 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500, + 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78, + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8 + }, + 4 +}; + +static gfx_layout player_layout = +{ + 32,32, + 2, /* number of characters */ + 2, /* number of bitplanes */ + { 0,4 }, + { + 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100, + 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300, + 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500, + 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700 + }, + { + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8, + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78 + }, + 0x800 +}; + +static gfx_layout text_layout = +{ + 16,64, + 4, /* number of characters */ + 1, /* number of bitplanes */ + { 0 }, + { + 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000, + 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200, + }, + { + 0x100,0x108,0x110,0x118,0x120,0x128,0x130,0x138, + 0x140,0x148,0x150,0x158,0x160,0x168,0x170,0x178, + 0x180,0x188,0x190,0x198,0x1a0,0x1a8,0x1b0,0x1b8, + 0x1c0,0x1c8,0x1d0,0x1d8,0x1e0,0x1e8,0x1f0,0x1f8, + 0x000,0x008,0x010,0x018,0x020,0x028,0x030,0x038, + 0x040,0x048,0x050,0x058,0x060,0x068,0x070,0x078, + 0x080,0x088,0x090,0x098,0x0a0,0x0a8,0x0b0,0x0b8, + 0x0c0,0x0c8,0x0d0,0x0d8,0x0e0,0x0e8,0x0f0,0x0f8, + }, + 0x400 +}; + +static gfx_layout house_layout = +{ + 32,32, + 1, /* number of characters */ + 4, /* number of bitplanes */ + { 0,2,4,6 }, + { + 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300, + 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700, + 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00, + 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78, + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8 + }, + 4 +}; + +static gfx_layout signal_layout = +{ + 32,32, + 1, /* number of characters */ + 1, /* number of bitplanes */ + { 0 }, + { + 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300, + 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700, + 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00, + 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78, + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8, + }, + 0 +}; + +static gfx_layout dummy_layout = +{ + 32,16, + 2, /* number of characters */ + 2, /* number of bitplanes */ + { 4,6 }, + { + 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300, + 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700, + 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00, + 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78 + }, + 0x80 +}; + +static gfx_layout computer_layout = +{ + 32,16, + 2, /* number of characters */ + 4, /* number of bitplanes */ + { 0,2,4,6 }, + { + 0x001,0x000,0x081,0x080,0x101,0x100,0x181,0x180, + 0x201,0x200,0x281,0x280,0x301,0x300,0x381,0x380, + 0x401,0x400,0x481,0x480,0x501,0x500,0x581,0x580, + 0x601,0x600,0x681,0x680,0x701,0x700,0x781,0x780 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78 + }, + 0x800 +}; + +static gfx_layout rescue_layout = +{ + 64,16, + 2, /* number of characters */ + 4, /* number of bitplanes */ + { 0,2,4,6 }, + { + 0x001,0x001,0x000,0x000,0x081,0x081,0x080,0x080, + 0x101,0x101,0x100,0x100,0x181,0x181,0x180,0x180, + 0x201,0x201,0x200,0x200,0x281,0x281,0x280,0x280, + 0x301,0x301,0x300,0x300,0x381,0x381,0x380,0x380, + 0x401,0x401,0x400,0x400,0x481,0x481,0x480,0x480, + 0x501,0x501,0x500,0x500,0x581,0x581,0x580,0x580, + 0x601,0x601,0x600,0x600,0x681,0x681,0x680,0x680, + 0x701,0x701,0x700,0x700,0x781,0x781,0x780,0x780 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78 + }, + 0x800 +}; + +static gfx_layout explode_layout = +{ + 32,32, + 4, /* number of characters */ + 1, /* number of bitplanes */ + { 0 }, + { + 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000, + 0x107,0x106,0x105,0x104,0x103,0x102,0x101,0x100, + 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200, + 0x307,0x306,0x305,0x304,0x303,0x302,0x301,0x300, + }, + { + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8, + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78 + }, + 0x400 +}; + +static gfx_layout bridge_layout = +{ + 32,16, + 2, /* number of characters */ + 4, /* number of bitplanes */ + { 0,1,2,3 }, + { + 0x004,0x000,0x104,0x100,0x204,0x200,0x304,0x300, + 0x404,0x400,0x504,0x500,0x604,0x600,0x704,0x700, + 0x804,0x800,0x904,0x900,0xa04,0xa00,0xb04,0xb00, + 0xc04,0xc00,0xd04,0xd00,0xe04,0xe00,0xf04,0xf00 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78 + }, + 0x80 +}; + +static gfx_layout unknown_layout = +{ /* police car? */ + 32,32, + 2, /* number of characters */ + 1, /* number of bitplanes */ + { 0 }, + { + 0x307,0x306,0x305,0x304,0x303,0x302,0x301,0x300, + 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200, + 0x107,0x106,0x105,0x104,0x103,0x102,0x101,0x100, + 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000, + }, + { + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8, + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78 + }, + 0x400 +}; + + +static gfx_layout tunnel_layout = +{ + 32,32, + 2, /* number of characters */ + 1, /* number of bitplanes */ + { 0 }, + { + 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100, + 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300, + 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500, + 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78, + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8 + }, + 4 +}; + +static gfx_layout belt_layout = { + 32,16, + 2, /* number of characters */ + 1, /* number of bitplanes */ + { 4 }, + { + 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100, + 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300, + 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500, + 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700 + }, + { + 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, + 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78, + 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8, + 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8 + }, + 0x80 +}; + +static GFXDECODE_START( monaco ) + GFXDECODE_ENTRY( "gfx1", 0x0100, unknown_layout, 0x00, 1) /* PR125: unused; police car? */ + GFXDECODE_ENTRY( "gfx1", 0x0200, explode_layout, RED_CLUT, 2) /* PR126: explosion */ + GFXDECODE_ENTRY( "gfx1", 0x0400, player_layout, PLAYER_CLUT, 1) /* PR127: player's car */ + GFXDECODE_ENTRY( "gfx1", 0x0600, player_layout, PLAYER_CLUT, 1) /* PR128: swerving (rough road) */ + GFXDECODE_ENTRY( "gfx1", 0x0800, player_layout, PLAYER_CLUT, 1) /* PR129: spinout1 */ + GFXDECODE_ENTRY( "gfx1", 0x0a00, player_layout, PLAYER_CLUT, 1) /* PR130: spinout2 */ + GFXDECODE_ENTRY( "gfx1", 0x0c00, explode_layout, CYAN_CLUT, 1) /* PR131: spray */ + GFXDECODE_ENTRY( "gfx1", 0x0e00, computer_layout, 0x00, 5) /* PR132: computer car A,B */ + GFXDECODE_ENTRY( "gfx1", 0x1000, text_layout, CYAN_CLUT, 2) /* PR133: text */ + GFXDECODE_ENTRY( "gfx1", 0x1200, tree_layout, TREE_CLUT, 1) /* PR134: tree */ + GFXDECODE_ENTRY( "gfx1", 0x1300, tree_layout, TREE_CLUT, 1) /* PR134: grass */ + GFXDECODE_ENTRY( "gfx1", 0x1400, tree_layout, SHRUB_CLUT, 1) /* PR135: shrub */ + GFXDECODE_ENTRY( "gfx1", 0x1600, house_layout, HOUSE_CLUT, 1) /* PR136: house */ + GFXDECODE_ENTRY( "gfx1", 0x1800, tunnel_layout, RED_CLUT, 1) /* PR137: tunnel */ + GFXDECODE_ENTRY( "gfx1", 0x1900, pool_layout, CYAN_CLUT, 1) /* PR137: pool (oil slick) */ + GFXDECODE_ENTRY( "gfx1", 0x1900, belt_layout, GRASS_CLUT, 2) /* PR137: red/green belt */ + GFXDECODE_ENTRY( "gfx1", 0x1a00, rescue_layout, RESCUE_CLUT, 1) /* PR138: rescue car */ + GFXDECODE_ENTRY( "gfx1", 0x1c00, signal_layout, YELLOW_CLUT, 1) /* PR139: bridge signal (yellow on black)*/ + GFXDECODE_ENTRY( "gfx1", 0x1c00, dummy_layout, PLAYER_CLUT, 1) /* PR139: dummy car */ + GFXDECODE_ENTRY( "gfx1", 0x1e00, bridge_layout, WATER_CLUT, 1) /* PR140: bridge-water */ + GFXDECODE_ENTRY( "gfx1", 0x2000, bridge_layout, WATER_CLUT, 1) /* PR141: bridge-pillar */ +GFXDECODE_END + +static const char *const monaco_sample_names[] = +{ + "*monaco", + "6car1", + "6car2", + "6crash", + "6engine", + "6extend", + "6fanfare", + "6siren", + "6slip", +// "gravel", + 0 +}; + +/* ch 0 = engine; ch 1 = ambulance, puddle; ch 2 = extra car; ch 3 = crash; ch 4 = fanfare */ + +MACHINE_RESET_MEMBER( monaco_state, monaco ) +{ + UINT16 i; + m_time = 0; /* time remaining = 0 */ + m_score = 0; /* player score = 0 */ + m_gear = 0; /* low gear */ + m_plays = 0; /* no games played */ + for (i = 0;i < 1000;i++) + monaco_word_w (i, 0); /* delete all scores from RAM */ + GameOver(); +} + +static MACHINE_CONFIG_START( monaco, monaco_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD ("maincpu", Z80, 200) /* fake */ + MCFG_CPU_PROGRAM_MAP(monaco_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", monaco_state, monaco_interrupt) + MCFG_MACHINE_RESET_OVERRIDE(monaco_state, monaco) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(4368)) + MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT) + MCFG_SCREEN_VISIBLE_AREA(0, SCREEN_WIDTH-1, 0, SCREEN_HEIGHT-1) + MCFG_VIDEO_START_OVERRIDE(monaco_state, monaco) + MCFG_SCREEN_UPDATE_DRIVER(monaco_state, screen_update_monaco) + MCFG_SCREEN_PALETTE("palette") + MCFG_GFXDECODE_ADD("gfxdecode", "palette", monaco) + MCFG_PALETTE_ADD("palette", 160) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("samples", SAMPLES, 0) + MCFG_SAMPLES_CHANNELS(5) + MCFG_SAMPLES_NAMES(monaco_sample_names) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) +MACHINE_CONFIG_END + +/*****************************************************************/ + +ROM_START( monaco ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) /* fake */ + + ROM_REGION( 0x3000, "gfx1", 0 ) + ROM_LOAD( "pr125", 512*0, 512, CRC(7a66ed4c) SHA1(514e129c334a551b931c90b063b073a9b4bdffc3) ) /* light data */ + ROM_LOAD( "pr126", 512*1, 512, CRC(5d7a8f12) SHA1(b4f0d21b91a7cf7002f99c08788669c7c38be51d) ) /* explosion */ + ROM_LOAD( "pr127", 512*2, 512, CRC(8ffdc2f0) SHA1(05cc3330c067965b8b90b5d27119fe9f26580a13) ) /* car(2)main */ + ROM_LOAD( "pr128", 512*3, 512, CRC(dde29dea) SHA1(34c413edff991297471bd0bc193c4bd8ede4e468) ) /* car(2)rotated */ + ROM_LOAD( "pr129", 512*4, 512, CRC(7b18af26) SHA1(3d1ff2610813544c3b9b65182f081272a9537640) ) /* car(2)rotated */ + ROM_LOAD( "pr130", 512*5, 512, CRC(9ef1913b) SHA1(58830121781b8a13532eaf8ea13ec07f10522320) ) /* car(2) spinout */ + ROM_LOAD( "pr131", 512*6, 512, CRC(ff31eb01) SHA1(fd6bcd92c4bd919bb1a96ca97688d46cb310b39d) ) /* splash */ + ROM_LOAD( "pr132", 512*7, 512, CRC(6b8ad9bc) SHA1(be36e3b6b647d3a9565bc45903027c791dc889e5) ) /* car(2)(other) */ + ROM_LOAD( "pr133", 512*8, 512, CRC(d50641d9) SHA1(bf399e9830c88e4d8f8fb386305f54ef766946d9) ) /* text(4) */ + ROM_LOAD( "pr134", 512*9, 512, CRC(8ebd50bb) SHA1(98d51f503753d4d7191a09b509d26c1e049e981a) ) /* tree, grass */ + ROM_LOAD( "pr135", 512*10, 512, CRC(986eda32) SHA1(73fa539d4c83748952d9339985208520fec955f3) ) /* shrub */ + ROM_LOAD( "pr136", 512*11, 512, CRC(ecc5d1a2) SHA1(33bff7381785557a85e4c8bdd74679b59e0ed9d5) ) /* house */ + ROM_LOAD( "pr137", 512*12, 512, CRC(ddd9004e) SHA1(5229c34578e66d9c51a05439a516513946ba69ed) ) /* tunnel, oil slip */ + ROM_LOAD( "pr138", 512*13, 512, CRC(058e53cf) SHA1(7c3aaaca5a9e9ce3a3badd0dcc8360342673a397) ) /* firetruck */ + ROM_LOAD( "pr139", 512*14, 512, CRC(e8ba0794) SHA1(eadd7425134f26b1c126bbcd3d3dabf4b2e1fe70) ) /* car, bridge symbol */ + ROM_LOAD( "pr140", 512*15, 512, CRC(48e9971b) SHA1(c0c265cdc08727e3caaf49cdfe728a91c4c46ba2) ) /* bridge-water */ + ROM_LOAD( "pr141", 512*16, 512, CRC(99934236) SHA1(ec271f3e690d5c57ead9132b22b9b1b966e4d170) ) /* bridge-pillar */ + + ROM_REGION( 32*3, "proms", 0 ) + ROM_LOAD( "prm38", 0*32, 32, CRC(82dd0a0f) SHA1(3e7e475c3270853d70c1fe90a773172532b60cfb) ) /* acceleration related */ + ROM_LOAD( "prm39", 1*32, 32, CRC(6acfa0da) SHA1(1e56da4cdf71a095eac29878969b831babac222b) ) /* regulates opponent car speed */ + +// ROM_LOAD( "prm-40", 2*32, 32, CRC(8030dac8) ) +/* PR40 is in the Fanfare sound circuit and seems to access the particular + * notes for the fanfare sound (so PR40 may contain timing and pointer info + * on the melody). The switch (SW1) I mentioned before that helped in tuning + * the fanfare sound with the 6 pots seems to help in making the tuning of each + * pot for output of one of three audio frequencies (262, 330, 392 Hz), + * instead of having to tune to 6 different frequencies (a production/test + * equipment issue). + * In any case, if we get a good sample of this fanfare sound, we will not + * need to bother with this circuit or PR40. As far a I have seen, the + * fanfare sound only comes up at the end of the game if you have a top five + * score and possibly when you plug in the game. + */ +ROM_END + +DRIVER_INIT_MEMBER( monaco_state, monaco ) +{ + int i; + const double dy_table[5] = + { + 0.75, + 1.25, + 1.75, + 2.00, + 2.50 + }; + + m_computer_speed = 52*16/256.0; + m_track_bottom_inset = 32; + m_track_top_inset = 32; + m_track_bottom_delta = 1; + m_track_top_delta = 1; + + /* computer car */ + for( i=0; i<NUM_COMPUTER_CARS; i++ ) + { + m_xpos[i] = i*32*3 + ((i>1)?192:0); + m_ypos[i] = (SCREEN_HEIGHT-16)/2; + m_dy[i] = dy_table[i]; + } +} + +/* rom parent machine inp init */ +GAMEL( 1979, monaco, 0, monaco, monaco, monaco_state, monaco, ROT90, "Sega", "Monaco GP", 0, layout_monaco ) + + + + +/* Monaco GP video hardware simulation */ + + +#define plot_pixel(bitmap,x,y,col) do { bitmap.pix16(y, x) = col; } while (0) + +void monaco_state::draw_computer( bitmap_ind16 &bitmap, const rectangle clip ) +{ + int i; + + for( i=0; i<NUM_COMPUTER_CARS; i++ ) + { + m_gfxdecode->gfx(GFX_COMPUTER)->transpen( + bitmap, clip, + m_tile[i], + m_color[i], + 0,0, + m_x[i], + m_y[i], + 0 ); + } + + m_gfxdecode->gfx(GFX_RESCUE_CAR)->transpen( + bitmap, clip, + m_rescue_tile, + 0, /* color */ + 0,0, + m_rescue_x, + m_rescue_y, + 0 ); +} + +void monaco_state::draw_pool( bitmap_ind16 &bitmap, const rectangle clip ) +{ + m_gfxdecode->gfx(GFX_POOL)->transpen( + bitmap, clip, + 0,0, /* tile,color */ + 0,0, /* flip */ + m_pool_x, + m_pool_y, + 0 ); +} + +void monaco_state::draw_player( bitmap_ind16 &bitmap, const rectangle clip ) +{ + int gfx; + int tile; + + switch( m_player_splash ) + { + case 0: + m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip, + 2,0,0,0, + m_player_x, + m_player_y+32-8, + 0); + m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip, + 0,0,0,0, + m_player_x, + m_player_y-32+8, + 0); + break; + case 1: + m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip, + 3,0,0,0, + m_player_x, + m_player_y+32-8, + 0); + m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip, + 1,0,0,0, + m_player_x, + m_player_y-32+8, + 0); + break; + } + + tile = m_player_tile; + gfx = 0; + if( tile>=0 ) + { + switch( tile ) + { + case 0: + case 1: gfx = GFX_PLAYER; break; + + case 2: + case 3: gfx = GFX_SPINOUT1; tile -= 2; break; + + case 4: + case 5: gfx = GFX_SPINOUT2; tile -= 4; break; + + case 6: + case 7: + case 8: + case 9: gfx = GFX_EXPLOSION; tile -= 6; break; + + case 10: + case 11: gfx = GFX_SHAKE; tile -= 10; break; + } + + m_gfxdecode->gfx(gfx)->transpen( bitmap, clip, + tile,0, + 0,0, + m_player_x, + m_player_y, + 0); + } +} + +/*****************************************************************/ + +void monaco_state::draw_strip( bitmap_ind16 &bitmap, int sy, int x0, int x1, int xpos, int pen ) +{ + int sx; + if( x0<xpos ) x0 = xpos; + if( x1>xpos+PAGE_SIZE ) x1 = xpos+PAGE_SIZE; + if( x0<0 ) x0 = 0; + if( x1>SCREEN_WIDTH ) x1 = SCREEN_WIDTH; + for( sx=x0; sx<x1; sx++ ) plot_pixel( bitmap,sx,sy,pen ); +} + +void monaco_state::DrawSmoothZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos ) +{ + const UINT8 data[14] = + { + GFX_GRASS,GFX_GRASS,GFX_GRASS, + GFX_TREE,GFX_GRASS,GFX_TREE, + GFX_GRASS,GFX_HOUSE,GFX_GRASS, + GFX_SHRUB,GFX_SHRUB, + GFX_GRASS,GFX_GRASS,GFX_GRASS + }; + int top_inset = m_top_inset; + int bottom_inset = m_bottom_inset; + int i; + + draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN ); + draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN ); + + for( i=0; i<14; i++ ) + { + int code = data[i]; + gfx_element *gfx = m_gfxdecode->gfx(code); + gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT); + int j; + + for( j=0; j<3; j++ ) + { + gfx->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos, m_top_inset-32-16-j*32 ); + + gfx->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos,SCREEN_HEIGHT-m_bottom_inset+j*32+16-8 ); + } + belt->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos, m_top_inset-16 ); + + belt->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos,SCREEN_HEIGHT-m_bottom_inset ); + + xpos += 32; + } +} + +void monaco_state::DrawSlipZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos ) +{ + const UINT8 data[14] = + { + GFX_SHRUB,GFX_SHRUB,GFX_SHRUB, + GFX_SHRUB,GFX_SHRUB,GFX_SHRUB, + GFX_SHRUB,GFX_HOUSE, + GFX_SHRUB,GFX_SHRUB,GFX_SHRUB, + GFX_SHRUB,/* start */GFX_SHRUB,GFX_SHRUB + }; + + int top_inset = m_top_inset; + int bottom_inset = m_bottom_inset; + int i; + + draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN ); + draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN ); + + for( i=0; i<14; i++ ){ + int code = data[i]; + gfx_element *gfx = m_gfxdecode->gfx(code); + gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT); + int j; + + for( j=0; j<3; j++ ){ + gfx->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos, top_inset-32-j*32-16 ); + + gfx->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos,SCREEN_HEIGHT-bottom_inset+j*32+16-8 ); + } + + belt->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos, top_inset-16 ); + + belt->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos,SCREEN_HEIGHT-bottom_inset ); + + xpos += 32; + } +} + +void monaco_state::DrawGravelZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos ) +{ + const UINT8 data[14] = { + GFX_SHRUB,GFX_SHRUB,GFX_SHRUB, + GFX_SHRUB,GFX_SHRUB,GFX_SHRUB, + GFX_SHRUB,GFX_HOUSE, + GFX_SHRUB,GFX_SHRUB,GFX_SHRUB, + GFX_SHRUB,GFX_SHRUB,GFX_SHRUB + }; + int top_inset = m_top_inset; + int bottom_inset = m_bottom_inset; + int i; + int xpos0 = xpos; + + for( i=0; i<14; i++ ) + { + int code = data[i]; + gfx_element *gfx = m_gfxdecode->gfx(code); + gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT); + int j; + int ypos; + + /* draw gravel */ + if( data[i]!=GFX_HOUSE ) + { + ypos = SCREEN_HEIGHT-bottom_inset-32; + m_gfxdecode->gfx(GFX_BELT)->opaque( bitmap, clip, + 1,1, /* number, color */ + 0,0, /* no flip */ + xpos, ypos+32-8 ); + ypos-=24; + while( ypos>0 ){ + m_gfxdecode->gfx(GFX_BELT)->opaque( bitmap, clip, + 1,1, /* number, color */ + 0,0, /* no flip */ + xpos, ypos ); + ypos -= 16; + } + } + + for( j=0; j<3; j++ ) + { + ypos = SCREEN_HEIGHT-bottom_inset+16+j*32-8; + gfx->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos, ypos ); + } + + for( j=0; j<3; j++ ) + { + ypos = top_inset-32-16-j*32; + gfx->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos, ypos ); + } + + belt->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos, top_inset-16 ); + + belt->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,0, /* no flip */ + xpos,SCREEN_HEIGHT-bottom_inset ); + + + xpos += 32; + } + draw_strip( bitmap, top_inset, xpos0, xpos0+PAGE_SIZE, xpos0, YELLOW_PEN ); + draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos0, xpos0+PAGE_SIZE, xpos0, YELLOW_PEN ); +} + +void monaco_state::DrawBridgeZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos ) +{ + gfx_element *gfx1 = m_gfxdecode->gfx(GFX_BRIDGE1); + gfx_element *gfx2 = m_gfxdecode->gfx(GFX_BRIDGE2); + + int i; + for( i=0; i<14; i++ ) + { + int j; + gfx_element *gfx = (i==0)?gfx2:gfx1; + for( j=0; j<7; j++ ) + { + int flip; + for( flip=0; flip<=1; flip++ ) + { + int ypos = flip?(SCREEN_HEIGHT-16-j*16)+8:j*16-8; + if( j<5 ) + { /* water */ + gfx1->opaque( bitmap, clip, + 0,0, /* number, color */ + 0,flip, + xpos, ypos ); + } + else + { /* edge of bridge */ + gfx->opaque( bitmap, clip, + j-5,0, /* number, color */ + 0,flip, + xpos, ypos ); + } + } + } + xpos += 32; + } +} + +void monaco_state::DrawTunnelZone( bitmap_ind16 &bitmap, int xpos ) +{ + int pen = YELLOW_PEN; + int top_inset = m_top_inset; + int bottom_inset = m_bottom_inset; + draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, pen ); + draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, pen ); +} + +void monaco_state::DrawTunnelWall( bitmap_ind16 &bitmap, const rectangle clip, int xpos ) +{ + rectangle clip2; + gfx_element *gfx = m_gfxdecode->gfx(GFX_TUNNEL); + int top_inset = m_top_inset - 16; + int bottom_inset = m_bottom_inset - 16; + int i; + + clip2.min_x = clip.min_x; + clip2.max_x = clip.max_x; + clip2.max_y = clip.max_y; + clip2.min_y = SCREEN_HEIGHT-bottom_inset; + + for( i=0; i<14; i++ ) + { + int j; + for( j=0; j<2; j++ ) + { + gfx->transpen( bitmap, clip, + 1,0, /* number, color */ + 0,0, /* no flip */ + xpos, top_inset-32-j*32, 0 ); + + gfx->transpen( bitmap, clip, + 1,0, /* number, color */ + 0,0, /* no flip */ + xpos, SCREEN_HEIGHT-bottom_inset+j*32 - 8, 0 ); + } + xpos += 32; + } +} + +void monaco_state::draw_light_helper( bitmap_ind16 &bitmap, int xpos ) +{ + int pen = BLACK_PEN; + const unsigned char *source = memregion( "gfx1" )->base(); + int x0 = m_player_x-128; + int y0 = m_player_y-48; + int sy; + for( sy=0; sy<SCREEN_HEIGHT; sy++ ) + { + int i = sy-y0; + if( i<0 || i>=128 ) + { + draw_strip( bitmap, sy, xpos, xpos+PAGE_SIZE, xpos, pen ); + } + else + { + int left = x0+source[i]; + int right = x0+source[i+128]; + draw_strip( bitmap, sy, xpos, left, xpos, pen ); + draw_strip( bitmap, sy, right, xpos+PAGE_SIZE, xpos, pen ); + } + } +} + +void monaco_state::draw_wall( bitmap_ind16 &bitmap, const rectangle clip ) +{ + if( m_right_page == PAGE_TUNNEL ) + DrawTunnelWall( bitmap, clip, SCREEN_WIDTH-14*32+m_scroll ); + + if( m_left_page == PAGE_TUNNEL ) + DrawTunnelWall( bitmap, clip, SCREEN_WIDTH-14*32*2+m_scroll ); +} + +void monaco_state::draw_light( bitmap_ind16 &bitmap ) +{ + if( m_right_page == PAGE_TUNNEL ) + draw_light_helper( bitmap, SCREEN_WIDTH-14*32+m_scroll ); + + if( m_left_page == PAGE_TUNNEL ) + draw_light_helper( bitmap, SCREEN_WIDTH-14*32*2+m_scroll ); +} + +void monaco_state::draw_page( bitmap_ind16 &bitmap, const rectangle clip, int which, int xpos ) +{ + rectangle r; + r.min_x = xpos; + r.max_x = xpos+PAGE_SIZE-1; + r.min_y = 0; + r.max_y = SCREEN_HEIGHT-1; + bitmap.fill( (which!=PAGE_SLIP)?GREY_PEN:CYAN_PEN,r ); + switch( which ) + { + case PAGE_SMOOTH: + DrawSmoothZone( bitmap, clip, xpos ); + break; + + case PAGE_SLIP: + DrawSlipZone( bitmap, clip, xpos ); + break; + + case PAGE_TUNNEL: + DrawTunnelZone( bitmap, xpos ); + break; + + case PAGE_GRAVEL: + DrawGravelZone( bitmap, clip, xpos ); + break; + + case PAGE_BRIDGE: + DrawBridgeZone( bitmap, clip, xpos ); + break; + } +} + +void monaco_state::draw_background( bitmap_ind16 &bitmap, const rectangle clip ) +{ + draw_page(bitmap, clip, + m_right_page, + SCREEN_WIDTH-14*32+m_scroll ); + + draw_page(bitmap, clip, + m_left_page, + SCREEN_WIDTH-14*32*2+m_scroll ); +} + +void monaco_state::draw_text( bitmap_ind16 &bitmap, const rectangle clip ) +{ + int sx = (SCREEN_WIDTH-8)/2; + int sy = (SCREEN_HEIGHT-128)/2; + + if( m_left_text != -1 ) + { + m_gfxdecode->gfx(GFX_TEXT)->zoom_transpen( bitmap, clip, + m_left_text,0, + 0,0, /* flip */ + sx-96,sy, + 1<<16, 2<<16, 0 + ); + } + + if( m_right_text != -1 ) + { + m_gfxdecode->gfx(GFX_TEXT)->zoom_transpen( bitmap, clip, + m_right_text,1, + 0,0, /* flip */ + SCREEN_WIDTH-32,sy, + 1<<16, 2<<16, 0 + ); + } +} + +/* last two values are L and H used to display in gear field (not supported officially)*/ +static const UINT8 led_map[12] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x38,0x76 }; + +/* following outputs LED's for bezel. also displays time,score&speed text versions (text version disabled here) */ + +void monaco_state::draw_leds( bitmap_ind16 &bitmap ) +{ + int i; + UINT32 data; + +// data = m_speed; +// for( i=2; i>=0; i-- ) +// { +// drawgfx_transpen( bitmap, led_font, +// data%10,0, /* number, color */ +// 0,1, /* no flip */ +// 9,SCREEN_HEIGHT-6-i*6, +// NULL, TRANSPARENCY_NONE,0 ); +// +// data = data/10; +// } + + data = m_led_high1>>8; + for( i=3; i>=0; i-- ) + { + output().set_digit_value(i+10, led_map[data%10]); + data = data/10; + } + + data = m_led_high2>>8; + for( i=3; i>=0; i-- ) + { + output().set_digit_value(i+20, led_map[data%10]); + data = data/10; + } + + data = m_led_high3>>8; + for( i=3; i>=0; i-- ) + { + output().set_digit_value(i+30, led_map[data%10]); + data = data/10; + } + + data = m_led_high4>>8; + for( i=3; i>=0; i-- ) + { + output().set_digit_value(i+40, led_map[data%10]); + data = data/10; + } + + data = m_led_high5>>8; + for( i=3; i>=0; i-- ) + { + output().set_digit_value(i+50, led_map[data%10]); + data = data/10; + } + + data = m_led_score>>8; + for( i=3; i>=0; i-- ) + { +// drawgfx_transpen( bitmap, led_font, +// data%10,0, /* number, color */ +// 0,1, /* no flip */ +// 0,SCREEN_HEIGHT-6-i*6, +// NULL, TRANSPARENCY_NONE,0 ); + + output().set_digit_value(i, led_map[data%10]); + + data = data/10; + } + + data = m_led_plays; + for( i=2; i>=0; i-- ) + { + output().set_digit_value(i+60, led_map[data%10]); + data = data/10; + } + + data = m_led_rank; + for( i=2; i>=0; i-- ) + { + if (data == 0xffff) + { + output().set_digit_value(i+70, 0); /* make it blank */ + } + else + { + output().set_digit_value(i+70, led_map[data%10]); + data = data/10; + } + } + + data = m_led_speed; + for( i=2; i>=0; i-- ) + { +// drawgfx_transpen( bitmap, led_font, +// data%10,0, /* number, color */ +// 0,1, /* no flip */ +// 9,SCREEN_HEIGHT-6-i*6, +// NULL, TRANSPARENCY_NONE,0 ); +// + output().set_digit_value(i+80, led_map[data%10]); + data = data/10; + } + + data = m_led_gear; + for( i=0; i>=0; i-- ) + { + output().set_digit_value(i+90, led_map[10+data%10]); + data = data/10; + } + + data = m_led_lives; + for( i=0; i>=0; i-- ) + { + output().set_digit_value(i+100, led_map[data%10]); + data = data/10; + } + + data = m_led_time>>8; + for( i=1; i>=0; i-- ) + { +// drawgfx_opaque( bitmap, NULL, led_font, +// data%10,0, /* number, color */ +// 0,1, /* no flip */ +// 18,SCREEN_HEIGHT-6-i*6 ); + + output().set_digit_value(i+4, led_map[data%10]); + + data = data/10; + } +} + +void monaco_state::draw_signal( bitmap_ind16 &bitmap ) +{ + if( m_bSignalVisible ) + { +// drawgfx_opaque( +// bitmap, NULL, machine().gfx[GFX_SIGNAL], +// 0,0, /* number, color */ +// 0,0, /* no flip */ +// 32,(SCREEN_HEIGHT - 32)/2 ); + } +} + +UINT32 monaco_state::screen_update_monaco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + const rectangle &visarea = screen.visible_area(); + draw_background( bitmap, visarea ); + draw_pool( bitmap, visarea ); + draw_computer( bitmap, visarea ); + draw_light( bitmap ); + draw_wall( bitmap, visarea ); + draw_text( bitmap, visarea ); + draw_player( bitmap, visarea ); + draw_signal( bitmap ); + draw_leds( bitmap ); + return 0; +} + +VIDEO_START_MEMBER( monaco_state, monaco ) +{ + int i; + + m_palette->set_pen_color( 0, 0x00,0x00,0x00 ); /* black (tire) */ + m_palette->set_pen_color( 1, 0xff,0xff,0xff ); /* white (trim) */ + /* computer car */ + for( i=0; i<NUM_COMPUTER_CAR_TYPES; i++ ) + { + const unsigned char clut[3*NUM_COMPUTER_CAR_TYPES] = + { + 0x00,0xff,0x00, /* green car */ + 0xff,0xff,0x00, /* yellow car */ + 0x00,0xff,0xff, /* cyan car */ + 0xff,0x00,0xff, /* purple car */ + 0x00,0x00,0xff /* blue car */ + }; + + m_palette->set_pen_color( 16*i+0x8, 0x00,0x00,0x00 ); /* black (tire) */ + m_palette->set_pen_color( 16*i+0xa, 0xff,0xff,0xff ); /* white (trim) */ + m_palette->set_pen_color( 16*i+0xc, clut[i*3+0],clut[i*3+1],clut[i*3+2] ); + } + /* rescue car */ + m_palette->set_pen_color( 0x50+0x8, 0x00,0x00,0x00 ); // black + m_palette->set_pen_color( 0x50+0x9, 0xff,0xff,0x00 ); // yellow + m_palette->set_pen_color( 0x50+0xa, 0xff,0xff,0xff ); // white + m_palette->set_pen_color( 0x50+0xc, 0xff,0x00,0x00 ); // red (light) + /* house */ + m_palette->set_pen_color( 0x60+0x0, 0x00,0x00,0x00 ); // ground + m_palette->set_pen_color( 0x60+0x9, 0xff,0x00,0x00 ); // right roof + m_palette->set_pen_color( 0x60+0xa, 0xff,0x00,231 ); // left roof + m_palette->set_pen_color( 0x60+0xb, 0x00,198,255 ); // front + m_palette->set_pen_color( 0x60+0xc, 0xff,0xff,0xff ); // trim + /* water */ + m_palette->set_pen_color( 0x70, 0x00,0x00,0xff );//l.blue + m_palette->set_pen_color( 0x71, 0xff,0x00,0x00 );//red + m_palette->set_pen_color( 0x72, 0xff,0xff,0x00 );//yellow + m_palette->set_pen_color( 0x73, 0x00,0x00,0x00 );//black + m_palette->set_pen_color( 0x74, 0x00,0x00,0x00 );//N/A + m_palette->set_pen_color( 0x75, 0xff,0xff,0xff );//white + m_palette->set_pen_color( 0x76, 0x9f,0x9f,0x9f );//grey (road) + m_palette->set_pen_color( 0x77, 0x00,0x00,0x9f );//d.blue + /* player car */ + m_palette->set_pen_color( 0x80, 0x00,0x00,0x00 ); + m_palette->set_pen_color( 0x81, 0xff,0x00,0x00 ); // red (car body) + m_palette->set_pen_color( 0x82, 0xff,0xff,0xff ); // white (trim) + m_palette->set_pen_color( 0x83, 0x00,0x00,0x00 ); // black (tire) + /* tree */ + m_palette->set_pen_color( 0x84, 0xff,0xff,0x00 ); // yellow + m_palette->set_pen_color( 0x85, 0x00,0x00,0x00 ); // dark green + m_palette->set_pen_color( 0x86, 0x00,165,0x00 ); // light green + m_palette->set_pen_color( 0x87, 0x00,0x00,0x00 ); // black? + /* shrub */ + m_palette->set_pen_color( 0x88, 0x00,0x00,0x00 ); + m_palette->set_pen_color( 0x89, 0x00,0xff,0x00 ); + m_palette->set_pen_color( 0x8a, 0x00,0x00,0xff ); + m_palette->set_pen_color( 0x8b, 0xff,0xff,0xff ); + /* grass */ + m_palette->set_pen_color( 0x8c, 0x00,0x00,0x00 ); + m_palette->set_pen_color( 0x8d, 0x00,0x9f,0x00 ); // dark green + m_palette->set_pen_color( 0x8e, 0x00,0x00,0x00 ); + m_palette->set_pen_color( 0x8f, 0x00,0x00,0x9f ); // dark blue + m_palette->set_pen_color( 0x90, 0x00,0x00,0x00 ); // black + m_palette->set_pen_color( 0x91, 0x00,0xff,0xff ); // cyan + m_palette->set_pen_color( 0x92, 0x00,0x00,0x00 ); // grey + m_palette->set_pen_color( 0x93, 0xff,0x00,0x00 ); // red + m_palette->set_pen_color( 0x94, 0x00,0x00,0x00 ); // black + m_palette->set_pen_color( 0x95, 255,215,0 ); // yellow trim + m_palette->set_pen_color( 0x96, 132,132,132 ); // grey (road) +// 0,198,255: wet road +// 255,215,0: yellow trim +} diff --git a/docs/release/src/hbmame/drivers/mrdo.cpp b/docs/release/src/hbmame/drivers/mrdo.cpp new file mode 100644 index 00000000000..e5f7682e2f2 --- /dev/null +++ b/docs/release/src/hbmame/drivers/mrdo.cpp @@ -0,0 +1,166 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/mrdo.cpp" + +ROM_START( mrdigdo ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "mrd-d1", 0x0000, 0x2000, CRC(3dcd9359) SHA1(bfe00450ee8822f437d87514f051ad1be6de9463) ) + ROM_LOAD( "mrd-d2", 0x2000, 0x2000, CRC(710058d8) SHA1(168cc179f2266bbf9437445bef9ff7d3358a8e6b) ) + ROM_LOAD( "mrd-d3", 0x4000, 0x2000, CRC(467d12d8) SHA1(7bb85e6a780de1c0c224229ee571cab39098f78d) ) + ROM_LOAD( "mrd-d4", 0x6000, 0x2000, CRC(fce9afeb) SHA1(26236a42c1c620975d4480c4315d0c6f112429b6) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mrd-d9", 0x0000, 0x1000, CRC(b83b8a84) SHA1(138a4fd1b7470def1b4e8aa4cfcf4c4b6bebf35b) ) + ROM_LOAD( "mrd-d10", 0x1000, 0x1000, CRC(061cabb9) SHA1(cdc8876f1c402565835db01a78906200430bcf72) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) ) + ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) + ROM_LOAD( "mrd-d5", 0x0000, 0x1000, CRC(401f9fa5) SHA1(7483150ae429c9841d04ec4d79eda59bf1db8330) ) + ROM_LOAD( "mrd-d6", 0x1000, 0x1000, CRC(ff401f59) SHA1(5f34363ffb5e470470c3a0d9ff704f4d9b814ecd) ) + + ROM_REGION( 0x0080, "proms", 0 ) + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ +ROM_END + +ROM_START( mrdofast ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) ) + ROM_LOAD( "f-c4-02.bin", 0x2000, 0x2000, CRC(894d12e4) SHA1(ff89eca0506727f1973b14a13d848799e7ada7ec) ) + ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) ) + ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "s8-09.bin", 0x0000, 0x1000, CRC(aa80c5b6) SHA1(76f9f90deb74598470e7ed565237da38dd07e4e9) ) + ROM_LOAD( "u8-10.bin", 0x1000, 0x1000, CRC(d20ec85b) SHA1(9762bbe34d3fa209ea719807c723f57cb6bf4e01) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) ) + ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) + ROM_LOAD( "h5-05.bin", 0x0000, 0x1000, CRC(e1218cc5) SHA1(d946613a1cf1c97f7533a4f8c2d0078d1b7daaa8) ) + ROM_LOAD( "k5-06.bin", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) ) + + ROM_REGION( 0x0080, "proms", 0 ) + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ +ROM_END + +ROM_START( mrpac ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) ) + ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) ) + ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) ) + ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mp-s8-09.bin", 0x0000, 0x1000, CRC(930908e5) SHA1(13666166bb6a38c0b7a8d4133a0fb6fdd7aee372) ) + ROM_LOAD( "mp-u8-10.bin", 0x1000, 0x1000, CRC(ead6d3d6) SHA1(2dc959ca1e9e2cbdc0098ce92b9a11dc24643a38) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) ) + ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) + ROM_LOAD( "mp-h5-05.bin", 0x0000, 0x1000, CRC(de213e01) SHA1(61f3d3081dded0cc753640632127e52e4ddf0a75) ) + ROM_LOAD( "mp-k5-06.bin", 0x1000, 0x1000, CRC(c2e376a4) SHA1(d7e5fbdcd2b66ec56524e37eee18f91af96443dd) ) + + ROM_REGION( 0x0080, "proms", 0 ) + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ +ROM_END + +ROM_START( mrpacb ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) ) + ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) ) + ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) ) + ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mpb-s8-09.bin", 0x0000, 0x1000, CRC(ff01d8a0) SHA1(d3d674d8e5bfc6a133fc047bbfb21d179a322c07) ) + ROM_LOAD( "mpb-u8-10.bin", 0x1000, 0x1000, CRC(c1e9b7e8) SHA1(ea455a616597c58bfa88b5ba1069b3fb33d84a7f) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) ) + ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) + ROM_LOAD( "mp-h5-05.bin", 0x0000, 0x1000, CRC(de213e01) SHA1(61f3d3081dded0cc753640632127e52e4ddf0a75) ) + ROM_LOAD( "mp-k5-06.bin", 0x1000, 0x1000, CRC(c2e376a4) SHA1(d7e5fbdcd2b66ec56524e37eee18f91af96443dd) ) + + ROM_REGION( 0x0080, "proms", 0 ) + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ +ROM_END + +ROM_START( newdigdo ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) ) + ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) ) + ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) ) + ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "nd-s8-09.bin", 0x0000, 0x1000, CRC(48f2bd6d) SHA1(d741f58d5b7e74c498eee11cb8b959f7eec73671) ) + ROM_LOAD( "nd-u8-10.bin", 0x1000, 0x1000, CRC(7be2fc3e) SHA1(763f95812e35671b3815385cec5ccdaeca4b2b2a) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "nd-r8-08.bin", 0x0000, 0x1000, CRC(069a3e35) SHA1(09a361baed6417fdb4ecc1d8dd09ae9b2ccdef99) ) + ROM_LOAD( "nd-n8-07.bin", 0x1000, 0x1000, CRC(7ef6f5e4) SHA1(8839f6670010c0249b19f306c200c29775dc0351) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) + ROM_LOAD( "nd-h5-05.bin", 0x0000, 0x1000, CRC(4c8f6cf8) SHA1(92a0a5b8178fec5f7c4214c03d7d691872fed59a) ) + ROM_LOAD( "nd-k5-06.bin", 0x1000, 0x1000, CRC(1a5f18fc) SHA1(58cbad50c1001dfcb302c28db183e511907e6f86) ) + + ROM_REGION( 0x0080, "proms", 0 ) + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ +ROM_END + +ROM_START( stickydo ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) ) + ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) ) + ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) ) + ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "st-s8-09.bin", 0x0000, 0x1000, CRC(0becc7bc) SHA1(d5ef21aa6f8daaf98f4c6c809504edea4fde35a1) ) + ROM_LOAD( "st-u8-10.bin", 0x1000, 0x1000, CRC(fc08364e) SHA1(69edf2405836511035f46cddb339e57b4eb5b2fe) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "nd-r8-08.bin", 0x0000, 0x1000, CRC(069a3e35) SHA1(09a361baed6417fdb4ecc1d8dd09ae9b2ccdef99) ) + ROM_LOAD( "nd-n8-07.bin", 0x1000, 0x1000, CRC(7ef6f5e4) SHA1(8839f6670010c0249b19f306c200c29775dc0351) ) + + ROM_REGION( 0x2000, "gfx3", 0 ) + ROM_LOAD( "st-h5-05.bin", 0x0000, 0x1000, CRC(64d2f54f) SHA1(f301c0190f780bc60d03e5b752bde5e81ce5e93c) ) + ROM_LOAD( "st-k5-06.bin", 0x1000, 0x1000, CRC(af9b0d35) SHA1(da2d469514a3b95362dace2f48d320234a695e28) ) + + ROM_REGION( 0x0080, "proms", 0 ) + ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) ) /* palette (high bits) */ + ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) ) /* palette (low bits) */ + ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) ) /* sprite color lookup table */ + ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) ) /* timing (not used) */ +ROM_END + +GAME( 1998, mrdigdo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Justin Clark", "Mr. Do! (Dig Dug sprites)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdofast, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Evil Exidy Dump", "Mr. Do! (Speedup Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mrpac, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Twisty", "Mr. Pac! (Set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mrpacb, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Twisty", "Mr. Pac! (Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, newdigdo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Vic Twenty George, Jerky, Justin Clark", "Mr. Do! (Dig Dug sprites, new version)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, stickydo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Marcks Hacks", "Mr. Sticky Do!", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/mslug.cpp b/docs/release/src/hbmame/drivers/mslug.cpp new file mode 100644 index 00000000000..b7d16a64476 --- /dev/null +++ b/docs/release/src/hbmame/drivers/mslug.cpp @@ -0,0 +1,2325 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#if 0 +DRIVER_INIT_MEMBER( neogeo_hbmame, mslugx ) +{ + mslugx_install_protection(); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3 ) +{ + DRIVER_INIT_CALL(neogeo); + m_sma_prot->mslug3_decrypt_68k(cpuregion); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, 0, 0, MSLUG3_GFX_KEY); + m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart); + +#endif +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3n ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3d ) +{ + DRIVER_INIT_CALL(neogeo); + m_sma_prot->mslug3_decrypt_68k(cpuregion); + m_sprgen->m_fixed_layer_bank_type = 1; + m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3fr ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4d ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4dh ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4it ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, 0, 0, MSLUG4_GFX_KEY); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4m ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG4_GFX_KEY); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5b ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG5_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5d ) +{ + DRIVER_INIT_CALL(neogeo); + m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5hd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5d1 ) +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5fr1 ) +{ + DRIVER_INIT_CALL(neogeo); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, ms5boot ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + + +DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5nd ) +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, ms5pcbd ) +{ + DRIVER_INIT_CALL(neogeo); + + m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_sprgen->m_fixed_layer_bank_type = 2; + svcpcb_s1data_decrypt(); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); + install_banked_bios(); +} + + +#if 0 +ROM_START( mslug ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) ) + + NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) ) + ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) ) + ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) ) + ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) ) + ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) ) +ROM_END +#endif +ROM_START( msboot ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) ) + + NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "201boot.v1", 0x000000, 0x200000, CRC(2C05FD7C) SHA1(4f28bc799da0e27b2f3cde364d8c9822468abb8f) ) + ROM_LOAD( "201boot.v2", 0x200000, 0x200000, CRC(752DE272) SHA1(1e9ffb296a1089e15b23455841ad91e8a565ba62) ) + ROM_LOAD( "201boot.v3", 0x400000, 0x200000, CRC(AA48FAA6) SHA1(4695b9dafdc13997410cbd7954c2a7f1b5e4649d) ) + ROM_LOAD( "201boot.v4", 0x600000, 0x200000, CRC(4264444B) SHA1(7c248e8e559c67d6e8474ec6ce5cf2e3e41235e4) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) ) + ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) ) + ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) ) + ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) ) +ROM_END + +ROM_START( mslugeh ) /* Metal Slug - Enhance by Ydmis - (New standard weapon shotgun - 20 bombs instead of 10) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "201eh.p1", 0x100000, 0x100000, CRC(20bb97f7) SHA1(1444cad0262883b9e6c581387634d4e82a33c6bb) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) ) + + NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) ) + ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) ) + ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) ) + ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) ) + ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) ) +ROM_END +#if 0 +ROM_START( mslug2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241-p1.p1", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END +#endif +ROM_START( mslug2eh ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241eh.p1", 0x000000, 0x100000, CRC(82cdf18b) SHA1(4a51e4973f7ff5d7149763502e07cf2fc8ec9f43) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2eh0 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241eh0.p1", 0x000000, 0x100000, CRC(d2dbae34) SHA1(6bd86bd6b3f4a08d0586efccdef457499bb53d8f) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2eh1 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241eh1.p1", 0x000000, 0x100000, CRC(e8646c37) SHA1(f3d02a16ec6106e6c20d8c519893d532764420a6) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2eh2 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241eh2.p1", 0x000000, 0x100000, CRC(579ecaf3) SHA1(e437ae08b265202635c963f10e497ed1788b75fa) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2eh3 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241eh3.p1", 0x000000, 0x100000, CRC(3d37574f) SHA1(431e80d8689cdba27726265a7dab2ac7a5db71e2) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2eh4 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241eh4.p1", 0x000000, 0x100000, CRC(f31a813a) SHA1(a0024fc378b7e7daa4f48049042ecb8b2551e71a) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2fr ) /* Metal Slug 2 - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241fr.p1", 0x000000, 0x100000, CRC(ad0de810) SHA1(69c56326b555fb2c18228794e1a2bfd11652ec16) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241fr.c1", 0x0000000, 0x800000, CRC(7df74035) SHA1(08322a2f4e87cd125ebc5b7a98754c7a5b8e91d2) ) + ROM_LOAD16_BYTE( "241fr.c2", 0x0000001, 0x800000, CRC(97d9525d) SHA1(451a5bdafe1f2de63b76efb7d4afab454abdfff0) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2fro ) /* [OLD] Metal Slug 2 - (mslug2fro) - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241fro.p1", 0x000000, 0x100000, CRC(b0fe22b3) SHA1(9b2d19694165d1f5e20da70b645e55294a10ef51) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241fro.c1", 0x0000000, 0x800000, CRC(44da3c4a) SHA1(72ea1c469b332d8c60816e4c965d4f46a5090baa) ) + ROM_LOAD16_BYTE( "241fro.c2", 0x0000001, 0x800000, CRC(07c20fad) SHA1(8664950aa7569cd6594b8964f053b19a18c2d5a9) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2sh ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241sh.p1", 0x000000, 0x100000, CRC(4e4c8d1d) SHA1(bdb30f68fa1345511cbe1afcdf04c5f59d8965a1) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +ROM_START( mslug2t ) /* System11 - Metal Slug 2 Turbo - hack to remove slowdowns in gameplay */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241t.p1", 0x000000, 0x100000, CRC(df5d6fbc) SHA1(b9cc3e29afc12dc98daac9afb4f94e2cdd8b455c) ) + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) +ROM_END + +#if 0 +ROM_START( mslugx ) /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END +#endif +ROM_START( mslugxeb ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250eb.p1", 0x000000, 0x100000, CRC(c41c7ddb) SHA1(1662a1fd1c35511b3091e979b55e940a9f887143) ) + ROM_CONTINUE (0x000000, 0x100000) + ROM_LOAD16_WORD_SWAP( "250eb.p2", 0x100000, 0x400000, CRC(a51363d1) SHA1(7b6b3490a975ac1e549df60b9d70ccd6d2f2ba6e) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxeh ) /* Metal Slug X - Enhance by KrysoFun/KVS - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250eh.p1", 0x000000, 0x100000, CRC(2e110dd7) SHA1(4ce18a726103bc7c1972125806b2c89332338050) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxeh1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250eh1.p1", 0x000000, 0x100000, CRC(2b016e87) SHA1(ab99da64a084f5fef75d9647182a42d7e72bd4c4) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxex ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250ex.p1", 0x000000, 0x100000, CRC(7b751398) SHA1(6149b81b5fb4e9b501a7b119b030df432985b409) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxfr ) /* Metal Slug X - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250fr.p1", 0x000000, 0x100000, CRC(58a64443) SHA1(ab07993de04eb65f89bab5d4b6e473d7ecbc8ff1) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) ) + ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxfro ) /* [OLD] Metal Slug X - (mslugxfro) - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250fro.p1", 0x000000, 0x100000, CRC(4dadf4f3) SHA1(e37e53370cd6b03bb0e2b8266f635ce7980de45b) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) ) + ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxhp ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) ) + ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxit ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250it.p1", 0x000000, 0x100000, CRC(f3e154ea) SHA1(bb8260deefa7b048772625085e6f41cab717a147) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxp ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250p.p1", 0x000000, 0x100000, CRC(e65937fc) SHA1(128af1815a23962de02384d61ff52869ae14cea1) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxr ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250r.p1", 0x000000, 0x100000, CRC(e74f36c2) SHA1(b17d66f36e6ac31433179566ea07a0ed8790b161) ) + ROM_LOAD16_WORD_SWAP( "250r.p2", 0x100000, 0x400000, CRC(e954b8aa) SHA1(b339b1fd05d50ac3a9d3992bb0fc8e3fd1a95557) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +ROM_START( mslugxst ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250st.p1", 0x000000, 0x100000, CRC(db88d115) SHA1(627d01c4d4bd6c4cfeac5f14859fe9a7026370b0) ) + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) +ROM_END + +#if 0 +ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) + ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) ) + ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END +#endif +ROM_START( mslug3d ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) + ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) ) + ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) ) + + //NEO_SFIX_128K( "256d.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) ) + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) ) + ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) ) + ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) ) + ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) ) + ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) ) + ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) ) + ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) ) + ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) ) +ROM_END + +ROM_START( mslug3d1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256d1.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1d.c1d", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) ) + ROM_LOAD16_BYTE( "256-c2d.c2d", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) ) + ROM_LOAD16_BYTE( "256-c3d.c3d", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) ) + ROM_LOAD16_BYTE( "256-c4d.c4d", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) ) + ROM_LOAD16_BYTE( "256-c5d.c5d", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) ) + ROM_LOAD16_BYTE( "256-c6d.c6d", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) ) + ROM_LOAD16_BYTE( "256-c7d.c7d", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) ) + ROM_LOAD16_BYTE( "256-c8d.c8d", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) ) +ROM_END + +ROM_START( mslug3e02 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e02.p1", 0x000000, 0x100000, CRC(c9cf4ef8) SHA1(e1e10dcea6ce0c8b6939250adaa167e950069760) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e03 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e03.p1", 0x000000, 0x100000, CRC(77f64aa6) SHA1(8aa93f67e55461019dc677cb6f96ead3771232d1) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e04 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e04.p1", 0x000000, 0x100000, CRC(09e9fe91) SHA1(573bd25c77e79de85396812bb7632be8d93bdaa6) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e05 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e05.p1", 0x000000, 0x100000, CRC(c1a91748) SHA1(07227283b7fe0e040962a84bc345b231fe6417e3) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e06 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e06.p1", 0x000000, 0x100000, CRC(812cdce7) SHA1(5249bc026471c1abb2d37b2ac03267b3349a6345) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e07 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e07.p1", 0x000000, 0x100000, CRC(bb123461) SHA1(26a8fbb7792ebbd1052a09a78a38a72901644902) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e08 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e08.p1", 0x000000, 0x100000, CRC(7666aad5) SHA1(3d55be31a158501d74994a5abf31d6928626d7e3) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e09 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e09.p1", 0x000000, 0x100000, CRC(be26430c) SHA1(ee4d070885032bc5c2699d8c0b5abe7d1d7bc6cc) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e10 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e10.p1", 0x000000, 0x100000, CRC(e510ae7e) SHA1(35183a58c11e78c9da08643853c2b06eed74b87c) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e11 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e11.p1", 0x000000, 0x100000, CRC(2d5047a7) SHA1(89e720e8ccddbbc81c923ad8f7e5a371f9f0ecfc) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e12 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e12.p1", 0x000000, 0x100000, CRC(410a6c8e) SHA1(d89aaa1a6fa46c20a84b8fafd83c66fe43a93e86) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e13 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e13.p1", 0x000000, 0x100000, CRC(642335cb) SHA1(a17e7a48759a7589a3baf5ff4f69c937954de44c) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e14 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e14.p1", 0x000000, 0x100000, CRC(3e8538ca) SHA1(148732165a081bec2f7bdefc79ce7a2db6a2998d) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e15 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e15.p1", 0x000000, 0x100000, CRC(f6c5d113) SHA1(555ce0ea6c7d3003c9239de8b7a580295096e9ff) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e16 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e16.p1", 0x000000, 0x100000, CRC(52df13e3) SHA1(9e24404b687284540d21b3be512108da1f1e2bbf) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e17 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e17.p1", 0x000000, 0x100000, CRC(9a9ffa3a) SHA1(3ce3ba9048aa94543a03798c710c4bea4075a072) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e18 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e18.p1", 0x000000, 0x100000, CRC(1a3c81fc) SHA1(b6f2ed4cb2b7f3f3dd3ef1bc97780ef136b2a82c) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e19 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e19.p1", 0x000000, 0x100000, CRC(d27c6825) SHA1(d58d0db2378f0541c18dd60fc933614537572dc7) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e20 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e20.p1", 0x000000, 0x100000, CRC(e4804e0d) SHA1(9d47e69e8ff737a977c9470a59024da7af35db9c) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e21 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e21.p1", 0x000000, 0x100000, CRC(2cc0a7d4) SHA1(7f640067d653c8c0b66ba3c33d0e948497786acf) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3e22 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256e22.p1", 0x000000, 0x100000, CRC(7d648368) SHA1(d637a17d777f59596ad1b67b7898f182f8f4d577) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3eb ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "mslug3eb.sma", 0x0c0000, 0x040000, CRC(2a9935c2) SHA1(f39d47b0b6fbe0e741777d47fbaf37008c4e0599) ) + ROM_LOAD16_WORD_SWAP( "256eb.p1", 0x100000, 0x400000, CRC(6ec2e58d) SHA1(d83dd522a5c8a8b4bd32722967e3d934d2e73e08) ) + ROM_LOAD16_WORD_SWAP( "256eb.p2", 0x500000, 0x400000, CRC(ca4eb0d3) SHA1(eafd000ae27c0b904aea50f681f98ab67068da20) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3eha ) /* Metal Slug 3 - Super Enhance by HappyAsr - (Style remix 20030826) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256eha.p1", 0x000000, 0x100000, CRC(e04c6624) SHA1(de684f346ab9a2e5730a6753de6d53801a702cc8) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3ehs ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256ehs.p1", 0x000000, 0x100000, CRC(bfb6a37f) SHA1(2ed7fc7936d732ff55f629612434f1d72c09976e) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3fr ) /* [OLD] Metal Slug 3 N - (mslug3fro) - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256fr.p1", 0x000000, 0x100000, CRC(1f5fcb35) SHA1(387e0e0121a26254991b446d6bbdf755cf2e3ad2) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256fr.c1", 0x0000000, 0x800000, CRC(6ac28a9f) SHA1(9dae9703d20af3644456eda228ea7fb52fe67bd7) ) + ROM_LOAD16_BYTE( "256fr.c2", 0x0000001, 0x800000, CRC(C9725CD0) SHA1(59A0A2778AE35DDCAC17FBA05A81F3DA5EACA1F1) ) + ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) ) + ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) ) + ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) ) + ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) ) + ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) ) + ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) ) +ROM_END + +ROM_START( mslug3fro ) /* Metal Slug 3 - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256fro.p1", 0x000000, 0x100000, CRC(ce3f408b) SHA1(c2752af1dd4373c37e90b2e718ab7ae038535ea1) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256fro.c1", 0x0000000, 0x800000, CRC(d799f41c) SHA1(d87cda305d054c56197112ba515299883d419bb4) ) + ROM_LOAD16_BYTE( "256fr.c2", 0x0000001, 0x800000, CRC(C9725CD0) SHA1(59A0A2778AE35DDCAC17FBA05A81F3DA5EACA1F1) ) + ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) ) + ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) ) + ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) ) + ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) ) + ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) ) + ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) ) +ROM_END + +ROM_START( mslug3kh ) /* Metal Slug 3 - Enhance by Fighters Kim and Ydmis - (Style remix 20030801) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256kh.p1", 0x000000, 0x100000, CRC(696aa1b4) SHA1(2e72191f12f4cbbddda1350fbe859e8bc70be62f) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3kho ) /* [OLD] Metal Slug 3 - Enhance by Fighters Kim and Ydmis - (See mslug3kho.txt for info 20030728) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256kho.p1", 0x000000, 0x100000, CRC(820567e4) SHA1(c23d58e3c5c185715bb65839f4a6a04767992f3d) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +ROM_START( mslug3v ) // extreme violence + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256v.p1", 0x000000, 0x100000, CRC(47f9aeea) SHA1(db1c65681ac12b146e2fa21a8f28000f41a11fe2) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + + NEO_SFIX_MSLUG( "256v.s1", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) ) + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) +ROM_END + +#if 0 +ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ /* MVS VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END +#endif +ROM_START( mslug4d ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263d.c1", 0x0000000, 0x800000, CRC(a75ffcde) SHA1(97f405a95a56615ae49f79e1a69f98cc2f2434ef) ) + ROM_LOAD16_BYTE( "263d.c2", 0x0000001, 0x800000, CRC(5ab0d12b) SHA1(8a3d95dd2e9cc1b6dcf6a957fed43ee390248307) ) + ROM_LOAD16_BYTE( "263d.c3", 0x1000000, 0x800000, CRC(61af560c) SHA1(aa7bc45e03a6bbd18eb56d118d4932102ccb196a) ) + ROM_LOAD16_BYTE( "263d.c4", 0x1000001, 0x800000, CRC(f2c544fd) SHA1(179b064f81b49f5808d7a7a5bce28e95b09e5abe) ) + ROM_LOAD16_BYTE( "263d.c5", 0x2000000, 0x800000, CRC(84c66c44) SHA1(9273f44bf11891aa04ddd2cbb6442d084c2a2e04) ) + ROM_LOAD16_BYTE( "263d.c6", 0x2000001, 0x800000, CRC(5ed018ab) SHA1(e78501fa8a80960093a4d54ce952681a98300148) ) +ROM_END + +ROM_START( mslug4dh ) // Super D Version + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263dh.p1", 0x000000, 0x100000, CRC(af69d959) SHA1(2bc9796003c8742d681e11ad842978d918fbae40) ) + ROM_LOAD16_WORD_SWAP( "263dh.sp2", 0x100000, 0x400000, CRC(2b863b30) SHA1(b5edc43d87faf6540e3154fcbab42efb148cbd04) ) + + NEO_SFIX_MSLUG( "263dh.s1", CRC(c4f4ed0e) SHA1(bbf31c879d72cc843229b03db01399af98e02f01) ) + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263dh.v1", 0x000000, 0x800000, CRC(fd6b982e) SHA1(100313166c9ec57f1c540de05625c506b30ad13c) ) + ROM_LOAD( "263dh.v2", 0x800000, 0x800000, CRC(20125227) SHA1(2e350c0c580e87445bf103c01fc62b14f0c19216) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263d.c1", 0x0000000, 0x800000, CRC(a75ffcde) SHA1(97f405a95a56615ae49f79e1a69f98cc2f2434ef) ) + ROM_LOAD16_BYTE( "263d.c2", 0x0000001, 0x800000, CRC(5ab0d12b) SHA1(8a3d95dd2e9cc1b6dcf6a957fed43ee390248307) ) + ROM_LOAD16_BYTE( "263d.c3", 0x1000000, 0x800000, CRC(61af560c) SHA1(aa7bc45e03a6bbd18eb56d118d4932102ccb196a) ) + ROM_LOAD16_BYTE( "263d.c4", 0x1000001, 0x800000, CRC(f2c544fd) SHA1(179b064f81b49f5808d7a7a5bce28e95b09e5abe) ) + ROM_LOAD16_BYTE( "263d.c5", 0x2000000, 0x800000, CRC(84c66c44) SHA1(9273f44bf11891aa04ddd2cbb6442d084c2a2e04) ) + ROM_LOAD16_BYTE( "263d.c6", 0x2000001, 0x800000, CRC(5ed018ab) SHA1(e78501fa8a80960093a4d54ce952681a98300148) ) +ROM_END + +ROM_START( mslug4dh1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263dh.p1", 0x000000, 0x100000, CRC(af69d959) SHA1(2bc9796003c8742d681e11ad842978d918fbae40) ) + ROM_LOAD16_WORD_SWAP( "263dh.sp2", 0x100000, 0x400000, CRC(2b863b30) SHA1(b5edc43d87faf6540e3154fcbab42efb148cbd04) ) + + NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) ) + + NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) ) + ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) ) + ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) ) + ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) ) + ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) ) + ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) ) + ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) ) + ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) ) + ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) ) +ROM_END + +ROM_START( mslug4eh ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263eh.p1", 0x000000, 0x100000, CRC(42866fc5) SHA1(0ef57352b28fae2b884dfc021a2fd0bdf36456cb) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4eh2 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263eh2.p1", 0x000000, 0x100000, CRC(2cb01721) SHA1(9a7e3a28f9f26848f36fa19d66ae9b7588e8dd7e) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4eh3 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263eh3.p1", 0x000000, 0x100000, CRC(628f101f) SHA1(fc787b550c788dd8d8207927d679dd8ad7b50eb1) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4eh4 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263eh4.p1", 0x000000, 0x100000, CRC(3d08cdbd) SHA1(b311a52c794e3ffc623dff6ead91ccd79c2f2af9) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4eh5 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263eh5.p1", 0x000000, 0x100000, CRC(35d4a0f3) SHA1(94c55dfe8d00c1920b14fc1770a626fd4bdec325) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4eh6 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263eh6.p1", 0x000000, 0x100000, CRC(246c7a6f) SHA1(46607bbd256b3af5092526f8dd57e0b211e55d88) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4eho ) /* [OLD] Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263eho.p1", 0x000000, 0x100000, CRC(41fea527) SHA1(17a8cf630b2ad6e58c51a2f1d01ceff2d1ef970e) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4fr ) /* Metal Slug 4 - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263fr.p1", 0x000000, 0x100000, CRC(a1343a37) SHA1(23ead1154427c67881b4670fd8ecf5089e32ac0b) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4i ) /* NeoArc Italian translation */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263i.p1", 0x000000, 0x100000, CRC(ffb20602) SHA1(4d3103d613a2452c95ae15b70670664354dce67b) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MSLUG( "263i.s1", CRC(1f67801e) SHA1(87c33e74599ca063da459f3c8562447bccc104e3) ) + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4i1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263i.p1", 0x000000, 0x100000, CRC(ffb20602) SHA1(4d3103d613a2452c95ae15b70670664354dce67b) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_128K( "263i.s1", CRC(1f67801e) SHA1(87c33e74599ca063da459f3c8562447bccc104e3) ) + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) ) + ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) ) + ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) ) + ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) ) + ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) ) + ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) ) + ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) ) + ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) ) + ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) ) +ROM_END + +ROM_START( mslug4kh ) /* Metal Slug 4 - Enhance by Creamymami and Fighters Kim - (Style remix 20030731) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263kh.p1", 0x000000, 0x100000, CRC(883680c2) SHA1(9ba71d9cf4eb8615cf6fe94b74c6436876dcb0b2) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) +ROM_END + +ROM_START( mslug4nd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263nd.p1", 0x000000, 0x100000, CRC(4D7E6624) SHA1(125d5203e89cce23a851fa74cc8cbe003ef978f3) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) + + NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) ) + + NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) ) + ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) ) + ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) ) + ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) ) + ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) ) + ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) ) + ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) ) + ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) ) + ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) ) +ROM_END + +#if 0 +ROM_START( mslug5 ) /* Encrypted Set */ /* MVS VERSION */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) + ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) + ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) + ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) + ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) + ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) + ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) + ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) + ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) +ROM_END +#endif +ROM_START( ms5boot ) /* Bootleg / Hack of Metal Slug 5 */ + ROM_REGION( 0x500000, "maincpu", 0 ) + // not sure if it's actually bad, or some weird protection + ROM_LOAD16_WORD_SWAP( "268boot.p1", 0x000000, 0x100000, BAD_DUMP CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) ) + // this one fixes all the issues + ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) ) + ROM_LOAD16_WORD_SWAP( "268boot.p2", 0x100000, 0x100000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) ) + ROM_CONTINUE(0x300000, 0x100000 ) + ROM_LOAD16_WORD_SWAP( "268boot.p3", 0x200000, 0x100000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) ) + ROM_CONTINUE(0x400000, 0x100000 ) + + NEO_SFIX_MT_512K + //NEO_SFIX_MSLUG( "268boot.s1", CRC(52a8c09b) SHA1(3a90d8e44aa7cbc79945f8ece0e2fb9ce3e5a4c7) ) // corrupt? + + NEO_BIOS_AUDIO_256K( "268boot.m1", CRC(792e07c1) SHA1(117516e8ec9026c7682ab27857aab6639bef5835) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268boot.v1", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) ) + ROM_LOAD( "268boot.v2", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) ) + ROM_LOAD( "268boot.v3", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) ) + ROM_LOAD( "268boot.v4", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) ) + ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) ) + ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) ) + ROM_LOAD16_BYTE( "268nd.c4", 0x1000001, 0x800000, CRC(E1B1131B) SHA1(68A36D336582069E79AD481638D92F57C4CD6523) ) + ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) ) + ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) ) + ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) ) + ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) ) +ROM_END + +ROM_START( ms5pcbd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "268-p1r.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) + ROM_LOAD32_WORD_SWAP( "268-p2r.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) + + NEO_SFIX_MT_512K + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */ + ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) ) + + /* Encrypted, we load it here for reference and replace with decrypted ROM */ + // ROM_LOAD( "268-m1.bin", 0x00000, 0x10000, CRC(58b107d0) SHA1(cc7fe66ff4f9c026cde4df06f86c848eb21f7af8) ) + //NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) ) + ROM_REGION( 0x80000, "audiocrypt", 0 ) + ROM_LOAD( "268-m1.m1", 0x00000, 0x80000, CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268pcbd.v1", 0x000000, 0x1000000, CRC(4182838b) SHA1(03e58b6709db467e92397b26b84658f5adb0ff92) ) +// ROM_LOAD( "268-v1.v1", 0x000000, 0x1000000, CRC(8458afe5) SHA1(62b4c6e7db763e9ff2697bbcdb43dc5a56b48c68) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268pcbd.c1", 0x0000000, 0x1000000, CRC(996debed) SHA1(ec6965a24862541f337a1b7e259038b9b40ad1d2) ) + ROM_LOAD16_BYTE( "268pcbd.c2", 0x0000001, 0x1000000, CRC(960a9764) SHA1(687cf957d91ef9da219b573f444e668209dcea41) ) + ROM_LOAD16_BYTE( "268pcbd.c3", 0x2000000, 0x1000000, CRC(f699994f) SHA1(ff079d3c126e9611760956d51c5df66d8013dd78) ) + ROM_LOAD16_BYTE( "268pcbd.c4", 0x2000001, 0x1000000, CRC(49e902e8) SHA1(289a560ffe3d50abd773c61fa2df3c1f18d7e803) ) +ROM_END + +ROM_START( mslug5b ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "268b.p1", 0x000000, 0x100000, CRC(d05853ea) SHA1(8bb284d8f937b1b50d28d207f5fd262e4ed1d96c) ) + ROM_CONTINUE( 0x200000, 0x100000 ) + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_CONTINUE( 0x300000, 0x100000 ) + ROM_CONTINUE( 0x500000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) + ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) + ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) + ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) + ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) + ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) + ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) + ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) +ROM_END + +ROM_START( mslug5d ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) + ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) ) + ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) ) + ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) ) + ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) ) + ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) ) + ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) ) + ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) ) + ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) ) +ROM_END + +ROM_START( mslug5d1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) ) + ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) ) + ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) ) + ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) ) + ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) ) + ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) ) + ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) ) + ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) ) + ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) ) +ROM_END + +ROM_START( mslug5fr ) /* Metal Slug 5 - French translation - NeoArc */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "268fr.p1", 0x000000, 0x100000, CRC(63cc3c2d) SHA1(b4543c65427d15f784641617dcab53663031a9f3) ) + ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) ) + + NEO_SFIX_128K( "268fr.s1", CRC(77b18feb) SHA1(2d7cb5838730bfcb45eceeef11557cbcab8aa9da) ) + + NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268fr.v1", 0x000000, 0x800000, CRC(7ff6ca47) SHA1(e36c4e6a349dd9fd38d1a36b6760bbd943c2a42f) ) + ROM_LOAD( "268fr.v2", 0x800000, 0x800000, CRC(696cce3b) SHA1(538d4a25befa4ffd25a48df97380469c13980f7a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268fr.c1", 0x0000000, 0x800000, CRC(c115bcbd) SHA1(241b71cb442844df0f1c7005955c5ae85b95a0b9) ) + ROM_LOAD16_BYTE( "268fr.c2", 0x0000001, 0x800000, CRC(a95f284f) SHA1(db6b18b15f871ac17e88d2eec72b95c8a63be959) ) + ROM_LOAD16_BYTE( "268fr.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5d029c92688384eafd65ad711a2954d0b86a3163) ) + ROM_LOAD16_BYTE( "268fr.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(c612102f9cd288bba4c245b5855d795e4362b217) ) + ROM_LOAD16_BYTE( "268fr.c5", 0x2000000, 0x800000, CRC(dae4bdba) SHA1(c7da602cc59296fd264fd2f97b29bc242340760f) ) + ROM_LOAD16_BYTE( "268fr.c6", 0x2000001, 0x800000, CRC(731a14ce) SHA1(2363d3f0f2e2a621051de0db6e465f7b1a387ef9) ) + ROM_LOAD16_BYTE( "268fr.c7", 0x3000000, 0x800000, CRC(bc8296af) SHA1(4309d093c09219fb90104d30211c204a2abcf82e) ) + ROM_LOAD16_BYTE( "268fr.c8", 0x3000001, 0x800000, CRC(6fabe6d5) SHA1(12c23b85de985b4daba7def1d9d9d9b4c050ab63) ) +ROM_END + +ROM_START( mslug5fr1 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "268fr1.p1", 0x000000, 0x100000, CRC(0ee0d5c7) SHA1(10209cd9757b212708c569656d5c935c7bd4a5b3) ) + ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) ) + ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) ) + ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) ) + ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) ) + ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) ) + ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) ) + ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) ) + ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) ) +ROM_END + +ROM_START( mslug5hd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) ) + ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) ) + ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) ) + ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) ) + ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) ) + ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) ) + ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) ) + ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) ) + ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) ) +ROM_END + +ROM_START( mslug5l9a ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "268l9a.p1", 0x000000, 0x100000, CRC(96aa148d) SHA1(b2487a29d6a96435cfe220cb78f74bc2a9ccc6b3) ) + ROM_LOAD16_WORD_SWAP( "268l9b.p2", 0x100000, 0x400000, CRC(f5bf2c6b) SHA1(99fdc44aba8b2f30d14a1975052811567ea8f05a) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) ) + + ROM_REGION( 0x10002f0, "ymsnd", 0 ) + ROM_LOAD( "268l9a.v1", 0x000000, 0x400000, CRC(a8e12a92) SHA1(b23d80d131649c1d243bb30cf5b2141354a7ac55) ) + ROM_LOAD( "268l9a.v2", 0x400000, 0x400000, CRC(c40fa69b) SHA1(3c1ff87a2174a92d9f457a6932b53534ed410dc2) ) + ROM_LOAD( "268l9a.v3", 0x800000, 0x400000, CRC(aeff1982) SHA1(ac777a12639e21f0f227be84a59c7bb543c6ddd9) ) + ROM_LOAD( "268l9a.v4", 0xc00000, 0x4002f0, CRC(179cbca3) SHA1(fdcb0df0c2f73d11cd32a8625ad6fa24cedb9dc9) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268l9a.c1", 0x0000000, 0x800000, CRC(5e2e9087) SHA1(2366df8b0ee03e8938dcae571dccf32cfcfd685b) ) + ROM_LOAD16_BYTE( "268l9a.c2", 0x0000001, 0x800000, CRC(d15770e3) SHA1(162c166c3fdc2a29af88dfea8a10138284029e36) ) + ROM_LOAD16_BYTE( "268l9a.c3", 0x1000000, 0x800000, CRC(3e104b8f) SHA1(ee8467e07f27fbcad35a239b45e1e7e5aed79a25) ) + ROM_LOAD16_BYTE( "268l9a.c4", 0x1000001, 0x800000, CRC(03f32dda) SHA1(64bc08dce4a8188878d683a6290e370e4d3488a1) ) + ROM_LOAD16_BYTE( "268l9a.c5", 0x2000000, 0x800000, CRC(fd3e0f24) SHA1(5143c521c79a011465c93717171bb24b550bdc1f) ) + ROM_LOAD16_BYTE( "268l9a.c6", 0x2000001, 0x800000, CRC(3c873aba) SHA1(b1c882f7c228046929f82a24d9f635c1b6443a94) ) + ROM_LOAD16_BYTE( "268l9a.c7", 0x3000000, 0x800000, CRC(0d070c3b) SHA1(2d785bd095726b4e48aa65578b9694372f4c46c3) ) + ROM_LOAD16_BYTE( "268l9a.c8", 0x3000001, 0x800000, CRC(09751dd8) SHA1(5a1378faa3bd3ebb6573d7c171639df153b5202b) ) +ROM_END + +ROM_START( mslug5l9b ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "268l9a.p1", 0x000000, 0x100000, CRC(96aa148d) SHA1(b2487a29d6a96435cfe220cb78f74bc2a9ccc6b3) ) + ROM_LOAD16_WORD_SWAP( "268l9b.p2", 0x100000, 0x400000, CRC(35982b98) SHA1(069f5f7fe6d2278b6bdeb1f5bd87818b868ed41b) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) ) + + ROM_REGION( 0x1037510, "ymsnd", 0 ) + ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) ) + ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) ) + ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) ) + ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268l9b.c1", 0x0000000, 0x800000, CRC(aad8ff17) SHA1(f8c5f7bd9aa4b930ceb38b25934650ac810563df) ) + ROM_LOAD16_BYTE( "268l9b.c2", 0x0000001, 0x800000, CRC(b0404dd4) SHA1(0ab1f81072dac777c3269811dfb69cb40bd7a245) ) + ROM_LOAD16_BYTE( "268l9b.c3", 0x1000000, 0x800000, CRC(95dda158) SHA1(7ec4625a17f815e8d7e690cb01f3c9dbce75e39b) ) + ROM_LOAD16_BYTE( "268l9b.c4", 0x1000001, 0x800000, CRC(c052cf1f) SHA1(198041e813914570b943fc1927e986e5553c6bd4) ) + ROM_LOAD16_BYTE( "268l9b.c5", 0x2000000, 0x800000, CRC(8b9f7e21) SHA1(0dcefc5efc67d520a880b3da6122c342ebdc5e2f) ) + ROM_LOAD16_BYTE( "268l9b.c6", 0x2000001, 0x800000, CRC(4a0693cf) SHA1(c4bdf72754f85250dfccdd4444941931a6596569) ) + ROM_LOAD16_BYTE( "268l9b.c7", 0x3000000, 0x800000, CRC(3ad5eaf4) SHA1(b4c4cf0425d42bd47bc85acfab93006c003af341) ) + ROM_LOAD16_BYTE( "268l9b.c8", 0x3000001, 0x800000, CRC(3e7c670d) SHA1(166eda40c01d01b1d8ec82f2482e8cb4e5ca0e79) ) +ROM_END + +ROM_START( mslug5nd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) ) // this rom is watermarked by HappyASR (24/12/03) + ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) ) +// ROM_LOAD16_WORD_SWAP( "268boot.p1", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) ) +// ROM_LOAD16_WORD_SWAP( "268-p2n.bin", 0x100000, 0x400000, CRC(84def63e) SHA1(fddd68e8879d6f5c1aac42997ff2245ea54d5869) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "268nd.m1", CRC(6FA01C9A) SHA1(3DAB7593BFCCE318D22EC3DF672EE3B4AB73DCF5) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) +// ROM_LOAD( "268-v1c.bin", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) +// ROM_LOAD( "268-v2c.bin", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) + ROM_LOAD( "268nd.v1", 0x000000, 0x400000, CRC(dc7f03f0) SHA1(e1e31dcaff1f8d2c4b2d657aa856a60771d82c26) ) + ROM_LOAD( "268nd.v2", 0x400000, 0x400000, CRC(eeb7c926) SHA1(4d71f59948bdc5ed2e6daf101f16fd979e1ab193) ) + ROM_LOAD( "268nd.v3", 0x800000, 0x400000, CRC(02fd519e) SHA1(6fbda5bf8dbf52bc110aba7b9d20b24bdc2fe0d7) ) + ROM_LOAD( "268nd.v4", 0xc00000, 0x400000, CRC(d7c67794) SHA1(345dcbf76b25b2fbd10bcaf08ee395da0a52c5ce) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) ) + ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) ) + ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) ) + ROM_LOAD16_BYTE( "268nd.c4", 0x1000001, 0x800000, CRC(E1B1131B) SHA1(68A36D336582069E79AD481638D92F57C4CD6523) ) + ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) ) + ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) ) + ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) ) + ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) ) +ROM_END + +// Metal Slug +GAME( 2005, msboot, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug (Bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, mslugeh, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug Enhanced", MACHINE_SUPPORTS_SAVE ) // New standard weapon shotgun - 20 bombs instead of 10 +// Metal Slug 2 +GAME( 1998, mslug2eh, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mslug2eh0, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 2 (Enhanced Revised Version, hack by Ydmis)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mslug2eh1, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mslug2eh2, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mslug2eh3, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mslug2eh4, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, mslug2fr, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 2 (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug2fro, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 2 (French) (Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mslug2sh, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 2 (hybrid Bullets version, Shinwa hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, mslug2t, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "System11", "Metal Slug 2 Turbo", MACHINE_SUPPORTS_SAVE ) +// Metal Slug X +GAME( 2013, mslugxeb, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "PlayerX China", "Metal Slug X (EB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mslugxeh, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "KrysoFun/KVS", "Metal Slug X (Style remix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mslugxeh1, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Super Revised Version by KrysoFun)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mslugxex, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Excel version by PlayerX)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslugxfr, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Arkatrad", "Metal Slug X (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslugxfro, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Arkatrad", "Metal Slug X (French) (Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, mslugxhp, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Enemy Heavy Plate 2013-06-18)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslugxit, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Clomax & Ombra", "Metal Slug X (Italian - Beta)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mslugxp, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X Plus (Hack by Player-X)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, mslugxr, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Reset Version 2013-05-28)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mslugxst, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Enhanced Version by STARK) [EGCG]", MACHINE_SUPPORTS_SAVE ) +// Metal Slug 3 +GAME( 2000, mslug3d, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3d, ROT0, "SNK", "Metal Slug 3 (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3d1, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "SNK", "Metal Slug 3 (NGH-2560)(Fully Decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3eha, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "HappyAsr", "Metal Slug 3 (Style remix 030826)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3ehs, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 01)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e02, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 02)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e03, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 03)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e04, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 04)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e05, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 05)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e06, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 06)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e07, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 07)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e08, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 08)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e09, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 09)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e10, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e11, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 11)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e12, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 12)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e13, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 13)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e14, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 14)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e15, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 15)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e16, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 16)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e17, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e18, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 18)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e19, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 19)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e20, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 20)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e21, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 21)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3e22, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 22)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, mslug3eb, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3, ROT0, "PlayerX China", "Metal Slug 3 (EB)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2004, mslug3fr, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3fr, ROT0, "Arkatrad", "Metal Slug 3 (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug3fro, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3fr, ROT0, "Arkatrad", "Metal Slug 3 (French) (Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3kh, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Fighters Kim and Ydmis", "Metal Slug 3 (Style remix 030801)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mslug3kho, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Fighters Kim and Ydmis", "Metal Slug 3 (Style remix 030728)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, mslug3v, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Eezezy", "Metal Slug 3 (Violence Edition)", MACHINE_SUPPORTS_SAVE ) +// Metal Slug 4 +GAME( 2002, mslug4d, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4d, ROT0, "Mega","Metal Slug 4 (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, mslug4dh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4dh, ROT0, "HappyASR [EGCG]","Metal Slug 4 Super D Version", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4dh1, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 4 Super D Version (Hack by HappyASR [EGCG])", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4eh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4eh2, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4eh3, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4eh4, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4eh5, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4eh6, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4eho, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, mslug4fr, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Arkatrad", "Metal Slug 4 (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, mslug4i, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4it, ROT0, "Evoboy", "Metal Slug 4 (Italian)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4i1, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 4 (Italian)2", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4kh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami and Fighters Kim", "Metal Slug 4 (Style remix 030731)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4nd, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Mega Enterprise / Playmore Corporation", "Metal Slug 4 (fully decrypted)", MACHINE_SUPPORTS_SAVE ) +// Metal Slug 5 +GAME( 2003, mslug5b, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5b, ROT0, "bootleg", "Metal Slug 5 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5d, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "hack", "Metal Slug 5 (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5d1, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d1, ROT0, "hack", "Metal Slug 5 (NGM-2680) (fully decrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, mslug5fr, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 5 (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, mslug5fr1, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5fr1,ROT0, "NEO-ARC", "Metal Slug 5 (French Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5hd, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5hd, ROT0, "hack", "Metal Slug 5 (NGH-2680) (Decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5l9a, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 Level 9 Hack (Ver A)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5l9b, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 Level 9 Hack (Ver B)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5nd, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5nd, ROT0, "hack", "Metal Slug 5 (decrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ms5boot, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, ms5boot, ROT0, "bootleg", "Metal Slug 5 (Bootleg Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ms5pcbd, ms5pcb, neogeo_noslot, dualbios, neogeo_hbmame, ms5pcbd, ROT0, "hack", "Metal Slug 5 (JAMMA PCB) decrypted", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/mspacman.cpp b/docs/release/src/hbmame/drivers/mspacman.cpp new file mode 100644 index 00000000000..748de90b2c7 --- /dev/null +++ b/docs/release/src/hbmame/drivers/mspacman.cpp @@ -0,0 +1,2560 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/* ===== MS PAC MAN ====== + +*/ + +#define mspacman_enable_decode_latch(m) m.root_device().membank("bank1")->set_entry(1) +#define mspacman_disable_decode_latch(m) m.root_device().membank("bank1")->set_entry(0) + +// any access to these ROM addresses disables the decoder, and all you see is the original Pac-Man code +READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x0038){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x0038]; } +READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x03b0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x03b0]; } +READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x1600){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x1600]; } +READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x2120){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x2120]; } +READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x3ff0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x3ff0]; } +READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x8000){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x8000]; } +READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x97f0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x97f0]; } +WRITE8_MEMBER(pacman_state::mspacman_disable_decode_w){ mspacman_disable_decode_latch(machine()); } + +// any access to these ROM addresses enables the decoder, and you'll see the Ms. Pac-Man code +READ8_MEMBER(pacman_state::mspacman_enable_decode_r_0x3ff8){ mspacman_enable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x3ff8+0x10000]; } +WRITE8_MEMBER(pacman_state::mspacman_enable_decode_w){ mspacman_enable_decode_latch(machine()); } + +#define BITSWAP12(val,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) \ + BITSWAP16(val,15,14,13,12,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) + +#define BITSWAP11(val,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) \ + BITSWAP16(val,15,14,13,12,11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) + +void pacman_state::mspacman_install_patches(UINT8 *ROM) +{ + int i; + + /* copy forty 8-byte patches into Pac-Man code */ + for (i = 0; i < 8; i++) + { + ROM[0x0410+i] = ROM[0x8008+i]; + ROM[0x08E0+i] = ROM[0x81D8+i]; + ROM[0x0A30+i] = ROM[0x8118+i]; + ROM[0x0BD0+i] = ROM[0x80D8+i]; + ROM[0x0C20+i] = ROM[0x8120+i]; + ROM[0x0E58+i] = ROM[0x8168+i]; + ROM[0x0EA8+i] = ROM[0x8198+i]; + + ROM[0x1000+i] = ROM[0x8020+i]; + ROM[0x1008+i] = ROM[0x8010+i]; + ROM[0x1288+i] = ROM[0x8098+i]; + ROM[0x1348+i] = ROM[0x8048+i]; + ROM[0x1688+i] = ROM[0x8088+i]; + ROM[0x16B0+i] = ROM[0x8188+i]; + ROM[0x16D8+i] = ROM[0x80C8+i]; + ROM[0x16F8+i] = ROM[0x81C8+i]; + ROM[0x19A8+i] = ROM[0x80A8+i]; + ROM[0x19B8+i] = ROM[0x81A8+i]; + + ROM[0x2060+i] = ROM[0x8148+i]; + ROM[0x2108+i] = ROM[0x8018+i]; + ROM[0x21A0+i] = ROM[0x81A0+i]; + ROM[0x2298+i] = ROM[0x80A0+i]; + ROM[0x23E0+i] = ROM[0x80E8+i]; + ROM[0x2418+i] = ROM[0x8000+i]; + ROM[0x2448+i] = ROM[0x8058+i]; + ROM[0x2470+i] = ROM[0x8140+i]; + ROM[0x2488+i] = ROM[0x8080+i]; + ROM[0x24B0+i] = ROM[0x8180+i]; + ROM[0x24D8+i] = ROM[0x80C0+i]; + ROM[0x24F8+i] = ROM[0x81C0+i]; + ROM[0x2748+i] = ROM[0x8050+i]; + ROM[0x2780+i] = ROM[0x8090+i]; + ROM[0x27B8+i] = ROM[0x8190+i]; + ROM[0x2800+i] = ROM[0x8028+i]; + ROM[0x2B20+i] = ROM[0x8100+i]; + ROM[0x2B30+i] = ROM[0x8110+i]; + ROM[0x2BF0+i] = ROM[0x81D0+i]; + ROM[0x2CC0+i] = ROM[0x80D0+i]; + ROM[0x2CD8+i] = ROM[0x80E0+i]; + ROM[0x2CF0+i] = ROM[0x81E0+i]; + ROM[0x2D60+i] = ROM[0x8160+i]; + } +} + +DRIVER_INIT_MEMBER(pacman_state,mspacman) +{ + int i; + UINT8 *ROM, *DROM; + + /* CPU ROMs */ + + /* Pac-Man code is in low bank */ + ROM = machine().root_device().memregion("maincpu")->base(); + + /* decrypted Ms. Pac-Man code is in high bank */ + DROM = &machine().root_device().memregion("maincpu")->base()[0x10000]; + + /* copy ROMs into decrypted bank */ + for (i = 0; i < 0x1000; i++) + { + DROM[0x0000+i] = ROM[0x0000+i]; /* pacman.6e */ + DROM[0x1000+i] = ROM[0x1000+i]; /* pacman.6f */ + DROM[0x2000+i] = ROM[0x2000+i]; /* pacman.6h */ + DROM[0x3000+i] = BITSWAP8(ROM[0xb000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u7 */ + } + for (i = 0; i < 0x800; i++) + { + DROM[0x8000+i] = BITSWAP8(ROM[0x8000+BITSWAP11(i, 8,7,5,9,10,6,3,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u5 */ + DROM[0x8800+i] = BITSWAP8(ROM[0x9800+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */ + DROM[0x9000+i] = BITSWAP8(ROM[0x9000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */ + DROM[0x9800+i] = ROM[0x1800+i]; /* mirror of pacman.6f high */ + } + for (i = 0; i < 0x1000; i++) + { + DROM[0xa000+i] = ROM[0x2000+i]; /* mirror of pacman.6h */ + DROM[0xb000+i] = ROM[0x3000+i]; /* mirror of pacman.6j */ + } + /* install patches into decrypted bank */ + mspacman_install_patches(DROM); + + /* mirror Pac-Man ROMs into upper addresses of normal bank */ + for (i = 0; i < 0x1000; i++) + { + ROM[0x8000+i] = ROM[0x0000+i]; + ROM[0x9000+i] = ROM[0x1000+i]; + ROM[0xa000+i] = ROM[0x2000+i]; + ROM[0xb000+i] = ROM[0x3000+i]; + } + + /* initialize the banks */ + machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x00000], 0x10000); + machine().root_device().membank("bank1")->set_entry(1); +} + + + +/* used by extra routine at $3FE, bit 4 of 504d needs to be low, and of 504e to be high */ +READ8_MEMBER( pacman_state::mspacii_prot_r ) +{ + return offset<<4; +} + +/* For Zola's timer */ + +READ8_MEMBER( pacman_state::zolatimer_r ) +{ + UINT8 timernow = m_timerthing; + m_timerthing++; + return timernow; +} + +WRITE8_MEMBER( pacman_state::zolatimer_w ) /* to stop it hanging when game reset */ +{ + m_timerthing = data; +} + + +/******************************** + Memory Maps + ********************************/ + + +/* Same as woodhack, plus it has nvram, and some extra ram at fffc */ +static ADDRESS_MAP_START( mspachi_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("nvram") + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x5080) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") + AM_RANGE(0x7000, 0x70ff) AM_RAM + AM_RANGE(0x8000, 0xbfff) AM_ROM + AM_RANGE(0xfffc, 0xffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mspacii_map, AS_PROGRAM, 8, pacman_state ) + /* do not use UNMAP_HIGH (protection issues) */ + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_MIRROR(0x8000) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_MIRROR(0x8000) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_MIRROR(0x8000) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_MIRROR(0x8000) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_MIRROR(0x8000) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0x8000) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x5080) AM_MIRROR(0x8000) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1") + AM_RANGE(0x504d, 0x506f) AM_READ(mspacii_prot_r) + AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2") + AM_RANGE(0x8000, 0x9fff) AM_ROM + AM_RANGE(0xfffc, 0xffff) AM_WRITENOP +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP + AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW2") + + /* overlay decode enable/disable on top */ + AM_RANGE(0x0038, 0x003f) AM_READWRITE(mspacman_disable_decode_r_0x0038,mspacman_disable_decode_w) + AM_RANGE(0x03b0, 0x03b7) AM_READWRITE(mspacman_disable_decode_r_0x03b0,mspacman_disable_decode_w) + AM_RANGE(0x1600, 0x1607) AM_READWRITE(mspacman_disable_decode_r_0x1600,mspacman_disable_decode_w) + AM_RANGE(0x2120, 0x2127) AM_READWRITE(mspacman_disable_decode_r_0x2120,mspacman_disable_decode_w) + AM_RANGE(0x3ff0, 0x3ff7) AM_READWRITE(mspacman_disable_decode_r_0x3ff0,mspacman_disable_decode_w) + AM_RANGE(0x3ff8, 0x3fff) AM_READWRITE(mspacman_enable_decode_r_0x3ff8,mspacman_enable_decode_w) + AM_RANGE(0x8000, 0x8007) AM_READWRITE(mspacman_disable_decode_r_0x8000,mspacman_disable_decode_w) + AM_RANGE(0x97f0, 0x97f7) AM_READWRITE(mspacman_disable_decode_r_0x97f0,mspacman_disable_decode_w) + + /* start with 0000-3fff and 8000-bfff mapped to the ROMs */ + AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_UNMAP + AM_RANGE(0x0000, 0xffff) AM_ROMBANK("bank1") +ADDRESS_MAP_END + + +/* For Dave Widel's hacks */ +static ADDRESS_MAP_START( widel_map, AS_PROGRAM, 8, pacman_state ) + /* bace and dderby set 5000-5FFF to zero for no apparent reason */ + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) + AM_RANGE(0x4c00, 0x4fef) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP // mrmrspac + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x5080) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") /* DSW2 - not used */ + AM_RANGE(0x5103, 0x5103) AM_WRITENOP /* aa */ + AM_RANGE(0x5c0e, 0x5c0e) AM_RAM /* mrmrspac */ + AM_RANGE(0x5fff, 0x5fff) AM_READNOP /* aa */ + AM_RANGE(0x8000, 0x9fff) AM_ROM /* only really needed by mrmrspac */ + AM_RANGE(0xd000, 0xd000) AM_RAM /* mrmrspac */ + AM_RANGE(0xf000, 0xffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( zolapac_io, AS_IO, 8, pacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_READ(zolatimer_r) + AM_RANGE(0x10, 0x10) AM_WRITENOP /* writes 0 at reset */ + AM_RANGE(0x11, 0x11) AM_WRITE(zolatimer_w) +ADDRESS_MAP_END + + +/************************************* + * + * Machine drivers + * + *************************************/ + +/* only for encrypted sets with 20000 in cpu1 */ +static MACHINE_CONFIG_DERIVED( mspacman, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(mspacman_map) +MACHINE_CONFIG_END + +/* Hires mspacman */ +static MACHINE_CONFIG_DERIVED( mspacmnx, pacmanx ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(mspacman_map) +MACHINE_CONFIG_END + +/* Hires hacks */ +static MACHINE_CONFIG_DERIVED( woodpekx, pacmanx ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(woodpek_map) +MACHINE_CONFIG_END + +/* MSPacman with modified memory maps */ + +static MACHINE_CONFIG_DERIVED( mspacii, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(mspacii_map) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( zolapac, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(woodpek_map) + MCFG_CPU_IO_MAP(zolapac_io) +MACHINE_CONFIG_END + +/* These drivers need the watchdog to be removed in order to work */ + +static MACHINE_CONFIG_DERIVED( pachack, pacman ) + MCFG_WATCHDOG_MODIFY("watchdog") + MCFG_WATCHDOG_VBLANK_INIT("screen", 0) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mspachi, pachack ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(mspachi_map) + MCFG_NVRAM_ADD_0FILL("nvram") + +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( widel, pachack ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(widel_map) +MACHINE_CONFIG_END + + +/************************************* + * + * Driver initialization + * + *************************************/ + + +/* The encryption is provided by a 74298 sitting on top of the rom at 6f. +The select line is tied to a2; a0 and a1 of the eprom are are left out of +socket and run through the 74298. Clock is tied to system clock. */ +DRIVER_INIT_MEMBER( pacman_state, mspacmbe ) +{ + UINT8 temp; + UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); + int i; + + /* Address lines A1 and A0 swapped if A2=0 */ + for(i = 0x1000; i < 0x2000; i+=4) + { + if (!(i & 8)) + { + temp = RAM[i+1]; + RAM[i+1] = RAM[i+2]; + RAM[i+2] = temp; + } + } +} + + +/************************************* + * + * ROM definitions + * + *************************************/ + + +ROM_START( chtmsatk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) ) + ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( chtmspa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( cookiem ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cookiem.1", 0x0000, 0x1000, CRC(3c95b06b) SHA1(c123de2f3246af4074e6a2f3a5a29aec0c6cd0f9) ) + ROM_LOAD( "cookiem.2", 0x1000, 0x1000, CRC(527859fb) SHA1(993baa017732e247e4c318a5f105a13c281fbd8d) ) // faulty + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "cookiem.4", 0x3000, 0x1000, CRC(66e397fd) SHA1(4e3d03abfaaa94a7a159fd51348ca6a7e4427272) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "cookiem.6", 0x9000, 0x1000, CRC(a96761a6) SHA1(73072f753f5659712e3644194a0982ef14648f46) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "cookiem.5e", 0x0000, 0x1000, CRC(ffb4de27) SHA1(ff12a37158e08f4d9ddad4184dfbd44f83120506) ) + ROM_LOAD( "cookiem.5f", 0x1000, 0x1000, CRC(1b5875ac) SHA1(9b0f4b96de9d7a2c7abcb06efaf083ff8ab28abe) ) + + PACMAN_PROMS +ROM_END + +ROM_START( cottoh ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "cottoh.4", 0x3000, 0x1000, CRC(f0892bb8) SHA1(680d2335ca99128ad29295e161bd0bd52f9de0b8) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "cottoh.5e", 0x0000, 0x1000, CRC(8e78665a) SHA1(3d9c357bdcc7862d329d4f38c6d43bc792eee572) ) + ROM_LOAD( "cottoh.5f", 0x1000, 0x1000, CRC(4f83ae26) SHA1(9c308c1b684812747d573058ef157db14f03d2d9) ) + + PACMAN_PROMS +ROM_END + +ROM_START( cottoh2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "cottoh2.4", 0x3000, 0x1000, CRC(e285564b) SHA1(7b00549d680146fa2a88ce8a6ea45ece6e185d67) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "cottoh2.5e", 0x0000, 0x1000, CRC(3bbea74d) SHA1(613dc0989670347fa2827806b8408fc407d5386d) ) + ROM_LOAD( "cottoh2.5f", 0x1000, 0x1000, CRC(9c3d7558) SHA1(803aef874d988f112dea54f442e12973c799ea2e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( fasthear ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "heartbn2.5e", 0x0000, 0x1000, CRC(28eb876c) SHA1(6bd3b9efdab76b3bf7c7f08ba9f44f830290df43) ) + ROM_LOAD( "heartbn2.5f", 0x1000, 0x1000, CRC(50fc9966) SHA1(21f79739b9884307430a35b2901098f45bbf5b7d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( fastmspa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( faststrm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msdstorm.5e", 0x0000, 0x1000, CRC(b2940b89) SHA1(bfe7066fa11468d8373b43f966e76d92b17c0f48) ) + ROM_LOAD( "msdstorm.5f", 0x1000, 0x1000, CRC(5c65865f) SHA1(988b6deccd985a32d4561164bfabd80ebb43f0a6) ) + + PACMAN_PROMS +ROM_END + +ROM_START( fstmsatk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) ) + ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( heartbn2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "heartbn2.5e", 0x0000, 0x1000, CRC(28eb876c) SHA1(6bd3b9efdab76b3bf7c7f08ba9f44f830290df43) ) + ROM_LOAD( "heartbn2.5f", 0x1000, 0x1000, CRC(50fc9966) SHA1(21f79739b9884307430a35b2901098f45bbf5b7d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( heartbrn ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "heartbrn.5e", 0x0000, 0x1000, CRC(5431d4c4) SHA1(34d45da44b4208e2774f5e2af08657a9086252e6) ) + ROM_LOAD( "heartbrn.5f", 0x1000, 0x1000, CRC(ceb50654) SHA1(70dbe3cc715d3d52ee3d4f8dadbf5c59f87166a3) ) + + PACMAN_PROMS +ROM_END + +ROM_START( horizpab ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "horizpac.1", 0x0000, 0x1000, CRC(7CC1979D) SHA1(557346859DCFCE806E83DCF0DA1FE60DA20FED81) ) + ROM_LOAD( "horizpac.2", 0x1000, 0x1000, CRC(14202B73) SHA1(136B860D6AC8EFB9C83B67F77FBB47C3014D4ADC) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821EE0B) SHA1(5EA4D907DBB2690698DB72C4E0B5BE4D3E9A7786) ) + ROM_LOAD( "horizpab.4", 0x3000, 0x1000, CRC(c9df7abe) SHA1(da21a182b81181260e2a1615115d22797bd1434a) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "horizpac.5e", 0x0000, 0x1000, CRC(0572335D) SHA1(F2D8BB3124970B298026E841E057FBCC7CDFC4B1) ) + ROM_LOAD( "horizpac.5f", 0x1000, 0x1000, CRC(4198511D) SHA1(B3808062835AA0CC05FA19A678A5C8AB8FB646D7) ) + + PACMAN_PROMS +ROM_END + +ROM_START( horizpac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "horizpac.1", 0x0000, 0x1000, CRC(7CC1979D) SHA1(557346859DCFCE806E83DCF0DA1FE60DA20FED81) ) + ROM_LOAD( "horizpac.2", 0x1000, 0x1000, CRC(14202B73) SHA1(136B860D6AC8EFB9C83B67F77FBB47C3014D4ADC) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821EE0B) SHA1(5EA4D907DBB2690698DB72C4E0B5BE4D3E9A7786) ) + ROM_LOAD( "horizpac.4", 0x3000, 0x1000, CRC(9A17E8DA) SHA1(2696643705878207952C4559C176D486BD0027C2) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "horizpac.5e", 0x0000, 0x1000, CRC(0572335D) SHA1(F2D8BB3124970B298026E841E057FBCC7CDFC4B1) ) + ROM_LOAD( "horizpac.5f", 0x1000, 0x1000, CRC(4198511D) SHA1(B3808062835AA0CC05FA19A678A5C8AB8FB646D7) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mrmrspac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mrmrspac.1", 0x0000, 0x1000, CRC(02a86998) SHA1(649cfe5140eb63e42069ae9ad6c426837179fcbf) ) + ROM_LOAD( "mrmrspac.2", 0x1000, 0x1000, CRC(8917172f) SHA1(7b09ab3b6f2a1b5d889a05295b42f70bafb5aa98) ) + ROM_LOAD( "mrmrspac.3", 0x2000, 0x1000, CRC(6fd1444a) SHA1(64a98336eec75bb6ed90e77da18db8b71af562c1) ) + ROM_LOAD( "mrmrspac.4", 0x3000, 0x1000, CRC(22f68a1f) SHA1(bd8d684f957ee33dace9eddcc923006036181787) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "mrmrspac.6", 0x9000, 0x1000, CRC(23580455) SHA1(836b815c7b1dd4deb1a1297556d0a5c126250c34) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mrpacman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mrpacman.4", 0x3000, 0x1000, CRC(65c0526c) SHA1(b90f05a335a5ec641318dea15a97c9abb96ded2e) ) + ROM_LOAD( "mrpacman.5", 0x8000, 0x1000, CRC(4078d9b2) SHA1(c294735341504787fa7f4bc44543e132d975c0a2) ) + ROM_LOAD( "mrpacman.6", 0x9000, 0x1000, CRC(c1637f1c) SHA1(15577900bbba060e6c1b8dd03fcde19e7f4193c5) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mrpacman.5e", 0x0000, 0x1000, CRC(83e6a3a9) SHA1(9e76e0ff114778183324c905c7600ef848bf4a76) ) + ROM_LOAD( "mrpacman.5f", 0x1000, 0x1000, CRC(045dadf0) SHA1(1a28cb97ad547bddd3cc8e6d0102f7e1d43c71ea) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ms1000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "ms1000.4", 0x3000, 0x1000, CRC(22a10392) SHA1(7c17601428988dd996bbe64afee486fcf2333beb) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ms1000.5e", 0x0000, 0x1000, CRC(adde7864) SHA1(6e21d412b11bbabf05c65ad3c0dccba73fe15eb5) ) + ROM_LOAD( "ms1000.5f", 0x1000, 0x1000, CRC(5cb008a9) SHA1(bb9049b2a48773dac775acd70cb0cb54dcd6a5b0) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ms2000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "ms2000.4", 0x3000, 0x1000, CRC(a72e49df) SHA1(396bf713cddeb5521c614ff8483b0baef23af7d0) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ms2000.5e", 0x0000, 0x1000, CRC(2bcce741) SHA1(fd9729e54b049723c0fb6c47effe39724577ba0d) ) + ROM_LOAD( "ms2000.5f", 0x1000, 0x1000, CRC(4b40032a) SHA1(8002af3dfcfea82d56f5f04505d432c02dc56185) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ms2600 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "ms2600.4", 0x3000, 0x1000, CRC(c2a293df) SHA1(98e864d1993c97293acea0febc9cac8eb0fb582c) ) + ROM_LOAD( "ms2600.5", 0x8000, 0x1000, CRC(4852db05) SHA1(8471e1640164dc311e0180a7a8323208a40cf889) ) + ROM_LOAD( "ms2600.6", 0x9000, 0x1000, CRC(f32b076f) SHA1(f361233a06e0376fe83a6fd0a071593c7c260cb1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ms2600.5e", 0x0000, 0x1000, CRC(6b07b97a) SHA1(981ce12d92c57ed6c908d4b5b9b0c0b079d325db) ) + ROM_LOAD( "ms2600.5f", 0x1000, 0x1000, CRC(f844608b) SHA1(80b4a51536ac4c83974726cbfb36232e06334329) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ms3000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "ms3000.4", 0x3000, 0x1000, CRC(46790576) SHA1(097366bb8008122bb8814e5db6228d1e5756cb41) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ms3000.5e", 0x0000, 0x1000, CRC(1708299b) SHA1(c47d6d37f7c064f5bb22fa74c20fb259e9c694bf) ) + ROM_LOAD( "ms3000.5f", 0x1000, 0x1000, CRC(cf4798e3) SHA1(046958565ba31a63b36b89ee2ddc599196af1ec3) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ms4000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "ms4000p.4", 0x3000, 0x1000, CRC(ff418db8) SHA1(eec95b43e451af2ab3dbbee83c577548097a90ef) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ms4000p.5e", 0x0000, 0x1000, CRC(05ed8a9f) SHA1(8654596af1de7ddcd1795d9a38e75deb7e6f96c6) ) + ROM_LOAD( "ms4000p.5f", 0x1000, 0x1000, CRC(c0b58e02) SHA1(6ad23edff1b4a9324ea67ab28f3ab5e8362a55d8) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( ms5000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "ms2000.4", 0x3000, 0x1000, CRC(a72e49df) SHA1(396bf713cddeb5521c614ff8483b0baef23af7d0) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + ROM_FILL(0x3810, 1, 0x35) // put 5000 in because we don't have the actual ms5000 rom + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ms5000.5e", 0x0000, 0x1000, CRC(fd1bd093) SHA1(b1b20614d2a06fa032373fb01e79b4004215e2b7) ) + ROM_LOAD( "ms5000.5f", 0x1000, 0x1000, CRC(07d39d56) SHA1(2482477c8a2130dd5eb279b99e541bc5229c0778) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ms5000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "ms5000p.4", 0x3000, 0x1000, CRC(d7ff3b21) SHA1(478557c734062fc30a8b0252ebe04e15ec81a29a) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ms5000p.5e", 0x0000, 0x1000, CRC(4fd847aa) SHA1(39e1f184df81a61325a4d3cf2ef04eb3703f3944) ) + ROM_LOAD( "ms5000p.5f", 0x1000, 0x1000, CRC(50d5fa64) SHA1(777e041901da0cae324524d64fa67b04b2f33bcc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msatk2ad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) ) + ROM_LOAD( "mspacat2.6", 0x9000, 0x1000, CRC(bd0c3e94) SHA1(1b01ed6eab2c31bb874d1e51e773d0c130de7b75) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) ) + ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msatkad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) ) + ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) ) + ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msbaby ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msbaby.4", 0x3000, 0x1000, CRC(17aea21d) SHA1(2baa4b3812611ae8a1ff6b1b21b0a3ffd0d30be2) ) + ROM_LOAD( "msbaby.5", 0x8000, 0x1000, CRC(0c08aa7f) SHA1(0d4079d68c86cd64e4d309fdc43d2022a50f172d) ) + ROM_LOAD( "msbaby.6", 0x9000, 0x1000, CRC(e28aaa1f) SHA1(e0c4c1e0ceb3dfd6e63d954d3d6ea7924efac08b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msbaby.5e", 0x0000, 0x1000, CRC(e764738d) SHA1(79a7b871ee292d8cc2c4c97962fd876b4b95c4df) ) + ROM_LOAD( "msbaby.5f", 0x1000, 0x1000, CRC(3d316ad0) SHA1(fd7d1a02930cc1c8a2f4aa8518d805601a8e0a80) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msberzk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msberzk.4", 0x3000, 0x1000, CRC(795b1d20) SHA1(eb14ac6d2142fcfcbccf52eb7e8c51c208554eef) ) + ROM_LOAD( "msberzk.5", 0x8000, 0x1000, CRC(9fc2a679) SHA1(2684ecc09e2cf055daee181371691fc09cbd585a) ) + ROM_LOAD( "msberzk.6", 0x9000, 0x1000, CRC(6749a32d) SHA1(41b5b952c4f7f14b6a3884291c87e9ee6e760231) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msberzk.5e", 0x0000, 0x1000, CRC(92692429) SHA1(af5e72c445c7ea35655730364072c269befbc66f) ) + ROM_LOAD( "msberzk.5f", 0x1000, 0x1000, CRC(7c32ed2e) SHA1(124ff35143b1fcaa25d810a3479ae363cf74d2c9) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mscrzyma ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mscrzyma.4", 0x3000, 0x1000, CRC(f2b17834) SHA1(4d687e681d21a9a702ed5e8022c9098b8347811a) ) + ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) ) + ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ms2000.5e", 0x0000, 0x1000, CRC(2bcce741) SHA1(fd9729e54b049723c0fb6c47effe39724577ba0d) ) + ROM_LOAD( "mscrzyma.5f", 0x1000, 0x1000, CRC(2a9d6f77) SHA1(bcfec717967e64891d9638037ba5331b22654229) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mscrzymp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mscrzymp.4", 0x3000, 0x1000, CRC(db440183) SHA1(ec4e7a7324f77818e7357e6c7c9e8af257fcbc7d) ) + ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) ) + ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mscrzymp.5e", 0x0000, 0x1000, CRC(d43a7194) SHA1(2508b14778f8ff2d76b7ec00ba9fc30a0f606dcf) ) + ROM_LOAD( "mscrzymp.5f", 0x1000, 0x1000, CRC(7af54907) SHA1(d930b90f0500c3be451996ced9578ce870a1d6d5) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msdroid ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msdroid.4", 0x3000, 0x1000, CRC(984b3e88) SHA1(fb7c29adf0c7434c639fd82abf7aa9c709b37054) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msdroid.5e", 0x0000, 0x1000, CRC(97f5dd55) SHA1(14a1a8dda66223392fbae51af654607c56ac266e) ) + ROM_LOAD( "msdroid.5f", 0x1000, 0x1000, CRC(c0e47314) SHA1(d8a51d280bba4ad93db8019111ac4393aea9f9a2) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msdstorm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msdstorm.5e", 0x0000, 0x1000, CRC(b2940b89) SHA1(bfe7066fa11468d8373b43f966e76d92b17c0f48) ) + ROM_LOAD( "msdstorm.5f", 0x1000, 0x1000, CRC(5c65865f) SHA1(988b6deccd985a32d4561164bfabd80ebb43f0a6) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mselton ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "mselton.5f", 0x1000, 0x1000, CRC(30d0b19f) SHA1(9964a5a103ce1975d8606d5cfd2306c05a74aca3) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msextra ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msextra.4", 0x3000, 0x1000, CRC(b13d0521) SHA1(67e51e5447e5376a76ba1de6c600cf8aba6103f9) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msextra.5e", 0x0000, 0x1000, CRC(b656c0c5) SHA1(efa8aed573b4258a6f6da96b04968a9197ad2d33) ) + ROM_LOAD( "msextra.5f", 0x1000, 0x1000, CRC(c5d7017b) SHA1(29fa44d925526ab7f6385a2d4c750492063131ab) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msextrap ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msextrap.4", 0x3000, 0x1000, CRC(728f7465) SHA1(c3e089d2c7bace010e29f4cb861baa888007e8bf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msextrap.5e", 0x0000, 0x1000, CRC(1a2fa3e2) SHA1(dafccc8123093a9f5306c0c19367c3accd755ca1) ) + ROM_LOAD( "msextrap.5f", 0x1000, 0x1000, CRC(5a400cbc) SHA1(7351b9c7f196fc49fdab04a135a1519ca6d489ed) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msf1pac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msf1pac.4", 0x3000, 0x1000, CRC(e255428b) SHA1(fd128743eac8521f1a65bdbb2cfd59398eddfac5) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msindy.5e", 0x0000, 0x1000, CRC(c7183fd2) SHA1(af7e3bb7c4751f5df12bd321d6f583045c5acb10) ) + ROM_LOAD( "msindy.5f", 0x1000, 0x1000, CRC(a355e061) SHA1(b9223e01a77027d2f6afe4502b4a2dce3b3bdc0e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msgrkatk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msgrkb.4", 0x3000, 0x1000, CRC(7143729f) SHA1(87152df222364908852b1d242dff15889da5e95d) ) + ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) ) + ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msgrkb.5e", 0x0000, 0x1000, CRC(b6526896) SHA1(904dc168680cec660bee5a1a28a6a4b0dee9364e) ) + ROM_LOAD( "msgrkb.5f", 0x1000, 0x1000, CRC(043b1c9b) SHA1(6aa7971390272c3df4ceaf7718ad08086bb33b5c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msgrkb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msgrkb.4", 0x3000, 0x1000, CRC(7143729f) SHA1(87152df222364908852b1d242dff15889da5e95d) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msgrkb.5e", 0x0000, 0x1000, CRC(b6526896) SHA1(904dc168680cec660bee5a1a28a6a4b0dee9364e) ) + ROM_LOAD( "msgrkb.5f", 0x1000, 0x1000, CRC(043b1c9b) SHA1(6aa7971390272c3df4ceaf7718ad08086bb33b5c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mshangly ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mshangly.5", 0x8000, 0x1000, CRC(00c4d538) SHA1(cbfc9c10809631aae3fe9c454661ffa84a34138c) ) + ROM_LOAD( "mshangly.6", 0x9000, 0x1000, CRC(7a600536) SHA1(7172b4658c1b0ea4cdcc55b7f21225d82e116e5e) ) + /* The dot counts are wrong, they are at 8b2c, 8e17, 9109, 93f9 for each map 1-4 */ + ROM_FILL ( 0x8b2c, 1, 0xdc ) /* Change dot count for map 1 from E0 to DC */ + ROM_FILL ( 0x8e17, 1, 0xf2 ) /* Change dot count for map 2 from F4 to F2 */ + ROM_FILL ( 0x93f9, 1, 0xec ) /* Map 3 (=F2) is ok, change dot count for map 4 from EE to EC */ + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msheartb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msheart.5e", 0x0000, 0x1000, CRC(56f505f1) SHA1(5628874f332d348a61c1abcf116278ece534a7ba) ) + ROM_LOAD( "msheart.5f", 0x1000, 0x1000, CRC(662423ca) SHA1(e22a20e2ed51b4efe39665222669d86353d6c4c5) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mshearts ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mshearts.5e", 0x0000, 0x1000, CRC(0b5cf081) SHA1(9333369dd282f725c01831314f2aafd1667c64f9) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msindy ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msindy.4", 0x3000, 0x1000, CRC(8e234b3a) SHA1(f54f94aa80486a96178765378123a16a2637a47b) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msindy.5e", 0x0000, 0x1000, CRC(c7183fd2) SHA1(af7e3bb7c4751f5df12bd321d6f583045c5acb10) ) + ROM_LOAD( "msindy.5f", 0x1000, 0x1000, CRC(a355e061) SHA1(b9223e01a77027d2f6afe4502b4a2dce3b3bdc0e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msmini ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msmini.5e", 0x0000, 0x1000, CRC(7787a3f6) SHA1(8d89be6fcc1dfeb4470a721c9c89225ea8c7cfad) ) + ROM_LOAD( "msmini.5f", 0x1000, 0x1000, CRC(98ab3c44) SHA1(07dcfb7d6f2ca50e6e50ee1c14c229d26bb4b909) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msminia ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) ) + ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msmini.5e", 0x0000, 0x1000, CRC(7787a3f6) SHA1(8d89be6fcc1dfeb4470a721c9c89225ea8c7cfad) ) + ROM_LOAD( "msmini.5f", 0x1000, 0x1000, CRC(98ab3c44) SHA1(07dcfb7d6f2ca50e6e50ee1c14c229d26bb4b909) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msmspac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msmspac.4", 0x3000, 0x1000, CRC(1c11c60f) SHA1(d445a333f79ad8a6886e3b08fc39dee01733cf07) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "msmspac.5f", 0x1000, 0x1000, CRC(a0ffcd08) SHA1(0cd5028e97fafdd8b9b221a7a07bdc81826f4765) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msnes4a ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "msnes4a.5", 0x8000, 0x1000, CRC(d16b9605) SHA1(b54691591794fd8d9c9097da49add34f49021b50) ) + ROM_LOAD( "msnes4a.6", 0x9000, 0x1000, CRC(e6b58707) SHA1(cf0c5a3fbb9ae9a99a9c5c74ba45ac86323a0396) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msnes4a.5e", 0x0000, 0x1000, CRC(22e5b64e) SHA1(56e81329bee499a798a01867dbf2ceae6af2e11a) ) + ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msnes62 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "msnes62.5", 0x8000, 0x1000, CRC(52120bc9) SHA1(dc3608672e614a486306660bd367b325cdb51bda) ) + ROM_LOAD( "msnes62.6", 0x9000, 0x1000, CRC(8fd36e02) SHA1(6d0b04b7efd8a4a6773d60e5e748243cf1c56a1a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) ) + ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msnes63 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "msnes63.5", 0x8000, 0x1000, CRC(f4ea7d2c) SHA1(c490720d3b76615f46cae1f9bfbfc74da6f2854a) ) + ROM_LOAD( "msnes63.6", 0x9000, 0x1000, CRC(1ea43bba) SHA1(0c52d0d2ca866b750a03587c8c51c14f67327d43) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) ) + ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msnes6m ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "msnes6m.5", 0x8000, 0x1000, CRC(bc091971) SHA1(d5046f5dcffd027805a53be937e7389a135e980f) ) + ROM_LOAD( "msnes6m.6", 0x9000, 0x1000, CRC(23ebe9a1) SHA1(a51b6bd74edbea8e34ef35602c4aa8723d7f745a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) ) + ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msnes6m2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "msstrmaz.5", 0x8000, 0x1000, CRC(b8f8edda) SHA1(5af8c7908df0d45d456cfe68470ba2098c956cac) ) + ROM_LOAD( "msstrmaz.6", 0x9000, 0x1000, CRC(5d7888bc) SHA1(1f3ecd3bc787dd64ed41b1d664cf6794fa799ee8) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) ) + ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msnes6m3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "msnes6m3.5", 0x8000, 0x1000, CRC(20833779) SHA1(07826e21a14c15590cba7b9a08d2b91bf247cfe7) ) + ROM_LOAD( "msnes6m3.6", 0x9000, 0x1000, CRC(a047e68f) SHA1(8b99f471f39c6c383f84754996b644fe067527f7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) ) + ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msnes6m4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "msnes6m4.5", 0x8000, 0x1000, CRC(23c0db46) SHA1(dea5a3eeb1fb480f275cc2729b7ad604aa0824d3) ) + ROM_LOAD( "msnes6m4.6", 0x9000, 0x1000, CRC(daafdb39) SHA1(4120bdd859f37b065279cf048937cd1a5ce526da) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msnes4a.5e", 0x0000, 0x1000, CRC(22e5b64e) SHA1(56e81329bee499a798a01867dbf2ceae6af2e11a) ) + ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( mspac1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mspac1.cpu", 0x0000, 0x4000, CRC(ba5953c8) SHA1(ee5a0b9594f88c60be93e13f70adf45c5939f4da) ) + ROM_CONTINUE( 0x8000, 0x2000 ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspac6m ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "mspac6m.5", 0x8000, 0x1000, CRC(d0bd89d9) SHA1(c47e96d68d7e88e906b416c24ce926b76689f22d) ) + ROM_LOAD( "mspac6m.6", 0x9000, 0x1000, CRC(c5662407) SHA1(98827bda653b6d1d6984082c706247392ab706d2) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "mspac6m.5e", 0x0000, 0x0800, CRC(2850148a) SHA1(4257a5dd4ad27d4a6bfae71bbe2564026bdaebb2) ) + ROM_LOAD( "mspac6m.5h", 0x0800, 0x0800, CRC(6c3c6ebb) SHA1(3f19e9a20e202fda139324ef03991af99516aeef) ) + ROM_LOAD( "mspac6m.5f", 0x1000, 0x0800, CRC(5596b345) SHA1(0320eb1f7e39dbd438be2f488f43f5b11e13f438) ) + ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( mspac6m2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "mspac6m2.5", 0x8000, 0x1000, CRC(48453707) SHA1(3faf536de2e56770a99379849409eeea01b2d031) ) + ROM_LOAD( "mspac6m2.6", 0x9000, 0x1000, CRC(2e961bc4) SHA1(e29814151edde8a22e638a4a8edb9935e48d985b) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "mspac6m.5e", 0x0000, 0x0800, CRC(2850148a) SHA1(4257a5dd4ad27d4a6bfae71bbe2564026bdaebb2) ) + ROM_LOAD( "mspac6m.5h", 0x0800, 0x0800, CRC(6c3c6ebb) SHA1(3f19e9a20e202fda139324ef03991af99516aeef) ) + ROM_LOAD( "mspac6m.5f", 0x1000, 0x0800, CRC(5596b345) SHA1(0320eb1f7e39dbd438be2f488f43f5b11e13f438) ) + ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( mspacad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacad.5e", 0x0000, 0x1000, CRC(c3dca510) SHA1(6e9c3e47f2f928ef3857dce8bc26352a80d4a52d) ) + ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacat2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) ) + ROM_LOAD( "mspacat2.6", 0x9000, 0x1000, CRC(bd0c3e94) SHA1(1b01ed6eab2c31bb874d1e51e773d0c130de7b75) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacatb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) ) + ROM_LOAD( "mspacatb.6b", 0x9000, 0x1000, CRC(7a8c4dfe) SHA1(b450a3272255527838b806dc0318256e47593018) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacatx ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */ + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) ) + ROM_LOAD( "u6pacatk", 0x9000, 0x1000, CRC(f6d83f4d) SHA1(6135b187d6b968554d08f2ac00d3a3313efb8638) ) + ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) ) + ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) ) + + PACMAN_PROMS +ROM_END + +/* This dump had a bad rom at position 5a, i have re-created it from one half of boot5. This seems reasonable + since the rom at position 5b is identical to the other half of boot5. + More: checking against E180 shows this is correct, and also supplies the missing 6b rom. */ +ROM_START( mspacde ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacde.5a", 0x8000, 0x0800, CRC(cb8a001c) SHA1(398992352c51f82049a4ac981fd152c4c2863f2d) ) + ROM_LOAD( "mspacde.5b", 0x8800, 0x0800, CRC(3e866689) SHA1(fbcb8eaddf15fd988de2cb35f93003380ee6e2de) ) + ROM_LOAD( "mspacde.6a", 0x9000, 0x0800, CRC(286041cf) SHA1(5a5fc97ea66a59895b3403b2982940b755076667) ) + ROM_LOAD( "mspacde.6b", 0x9800, 0x0800, CRC(321784cf) SHA1(9b67741e035fe1528e971db9072eea8982235a63) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) ) + ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) ) + ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) ) + ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacdel ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspacdel.4", 0x3000, 0x1000, CRC(af8c63ad) SHA1(e119eac748179fef53b8fd62f33885df53bf94fa) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacdel.5e", 0x0000, 0x1000, CRC(605becd7) SHA1(d16bd3e151273ab6652b4f105dd58ef95c18b387) ) + ROM_LOAD( "mspacdel.5f", 0x1000, 0x1000, CRC(435de4cb) SHA1(f3aa39e969f79b0e01378c870e874f8076def746) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacfnt ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacfnt.5e", 0x0000, 0x1000, CRC(6d6d7af4) SHA1(768dc3fa909f6fef77eb3d72c287c91f3da2ae70) ) + ROM_LOAD( "mspacfnt.5f", 0x1000, 0x1000, CRC(7537ee90) SHA1(9e861fca1706ecabaad15ba3fc817bdc3146ea1d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspachi ) + ROM_REGION( 0x11000, "maincpu", 0 ) + ROM_LOAD( "mspachi.1", 0x0000, 0x1000, CRC(dca2ffc4) SHA1(746ebc8afd3172323f1c19e97e55e0f906d68ea4) ) + ROM_LOAD( "mspachi.2", 0x1000, 0x1000, CRC(fea2627b) SHA1(bc7249f0939dc003de509721e7d4f669defefcfe) ) + ROM_LOAD( "mspachi.3", 0x2000, 0x1000, CRC(a9a32749) SHA1(2d1036a0903a12f4f8b9e56c1599d1dccea8991a) ) + ROM_LOAD( "mspachi.4", 0x3000, 0x1000, CRC(9123cd53) SHA1(e6a3461c818b2bc779f02c23d59e54530ef76584) ) + ROM_LOAD( "mspachi.5", 0x8000, 0x1000, CRC(397f196d) SHA1(aab641b8053adc0a43ee5d2eba43aa6c12326dec) ) + ROM_LOAD( "mspachi.6", 0x9000, 0x2000, CRC(50de42d3) SHA1(66b2dd376ab69cab2593357489251f06bc621120) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacii ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mspacii.1", 0x0000, 0x1000, CRC(df673b57) SHA1(93ee4e8f9751db5f7d3c35988fcb8ae8037464ed) ) + ROM_LOAD( "mspacii.2", 0x1000, 0x1000, CRC(7591f606) SHA1(0aead0ac5af602269df8732c5763147cdb543b8d) ) + ROM_LOAD( "mspacii.3", 0x2000, 0x1000, CRC(c8ef1a7f) SHA1(0c9a28bbe63d7d44511a13316937a21b8846543e) ) + ROM_LOAD( "mspacii.4", 0x3000, 0x1000, CRC(d498f435) SHA1(c041841b1349d8d5c2d560aed54c4aeb8adfddb8) ) + ROM_LOAD( "mspacii.5", 0x8000, 0x1000, CRC(fbbc3d2e) SHA1(dc4337d7f0961e048a433021f670da6d314bd663) ) + ROM_LOAD( "mspacii.6", 0x9000, 0x1000, CRC(aa3887c5) SHA1(0e20cb686383156a9883749568c8e57c15c3ae44) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacii.5e", 0x0000, 0x1000, CRC(04333722) SHA1(bb179d5302b26b815b5d7eff14865e7b4f8a6880) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacit ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspacit.4", 0x3000, 0x1000, CRC(50dcba32) SHA1(cc454829cd71ca874029a20118027873df824c66) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "mspacit.6", 0x9000, 0x1000, CRC(3a1d5323) SHA1(16e7dddf40505706ece2d053d51e28bff8be8e77) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) ) + ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) ) + ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) ) + ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "mspacit.7f", 0x0000, 0x0020, CRC(2c3cc909) SHA1(32d68d4cfdf9f3e7351353428d268c763e809c63) ) + ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) ) + + ROM_REGION( 0x0200, "namco", 0 ) + /* The sound is extremely distorted, perhaps a bad dump? The patches below fix the changed bytes */ + ROM_LOAD( "mspacit.1m", 0x0000, 0x0100, CRC(3cb61034) SHA1(2f24b88839aee107a0ac1064f8bc4853933f5205) ) + ROM_FILL( 0x0a, 1, 13 ) + ROM_FILL( 0x2a, 1, 10 ) + ROM_FILL( 0x4a, 1, 2 ) + ROM_FILL( 0x8a, 1, 13 ) + ROM_FILL( 0xaa, 1, 2 ) + ROM_FILL( 0xca, 1, 10 ) + ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + +/* This was listed as a pac-gal clone however it is just another MS Pacman (mspacit with slightly altered gfx) */ +ROM_START( mspacit2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspacit.4", 0x3000, 0x1000, CRC(50dcba32) SHA1(cc454829cd71ca874029a20118027873df824c66) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "mspacit.6", 0x9000, 0x1000, CRC(3a1d5323) SHA1(16e7dddf40505706ece2d053d51e28bff8be8e77) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) ) + ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) ) + ROM_LOAD( "mspacit2.5f", 0x1000, 0x0800, CRC(20135b9b) SHA1(ea85134cdeb4142d72cf81ead96990d211046f2e) ) + ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) ) + + PACMAN_PROMS +ROM_END + +/* The cpu rom is 2 copies of mspacmbg.cpu joined */ +ROM_START( mspacj ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mspacj.cpu", 0x0000, 0x4000, CRC(807f978a) SHA1(19fa46e41ff671b88fb7d5e0a6c8c989a96e3477) ) + ROM_CONTINUE( 0x8000, 0x4000) + ROM_IGNORE( 0x8000 ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacj.gfx", 0x0000, 0x0800, CRC(8ee4a3b0) SHA1(01e3453c99f7a5d78ab083c49c650e898c0dd2ee) ) + ROM_CONTINUE( 0x1000, 0x0800 ) + ROM_CONTINUE( 0x0800, 0x0800 ) + ROM_CONTINUE( 0x1800, 0x0800 ) + ROM_IGNORE( 0x2000 ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "mspacj.7f", 0x0000, 0x0020, CRC(3545e7e9) SHA1(b866b02579438afb11296e5c53a32c6425bd044d) ) + ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) ) + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "mspacj.1m", 0x0000, 0x0100, CRC(640e455c) SHA1(c3f7d132cf8f1ec3334366b6891fca74450a577e) ) + ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + +ROM_START( mspacmab ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacman ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */ + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) ) + ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) ) + ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +/* This set has the fixes proposed by Don Hodges at the pages: + http://donhodges.com/how_high_can_you_get3.htm + http://donhodges.com/ms_pacman_bugs.htm */ +ROM_START( mspacmap ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + ROM_FILL(0x0677,1,0xc3) + ROM_FILL(0x0678,1,0x41) + ROM_FILL(0x0679,1,0x98) + ROM_FILL(0x0c1d,1,0x00) + ROM_FILL(0x2bf3,1,0xc3) + ROM_FILL(0x2bf4,1,0x93) + ROM_FILL(0x2bf5,1,0x87) + ROM_FILL(0x2bf8,1,0x3c) + ROM_FILL(0x8794,1,0x07) + ROM_FILL(0x8796,1,0xf8) + ROM_FILL(0x2ffc,1,0xfa) + ROM_FILL(0x2ffd,1,0x5b) + ROM_FILL(0x3f7c,1,0x85) + ROM_FILL(0x94c3,1,0xd2) + ROM_FILL(0x94d8,1,0xd2) + ROM_FILL(0x9595,1,0xd2) + ROM_FILL(0x95a7,1,0xd2) + ROM_FILL(0x95c8,1,0xd2) + ROM_FILL(0x9841,1,0xaf) + ROM_FILL(0x9842,1,0x32) + ROM_FILL(0x9843,1,0x02) + ROM_FILL(0x9844,1,0x4e) + ROM_FILL(0x9845,1,0xef) + ROM_FILL(0x9846,1,0x01) + ROM_FILL(0x9847,1,0x01) + ROM_FILL(0x9848,1,0xc3) + ROM_FILL(0x9849,1,0x7a) + ROM_FILL(0x984a,1,0x06) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacmat ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */ + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) ) + ROM_LOAD( "u6pacatk", 0x9000, 0x1000, CRC(f6d83f4d) SHA1(6135b187d6b968554d08f2ac00d3a3313efb8638) ) + ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacmbe ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "2.bin", 0x1000, 0x1000, CRC(04e6c486) SHA1(63aa3e6c49d345cccfe87dd3fdcddc75ab4a570d) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "6.bin", 0x9000, 0x1000, CRC(206a9623) SHA1(20006f945c1b7b0e3c0415eecc0b148e5a6a1dfa) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacmbg ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mspacmbg.cpu", 0x0000, 0x4000, CRC(97c64918) SHA1(a46ca4822e6cd7b9a5603d5d06a78fd489dc0b96) ) + ROM_CONTINUE( 0x8000, 0x4000 ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacmbg.gfx", 0x0000, 0x0800, CRC(f2c5da43) SHA1(6a6de2ecc313a11ad12d8d1712c05f923984f668) ) + ROM_CONTINUE( 0x1000, 0x0800 ) + ROM_CONTINUE( 0x0800, 0x0800 ) + ROM_CONTINUE( 0x1800, 0x0800 ) + ROM_IGNORE( 0x6000 ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacmbx ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) ) + ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacmfx ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */ + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) ) + ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) ) + ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) ) + ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacmnf ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */ + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacfast.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) ) + ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) ) + ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacmnn ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */ + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) ) + ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) ) + ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacmnn.5e", 0x0000, 0x1000, CRC(f4cf1273) SHA1(9120de96984e96a0425b210d9fb8175b91b26284) ) + ROM_LOAD( "mspacmnn.5f", 0x1000, 0x1000, CRC(c4e7ec0b) SHA1(06940f81b228fd7b6389afe93a7355dc2afee821) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacmnx ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */ + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) ) + ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) ) + ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) ) + ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacnes ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) ) + ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) ) + ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( mspacp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspacp.4", 0x3000, 0x1000, CRC(203dcba5) SHA1(c1e94a17bab5f25bfdc5836e0ba968a56b6f9e58) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacp.5e", 0x0000, 0x1000, CRC(cd4afa90) SHA1(e917c5cd4b0af33279dbde5a50fc3aedb7602425) ) + ROM_LOAD( "mspacp.5f", 0x1000, 0x1000, CRC(58ea207f) SHA1(65d07838bd2cb8bfcb6fcb0e99f88036af5753be) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( mspacpbl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "mspacpbl.1", 0x0000, 0x1000, CRC(34f60afa) SHA1(86813f3f0c3832451ee215d542cce7ad2aaa9785) ) + ROM_LOAD( "mspacpbl.2", 0x1000, 0x1000, CRC(5426636c) SHA1(35cdd13e917c2d1e11086745de6dc3b85bf1fdbb) ) + ROM_LOAD( "mspacpbl.3", 0x2000, 0x1000, CRC(60c890a1) SHA1(c1fbaedb212449803f5b506ac6f8e258644e4536) ) + ROM_LOAD( "mspacpbl.4", 0x3000, 0x1000, CRC(586f1bfd) SHA1(1cf77bb44ba153ca03e7e8b26174b33f192da071) ) + ROM_LOAD( "mspacpbl.5", 0x8000, 0x1000, CRC(85a44e94) SHA1(59b2249f6834ee4634e9fb8daa53739e80654c85) ) + ROM_LOAD( "mspacpbl.6", 0x9000, 0x1000, CRC(3babaeab) SHA1(abc7f705a16dfd53540dfe7e0b6723a5843682c2) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacpbl.5e", 0x0000, 0x1000, CRC(5ba9c39a) SHA1(50e49234b051d74ce21ec4b819cccbbb98c57c3c) ) + ROM_LOAD( "mspacpbl.5f", 0x1000, 0x1000, CRC(4aeefccb) SHA1(68810190397415be042c4787618feade7dcfe23a) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacpls ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) ) + ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacplx ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) ) + ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) ) + ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacren ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspacren.4", 0x3000, 0x1000, CRC(efe80423) SHA1(bc78085a53123da0e0c9ab2c212c60c9dd2e6983) ) + ROM_LOAD( "mspacren.5", 0x8000, 0x1000, CRC(f513ae17) SHA1(87e1a3d31d04ed527cb89369c53a5a66403f73a5) ) + ROM_LOAD( "mspacren.6", 0x9000, 0x1000, CRC(ce3b842b) SHA1(e4bf3578ccfaa757534f83fb3842d1515fd95d71) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacren.5e", 0x0000, 0x1000, CRC(31b134a0) SHA1(f457df057963aa60492a98f12a6d258fe7fded03) ) + ROM_LOAD( "mspacren.5f", 0x1000, 0x1000, CRC(022f61d1) SHA1(16ed25a881b058efa963b938341ce4f04d914262) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) ) + ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( mspacrip ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspacrip.4", 0x3000, 0x1000, CRC(5fb1ee61) SHA1(1123ec7d3de24fd8ae2eb75c87b3d22f53421e21) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacrip.5e", 0x0000, 0x1000, CRC(5aa9eb83) SHA1(da2500ed81873c2d96501d136c7d9478155e0d33) ) + ROM_LOAD( "mspacrip.5f", 0x1000, 0x1000, CRC(ceb3785d) SHA1(c3cc1475ca0b1725497cd03ab116c18d57dba127) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacsup ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacsup.6f", 0x1000, 0x0800, CRC(ab07b7c6) SHA1(855ce1a948660014796de15a8ef155a2b7068056) ) + ROM_LOAD( "mspacsup.6m", 0x1800, 0x0800, CRC(2a724972) SHA1(f67f4280f928f182330b32853591eec32a22d5f6) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspacsup.6j", 0x3000, 0x0800, CRC(6023a7a8) SHA1(3424b057dc70c4a76f55dc1b618f5a0ad5d5b6fe) ) + ROM_LOAD( "mspacsup.6p", 0x3800, 0x0800, CRC(9bdbccb0) SHA1(58dedf146178f08dc0e8c09aa0def75267e2efe4) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspacwf ) // Ms.Pacman Weird Fruit + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspacwf.4", 0x3000, 0x1000, CRC(a078477e) SHA1(e4016bfcd581cbf0b180d7e3cf6b63713de45add) ) + ROM_LOAD( "mspacwf.5", 0x8000, 0x1000, CRC(5064e97a) SHA1(3cc0f7ce7874c28bf4d379922e9509fca6227c13) ) + ROM_LOAD( "mspacwf.6", 0x9000, 0x1000, CRC(b9f6fc01) SHA1(43648fc301e0b2639ac98452154fd74ccec1f6d7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacwf.5e", 0x0000, 0x1000, CRC(4f00a074) SHA1(c9f0319537d327a46612d9255cfeea58c4f96918) ) + ROM_LOAD( "mspacwf.5f", 0x1000, 0x1000, CRC(a13df02c) SHA1(072f5a3fe25cc29d57082eb0cfc7b78f5e330363) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspamsba ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "mspamsba.4", 0x3000, 0x1000, CRC(8b3f8e44) SHA1(d56e640e3454950c4f2c4d00c8f6e9e1cfb33494) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspamsba.5e", 0x0000, 0x1000, CRC(aa7115b8) SHA1(895f85d157239be4a6f40beeb739157954697386) ) + ROM_LOAD( "mspamsba.5f", 0x1000, 0x1000, CRC(f94b0961) SHA1(8b1376dd50388cbc29426cc2e339798d687fb845) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mspc6mad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "mspc6mad.5", 0x8000, 0x1000, CRC(b556fe78) SHA1(2e84f6e69b3852b791de22ac31bee2b2f76ded07) ) + ROM_LOAD( "mspc6mad.6", 0x9000, 0x1000, CRC(4dbe1939) SHA1(5203274ed1ceb06308f2778b7b5e8d41e8f2bd63) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspc6mad.5e", 0x0000, 0x1000, CRC(92ea9860) SHA1(1d03cd9dd411ed9284fe4ccae3cbe2ac53560139) ) + ROM_LOAD( "mspc6mad.5f", 0x1000, 0x1000, CRC(713cc17e) SHA1(dca7722b38c4eae701f48110276376c83505fc9b) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msplus ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msplus.4", 0x3000, 0x1000, CRC(9d6fed06) SHA1(9927933f8df589e995f542d48a6ac196029a343f) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacp.5e", 0x0000, 0x1000, CRC(cd4afa90) SHA1(e917c5cd4b0af33279dbde5a50fc3aedb7602425) ) + ROM_LOAD( "msplus.5f", 0x1000, 0x1000, CRC(e68b2a85) SHA1(8c1b294505ae5202bce760cafea2437a5f71d0cf) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msrumble ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msrumble.4", 0x3000, 0x1000, CRC(15b02313) SHA1(b1400928ff7a5c3067f3d7be02b172f3054c0ce0) ) + ROM_LOAD( "msrumble.5", 0x8000, 0x1000, CRC(e2473a86) SHA1(b51cb0a98178f4c52345d6ecdf89e5f23080eb72) ) + ROM_LOAD( "msrumble.6", 0x9000, 0x1000, CRC(17abb097) SHA1(7eae139e71c7ea07e05f9b1c04194b1ae6c2f975) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mssilad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mssilad.3", 0x2000, 0x1000, CRC(79d241dd) SHA1(98f95619d4212da9f23b83ad5c9c793576d51177) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mssilad.5", 0x8000, 0x1000, CRC(2e2fcde0) SHA1(718dcbf395eb92b956adf185b5b2cf46aa5b9694) ) + ROM_LOAD( "mssilad.6", 0x9000, 0x1000, CRC(22c6d19a) SHA1(92cb3f962b7dab5e92b780d60f448b9f57c03687) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) ) + ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msstrmaz ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "msstrmaz.4", 0x3000, 0x1000, CRC(ef9cce5a) SHA1(2a9bcdd672023129761a573d77f69b76ccfdc5c4) ) + ROM_LOAD( "msstrmaz.5", 0x8000, 0x1000, CRC(b8f8edda) SHA1(5af8c7908df0d45d456cfe68470ba2098c956cac) ) + ROM_LOAD( "msstrmaz.6", 0x9000, 0x1000, CRC(5d7888bc) SHA1(1f3ecd3bc787dd64ed41b1d664cf6794fa799ee8) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msstrmaz.5e", 0x0000, 0x1000, CRC(14fd0ad7) SHA1(4fac020002905b28c7f054340aa0eacc7b2c701b) ) + ROM_LOAD( "msstrmaz.5f", 0x1000, 0x1000, CRC(67fb6254) SHA1(ce2134f6c8c6fc5770a835aa1eeebd27611806da) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( msultra ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "msultra.4", 0x3000, 0x1000, CRC(36b5e9fd) SHA1(70373fbcae8d2f6dd9274cb825a561de15c4c2b9) ) + ROM_LOAD( "msultra.5", 0x8000, 0x1000, CRC(cf609615) SHA1(f410eec29433085bf9138582e6725c9326d9001f) ) + ROM_LOAD( "msultra.6", 0x9000, 0x1000, CRC(007cd365) SHA1(c5ce3f81063052b36a6f5516d391e6c5a63f2819) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msultra.5e", 0x0000, 0x1000, CRC(508af5b0) SHA1(5a92354f45af65d3343e32111f675998a5347557) ) + ROM_LOAD( "msultra.5f", 0x1000, 0x1000, CRC(db5a4630) SHA1(2cb6e8650ae861a2008dd2f185aa2c02827ab370) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msvctr6m ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) ) + ROM_LOAD( "mspac6m.5", 0x8000, 0x1000, CRC(d0bd89d9) SHA1(c47e96d68d7e88e906b416c24ce926b76689f22d) ) + ROM_LOAD( "mspac6m.6", 0x9000, 0x1000, CRC(c5662407) SHA1(98827bda653b6d1d6984082c706247392ab706d2) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msvctr6m.5e", 0x0000, 0x1000, CRC(64b35a5a) SHA1(5c8dec1ae192c8e717346618bc4f28d3abd0ca84) ) + ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msvectr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) ) + ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( msyakman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msyakman.5e", 0x0000, 0x1000, CRC(827892bb) SHA1(5b111c4d6293e13d5fae9e77823acd8be5c08b34) ) + ROM_LOAD( "msyakman.5f", 0x1000, 0x1000, CRC(1108ba96) SHA1(b1ee699722b8a22e24ec18d1930e055387a45d96) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ottop1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ottop1.1", 0x0000, 0x1000, CRC(00340fb8) SHA1(60337395c35085c32fc4450a649cf629e4ae32da) ) + ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) ) + ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) ) + ROM_LOAD( "ottop1.4", 0x3000, 0x1000, CRC(0d20edf6) SHA1(11ec227cb5ee030bfed9aaa0b624fd2c0e47b6f5) ) + ROM_LOAD( "ottop1.5", 0x8000, 0x1000, CRC(3bb6cea7) SHA1(cf629f478f14fb392bc71b6453364b58c3544b0a) ) + ROM_LOAD( "ottop1.6", 0x9000, 0x1000, CRC(1e1357bf) SHA1(4fd6074cc971bfe8d233714ae88ec295840c7d9b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ottop1.5e", 0x0000, 0x1000, CRC(2ba71471) SHA1(69f111cee7c1228636ee38b065b2d5486a18749d) ) + ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ottop2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ottop2.1", 0x0000, 0x1000, CRC(a9c0c5fc) SHA1(4631b6260b88c5dc23503ea420a62f946f5bb978) ) + ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) ) + ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) ) + ROM_LOAD( "ottop2.4", 0x3000, 0x1000, CRC(c8517a08) SHA1(ab6ed1004e6a66dfce426ad5db0bfc0cd4e6eabc) ) + ROM_LOAD( "ottop2.5", 0x8000, 0x1000, CRC(d8d8ceec) SHA1(b3ea6f35118b04281c568806127fe1a97c22ed42) ) + ROM_LOAD( "ottop2.6", 0x9000, 0x1000, CRC(184f877a) SHA1(473b47566fce1b53d6b885b54562c4ae82ed9ae1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ottop2.5e", 0x0000, 0x1000, CRC(54a743f7) SHA1(9406b856edf3f6a7979926295663cabdf53bb0d4) ) + ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ottop3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ottop3.1", 0x0000, 0x1000, CRC(2df1dc0d) SHA1(93846a2affedda0ab1047b2927198fc2c24c7f72) ) + ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) ) + ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) ) + ROM_LOAD( "ottop3.4", 0x3000, 0x1000, CRC(0eb1ad52) SHA1(d533d06d3aab14ab7726d449269782d663da1180) ) + ROM_LOAD( "ottop3.5", 0x8000, 0x1000, CRC(3e2e62bb) SHA1(8dcbc2170214e538fcf092c54a9d6994b5157278) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ottop2.5e", 0x0000, 0x1000, CRC(54a743f7) SHA1(9406b856edf3f6a7979926295663cabdf53bb0d4) ) + ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ottopz ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ottopz.1", 0x0000, 0x1000, CRC(35b94585) SHA1(6a8350efbd6fab30b22365c6a2ed7e23f47af0e6) ) + ROM_LOAD( "ottopz.2", 0x1000, 0x1000, CRC(298dbd3d) SHA1(302c82562c66c267dedcc7e7d5e3ab8234b5e20c) ) + ROM_LOAD( "ottopz.3", 0x2000, 0x1000, CRC(6f0c25bd) SHA1(f4cabdb7462310c14ecde5db9f586360ac1829f4) ) + ROM_LOAD( "ottopz.4", 0x3000, 0x1000, CRC(3af7ef8c) SHA1(bf340f3fa275950c0eda4fbf3eb3115edd039bd6) ) + ROM_LOAD( "ottopz.5", 0x8000, 0x1000, CRC(098c2a09) SHA1(cf0e69c891dbc8b448c359abf3e869d0aaba02df) ) + ROM_LOAD( "ottopz.6", 0x9000, 0x1000, CRC(367e5c05) SHA1(15bed84c6480fab5e7bcbbd1dbb2b8919ac1dca5) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ottopz.5e", 0x0000, 0x1000, CRC(046d76fb) SHA1(44f607dbed727a0ae5152da67b6953ba9619566f) ) + ROM_LOAD( "ottopz.5f", 0x1000, 0x1000, CRC(402e194d) SHA1(01867241edd28f25aa7be1d4004bb2c73979d8d0) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacatk ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */ + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) ) + ROM_LOAD( "pacatk.u6", 0x9000, 0x1000, CRC(a35b3788) SHA1(51a1806a0ae4adb5baa9e875c6d9f715198ce8ae) ) + ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) +// ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) +// ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacgal ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "pacman.7hj", 0x3000, 0x1000, CRC(70694c8e) SHA1(d0d02f0997b44e1ba5ea27fc3f7af1b956e2a687) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "pacman.5ef", 0x1000, 0x0800, CRC(65a3ee71) SHA1(cbbf700eefba2a5bf158983f2ca9688b7c6f5d2b) ) + ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "pacgal.4a", 0x0020, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( pacgalu ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacgalu.bin", 0x0000, 0x4000, CRC(23a0bd03) SHA1(6ebf7985374a0b0d7402f54c3c9b488fdebeb65e) ) + ROM_CONTINUE( 0x8000, 0x4000 ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacgalu.gfx", 0x0000, 0x2000, CRC(d6e3a240) SHA1(e176bfc6c0d2ecee825dce18758639c6e1dbe70d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacgalx ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) ) + ROM_LOAD( "pacman.7hj", 0x3000, 0x1000, CRC(70694c8e) SHA1(d0d02f0997b44e1ba5ea27fc3f7af1b956e2a687) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) ) + ROM_LOAD( "pacgalx.5f", 0x4000, 0x4000, CRC(dfb2a9e9) SHA1(a7c297910fce9723054ce9a7abc0175e75e72d1c) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_LOAD( "2s140.4a", 0x0020, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( pacgent ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacgent.1", 0x0000, 0x1000, CRC(de6f3b2b) SHA1(cf499e8ce3bb88e69ce5bb3bbf412d81bf6a0c0f) ) + ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) ) + ROM_LOAD( "pacgent.3", 0x2000, 0x1000, CRC(e96d522e) SHA1(41b08f3e10e81fc373bedd5ba928461f05a8ccb4) ) + ROM_LOAD( "pacgent.4", 0x3000, 0x1000, CRC(154482fb) SHA1(98097e37f97310e93a42f7ae03072627c064f372) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "pacgent.6", 0x9000, 0x1000, CRC(dcc58e81) SHA1(5e005b46c5fef89c144f906e695eabad4a50919e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacgent.5e", 0x0000, 0x1000, CRC(e9992415) SHA1(3e8241e1b17d7f5243d348ad9d07f55266ed524e) ) + ROM_LOAD( "pacgent.5f", 0x1000, 0x1000, CRC(50171b3a) SHA1(e1fef48206ba5af1e729bfa09f938cbc47917dc2) ) + + PACMAN_PROMS +ROM_END + +ROM_START( petshop ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "petshop.4", 0x3000, 0x1000, CRC(75230eef) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "petshop.5e", 0x0000, 0x1000, CRC(ac1c180b) SHA1(dc012d2ba8e1ab19d915e0b1218154f5441aee99) ) + ROM_LOAD( "petshop.5f", 0x1000, 0x1000, CRC(ce314b46) SHA1(bc091cef128f82c7d53ad1b4af841f41906cf601) ) + + PACMAN_PROMS +ROM_END + +ROM_START( piranha2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "piranha2.4", 0x3000, 0x1000, CRC(fe8b786d) SHA1(e9fcd78076e4e7e6aa73781238722e077e40f945) ) + ROM_LOAD( "piranha2.5", 0x8000, 0x1000, CRC(bef08ea4) SHA1(04211f34d7eb9009b1d2cb1a3fbff0e4bdeb0127) ) + ROM_LOAD( "piranha2.6", 0x9000, 0x1000, CRC(fd3df829) SHA1(69e6c66aab3eb43f0a64350279e67351f1aceddd) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "piranha2.5e", 0x0000, 0x1000, CRC(8f0fa58f) SHA1(bf1ae6523cc9161c0db55b8ecaafe1783f3600f2) ) + ROM_LOAD( "piranha2.5f", 0x1000, 0x1000, CRC(42153903) SHA1(9b231f783b5c847b09819d554a3bb136028938e0) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ramsnoop ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ramsnoop.1", 0x0000, 0x1000, CRC(A08529FA) SHA1(E448E3A2BED42FA9A2C6435849426E6A2CCF5290) ) + ROM_LOAD( "ramsnoop.2", 0x1000, 0x1000, CRC(27B70DD6) SHA1(E52C724C7909C2B3B8EA44C2D3540BE9D23C5E03) ) + ROM_LOAD( "ramsnoop.3", 0x2000, 0x1000, CRC(812691A0) SHA1(8FF6D1C2697732C0466BCB37A7F36392980B4A99) ) + ROM_LOAD( "ramsnoop.4", 0x3000, 0x1000, CRC(9E7849E3) SHA1(8C574E42BFFC6B88D5B5DF3C6655F792B2FF5C5C) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5C281D01) SHA1(5E8B472B615F12EFCA3FE792410C23619F067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615AF909) SHA1(FD6A1DDE780B39AEA76BF1C4BEFA5882573C2EF4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( sueworlb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "sueworlb.4", 0x3000, 0x1000, CRC(edc5ad28) SHA1(b1b95ed715a935fe3bf68c71cb4ac66402c17e79) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "sueworld.5e", 0x0000, 0x1000, CRC(6c975345) SHA1(8c294a14c3a2b390c85d75d61453e73ee8721058) ) + ROM_LOAD( "sueworld.5f", 0x1000, 0x1000, CRC(2c809842) SHA1(4325af0b41b67ce3783b667506b60d0221c6ac45) ) + + PACMAN_PROMS +ROM_END + +ROM_START( sueworld ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "sueworld.4", 0x3000, 0x1000, CRC(677adea7) SHA1(b258e748e47cb8ae77594728f1ccc97a429a411e) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "sueworld.5e", 0x0000, 0x1000, CRC(6c975345) SHA1(8c294a14c3a2b390c85d75d61453e73ee8721058) ) + ROM_LOAD( "sueworld.5f", 0x1000, 0x1000, CRC(2c809842) SHA1(4325af0b41b67ce3783b667506b60d0221c6ac45) ) + + PACMAN_PROMS +ROM_END + +ROM_START( superp4g ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "superp4g.1", 0x0000, 0x1000, CRC(f88c992f) SHA1(b6e2ec74dcc87aa097b6360f9fd19cfb11227efb) ) + ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) ) + ROM_LOAD( "superp4g.3", 0x2000, 0x1000, CRC(c76dd2e6) SHA1(3172733cab013945de5f1c79e0a829cacad224ab) ) + ROM_LOAD( "superp4g.4", 0x3000, 0x1000, CRC(ba5b054e) SHA1(b7bb14167167c59ab9035539d5cf6338a10f00e0) ) + ROM_LOAD( "superp4g.5", 0x8000, 0x1000, CRC(c701506b) SHA1(31c96d13f290248c63143e22b052adb698a45687) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "superp4g.5e", 0x0000, 0x1000, CRC(593576fe) SHA1(238006f0d4fe6d478521a8d116f8d0679b502f6d) ) + ROM_LOAD( "superp4g.5f", 0x1000, 0x1000, CRC(e64e0f6d) SHA1(b87405ef0f90fc0a3afda1a4265ba6b0a074a21d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( superp4m ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "superp4m.1", 0x0000, 0x1000, CRC(9caaac56) SHA1(8858e4e9d7e3b9a1cd55f6bff1b9766b13fd9b8b) ) + ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) ) + ROM_LOAD( "superp4g.3", 0x2000, 0x1000, CRC(c76dd2e6) SHA1(3172733cab013945de5f1c79e0a829cacad224ab) ) + ROM_LOAD( "superp4g.4", 0x3000, 0x1000, CRC(ba5b054e) SHA1(b7bb14167167c59ab9035539d5cf6338a10f00e0) ) + ROM_LOAD( "superp4m.5", 0x8000, 0x1000, CRC(c4b3240c) SHA1(7839463d69c24d15ac4c4de199f2ba6ce1cfaad7) ) + ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "superp4g.5e", 0x0000, 0x1000, CRC(593576fe) SHA1(238006f0d4fe6d478521a8d116f8d0679b502f6d) ) + ROM_LOAD( "superp4m.5f", 0x1000, 0x1000, CRC(9142e698) SHA1(229cc0f45ef4dcc60f1e449d24881a0a13720972) ) + + PACMAN_PROMS +ROM_END + +ROM_START( supmspac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "supmspac.2", 0x1000, 0x1000, CRC(f2110c60) SHA1(bfe4ba9bad0b3da44c36fa6735fdb38ba15a29ed) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "supmspac.4", 0x3000, 0x1000, CRC(0fe16984) SHA1(da77c5f04691d2679a53eb012542890c78f76683) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "mspacde.6a", 0x9000, 0x0800, CRC(286041cf) SHA1(5a5fc97ea66a59895b3403b2982940b755076667) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) ) + ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) ) + ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) ) + ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vectratk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) ) + ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) ) + ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( womanp5 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "womanp5.1", 0x0000, 0x1000, CRC(0afeef14) SHA1(39d7d8ce9ba3c166c0bef7f46e71520d50e00c32) ) + ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) ) + ROM_LOAD( "womanp5.3", 0x2000, 0x1000, CRC(835ebcc2) SHA1(951ec2e88f4d47b0dcdcac28f964860ea21a5726) ) + ROM_LOAD( "womanp5.4", 0x3000, 0x1000, CRC(b85c5572) SHA1(9eb397b24a783292d9a5ce9b866b19e9fdf2d1f8) ) + ROM_LOAD( "womanp5.5", 0x8000, 0x1000, CRC(ce7459ac) SHA1(16df266e465d6673448f85e8834c4f0031ede671) ) + ROM_LOAD( "womanp5.6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "womanp5.5e", 0x0000, 0x1000, CRC(83613632) SHA1(1a47ef4d336baa3ba63cf0aceededec4bea35aaa) ) + ROM_LOAD( "womanp5.5f", 0x1000, 0x1000, CRC(f2c4195e) SHA1(54446e6d1b74623410b67d303c3ab8eaee69f392) ) + + PACMAN_PROMS +ROM_END + +ROM_START( zolaad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) ) + ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) ) + ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) ) + + PACMAN_PROMS +ROM_END + +ROM_START( zolaatk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) ) + ROM_LOAD( "zolaatk.2", 0x1000, 0x1000, CRC(0c8631d1) SHA1(09739200c90979550ae4ef14d27583aac50fd724) ) + ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) ) + ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) ) + ROM_LOAD( "zolaatk.5", 0x8000, 0x1000, CRC(24cb5d9b) SHA1(1439ba665b00e840838e5f12df7d44a022541ef4) ) + ROM_LOAD( "zolaatk.6", 0x9000, 0x1000, CRC(e0c03b4e) SHA1(3ef3decf7725a3ddb996c8268d4a83cbf5edd6b4) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( zolamaze ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) ) + ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) ) + ROM_LOAD( "zolamaze.5", 0x8000, 0x1000, CRC(f8ed55bb) SHA1(14c5b4adbf301dcaea2c59488f39eec08177f63f) ) + ROM_LOAD( "zolamaze.6", 0x9000, 0x1000, CRC(17e35c00) SHA1(f9f0ea4f462de298b704c2ddd53fef1219dae145) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( zolapac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) ) + ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( zolaslow ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) ) + ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) ) + ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) ) + ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) ) + ROM_LOAD( "zolaslow.5", 0x8000, 0x1000, CRC(092292f1) SHA1(156ca674c09abe348691585fb14d16d32488d50d) ) + ROM_LOAD( "zolaslow.6", 0x9000, 0x1000, CRC(52209eee) SHA1(91967cac6b327af24891e953df1c6900764ea09a) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( zolatunl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) ) + ROM_LOAD( "zolaatk.2", 0x1000, 0x1000, CRC(0c8631d1) SHA1(09739200c90979550ae4ef14d27583aac50fd724) ) + ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) ) + ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) ) + ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) ) + ROM_LOAD( "zolaslow.6", 0x9000, 0x1000, CRC(52209eee) SHA1(91967cac6b327af24891e953df1c6900764ea09a) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) ) + ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( zolavect ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) ) + ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) ) + ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) ) + + PACMAN_PROMS +ROM_END + +/************************************* + * + * Game drivers + * + *************************************/ + +/* MAME */ + +/* rom parent machine inp init */ +GAME( 1981, mspacman, 0, mspacman, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmat, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack", "Ms. Pac Attack", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmab, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "bootleg", "Ms. Pacman (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmbe, mspacman, woodpek, mspacman, pacman_state, mspacmbe, ROT90, "bootleg", "Ms. Pacman (bootleg, (encrypted))", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmnf, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "Midway", "Ms. Pacman (with speedup hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacpls, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "hack", "Ms. Pacman Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacgal, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "hack", "Pac-Gal", MACHINE_SUPPORTS_SAVE ) + +/* Dave Widel's Games - http://www.widel.com */ + +GAME( 2003, mrmrspac, mspacman, widel, mspacpls, driver_device, 0, ROT90, "David Widel", "Mr and Mrs Pacman (MR MRS PAC-MAN)[c]", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mspachi, mspacman, mspachi, mspacpls, driver_device, 0, ROT90, "David Widel", "Ms. Pacman[h]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacatk, mspacman, mspacman, mspacpls, pacman_state, mspacman, ROT90, "David Widel", "Ms. Pacman Plus (Fruit)", MACHINE_SUPPORTS_SAVE ) + +/* Blue Justice's Hacks */ + +GAME( 2001, ms1000, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 1000 (MS PAC-MAN 1000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, ms2000, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 2000 (MS PAC-MAN 2000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, ms3000, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 3000 (MS PAC-MAN 3000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, ms4000p, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 4000 Plus (MSPAC-MAN 4000PLUS)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, ms5000, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 5000 (MS PAC-MAN 5000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, ms5000p, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 5000 Plus (MSPAC-MAN 5000PLUS)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mscrzyma, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Crazy Mazes (MS PAC CRAZY MAZES)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mscrzymp, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Crazy Mazes Plus (MS PAC-MAN CRAZYPLUS)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, msextra, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Extra (MS PAC-MAN EXTRA)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, msextrap, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Extra Plus (MS PAC-MAN EXTRAPLUS)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, msmspac, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Ms. Pac (MS PAC-MAN MS PAC)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mspacdel, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Deluxe (MS PAC-MAN DELUXE)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mspamsba, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Ms. Babies (MS PAC-MAN MS BABIES)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mspacp, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Plus (MS PAC-MAN PLUS)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, msplus, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Ms Plus (MS PAC-MAN MS PLUS)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, msstrmaz, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Strange Mazes (MS PAC STRANGE MAZES)", MACHINE_SUPPORTS_SAVE ) + +/* T-Bone Hacks */ + +GAME( 2000, ms2600, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman 2600", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msbaby, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Baby Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msmini, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pac-Mini", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msminia, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "T-Bone", "Ms. Pac-Attack Mini [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msnes4a, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Tall Alternate)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msnes62, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman NES (Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msnes63, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman NES (Set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msnes6m, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman NES (6 maps)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msnes6m2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman SNES (New Mazes)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msnes6m3, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Regular / Tall)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msnes6m4, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Regular)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mspacnes, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman NES", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacren, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman Renaissance", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspc6mad, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman After Dark (6 Mazes)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msvctr6m, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Vector Ms. Pacman (6 Mazes)", MACHINE_SUPPORTS_SAVE ) + +/* Jerronimo's Progs - www.umlautllama.com */ + +GAME( 2004, horizpab, mspacman, woodpek, mspacman, driver_device, 0, ROT0, "Scott Lawrence", "Horiz Pac (v1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, horizpac, mspacman, woodpek, mspacman, driver_device, 0, ROT0, "Scott Lawrence", "Horiz Pac", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, pacgent, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Scott Lawrence", "Pac Gentleman [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, ramsnoop, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Scott Lawrence", "Miss Snoop v1.3 [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, ottop1, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P1", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, ottop2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P2", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, ottop3, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P3", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, ottopz, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project PZ", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, superp4g, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P4G", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, superp4m, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P4M", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, womanp5, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P5", MACHINE_SUPPORTS_SAVE ) + +/* Grendal74's Hacks */ + +GAME( 2001, msdroid, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Grendal74", "Ms. Pacman Android", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, msgrkatk, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Grendal74", "Ms. Pac Attack Greek [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, msgrkb, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Grendal74", "Ms. Pacman Greek", MACHINE_SUPPORTS_SAVE ) + +/* Medragon's Hacks */ + +GAME( 2000, mrpacman, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Tim Appleton", "Mr. Pacman - Another Kind of Role Reversal", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacfnt, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Tim Appleton", "Ms. Pacman with Pacman font", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacwf, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Tim Appleton", "Ms Weird Fruit Pac", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msrumble, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Tim Appleton", "Ms. Pac Rumble", MACHINE_SUPPORTS_SAVE ) + +/* Sil's Hacks */ + +GAME( 2000, mselton, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Elton", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msf1pac, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. F1 Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msindy, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Indy", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mspac6m, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Pacman 6M (Six Maze)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mspac6m2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Pacman 6M (Six Maze) (Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacad, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Pacman After Dark", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacat2, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Pacman Plus / Attack [c]", MACHINE_SUPPORTS_SAVE ) + +/* Bobby Tribble's Hacks */ + +GAME( 2000, msberzk, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Bobby Tribble", "Ms. Pacman Berzerk", MACHINE_SUPPORTS_SAVE ) + +/* Hires hacks */ + +GAME( 1981, mspacatx, mspacmnx, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "hack", "Ms. Pac Attack (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmbx, mspacmnx, woodpekx, mspacman, driver_device, 0, ROT90, "bootleg", "Ms. Pac-Man (bootleg) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmfx, mspacmnx, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pac-Man (hires hack) [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmnx, 0, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pac-Man (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacplx, mspacmnx, woodpekx, mspacpls, driver_device, 0, ROT90, "hack", "Ms. Pac-Man Plus (hires hack) [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacgalx, mspacmnx, woodpekx, mspacman, driver_device, 0, ROT90, "hack", "Pac-Gal (hires hack)", MACHINE_SUPPORTS_SAVE ) + +/* Misc MsPacman Hacks */ + +GAME( 2000, chtmsatk, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Plus [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, chtmspa, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, cookiem, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Nic", "Cookie-Mon! [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, cottoh, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Gatinho", "Crazy Otto simulation", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, cottoh2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Gatinho", "Crazy Otto simulation Ver 2", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, fasthear, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "PacHack", "Ms. Heart Burn [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, fastmspa, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, faststrm, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Desert Storm [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, fstmsatk, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Attack [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, heartbn2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "PacHack", "Ms. Heart Burn", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, heartbrn, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "TwoBit Score", "Ms. Heart Burn (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msatk2ad, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Plus / Attack After Dark [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msatkad, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Plus After Dark [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msdstorm, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Mike Naylor", "Ms. Desert Storm", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mshangly, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Hangly Man", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msheartb, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Hearts (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mshearts, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Hearts", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspac1, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman (single rom set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacatb, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Plus (Set B) [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, mspacde, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman -1", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, mspacii, mspacman, mspacii, mspacman, driver_device, 0, ROT90, "Orca", "Ms. Pacman II", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mspacit, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman -2", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mspacit2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman -3", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacj, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman (Jamma? Bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, mspacmap, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Don Hodges", "Ms. Pacman (patched)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacmbg, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman (single rom)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, mspacpbl, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Dav/PMP", "Ms. Pac Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacrip, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "R3mer", "Ms. Pac-Mortem", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mspacsup, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Super Ms. Pac-Man", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mssilad, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman After Dark (Sil)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msultra, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "PacFan", "Ms. Ultra Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msvectr, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Vector Ms. Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, msyakman, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Jeff Minter", "Ms. Yak Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pacgalu, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Uchida", "Pac-Gal (Hearts)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, petshop, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Weirdness Inc", "Pet Shop Freak-Out!", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, piranha2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "US Billiards", "Piranha 2 Revenge!", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, sueworld, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "PacFay", "Sue's World", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, sueworlb, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "PacFay", "Sue's World (Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, supmspac, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Spedic Vending", "Super Ms Pac-man [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vectratk, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Vector Attack [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, zolaad, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal After Dark", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, zolaatk, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal Attack", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, zolamaze, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman No Exit", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, zolapac, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, zolaslow, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal (Slow)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, zolatunl, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal (Tunnels)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, zolavect, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Vector Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE ) + diff --git a/docs/release/src/hbmame/drivers/multipac.cpp b/docs/release/src/hbmame/drivers/multipac.cpp new file mode 100644 index 00000000000..921d8804e12 --- /dev/null +++ b/docs/release/src/hbmame/drivers/multipac.cpp @@ -0,0 +1,1695 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/********************************************** + Multi-game systems on pacman hardware + by Robbbert 2007-2013 + + Game choice is done via a menu +**********************************************/ + +WRITE8_MEMBER( pacman_state::m96in1_rombank_w ) +{ + data &= 0x0f; + membank("bank1")->set_entry(data); + membank("bank2")->set_entry(data); + multipac_gfxbank_w( space, 0, data ); +} + +WRITE8_MEMBER( pacman_state::m96in1b_rombank_w ) +{ + data &= 0x1f; /* config screen outputs some large values such as 197, 200 */ + membank("bank1")->set_entry(data); + membank("bank2")->set_entry(data); + m96in1b_gfxbank_w( data ); +} + +WRITE8_MEMBER( pacman_state::hackypac_rombank_w ) +{ + UINT8 banks[] = { 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 8, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 5, 3 }; + data &= 0x1f; /* strip extra bits when option selected */ + membank("bank1")->set_entry(data); + membank("bank2")->set_entry(data); + multipac_palbank_w( space, 1, banks[data] ); /* convert to a palette bank and switch to it */ +} + +WRITE8_MEMBER( pacman_state::madpac_rombank_w ) +{ + data &= 0x1f; /* config screen outputs some large values such as 197, 200 */ + membank("bank1")->set_entry(data); + membank("bank2")->set_entry(data); + madpac_gfxbank_w( data ); +} + +WRITE8_MEMBER( pacman_state::multipac_rombank_w ) +{ + UINT8 temp = ((data & 0x0f) << 1) + ((data & 0x10) >> 4); /* rearrange bits */ + membank("bank1")->set_entry(temp); /* select rom bank */ + if (!m_maincpu->space(AS_PROGRAM).read_byte(0xa007)) + membank("bank2")->set_entry(temp << 1); /* Ms Pacman needs more roms */ + m_maincpu->set_pc(0); /* Set PC <- 0000 needed for Lizard Wizard */ +} + +WRITE8_MEMBER( pacman_state::pm4n1_rombank_w ) +{ + static UINT8 pm4n1_temp = 0; + UINT8 banks[] = { 0, 4, 2, 0, 1, 0, 3, 0 }; + pm4n1_temp &= (7 - (1<<offset)); + pm4n1_temp |= (data&1)<<offset; + membank("bank1")->set_entry(banks[pm4n1_temp]); + membank("bank2")->set_entry(banks[pm4n1_temp]); + multipac_gfxbank_w( space, 0, banks[pm4n1_temp] ); +} + +WRITE8_MEMBER( pacman_state::pm4n1d_rombank_w ) +{ + if (offset==1) + { + membank("bank1")->set_entry(data); + membank("bank2")->set_entry(data); + multipac_gfxbank_w( space, 0, data<<1 ); + } +} + + +/************************************* + * + * Machine init + * + *************************************/ + +MACHINE_RESET_MEMBER( pacman_state, 96in1 ) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + m96in1_rombank_w( space, 0,0 ); + m_namco_sound->pacman_sound_enable_w(space, 0, 0); +} + +MACHINE_RESET_MEMBER( pacman_state, hackypac ) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + multipac_gfxbank_w( space, 0,0 ); + hackypac_rombank_w( space, 0,0 ); + m_namco_sound->pacman_sound_enable_w(space, 0, 0); +} + +MACHINE_RESET_MEMBER( pacman_state, madpac ) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + madpac_rombank_w( space, 0,0 ); + m_namco_sound->pacman_sound_enable_w(space, 0, 0); +} + +MACHINE_RESET_MEMBER( pacman_state, mschamp ) +{ + UINT8 *rom = memregion("maincpu")->base() + 0x10000; + UINT8 data = ioport("GAME")->read() & 1; + + membank("bank1")->configure_entries(0, 2, &rom[0x0000], 0x8000); + membank("bank2")->configure_entries(0, 2, &rom[0x4000], 0x8000); + + membank("bank1")->set_entry(data); + membank("bank2")->set_entry(data); +} + +MACHINE_RESET_MEMBER( pacman_state, multipac ) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + multipac_rombank_w( space, 0, 0); + multipac_gfxbank_w( space, 0, 0); + multipac_palbank_w( space, 0, 0); + m_namco_sound->pacman_sound_enable_w(space, 0, 0); +} + +static UINT8 curr_bank = 0; + +/* select next game when F3 pressed */ +MACHINE_RESET_MEMBER( pacman_state, mspaceur ) +{ + membank("bank2")->set_entry(curr_bank); + curr_bank ^= 1; /* toggle between 0 and 1 */ +} + +MACHINE_RESET_MEMBER( pacman_state, pm4n1 ) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + pm4n1_rombank_w(space, 0, 0); + pm4n1_rombank_w(space, 1, 0); + pm4n1_rombank_w(space, 2, 0); + m_namco_sound->pacman_sound_enable_w(space, 0, 0); +} + + + +static ADDRESS_MAP_START( 96in1_writeport, AS_IO, 8, pacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w) + AM_RANGE(0x01, 0x01) AM_WRITE(m96in1_rombank_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( 96in1b_writeport, AS_IO, 8, pacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w) + AM_RANGE(0x01, 0x01) AM_WRITE(m96in1b_rombank_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( hackypac_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5008, 0x503f) AM_WRITENOP + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x507f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5080, 0x50bf) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2") + AM_RANGE(0xfffc, 0xffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( hackypac_writeport, AS_IO, 8, pacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w) + AM_RANGE(0x01, 0x01) AM_WRITE(hackypac_rombank_w) + AM_RANGE(0x02, 0x02) AM_WRITE(multipac_gfxbank_w) + AM_RANGE(0x04, 0x04) AM_WRITENOP /* colorbank select, not used due to a bug */ +ADDRESS_MAP_END + +static ADDRESS_MAP_START( madpac_map, AS_PROGRAM, 8, pacman_state ) + /* Mirrors in the 50xx range are needed by Zigzag */ + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5008, 0x500f) AM_WRITENOP /* most pacman-type games write here */ + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x507f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2") + AM_RANGE(0x8000, 0xb7ff) AM_ROMBANK("bank2") + AM_RANGE(0xb800, 0xbfff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0xf800, 0xffff) AM_RAM /* various games use this */ +ADDRESS_MAP_END + +static ADDRESS_MAP_START( madpac_writeport, AS_IO, 8, pacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w) + AM_RANGE(0x01, 0x01) AM_WRITE(madpac_rombank_w) +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( mspaceur_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x507f) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") + AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") + AM_RANGE(0xfffc, 0xffff) AM_RAM +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x507f) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2") + AM_RANGE(0xf270, 0xf270) AM_RAM + AM_RANGE(0xfffc, 0xffff) AM_RAM +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( multipac_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP /* AM_WRITE(pacman_coin_lockout_global_w) breaks eyes,lizwiz,crush */ + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x507f) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") + AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") /* Ms. Pacman */ + AM_RANGE(0xa000, 0xa000) AM_WRITE(multipac_rombank_w) + AM_RANGE(0xa001, 0xa001) AM_WRITE(multipac_gfxbank_w) + AM_RANGE(0xa002, 0xa003) AM_WRITE(multipac_palbank_w) + AM_RANGE(0xa007, 0xa007) AM_RAM /* 0 = get ready to activate rombank(2) */ + AM_RANGE(0xf000, 0xffff) AM_RAM +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( pm4n1_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1_rombank_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x507f) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1") + AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") /* Ms. Pacman */ +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( pm4n1c_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0x4c00, 0x4fef) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1_rombank_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x507f) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1") + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2") + AM_RANGE(0xe004, 0xe006) AM_WRITENOP // mirror of 5004-5006 +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( pm4n1d_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0x4c00, 0x4fef) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1d_rombank_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x507f) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1") + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2") + AM_RANGE(0xe004, 0xe006) AM_WRITENOP // mirror of 5004-5006 +ADDRESS_MAP_END + + + +/************************************* + * + * Port definitions + * + *************************************/ + +INPUT_PORTS_START( 96in1 ) + PORT_START ("IN0") /* IN0 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + /* Press this while playing pacman to instantly finish the level */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) /* Alien Armada only */ + + PORT_START ("IN1") /* IN1 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + /* Hold this down while starting pacman to get service settings */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Service") PORT_CODE(KEYCODE_9) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* Also used as the fire button */ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + + PORT_START ("DSW1") /* DSW 1 */ + PORT_DIPNAME( 0x01, 0x01, "DIP 1: Simple Menu" ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "DIP 2: Initials only" ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, "DIP 3: Fast OK for TM" ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "DIP 4: Tournament Mode" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, "DIP 5: Guest Mode" ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, "DIP 6: Dip Menu" ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) + PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) + PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) ) + + PORT_START ("DSW2") /* DSW 2 */ + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START ("FAKE") + /* This fake input port is used to get the status of the fire button */ + /* and activate the speedup cheat if it is. */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) + PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" ) + PORT_DIPSETTING( 0x00, "Disabled" ) + PORT_DIPSETTING( 0x02, "Enabled with Button" ) + PORT_DIPSETTING( 0x04, "Enabled Always" ) +INPUT_PORTS_END + +INPUT_PORTS_START( mschamp ) + PORT_INCLUDE( mspacpls ) + + PORT_START ("GAME") + PORT_DIPNAME( 0x01, 0x01, "Game" ) + PORT_DIPSETTING( 0x01, "Champion Edition" ) + PORT_DIPSETTING( 0x00, "Super Pac Gal" ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) +INPUT_PORTS_END + +INPUT_PORTS_START( multipac ) + PORT_START ("IN0") /* IN0 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) /* service for eyes and lizwiz */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) + + PORT_START ("IN1") /* IN1 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* also used as the fire button (eyes, lizwiz) */ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + + PORT_START ("DSW1") /* DSW 1 */ + PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x04, "2" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPSETTING( 0x0c, "5" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x00, "10000" ) + PORT_DIPSETTING( 0x10, "15000" ) + PORT_DIPSETTING( 0x20, "20000" ) + PORT_DIPSETTING( 0x30, DEF_STR( None ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) + PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) + PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) ) + + PORT_START ("DSW2") /* DSW 2 */ + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) + +// PORT_START ("FAKE") + /* This fake input port is used to get the status of the fire button */ + /* and activate the speedup cheat if it is. */ +// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) +// PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" ) +// PORT_DIPSETTING( 0x00, "Disabled" ) +// PORT_DIPSETTING( 0x02, "Enabled with Button" ) +// PORT_DIPSETTING( 0x04, "Enabled Always" ) +INPUT_PORTS_END + + +/************************************* + * + * Driver initialization + * + *************************************/ + +DRIVER_INIT_MEMBER( pacman_state, 96in1 ) +{ + UINT8 *RAM = memregion("maincpu")->base(); + membank("bank1")->configure_entries(0, 16, &RAM[0x10000], 0x8000); + membank("bank2")->configure_entries(0, 16, &RAM[0x14000], 0x8000); +} + +DRIVER_INIT_MEMBER( pacman_state, madpac ) +{ + UINT8 *RAM = memregion("maincpu")->base(); + membank("bank1")->configure_entries(0, 32, &RAM[0x10000], 0x8000); + membank("bank2")->configure_entries(0, 32, &RAM[0x14000], 0x8000); +} + +DRIVER_INIT_MEMBER( pacman_state, mspaceur ) +{ + UINT8 *RAM = memregion("maincpu")->base(); + membank("bank2")->configure_entries(0, 2, &RAM[0x10000], 0x2000); +} + +DRIVER_INIT_MEMBER( pacman_state, multipac ) +{ + UINT8 *RAM = memregion("maincpu")->base(); + RAM[0x10000] = 0xED; /* It seems that IM0 is not working properly in MAME */ + RAM[0x10001] = 0x56; /* and, the interrupt mode is not being reset when a */ + RAM[0x10002] = 0xC3; /* machine reset is done. So, inserting some code so */ + RAM[0x10003] = 0x00; /* that the game can fix the problem */ + RAM[0x10004] = 0x01; + membank("bank1")->configure_entries(0, 32, &RAM[0x10000], 0x4000); + membank("bank2")->configure_entries(0, 64, &RAM[0x14000], 0x2000); + membank("bank1")->set_entry(0); +} + +DRIVER_INIT_MEMBER( pacman_state, pm4n1 ) +{ + UINT8 *RAM = memregion("maincpu")->base(); + membank("bank1")->configure_entries(0, 5, &RAM[0x10000], 0x8000); + membank("bank2")->configure_entries(0, 5, &RAM[0x14000], 0x8000); +} + + +/******************************** + Graphics layouts + ********************************/ + +static GFXDECODE_START( 96in1 ) + GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 32 ) + GFXDECODE_ENTRY( "gfx1", 0x10000, spritelayout, 0, 32 ) +GFXDECODE_END + +static GFXDECODE_START( 96in1b ) + GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 8*32 ) + GFXDECODE_ENTRY( "gfx1", 0x20000, spritelayout, 0, 8*32 ) +GFXDECODE_END + +static GFXDECODE_START( hackypac ) + GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 9*32 ) + GFXDECODE_ENTRY( "gfx1", 0x40000, spritelayout, 0, 9*32 ) +GFXDECODE_END + +static GFXDECODE_START( madpac ) + GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 16*32 ) + GFXDECODE_ENTRY( "gfx1", 0x20000, spritelayout, 0, 16*32 ) +GFXDECODE_END + +static GFXDECODE_START( multipac ) + GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 4*32 ) + GFXDECODE_ENTRY( "gfx1", 0x10000, spritelayout, 0, 4*32 ) +GFXDECODE_END + +static GFXDECODE_START( pm4n1 ) + GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 32 ) + GFXDECODE_ENTRY( "gfx1", 0x05000, spritelayout, 0, 32 ) +GFXDECODE_END + + +/************************************* + * + * Machine drivers + * + *************************************/ + +/* These drivers are for multiple games in one package */ + +static MACHINE_CONFIG_DERIVED( 96in1, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(madpac_map) + MCFG_CPU_IO_MAP(96in1_writeport) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, 96in1) + MCFG_GFXDECODE_MODIFY("gfxdecode", 96in1) + MCFG_NVRAM_ADD_0FILL("nvram") + MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( 96in1b, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(madpac_map) + MCFG_CPU_IO_MAP(96in1b_writeport) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, madpac) + MCFG_GFXDECODE_MODIFY("gfxdecode", 96in1b) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(128*8) + MCFG_PALETTE_INDIRECT_ENTRIES(32*8) + MCFG_PALETTE_INIT_OWNER(pacman_state,multipac) + MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac) + MCFG_NVRAM_ADD_0FILL("nvram") + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( hackypac, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(hackypac_map) + MCFG_CPU_IO_MAP(hackypac_writeport) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, hackypac) + MCFG_GFXDECODE_MODIFY("gfxdecode", hackypac) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(128*9) + MCFG_PALETTE_INDIRECT_ENTRIES(32*9) // colour banks * 128 colour lookup codes (4a rom) + MCFG_PALETTE_INIT_OWNER(pacman_state,multipac) + MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac) + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( madpac, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(madpac_map) + MCFG_CPU_IO_MAP(madpac_writeport) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, madpac) + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac) + MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(128*16) + MCFG_PALETTE_INDIRECT_ENTRIES(32*16) + MCFG_PALETTE_INIT_OWNER(pacman_state, multipac) + MCFG_GFXDECODE_MODIFY("gfxdecode", madpac) + MCFG_NVRAM_ADD_0FILL("nvram") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mspaceur, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(mspaceur_map) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mspaceur) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mschamp, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(mschamp_map) + MCFG_CPU_IO_MAP(zolapac_io) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mschamp) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mschampx, pacmanx ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(mschamp_map) + MCFG_CPU_IO_MAP(zolapac_io) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mschamp) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( multipac, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(multipac_map) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, multipac) + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac) + MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(128*4) + MCFG_PALETTE_INDIRECT_ENTRIES(32*4) + MCFG_PALETTE_INIT_OWNER(pacman_state,multipac) + MCFG_GFXDECODE_MODIFY("gfxdecode", multipac) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( pm4n1, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(pm4n1_map) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, pm4n1) + MCFG_GFXDECODE_MODIFY("gfxdecode", pm4n1) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( pm4n1c, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(pm4n1c_map) + MCFG_MACHINE_RESET_OVERRIDE(pacman_state, pm4n1) + MCFG_NVRAM_ADD_0FILL("nvram") + MCFG_GFXDECODE_MODIFY("gfxdecode", pm4n1) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( pm4n1d, pm4n1c ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(pm4n1d_map) +MACHINE_CONFIG_END + + +/************************************* + * + * ROM definitions + * + *************************************/ + +ROM_START( 96in1 ) + ROM_REGION( 0x90000, "maincpu", 0 ) + ROM_LOAD( "96in1.cpu", 0x10000, 0x80000, CRC(4a25b763) SHA1(7e650fb7b60b08f3ab8307035a393d6b2941b24b) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "96in1.gfx", 0x00000, 0x1000, CRC(fb43e056) SHA1(aceacef836e4dd1bfe4229ea090ff713c66d8931) ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + + PACMAN_PROMS +ROM_END + +ROM_START( 96in1a ) + ROM_REGION( 0x90000, "maincpu", 0 ) + ROM_LOAD( "96in1a.cpu", 0x10000, 0x80000, CRC(bd89f3de) SHA1(3bd2f51ce97509c7f3dc165ebfbf856039be375e) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + + PACMAN_PROMS +ROM_END + +ROM_START( 96in1b ) + ROM_REGION( 0x110000, "maincpu", 0 ) + ROM_LOAD( "96in1b.cpu", 0x10000, 0x80000, CRC(1c880d0b) SHA1(374bcefb047e48598706b2df27fd6715b11afd45) ) + ROM_LOAD( "96in1b.cp2", 0x90000, 0x80000, CRC(54ee41bd) SHA1(84fc81e2cd584c0fc94782c008990d66c599e435) ) + + ROM_REGION( 0x40000, "gfx1", 0 ) + ROM_LOAD( "96in1b.gfx", 0x00000, 0x1000, CRC(ac6e00ac) SHA1(3c011cc76aebba6cfa17c042d0835055c2b42735) ) + ROM_CONTINUE( 0x20000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x21000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x22000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x23000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x24000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x25000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x26000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x27000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x28000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x29000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x2a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x2b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x2c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x2d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x2e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x2f000, 0x1000 ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x30000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x31000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x32000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x33000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x34000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x35000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x36000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x37000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x38000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x39000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x3a000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x3b000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x3c000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x3d000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x3e000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + ROM_CONTINUE( 0x3f000, 0x1000 ) + ROM_IGNORE ( 0x40000 ) + + ROM_REGION( 0x1b00, "proms", 0 ) + ROM_LOAD( "96in1b.7f", 0x1000, 0x0160, CRC(58deb197) SHA1(2b10b9f21b4d498b9284e1308793dc773e9db874) ) + ROM_IGNORE( 0x3fea0 ) + ROM_COPY( "proms", 0x1000, 0x0000, 0x10 ) /* pacman and mspacman */ + ROM_COPY( "proms", 0x1000, 0x0020, 0x10 ) /* 08. pacplus */ + ROM_COPY( "proms", 0x1100, 0x00e0, 0x10 ) /* 10. naughty mouse */ + ROM_COPY( "proms", 0x1110, 0x0080, 0x10 ) /* 11. beastie feastie */ + ROM_COPY( "proms", 0x1120, 0x0040, 0x10 ) /* 12. make trax */ + ROM_COPY( "proms", 0x1130, 0x0060, 0x10 ) /* 13. lizard wizard */ + ROM_COPY( "proms", 0x1140, 0x00a0, 0x10 ) /* 14. atlantic city action */ + ROM_COPY( "proms", 0x1150, 0x00c0, 0x10 ) /* 15. jump shot */ + + ROM_LOAD( "96in1b.4a", 0x1000, 0x0b00, CRC(fb1acbea) SHA1(bf344c46adea405125d67b3bf8a14d51316d3e12) ) + ROM_IGNORE( 0x3f500 ) + ROM_FILL( 0x1068, 0x0001, 0x00 ) /* pacman - remove red bit outside monster lair */ + ROM_FILL( 0x106c, 0x0001, 0x00 ) /* pacman - remove pink bits at top and bottom */ + ROM_COPY( "proms", 0x1000, 0x0100, 0x80 ) /* pacman and mspacman */ + ROM_COPY( "proms", 0x1000, 0x0180, 0x80 ) /* pacplus */ + ROM_COPY( "proms", 0x1800, 0x0480, 0x80 ) /* naughty mouse */ + ROM_COPY( "proms", 0x1880, 0x0300, 0x80 ) /* beastie feastie */ + ROM_COPY( "proms", 0x1900, 0x0200, 0x80 ) /* make trax */ + ROM_COPY( "proms", 0x1980, 0x0280, 0x80 ) /* lizard wizard */ + ROM_COPY( "proms", 0x1a00, 0x0380, 0x80 ) /* atlantic city action */ + ROM_COPY( "proms", 0x1a80, 0x0400, 0x80 ) /* jump shot */ + ROM_FILL( 0x01c3, 0x0001, 0x0d ) /* pacplus - walls - make green */ + ROM_FILL( 0x01eb, 0x0001, 0x0d ) /* pacplus - walls outside monster house - make green */ + ROM_FILL( 0x01ef, 0x0001, 0x0d ) /* pacplus - corner bits at bottom - make green */ + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( 96in1c ) + ROM_REGION( 0x90000, "maincpu", 0 ) + ROM_LOAD( "96in1c.cpu", 0x10000, 0x80000, CRC(72d5bf9a) SHA1(7d576ab2642fde8569ea58f6eea4390c309c6885) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "96in1c.gfx", 0x00000, 0x1000, CRC(ebbbad14) SHA1(cb7b538f52c7254ed2507db30c199e4b91a309d5) ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + + PACMAN_PROMS +ROM_END + +ROM_START( hackypac ) + ROM_REGION( 0x110000, "maincpu", 0 ) + ROM_LOAD( "hackypac.cpu", 0x10000, 0x100000, CRC(9cc452a1) SHA1(7b0483e359f87c5e3035db7380436f176f2356b5) ) + + ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_LOAD( "hackypac.gfx", 0x00000, 0x1000, CRC(42a61854) SHA1(0968721abccf7d04d205d13d150d014e4e658d16) ) + ROM_CONTINUE( 0x40000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) /* rearrange so that all gfx then all sprites */ + ROM_CONTINUE( 0x41000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x42000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x43000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x44000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x45000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x46000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x47000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x48000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x49000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x4a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x4b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x4c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x4d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x4e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x4f000, 0x1000 ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x50000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x51000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x52000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x53000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x54000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x55000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x56000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x57000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x58000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x59000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x5a000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x5b000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x5c000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x5d000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x5e000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + ROM_CONTINUE( 0x5f000, 0x1000 ) + ROM_CONTINUE( 0x20000, 0x1000 ) + ROM_CONTINUE( 0x60000, 0x1000 ) + ROM_CONTINUE( 0x21000, 0x1000 ) + ROM_CONTINUE( 0x61000, 0x1000 ) + ROM_CONTINUE( 0x22000, 0x1000 ) + ROM_CONTINUE( 0x62000, 0x1000 ) + ROM_CONTINUE( 0x23000, 0x1000 ) + ROM_CONTINUE( 0x63000, 0x1000 ) + ROM_CONTINUE( 0x24000, 0x1000 ) + ROM_CONTINUE( 0x64000, 0x1000 ) + ROM_CONTINUE( 0x25000, 0x1000 ) + ROM_CONTINUE( 0x65000, 0x1000 ) + ROM_CONTINUE( 0x26000, 0x1000 ) + ROM_CONTINUE( 0x66000, 0x1000 ) + ROM_CONTINUE( 0x27000, 0x1000 ) + ROM_CONTINUE( 0x67000, 0x1000 ) + ROM_CONTINUE( 0x28000, 0x1000 ) + ROM_CONTINUE( 0x68000, 0x1000 ) + ROM_CONTINUE( 0x29000, 0x1000 ) + ROM_CONTINUE( 0x69000, 0x1000 ) + ROM_CONTINUE( 0x2a000, 0x1000 ) + ROM_CONTINUE( 0x6a000, 0x1000 ) + ROM_CONTINUE( 0x2b000, 0x1000 ) + ROM_CONTINUE( 0x6b000, 0x1000 ) + ROM_CONTINUE( 0x2c000, 0x1000 ) + ROM_CONTINUE( 0x6c000, 0x1000 ) + ROM_CONTINUE( 0x2d000, 0x1000 ) + ROM_CONTINUE( 0x6d000, 0x1000 ) + ROM_CONTINUE( 0x2e000, 0x1000 ) + ROM_CONTINUE( 0x6e000, 0x1000 ) + ROM_CONTINUE( 0x2f000, 0x1000 ) + ROM_CONTINUE( 0x6f000, 0x1000 ) + ROM_CONTINUE( 0x30000, 0x1000 ) + ROM_CONTINUE( 0x70000, 0x1000 ) + ROM_CONTINUE( 0x31000, 0x1000 ) + ROM_CONTINUE( 0x71000, 0x1000 ) + ROM_CONTINUE( 0x32000, 0x1000 ) + ROM_CONTINUE( 0x72000, 0x1000 ) + ROM_CONTINUE( 0x33000, 0x1000 ) + ROM_CONTINUE( 0x73000, 0x1000 ) + ROM_CONTINUE( 0x34000, 0x1000 ) + ROM_CONTINUE( 0x74000, 0x1000 ) + ROM_CONTINUE( 0x35000, 0x1000 ) + ROM_CONTINUE( 0x75000, 0x1000 ) + ROM_CONTINUE( 0x36000, 0x1000 ) + ROM_CONTINUE( 0x76000, 0x1000 ) + ROM_CONTINUE( 0x37000, 0x1000 ) + ROM_CONTINUE( 0x77000, 0x1000 ) + ROM_CONTINUE( 0x38000, 0x1000 ) + ROM_CONTINUE( 0x78000, 0x1000 ) + ROM_CONTINUE( 0x39000, 0x1000 ) + ROM_CONTINUE( 0x79000, 0x1000 ) + ROM_CONTINUE( 0x3a000, 0x1000 ) + ROM_CONTINUE( 0x7a000, 0x1000 ) + ROM_CONTINUE( 0x3b000, 0x1000 ) + ROM_CONTINUE( 0x7b000, 0x1000 ) + ROM_CONTINUE( 0x3c000, 0x1000 ) + ROM_CONTINUE( 0x7c000, 0x1000 ) + ROM_CONTINUE( 0x3d000, 0x1000 ) + ROM_CONTINUE( 0x7d000, 0x1000 ) + ROM_CONTINUE( 0x3e000, 0x1000 ) + ROM_CONTINUE( 0x7e000, 0x1000 ) + ROM_CONTINUE( 0x3f000, 0x1000 ) + ROM_CONTINUE( 0x7f000, 0x1000 ) + + /* no proms supplied - using ones from original games */ + ROM_REGION( 0x05a0, "proms", 0 ) + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) + ROM_RELOAD( 0x0020, 0x0020 ) + ROM_RELOAD( 0x0040, 0x0020 ) + ROM_LOAD( "prom.7f", 0x0060, 0x0020, CRC(872b42f3) SHA1(bbcd392ba3d2a5715e92fa0f7a7cf1e7e6e655a2) ) + ROM_LOAD( "puckren.7f", 0x0080, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) ) + ROM_LOAD( "glob.7f", 0x00a0, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) ) + ROM_LOAD( "7f.cpu", 0x00c0, 0x0020, CRC(7549a947) SHA1(4f2c3e7d6c38f0b9a90317f91feb3f86c9a0d0a5) ) + ROM_LOAD( "pacplus.7f", 0x00e0, 0x0020, CRC(063dd53a) SHA1(2e43b46ec3b101d1babab87cdaddfa944116ec06) ) + ROM_LOAD( "7f.rom", 0x0100, 0x0020, CRC(ec578b98) SHA1(196da49cc260f967ec5f01bc3c75b11077c85998) ) + ROM_LOAD( "82s126.4a", 0x0120, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) ) /* pacman */ + ROM_LOAD( "82s129.4a", 0x01a0, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) ) /* eyes */ + ROM_LOAD( "2s140.4a", 0x0220, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) ) /* maketrax, chicken */ + ROM_LOAD( "prom.4a", 0x02a0, 0x0100, CRC(0399f39f) SHA1(e98f08da4666cab44e01acb760a1bd2fc858bc0d) ) /* jumpshot */ + ROM_LOAD( "puckren.4a", 0x0320, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) ) /* puckren */ + ROM_LOAD( "glob.4a", 0x03a0, 0x0100, CRC(28faa769) SHA1(7588889f3102d4e0ca7918f536556209b2490ea1) ) /* beastie */ + ROM_LOAD( "4a.cpu", 0x0420, 0x0100, CRC(5fdca536) SHA1(3a09b29374031aaa3722932aff974a467b3bb201) ) /* lizwiz */ + ROM_LOAD( "pacplus.4a", 0x04a0, 0x0100, CRC(e271a166) SHA1(cf006536215a7a1d488eebc1d8a2e2a8134ce1a6) ) /* pacplus */ + ROM_LOAD( "4a.rom", 0x0520, 0x0080, CRC(81a6b30f) SHA1(60c767fd536c325151a2b759fdbce4ba41e0c78f) ) /* shoot bull */ + ROM_IGNORE( 0x0080 ) + /* There are a number of minor colour errors in Lizard Wizard, 2 of which are fixed below */ + ROM_FILL( 0x43d, 1, 4 ) /* dragon wing = red */ + ROM_FILL( 0x43e, 1, 6 ) /* dragon body = green */ + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( madpac ) + ROM_REGION( 0x110000, "maincpu", 0 ) + ROM_LOAD( "madpac.cpu", 0x10000, 0x80000, CRC(1a769aea) SHA1(ea5b3b077f34485246643cfb8c74d073287f4359) ) + ROM_LOAD( "madpac.cp2", 0x90000, 0x80000, CRC(84889f93) SHA1(83aee22bc543af230f5c7f652756b189d6cf5399) ) + + /* reorganise gfx so that all chars come first, followed by all sprites */ + ROM_REGION( 0x40000, "gfx1", 0 ) + ROM_LOAD( "madpac.gfx", 0x00000, 0x1000, CRC(6a1b231a) SHA1(67046022a179043f9c017b12ecadd9d5772705a9) ) + ROM_CONTINUE( 0x20000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x21000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x22000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x23000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x24000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x25000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x26000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x27000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x28000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x29000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x2a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x2b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x2c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x2d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x2e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x2f000, 0x1000 ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x30000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x31000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x32000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x33000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x34000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x35000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x36000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x37000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x38000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x39000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x3a000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x3b000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x3c000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x3d000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x3e000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + ROM_CONTINUE( 0x3f000, 0x1000 ) + /* Death Derby gfx are corrupt - using this rom to fix the problem */ + ROM_LOAD( "dderby.5e", 0x8000, 0x1000, CRC(7e2c0a53) SHA1(c3c62b32927ac3c5948faeff28d4c2148fe18d0b) ) + + ROM_REGION( 0x41000, "proms", 0 ) + /* palette comes as banks of 16 - we change it to banks of 32, and remove banks 1 to 0xf (they are same as bank 0) */ + ROM_LOAD( "madpac.7f", 0x1000, 0x40000, CRC(63e60ac6) SHA1(03b7035eb0a7e62f21793661c09b449113562ebb) ) + ROM_COPY( "proms", 0x1000, 0x0000, 0x10 ) /* pacman and mspacman */ + ROM_COPY( "proms", 0x1100, 0x0020, 0x10 ) /* 10. balloon ace */ + ROM_COPY( "proms", 0x1110, 0x0040, 0x10 ) /* 11. beastie feastie */ + ROM_COPY( "proms", 0x1120, 0x0060, 0x10 ) /* 12. make trax */ + ROM_COPY( "proms", 0x1130, 0x0080, 0x10 ) /* 13. lizard wizard */ + ROM_COPY( "proms", 0x1140, 0x00a0, 0x10 ) /* 14. atlantic city action */ + ROM_COPY( "proms", 0x1150, 0x00c0, 0x10 ) /* 15. jump shot */ + ROM_COPY( "proms", 0x1160, 0x00e0, 0x10 ) /* 16. ladybug */ + ROM_COPY( "proms", 0x1170, 0x0100, 0x10 ) /* 17. zig zag */ + ROM_COPY( "proms", 0x1180, 0x0120, 0x10 ) /* 18. chicken */ + ROM_COPY( "proms", 0x1190, 0x0140, 0x10 ) /* 19. pacplus */ + ROM_COPY( "proms", 0x11a0, 0x0160, 0x10 ) /* 1A. naughty mouse */ + ROM_COPY( "proms", 0x11b0, 0x0180, 0x10 ) /* 1B. cycle battle */ + ROM_COPY( "proms", 0x11c0, 0x01a0, 0x10 ) /* 1C. eggor */ + ROM_COPY( "proms", 0x11d0, 0x01c0, 0x10 ) /* 1D. gorkans */ + ROM_COPY( "proms", 0x11e0, 0x01e0, 0x10 ) /* 1E. homercide */ + /* lookup table is already at banks of 128 */ + ROM_LOAD( "madpac.4a", 0x0280, 0x0800, CRC(16057dac) SHA1(8dfa69f3847140dd5fa8514e9bf49962f5f9f0c0) ) + ROM_COPY( "proms", 0x0280, 0x0200, 0x80 ) /* pacman and mspacman */ + + PACMAN_SOUND_PROMS +ROM_END + +/* E253 - no proms were supplied - using standard pacman ones. + While the roms of the 2 games are different, I cannot discern any difference in gameplay */ +ROM_START( mspaceur ) + ROM_REGION( 0x18000, "maincpu", 0 ) + ROM_LOAD( "mspaceur.cpu", 0x00000, 0x4000, CRC(03905a76) SHA1(1780ef598c6150ffa44bf467479670f7ca50d512) ) + ROM_CONTINUE( 0x10000, 0x4000 ) + /* fix some corrupt bytes that stop the game from working. This makes it identical to mspacmbg. */ + ROM_FILL( 0x01a61, 1, 0x21 ) + ROM_FILL( 0x018b5, 1, 0x4e ) + ROM_FILL( 0x0197d, 1, 0xda ) + ROM_FILL( 0x12c0d, 1, 0xeb ) + + /* reorganise gfx so that all chars come first, followed by all sprites */ + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mspacj.gfx", 0x0000, 0x0800, CRC(8ee4a3b0) SHA1(01e3453c99f7a5d78ab083c49c650e898c0dd2ee) ) + ROM_CONTINUE( 0x1000, 0x0800 ) + ROM_CONTINUE( 0x0800, 0x0800 ) + ROM_CONTINUE( 0x1800, 0x0800 ) + ROM_IGNORE( 0x2000 ) + + PACMAN_PROMS +ROM_END + +ROM_START( mschamp ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "pm4.bin", 0x10000, 0x10000, CRC(7d6b6303) SHA1(65ad72a9188422653c02a48c07ed2661e1e36961) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm5.bin", 0x0000, 0x0800, CRC(7fe6b9e2) SHA1(bfd0d84c7ef909ae078d8f60340682b3ff230aa6) ) + ROM_CONTINUE( 0x1000, 0x0800 ) + ROM_CONTINUE( 0x0800, 0x0800 ) + ROM_CONTINUE( 0x1800, 0x0800 ) + + PACMAN_PROMS +ROM_END + +ROM_START( mschampx ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "pm4.bin", 0x10000, 0x10000, CRC(7d6b6303) SHA1(65ad72a9188422653c02a48c07ed2661e1e36961) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "mschampx.5e", 0x0000, 0x4000, CRC(b3b248f8) SHA1(5e8271b28c6a98e36b4685224bbc99154ae6ba5b) ) + ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) ) + + PACMAN_PROMS +ROM_END + +ROM_START( multi10 ) + ROM_REGION( 0x90000, "maincpu", 0 ) + ROM_LOAD( "multi10.bin", 0x10000, 0x80000, CRC(9abb7d01) SHA1(44eb136f2ffe6475585b7558c4eddcf4ffaafe9e) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "multi10.gfx", 0x00000, 0x1000, CRC(072b216f) SHA1(cc3cef4f9804c1120611ed750c50593eac9b10d4) ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + + ROM_REGION( 0x0480, "proms", 0) + ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) ) + ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 ) + ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) ) + ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 ) + ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 ) + ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( multi11 ) + ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */ + ROM_LOAD( "multi11.bin", 0x10000, 0x80000, CRC(0fa787fe) SHA1(400592360b2930c1fbbbe1adc0198be007b2dd63) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + + ROM_REGION( 0x0480, "proms", 0) + ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) ) + ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 ) + ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) ) + ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 ) + ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 ) + ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( multi13 ) + ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */ + ROM_LOAD( "multi13.bin", 0x10000, 0x80000, CRC(0aca3ce9) SHA1(81dd22fd2e8137645fc6cdeb534b4e5c113704fe) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + + ROM_REGION( 0x0480, "proms", 0) + ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) ) + ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 ) + ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) ) + ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 ) + ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 ) + ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( multi14 ) + ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */ + ROM_LOAD( "multi14.bin", 0x10000, 0x80000, CRC(23de184d) SHA1(e466a1c46091a33a3f50747455abb8618a23f824) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + + ROM_REGION( 0x0480, "proms", 0) + ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) ) + ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 ) + ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) ) + ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 ) + ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 ) + ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( multi15 ) + ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */ + ROM_LOAD( "multi15.bin", 0x10000, 0x80000, CRC(eb181a29) SHA1(14a44730d36c25c76ae68cbfd51febda9d8d1dfa) ) + + /* reorganise gfx so that all chars come first, followed by all sprites */ + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) ) + ROM_CONTINUE( 0x10000, 0x1000 ) + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x11000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x12000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x13000, 0x1000 ) + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x14000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) + ROM_CONTINUE( 0x15000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) + ROM_CONTINUE( 0x16000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x17000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x18000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) + ROM_CONTINUE( 0x19000, 0x1000 ) + ROM_CONTINUE( 0x0a000, 0x1000 ) + ROM_CONTINUE( 0x1a000, 0x1000 ) + ROM_CONTINUE( 0x0b000, 0x1000 ) + ROM_CONTINUE( 0x1b000, 0x1000 ) + ROM_CONTINUE( 0x0c000, 0x1000 ) + ROM_CONTINUE( 0x1c000, 0x1000 ) + ROM_CONTINUE( 0x0d000, 0x1000 ) + ROM_CONTINUE( 0x1d000, 0x1000 ) + ROM_CONTINUE( 0x0e000, 0x1000 ) + ROM_CONTINUE( 0x1e000, 0x1000 ) + ROM_CONTINUE( 0x0f000, 0x1000 ) + ROM_CONTINUE( 0x1f000, 0x1000 ) + + ROM_REGION( 0x0480, "proms", 0) + /* this rom has 4 banks of (the 16 colours in the palette + 16 blanks) */ + ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) ) + ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 ) /* crush roller */ + /* this rom has 4 banks of (the 128 lookup colour codes + 128 blanks) */ + ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) ) + /* we move the tables down, to remove the blanks */ + ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 ) + ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 ) + ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( pm4n1 ) + ROM_REGION( 0x34000, "maincpu", 0 ) + ROM_LOAD( "pm4n1.cpu", 0x10000, 0x24000, CRC(248f3153) SHA1(c36fb95c38619ec4947017a686f7d5feb643d269) ) + ROM_FILL(0x303fe, 1, 0xcd) + ROM_FILL(0x303ff, 1, 0xa1) /* These bytes allow Pacman to start up */ + ROM_FILL(0x30400, 1, 0x2b) + + ROM_REGION( 0x0a000, "gfx1", 0 ) + ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) ) + ROM_CONTINUE( 0x05000, 0x1000 ) /* piranha, don't want */ + ROM_CONTINUE( 0x00000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) /* menu */ + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) /* fast pacman */ + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) /* pacman */ + /* 4 dummy reads because rom_ignore doesn't work properly */ + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) /* mspacman */ + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) /* fast mspacman */ + ROM_IGNORE( 0x10000) + + PACMAN_PROMS +ROM_END + +ROM_START( pm4n1a ) + ROM_REGION( 0x34000, "maincpu", 0 ) + ROM_LOAD( "pm4n1a.cpu", 0x10000, 0x24000, CRC(cdc319bb) SHA1(0f7b9956a67e46d5f3cb0bd84c350662668fd02d) ) + + ROM_REGION( 0x0a000, "gfx1", 0 ) + ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) ) + ROM_CONTINUE( 0x05000, 0x1000 ) /* piranha, don't want */ + ROM_CONTINUE( 0x00000, 0x1000 ) + ROM_CONTINUE( 0x05000, 0x1000 ) /* menu */ + ROM_CONTINUE( 0x01000, 0x1000 ) + ROM_CONTINUE( 0x06000, 0x1000 ) /* fast pacman */ + ROM_CONTINUE( 0x04000, 0x1000 ) + ROM_CONTINUE( 0x09000, 0x1000 ) /* pacman */ + /* 4 dummy reads because rom_ignore doesn't work properly */ + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) + ROM_CONTINUE( 0x02000, 0x1000 ) + ROM_CONTINUE( 0x07000, 0x1000 ) /* mspacman */ + ROM_CONTINUE( 0x03000, 0x1000 ) + ROM_CONTINUE( 0x08000, 0x1000 ) /* fast mspacman */ + ROM_IGNORE( 0x10000) + + PACMAN_PROMS +ROM_END + +ROM_START( pm4n1b ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD( "pm4n1b.cpu", 0x10000, 0x30000, CRC(31ea8134) SHA1(61bd5589ed1d304cfef90ccf9af95f2a6743782e) ) + /* Alternative working rom */ + //ROM_LOAD( "pm4n1ba.cpu", 0x10000, 0x24000, CRC(2709642c) SHA1(5e2984a9ff5db416ee065651765bf05c070ca052) ) + + ROM_REGION( 0xa000, "gfx1", 0 ) + ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) ) + ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */ + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */ + ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 ) + ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */ + ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 ) + ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */ + ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 ) + ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */ + + PACMAN_PROMS +ROM_END + +ROM_START( pm4n1c ) + ROM_REGION( 0x38000, "maincpu", 0 ) + ROM_LOAD( "pm4n1c.cpu", 0x10000, 0x28000, CRC(48cafb4e) SHA1(8ff42c3524020f5f599f8f3c76f279b1af9983a9) ) + + ROM_REGION( 0xa000, "gfx1", 0 ) + ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) ) + ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */ + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */ + ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 ) + ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */ + ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 ) + ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */ + ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 ) + ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */ + + PACMAN_PROMS +ROM_END + +ROM_START( pm4n1d ) + ROM_REGION( 0x30000, "maincpu", 0 ) +// ROM_LOAD( "pm4n1d.cpu", 0x10000, 0x20000, CRC(28f95683) SHA1(297ff0fb2d12293830cef9a4cc77629d658a96f9) ) + ROM_LOAD( "pm4n1d.cpu", 0x10000, 0x10000, CRC(9bab691e) SHA1(d90ee5e5b345c9feabe5f629132bd5f2b83c9c4f) ) + + ROM_REGION( 0xa000, "gfx1", 0 ) + ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) ) + ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */ + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */ + ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 ) + ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */ + ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 ) + ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */ + ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 ) + ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */ + + PACMAN_PROMS +ROM_END + +ROM_START( pm4n1e ) + ROM_REGION( 0x30000, "maincpu", 0 ) +// ROM_LOAD( "pm4n1e.cpu", 0x10000, 0x20000, CRC(82035513) SHA1(9d05e5a07b47a2668e497a66cd6ceb29bbcab659) ) + ROM_LOAD( "pm4n1e.cpu", 0x10000, 0x10000, CRC(5bbf374a) SHA1(426451a9cd4e8680ab19c2ce635435c0b43cba95) ) + + ROM_REGION( 0xa000, "gfx1", 0 ) + ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) ) + ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */ + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */ + ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 ) + ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */ + ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 ) + ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */ + ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 ) + ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */ + + PACMAN_PROMS +ROM_END + + +/************************************* + * + * Game drivers + * + *************************************/ + +GAME( 1995, mschamp, mspacman, mschamp, mschamp, driver_device, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mschampx, mspacmnx, mschampx, mschamp, driver_device, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola Pac Gal (hires hack)", MACHINE_SUPPORTS_SAVE ) + +/* Dave Widel's Games - http://www.widel.com */ + +GAME( 2005, 96in1, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v3 [h]", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, 96in1c, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v1 [h]", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, 96in1a, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v2 [h]", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, 96in1b, madpac, 96in1b, 96in1, pacman_state, madpac, ROT90, "David Widel", "96 in 1 v4 [h]", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hackypac, madpac, hackypac, pacman0, pacman_state, madpac, ROT90, "David Widel", "Hacky Pac", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, madpac, 0, madpac, 96in1, pacman_state, madpac, ROT90, "David Widel", "Mad Pac [h]", MACHINE_SUPPORTS_SAVE ) + +/* Other Misc Hacks */ + +GAME( 1993, mspaceur, mspacman, mspaceur, mspacman, pacman_state, mspaceur, ROT90, "ImpEuropeX Corp", "Ms. Pac-man", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, multi10, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.0", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, multi11, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.1", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, multi13, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.3", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, multi14, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.4", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, multi15, 0, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.5", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, pm4n1, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.0 [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, pm4n1a, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.1 [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, pm4n1b, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.2 [c]", MACHINE_SUPPORTS_SAVE ) // www.souzaonline.com/Games/Hacks/4n1hack.htm +GAME( 2008, pm4n1c, puckman, pm4n1c, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v2.3 [c][h]", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, pm4n1d, puckman, pm4n1d, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v3.0 [c][h]", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, pm4n1e, puckman, pm4n1d, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v3.3 [c][h]", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/nemesis.cpp b/docs/release/src/hbmame/drivers/nemesis.cpp new file mode 100644 index 00000000000..9c44153653d --- /dev/null +++ b/docs/release/src/hbmame/drivers/nemesis.cpp @@ -0,0 +1,134 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/nemesis.cpp" + +#if 0 +static INPUT_PORTS_START( spclone ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SWT:2") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWT:3" ) + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // shoot + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // missile + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWT:3") + PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) + + PORT_START("IN2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START("DSW0") + PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4") + PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) + PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) + PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) + PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) + PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) + PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) + PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x10, 0x10, "Font" ) + PORT_DIPSETTING( 0x10, "Koi no Hotrock" ) + PORT_DIPSETTING( 0x00, "Gradius III" ) + PORT_DIPNAME( 0x20, 0x20, "k007232" ) + PORT_DIPSETTING( 0x20, "old" ) + PORT_DIPSETTING( 0x00, "new" ) + PORT_DIPNAME( 0x40, 0x40, "Pulse" ) + PORT_DIPSETTING( 0x40, "PULSE" ) + PORT_DIPSETTING( 0x00, "RIPPLE" ) + PORT_DIPNAME( 0x80, 0x80, "2P alone play input" ) + PORT_DIPSETTING( 0x80, "1P" ) + PORT_DIPSETTING( 0x00, "2P" ) + + PORT_START("DSW1") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x03, "3" ) + PORT_DIPSETTING( 0x02, "4" ) + PORT_DIPSETTING( 0x01, "5" ) + PORT_DIPSETTING( 0x00, "6" ) + PORT_DIPNAME( 0x04, 0x04, "Stage4 expert limit" ) + PORT_DIPSETTING( 0x04, "on" ) + PORT_DIPSETTING( 0x00, "off" ) + PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x10, "70k and every 200k" ) + PORT_DIPSETTING( 0x18, "100k and every 300k" ) + PORT_DIPSETTING( 0x08, "10k only" ) + PORT_DIPSETTING( 0x00, "NONE" ) + PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) + PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END +#endif + +ROM_START( spclone ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "587yq02.18b", 0x00000, 0x10000, CRC(14c19a46) SHA1(1a65a98c390693949247f4e568fe71cff82d59b4) ) + ROM_LOAD16_BYTE( "587yq05.18c", 0x00001, 0x10000, CRC(fdafc246) SHA1(1641411023f85afe82af749b15d067efc5859f4e) ) + ROM_LOAD16_BYTE( "587-c03.17b", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) ) /* Mask rom */ + ROM_LOAD16_BYTE( "587-c06.17c", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) ) /* Mask rom */ + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound */ + ROM_LOAD( "587nd09.11j", 0x00000, 0x08000, CRC(bf83b182) SHA1(e702eddffea3bad8944bfab03d53c6e277bca866) ) + + ROM_REGION( 0x04000, "vlm", 0 ) /* VLM5030 data? */ + ROM_LOAD( "587-d08.8g", 0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) ) + + ROM_REGION( 0x20000, "k007232", 0 ) /* 007232 data */ + ROM_LOAD( "587-c01.10a", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) ) /* Mask rom */ +ROM_END + +ROM_START( spcloneo ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD16_BYTE( "587yq02.18b", 0x00000, 0x10000, CRC(6d49878b) SHA1(95ec8c326cb83d8391f7821868187d68ef734120) ) + ROM_LOAD16_BYTE( "587yq05.18c", 0x00001, 0x10000, CRC(08b8fd27) SHA1(fbbb5f9c795de5a776309cdd7a5678fc0061d52a) ) + ROM_LOAD16_BYTE( "17b.bin", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) ) /* Mask rom */ + ROM_LOAD16_BYTE( "17c.bin", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) ) /* Mask rom */ + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound */ + ROM_LOAD( "587yq09.11j", 0x00000, 0x08000, CRC(9b72fdc7) SHA1(6634e2c8203cc7a9f5b2135a0b717dc18b0fdf23) ) + + ROM_REGION( 0x04000, "vlm", 0 ) /* VLM5030 data? */ + ROM_LOAD( "587-d08.8g", 0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) ) + + ROM_REGION( 0x20000, "k007232", 0 ) /* 007232 data */ + ROM_LOAD( "10a.bin", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) ) /* Mask rom */ +ROM_END + +GAME( 2007, spclone, salamand, salamand, lifefrcj, driver_device, 0, ROT0, "Konami", "Salamander (version YY 0.7.3) ", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 2007, spcloneo, salamand, salamand, lifefrcj, driver_device, 0, ROT0, "Konami", "Salamander (version YY 0.7.2.2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/neogeo.cpp b/docs/release/src/hbmame/drivers/neogeo.cpp new file mode 100644 index 00000000000..8d36e3e70d6 --- /dev/null +++ b/docs/release/src/hbmame/drivers/neogeo.cpp @@ -0,0 +1,1469 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari +// thanks-to:Fuzz +/*************************************************************************** + + Neo-Geo hardware + + Credits: + * This driver was made possible by the research done by + Charles MacDonald. For a detailed description of the Neo-Geo + hardware, please visit his page at: + http://cgfm2.emuviews.com/txt/mvstech.txt + * Presented to you by the Shin Emu Keikaku team. + * The following people have all spent probably far + too much time on this: + AVDB + Bryan McPhail + Fuzz + Ernesto Corvi + Andrew Prime + Zsolt Vasvari + + + Known driver issues/to-do's: + ============================ + + * Fatal Fury 3 crashes during the ending - this doesn't occur if + the language is set to Japanese, maybe the English endings + are incomplete / buggy? + * Graphical Glitches caused by incorrect timing? + - Some raster effects are imperfect (off by a couple of lines) + * Multi-cart support not implemented - the MVS can take up to + 6 cartridges depending on the board being used + * 68000 waitstates on ROM region access, determined by jumpers on cart + (garou train stage 3 background bug is probably related to this) + + + Confirmed non-bugs: + + * Bad zooming in the Kof2003 bootlegs - this is what happens + if you try and use the normal bios with a pcb set, it + looks like the bootleggers didn't care. + * Glitches at the edges of the screen - the real hardware + can display 320x224 but most of the games seem designed + to work with a width of 304, some less. + * Distorted jumping sound in Nightmare in the Dark + * Ninja Combat sometimes glitches + + +***************************************************************************** + + The Neo-Geo Multi Video System (MVS), is an arcade system board, being + the first product in the Neo-Geo family, designed by Alpha Denshi(ADK) + and released in 1990 by SNK. It was known to the coin-op industry, and + offered arcade operators the ability to put up to 6 different arcade + titles into a single cabinet, a key economic consideration for operators + with limited floorspace (games for the Neo-Geo are cartridge based and are + easily exchangeable). It comes in many different cabinets but basically + consists of an add on board that can be linked to a standard Jamma system. + The system was discontinued in 2004. + Source (modified): http://en.wikipedia.org/wiki/Neo_Geo + + + MVS motherboards were produced in 1 / 2 / 4 and 6 Slot versions. + + Known motherboards: + =================== + + 1 Slot: + NEO-MVH MV1 + NEO-MVH MV1-1 + NEO-MVH MV1A + . NEO-MVH MV1A CHX ?? + NEO-MVH MV1B (1996.1.19) + . NEO-MVH MV1B CHX (1996.1.19) ?? + NEO-MVH MV1B1 (1998.6.17) + NEO-MVH MV1C (1999.4.30) + NEO-MVH MV1F + NEO-MVH MV1FS + NEO-MVH MV1FT + NEO-MVH MV1FZ + NEO-MVH MV1FZS + + 2 Slot: + NEO-MVH MV2 + NEO-MVH MV2F + NEO-MVH MV2F-01 + + 4 Slot: + NEO-MVH MV4 + NEO-MVH MV4F + NEO-MVH MV4FS + NEO-MVH MV4FT + NEO-MVH MV4FT2 + + 6 Slot: + NEO-MVH MV6 + NEO-MVH MV6F + + + Neo-Geo Motherboard (info - courtesy of Guru): + + NEO-MVH MV1 + |---------------------------------------------------------------------| + | 4558 | + | HC04 HC32 | + | SP-S2.SP1 NEO-E0 000-L0.L0 LS244 AS04 | + | YM2610 | + | 4558 | + | 4558 5814 HC259 SFIX.SFIX | + | NEO-I0 | + | HA13001 YM3016 5814 | + --| | + | 4558 | + --| SM1.SM1 LS32 | + | | + | LSPC-A0 PRO-C0 LS244 | + | | + |J 68000 | + |A | + |M | + |M NEO-ZMC2 | + |A | + | LS273 NEO-G0 58256 58256 Z80A | + | 58256 58256 58256 58256 6116 | + | LS273 5864 | + --| LS05 5864 PRO-B0 | + | | + --| LS06 HC32 D4990A NEO-F0 24.000MHz | + | DSW1 BATT3.6V 32.768kHz NEO-D0 | + | 2003 2003 | + |---------------------------------------------------------------------| + + +***************************************************************************** + + Neo-Geo game PCB infos: + ======================= + + The Neo-Geo games for AES (home) and MVS (arcade) systems are cartridge based. + + Each cartridge consists of two PCBs: CHA and PROG. + .CHA PCB contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom). + .PROG PCB contains sample data ('V' - rom) and program code ('P' - rom). + + On most PCBs various custom/protection chips can also be found: + (Custom chip detail information (modified) from: http://wiki.neogeodev.org) + + CHA: + . NEO-273 (C and S-ROM address latch) + . NEO-CMC 90G06CF7042 (NEO-273 logic / NEO-ZMC logic / C-ROM decryption / C and S-ROM multiplexer / S-ROM bankswitching) + . NEO-CMC 90G06CF7050 (NEO-273 logic / NEO-ZMC logic / C-ROM decryption / M-ROM decryption / C and S-ROM multiplexer / S-ROM bankswitching) + . NEO-ZMC (Z80 memory controller) + . NEO-ZMC2 (Z80 memory controller / Tile serializer) + . PRO-CT0 (C-ROM serializer and multiplexer?; used on early AES-CHA boards) + . SNK-9201 (C-ROM serializer and multiplexer?; used on early AES-CHA boards) + + PROG: + . 0103 (QFP144) (Only found on Metal Slug X NEO-MVS PROGEOP board; function unknown) + . ALTERA (EPM7128SQC100-15) (P-ROM protection chip used for KOF98 NEO-MVS PROGSF1 board and Metal Slug X NEO-MVS PROGEOP board) + . NEO-COMA (Microcontroller; used for MULTI PLAY MODE, boards and sets see below) + . NEO-PCM2 (SNK 1999) (PCM functionality / V-ROM decryption / P-ROM decoding and bankswitching) + . NEO-PCM2 (PLAYMORE 2002) (PCM functionality / V-ROM decryption / P-ROM decoding and bankswitching) + . NEO-PVC (P-ROM decryption and bankswitching) / RAM + . NEO-SMA (P-ROM decryption and bankswitching / RNG / Storage of 256kb game data) + . PCM (ADPCM bus latches / V-ROM multiplexer) + . PRO-CT0 (On PROG board used for P-ROM protection -> Fatal Fury 2) + . SNK-9201 (On PROG board used for P-ROM protection -> Fatal Fury 2) + + + + Known PCBs: + ============ + + MVS CHA: + -- SNK -- + . NEO-MVS CHA-32 + . NEO-MVS CHA-8M + . NEO-MVS CHA42G + . NEO-MVS CHA42G-1 + . NEO-MVS CHA 42G-2 + . NEO-MVS CHA 42G-3 + . NEO-MVS CHA42G-3B + . NEO-MVS CHA256 + . NEO-MVS CHA256B + . NEO-MVS CHA512Y + . NEO-MVS CHAFIO (1999.6.14) - used with NEO-CMC 90G06C7042 or NEO-CMC 90G06C7050 + . MVS CHAFIO REV1.0 (KOF-2001) + . NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA + -- SNKPLAYMORE -- + . NEO-MVS CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050 + + -- SNK development boards -- + . NEO-MVS CHAMC2 + + MVS PROG: + -- SNK -- + . NEO-MVS PROG-NAM + . NEO-MVS PROG-HERO + . NEO-MVS PROG-EP + . NEO-MVS PROG-8MB + . NEO-MVS PROGEP8M + . NEO-MVS PROG8M42 + . NEO-MVS PROG16 + . NEO-MVS PROG42G + . NEO-MVS PROG42G-COM + . NEO-MVS PROG42G-1 + . NEO-MVS PROG-G2 + . NEO-MVS PROG 4096 + . NEO-MVS PROG 4096 B + . NEO-MVS PROGGSC + . NEO-MVS PROGSM + . NEO-MVS PROGSS3 + . NEO-MVS PROGTOP + . NEO-MVS PROGSF1 (1998.6.17) + . NEO-MVS PROGSF1E (1998.6.18) + . NEO-MVS PROGEOP (1999.2.2) + . NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24) + . NEO-MVS PROGBK1 (1994) + . NEO-MVS PROGBK1 (2001) + . NEO-MVS PROGBK2 (2000.3.21) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE) + . MVS PROGBK2 REV1.0 (KOF-2001) + . NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA + -- SNKPLAYMORE -- + . NEO-MVS PROGBK2R (2003.8.26) - NEO-HYCS (2003.9.29) + . NEO-MVS PROGBK3R (2003.9.2) - NEO-HYCS (2003.9.29) + . NEO-MVS PROGBK3S (2003.10.1) + . NEO-MVS PROGBK2S (2003.10.18) + + -- SNK development boards -- + . NEO-MVS PROGMC2 + + + AES CHA: + -- SNK -- + . NEO-AEG CHA-32 + . NEO-AEG CHA-8M + . NEO-AEG CHA42G + . NEO-AEG CHA42G-1 + . NEO-AEG CHA42G-2B + . NEO-AEG CHA42G-3 + . NEO-AEG CHA42G-4 + . NEO-AEG CHA256 + . NEO-AEG CHA256 B + . NEO-AEG CHA256[B] + . NEO-AEG CHA256BY + . NEO-AEG CHA256RY + . NEO-AEG CHA512Y + . NEO-AEG CHAFIO (1999.8.10) - used with NEO-CMC 90G06C7042 or NEO-CMC 90G06C7050 + -- SNKPLAYMORE -- + . NEO-AEG CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050 + + AES PROG: + -- SNK -- + . NEO-AEG PROG-NAM + . NEO-AEG PROG-HERO + . NEO-AEG PROG-4A + . NEO-AEG PROG-4B + . NEO-AEG PROG 8M42 + . NEO-AEG PROG B + . NEO-AEG PROG16 + . NEO-AEG PROG42G + . NEO-AEG PROG42G-COM + . NEO-AEG PROG42G-1 + . NEO-AEG PROG-G2 + . NEO-AEG PROG4096 B + . NEO-AEG PROGGS + . NEO-AEG PROGTOP2 + . NEO-AEG PROGTOP2Y + . NEO-AEG PROGEOP (1999.4.2) + . NEO-AEG PROGLBA (1999.7.6) + . NEO-AEG PROGRK + . NEO-AEG PROGRKB + . NEO-AEG PROGBK1Y + . NEO-AEG PROGBK1F + -- PLAYMORE -- + . NEO-AEG PROGBK2 (2002.4.1) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE) + -- SNKPLAYMORE -- + . NEO-AEG PROGBK3R (2003.8.29) - NEO-HYCS (2003.9.29) + . NEO-AEG PROGBK3S (2003.10.6) + . NEO-AEG PROGBK2S (2003.10.16) + + + + Cartridge colours: + ================== + + MVS cartridges were produced in different colours. + + Known cartridge colours: + . Black + . Blue + . Green + . Grey + . Red + . Transparent + . Transparent Blue + . Transparent Green + . White + . Yellow + + The above listed only covers SNK / PLAYMORE / SNKPLAYMORE PCBs. There also exists a + wide range of 'bootleg' PCBs. + + + Unofficial pcb's from NG:DEV.TEAM: + + MVS CHA: + GIGA CHAR Board 1.0 Rev. A + GIGA CHAR Board 1.5 Rev. 0 + GIGA CHAR Board 1.5 Rev. C + + MVS PROG: + GIGA PROG Board 1.0 Rev. B + GIGA PROG Board 1.5 Rev. A + GIGA PROG Board 1.5 Rev. C + + + Unofficial pcb's from NEOBITZ: + + MVS CHA: + CHARBITZ1 2013.12.01 + + MVS PROG: + PROGBITZ1 2013.12.01 + + + Neo-Geo game PCB infos by Johnboy + + + + MVS cart pinout: + ================ + + Kindly submitted by Apollo69 (apollo69@columbus.rr.com) + ================================================================= + CTRG1 CTRG2 + ================================================================= + GND = 01A | 01B = GND GND = 01A | 01B = GND + GND = 02A | 02B = GND GND = 02A | 02B = GND + P0 = 03A | 03B = P1 GND = 03A | 03B = GND + P2 = 04A | 04B = P3 GND = 04A | 04B = GND + P4 = 05A | 05B = P5 D0 = 05A | 05B = A1 + P6 = 06A | 06B = P7 D1 = 06A | 06B = A2 + P8 = 07A | 07B = P9 D2 = 07A | 07B = A3 + P10 = 08A | 08B = P11 D3 = 08A | 08B = A4 + P12 = 09A | 09B = P13 D4 = 09A | 09B = A5 + P14 = 10A | 10B = P15 D5 = 10A | 10B = A6 + P16 = 11A | 11B = P17 D6 = 11A | 11B = A7 + P18 = 12A | 12B = P19 D7 = 12A | 12B = A8 + P20 = 13A | 13B = P21 D8 = 13A | 13B = A9 + P22 = 14A | 14B = P23 D9 = 14A | 14B = A10 + PCK1B = 15A | 15B = 24M D10 = 15A | 15B = A11 + PCK2B = 16A | 16B = 12M D11 = 16A | 16B = A12 + 2H1 = 17A | 17B = 8M D12 = 17A | 17B = A13 + CA4 = 18A | 18B = RESET D13 = 18A | 18B = A14 + CR0 = 19A | 19B = CR1 D14 = 19A | 19B = A15 + CR2 = 20A | 20B = CR3 D15 = 20A | 20B = A16 + CR4 = 21A | 21B = CR5 R/W = 21A | 21B = A17 + CR6 = 22A | 22B = CR7 AS = 22A | 22B = A18 + CR8 = 23A | 23B = CR9 ROMOEU = 23A | 23B = A19 + CR10 = 24A | 24B = CR11 ROMOEL = 24A | 24B = 68KCLKB + CR12 = 25A | 25B = CR13 PORTOEU = 25A | 25B = ROMWAIT + CR14 = 26A | 26B = CR15 PORTOEL = 26A | 26B = PWAIT0 + CR16 = 27A | 27B = CR17 PORTWEU = 27A | 27B = PWAIT1 + CR18 = 28A | 28B = CR19 PORTWEL = 28A | 28B = PDTACT + VCC = 29A | 29B = VCC VCC = 29A | 29B = VCC + VCC = 30A | 30B = VCC VCC = 30A | 30B = VCC + VCC = 31A | 31B = VCC VCC = 31A | 31B = VCC + VCC = 32A | 32B = VCC VCC = 32A | 32B = VCC + CR20 = 33A | 33B = CR21 PORTADRS = 33A | 33B = 4MB + CR22 = 34A | 34B = CR23 NC = 34A | 34B = ROMOE + CR24 = 35A | 35B = CR25 NC = 35A | 35B = RESET + CR26 = 36A | 36B = CR27 NC = 36A | 36B = NC + CR28 = 37A | 37B = CR29 NC = 37A | 37B = NC + CR30 = 38A | 38B = CR31 NC = 38A | 38B = NC + NC = 39A | 39B = FIX00 NC = 39A | 39B = NC + NC = 40A | 40B = FIX01 NC = 40A | 40B = NC + NC = 41A | 41B = FIX02 NC = 41A | 41B = SDPAD0 + SYSTEMB = 42A | 42B = FIX03 SYSTEMB = 42A | 42B = SDPAD1 + SDA0 = 43A | 43B = FIX04 SDPA8 = 43A | 43B = SDPAD2 + SDA1 = 44A | 44B = FIX05 SDPA9 = 44A | 44B = SDPAD3 + SDA2 = 45A | 45B = FIX06 SDPA10 = 45A | 45B = SDPAD4 + SDA3 = 46A | 46B = FIX07 SDPA11 = 46A | 46B = SDPAD5 + SDA4 = 47A | 47B = SDRD0 SDPMPX = 47A | 47B = SDPAD6 + SDA5 = 48A | 48B = SDRD1 SDPOE = 48A | 48B = SDPAD7 + SDA6 = 49A | 49B = SDROM SDRA8 = 49A | 49B = SDRA00 + SDA7 = 50A | 50B = SDMRD SDRA9 = 50A | 50B = SDRA01 + SDA8 = 51A | 51B = SDDO SDRA20 = 51A | 51B = SDRA02 + SDA9 = 52A | 52B = SDD1 SDRA21 = 52A | 52B = SDRA03 + SDA10 = 53A | 53B = SDD2 SDRA22 = 53A | 53B = SDRA04 + SDA11 = 54A | 54B = SDD3 SDRA23 = 54A | 54B = SDRA05 + SDA12 = 55A | 55B = SDD4 SDRMPX = 55A | 55B = SDRA06 + SDA13 = 56A | 56B = SDD5 SDROE = 56A | 56B = SDRA07 + SDA14 = 57A | 57B = SDD6 GND = 57A | 57B = GND + SDA15 = 58A | 58B = SDD7 GND = 58A | 58B = GND + GND = 59A | 59B = GND GND = 59A | 59B = GND + GND = 60A | 60B = GND GND = 60A | 60B = GND + + CTRG1 (CHA) = Contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom) + CTRG2 (PROG) = Contains sample data ('V' - rom) and program code ('P' - rom) + + NOTE: On CTRG2-B, The "A" lines start at "A1". If you trace this on an + actual cart, you will see that this is actually "A0" (A0 - A18). + + These are from a very hard to read copy of the schematics, so + I hope that I got the pin names correct. + + Apollo69 10/19/99 + + +***************************************************************************** + + Watchdog: + ========= + + The watchdog timer will reset the system after ~0.13 seconds. + By cgfm's research, exactly 3,244,030 cycles (based on 24MHz clock). + + Newer games force a reset using the following code (this from kof99): + 009CDA 203C 0003 0D40 MOVE.L #0x30D40,D0 + 009CE0 5380 SUBQ.L #1,D0 + 009CE2 64FC BCC.S *-0x2 [0x9CE0] + Note however that there is a valid code path after this loop. + + The watchdog is used as a form of protection on a number of games, + previously this was implemented as a specific hack which locked a single + address of SRAM. + + What actually happens is if the game doesn't find valid data in the + backup ram it will initialize it, then sit in a loop. The watchdog + should then reset the system while it is in this loop. If the watchdog + fails to reset the system the code will continue and set a value in + backup ram to indiate that the protection check has failed. + + + Mahjong Panel notes (2009-03 FP): + ================================= + + * In Service Mode menu with mahjong panel active, controls are as + follows: + + A = select / up (for options) + B = down (for options) + C = go to previous menu + E = up (for menu entries) + F = down (for menu entries) + G = left (for options) + H = right (for options) + + * These only work with Japanese BIOS, but I think it's not a bug: I + doubt other BIOS were programmed to be compatible with mahjong panels + +****************************************************************************/ + +#include "emu.h" +#include "cpu/m68000/m68000.h" +#include "includes/neogeo.h" +#include "machine/nvram.h" +#include "machine/watchdog.h" +#include "cpu/z80/z80.h" +#include "sound/2610intf.h" +#include "softlist.h" +#include "neogeo.lh" + + +#define LOG_VIDEO_SYSTEM (0) +#define LOG_MAIN_CPU_BANKING (0) +#define LOG_AUDIO_CPU_BANKING (0) + + +/************************************* + * + * Main CPU interrupt generation + * + *************************************/ + + + +// The display counter is automatically reloaded with the load register contents on scanline 224, +// 1146 mclks from the rising edge of /HSYNC. +#define NEOGEO_VBLANK_RELOAD_HTIM (attotime::from_ticks(1146, NEOGEO_MASTER_CLOCK)) + +#define IRQ2CTRL_ENABLE (0x10) +#define IRQ2CTRL_LOAD_RELATIVE (0x20) +#define IRQ2CTRL_AUTOLOAD_VBLANK (0x40) +#define IRQ2CTRL_AUTOLOAD_REPEAT (0x80) + + +void neogeo_state::adjust_display_position_interrupt_timer() +{ + attotime period = attotime::from_ticks((UINT64)m_display_counter + 1, NEOGEO_PIXEL_CLOCK); + if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", m_screen->vpos(), m_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL); + + m_display_position_interrupt_timer->adjust(period); +} + + +void neogeo_state::neogeo_set_display_position_interrupt_control( UINT16 data ) +{ + m_display_position_interrupt_control = data; +} + + +void neogeo_state::neogeo_set_display_counter_msb( UINT16 data ) +{ + m_display_counter = (m_display_counter & 0x0000ffff) | ((UINT32)data << 16); + + if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", m_maincpu->pc(), m_display_counter); +} + + +void neogeo_state::neogeo_set_display_counter_lsb( UINT16 data ) +{ + m_display_counter = (m_display_counter & 0xffff0000) | data; + + if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", m_maincpu->pc(), m_display_counter); + + if (m_display_position_interrupt_control & IRQ2CTRL_LOAD_RELATIVE) + { + if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_RELATIVE "); + adjust_display_position_interrupt_timer(); + } +} + + +void neogeo_state::update_interrupts() +{ + m_maincpu->set_input_line(3, m_irq3_pending ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(m_raster_level, m_display_position_interrupt_pending ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(m_vblank_level, m_vblank_interrupt_pending ? ASSERT_LINE : CLEAR_LINE); +} + + +void neogeo_state::neogeo_acknowledge_interrupt( UINT16 data ) +{ + if (data & 0x01) + m_irq3_pending = 0; + if (data & 0x02) + m_display_position_interrupt_pending = 0; + if (data & 0x04) + m_vblank_interrupt_pending = 0; + + update_interrupts(); +} + + +TIMER_CALLBACK_MEMBER(neogeo_state::display_position_interrupt_callback) +{ + if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", m_screen->vpos(), m_screen->hpos()); + + if (m_display_position_interrupt_control & IRQ2CTRL_ENABLE) + { + if (LOG_VIDEO_SYSTEM) logerror("*** Scanline interrupt (IRQ2) *** y: %02x x: %02x\n", m_screen->vpos(), m_screen->hpos()); + m_display_position_interrupt_pending = 1; + + update_interrupts(); + } + + if (m_display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_REPEAT) + { + if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_REPEAT "); + adjust_display_position_interrupt_timer(); + } +} + + +TIMER_CALLBACK_MEMBER(neogeo_state::display_position_vblank_callback) +{ + if (m_display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_VBLANK) + { + if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_VBLANK "); + adjust_display_position_interrupt_timer(); + } + + /* set timer for next screen */ + m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_RELOAD_HTIM); +} + + +TIMER_CALLBACK_MEMBER(neogeo_state::vblank_interrupt_callback) +{ + if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d\n", m_screen->vpos(), m_screen->hpos()); + + m_vblank_interrupt_pending = 1; + update_interrupts(); + + /* set timer for next screen */ + m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_IRQ_HTIM); +} + + +void neogeo_state::create_interrupt_timers() +{ + m_display_position_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::display_position_interrupt_callback),this)); + m_display_position_vblank_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::display_position_vblank_callback),this)); + m_vblank_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::vblank_interrupt_callback),this)); +} + + +void neogeo_state::start_interrupt_timers() +{ + m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_IRQ_HTIM); + m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_RELOAD_HTIM); +} + + + +/************************************* + * + * Audio CPU interrupt generation + * + *************************************/ + +void neogeo_state::audio_cpu_check_nmi() +{ + m_audiocpu->set_input_line(INPUT_LINE_NMI, (m_audio_cpu_nmi_enabled && m_audio_cpu_nmi_pending) ? ASSERT_LINE : CLEAR_LINE); +} + +WRITE8_MEMBER(neogeo_state::audio_cpu_enable_nmi_w) +{ + // out ($08) enables the nmi, out ($18) disables it + m_audio_cpu_nmi_enabled = !(offset & 0x10); + audio_cpu_check_nmi(); +} + + + +/************************************* + * + * Input ports / Controllers + * + *************************************/ + +READ16_MEMBER(neogeo_state::in0_r) +{ + return ((m_edge->in0_r(space, offset) & m_ctrl1->ctrl_r(space, offset)) << 8) | m_dsw->read(); +} + +READ16_MEMBER(neogeo_state::in1_r) +{ + return ((m_edge->in1_r(space, offset) & m_ctrl2->ctrl_r(space, offset)) << 8) | 0xff; +} + +CUSTOM_INPUT_MEMBER(neogeo_state::kizuna4p_start_r) +{ + return (m_edge->read_start_sel() & 0x05) | ~0x05; +} + +WRITE8_MEMBER(neogeo_state::io_control_w) +{ + switch (offset) + { + case 0x00: + if (m_ctrl1) m_ctrl1->write_ctrlsel(data); + if (m_ctrl2) m_ctrl2->write_ctrlsel(data); + if (m_edge) m_edge->write_ctrlsel(data); + break; + + case 0x10: + if (m_type == NEOGEO_MVS) + if (m_cartslots[0]) set_slot_number(data); + break; + + case 0x18: + if (m_type == NEOGEO_MVS) + set_output_latch(data); + break; + + case 0x20: + if (m_type == NEOGEO_MVS) + set_output_data(data); + break; + + case 0x28: + if (m_type == NEOGEO_MVS) + { + m_upd4990a->data_in_w(data >> 0 & 1); + m_upd4990a->clk_w(data >> 1 & 1); + m_upd4990a->stb_w(data >> 2 & 1); + } + break; + +// case 0x30: break; // coin counters +// case 0x31: break; // coin counters +// case 0x32: break; // coin lockout +// case 0x33: break; // coin lockout + + default: + logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset, data); + break; + } +} + + +/************************************* + * + * Unmapped memory access + * + *************************************/ + +READ16_MEMBER(neogeo_state::neogeo_unmapped_r) +{ + UINT16 ret; + + /* unmapped memory returns the last word on the data bus, which is almost always the opcode + of the next instruction due to prefetch */ + + /* prevent recursion */ + if (m_recurse) + ret = 0xffff; + else + { + m_recurse = true; + ret = space.read_word(space.device().safe_pc()); + m_recurse = false; + } + return ret; +} + + + +/************************************* + * + * NVRAM (Save RAM) + * + *************************************/ + +void neogeo_state::set_save_ram_unlock( UINT8 data ) +{ + m_save_ram_unlocked = data; +} + + +WRITE16_MEMBER(neogeo_state::save_ram_w) +{ + if (m_save_ram_unlocked) + COMBINE_DATA(&m_save_ram[offset]); +} + + + +/************************************* + * + * Memory card + * + *************************************/ + +CUSTOM_INPUT_MEMBER(neogeo_state::get_memcard_status) +{ + // D0 and D1 are memcard 1 and 2 presence indicators, D2 indicates memcard + // write protect status (we are always write enabled) + return (m_memcard->present() == -1) ? 0x07 : 0x00; +} + + +READ16_MEMBER(neogeo_state::memcard_r) +{ + m_maincpu->eat_cycles(2); // insert waitstate + + UINT16 ret; + + if (m_memcard->present() != -1) + ret = m_memcard->read(space, offset) | 0xff00; + else + ret = 0xffff; + + return ret; +} + + +WRITE16_MEMBER(neogeo_state::memcard_w) +{ + m_maincpu->eat_cycles(2); // insert waitstate + + if (ACCESSING_BITS_0_7) + { + if (m_memcard->present() != -1) + m_memcard->write(space, offset, data); + } +} + +/************************************* + * + * Inter-CPU communications + * + *************************************/ + +WRITE8_MEMBER(neogeo_state::audio_command_w) +{ + soundlatch_write(data); + + m_audio_cpu_nmi_pending = true; + audio_cpu_check_nmi(); + + /* boost the interleave to let the audio CPU read the command */ + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); +} + + +READ8_MEMBER(neogeo_state::audio_command_r) +{ + UINT8 ret = soundlatch_read(); + + m_audio_cpu_nmi_pending = false; + audio_cpu_check_nmi(); + + return ret; +} + + +CUSTOM_INPUT_MEMBER(neogeo_state::get_audio_result) +{ + UINT8 ret = soundlatch_read(1); // soundlatch2_byte_r + + return ret; +} + + + + +void neogeo_state::neogeo_main_cpu_banking_init() +{ + /* create vector banks */ +// m_bank_vectors->configure_entry(1, m_region_maincpu->base()); +// m_bank_vectors->configure_entry(0, memregion("mainbios")->base()); +// m_bank_vectors->set_entry(0); + m_use_cart_vectors = 0; + + if (m_type != NEOGEO_CD) + { + if (!m_cartslots[0]) m_banked_cart->init_banks(); + } +} + + +/************************************* + * + * Audio CPU banking + * + *************************************/ + +READ8_MEMBER(neogeo_state::audio_cpu_bank_select_r) +{ + m_bank_audio_cart[offset & 3]->set_entry(offset >> 8); + + return 0; +} + + +void neogeo_state::neogeo_audio_cpu_banking_init(int set_entry) +{ + if (m_type == NEOGEO_CD) return; + + int region; + int bank; + UINT8 *rgn; + UINT32 address_mask; + + rgn = memregion("audiocpu")->base(); + + /* audio bios/cartridge selection */ + m_bank_audio_main->configure_entry(1, memregion("audiocpu")->base()); + if (memregion("audiobios")) + m_bank_audio_main->configure_entry(0, memregion("audiobios")->base()); + else /* on hardware with no SM1 ROM, the cart ROM is always enabled */ + m_bank_audio_main->configure_entry(0, memregion("audiocpu")->base()); + + m_bank_audio_main->set_entry(m_use_cart_audio); + + /* audio banking */ + m_bank_audio_cart[0] = membank("audio_f000"); + m_bank_audio_cart[1] = membank("audio_e000"); + m_bank_audio_cart[2] = membank("audio_c000"); + m_bank_audio_cart[3] = membank("audio_8000"); + + address_mask = (memregion("audiocpu")->bytes() - 0x10000 - 1) & 0x3ffff; + + + for (region = 0; region < 4; region++) + { + for (bank = 0xff; bank >= 0; bank--) + { + UINT32 bank_address = 0x10000 + ((bank << (11 + region)) & address_mask); + m_bank_audio_cart[region]->configure_entry(bank, &rgn[bank_address]); + } + } + + // set initial audio banks - THIS IS A HACK + // Z80 banking is handled by the NEO-ZMC chip in the cartridge + // (in later cartridges, by multifunction banking/protection chips that implement the same bank scheme) + // On the real chip, initial banks are all 0. + // However, early cartridges with less than 64KB of Z80 code and data don't have ROM banking at all. + // These initial bank settings are required so non-banked games will work until we identify them + // and use a different Z80 address map for them. + m_bank_audio_cart[0]->set_entry(0x1e); + m_bank_audio_cart[1]->set_entry(0x0e); + m_bank_audio_cart[2]->set_entry(0x06); + m_bank_audio_cart[3]->set_entry(0x02); +} + + + +/************************************* + * + * System control register + * + *************************************/ + +WRITE8_MEMBER(neogeo_state::system_control_w) +{ + UINT8 bit = (offset >> 3) & 0x01; + + switch (offset & 0x07) + { + default: + case 0x00: + neogeo_set_screen_shadow(bit); + break; + + case 0x01: + if (m_type == NEOGEO_CD) + printf("NeoCD: write to regular vector change address? %d\n", bit); // what IS going on with "neocdz doubledr" and why do games write here if it's hooked up to nothing? + else + //m_bank_vectors->set_entry(bit); + m_use_cart_vectors = bit; + break; + + case 0x05: + if (m_type == NEOGEO_MVS) + { + m_use_cart_audio = bit; + m_sprgen->neogeo_set_fixed_layer_source(bit); + m_bank_audio_main->set_entry(m_use_cart_audio); + } + break; + + case 0x06: + if (m_type == NEOGEO_MVS) + set_save_ram_unlock(bit); + break; + + case 0x07: + neogeo_set_palette_bank(bit); + break; + + case 0x02: // memory card 1: write enable/disable + case 0x03: // memory card 2: write disable/enable + case 0x04: // memory card: register select enable/set to normal (what does it mean?) + logerror("PC: %x Unmapped system control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset & 0x07, bit); + break; + } + + if (LOG_VIDEO_SYSTEM && ((offset & 0x07) != 0x06)) logerror("PC: %x System control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset & 0x07, bit); +} + + + +/************************************* + * + * LEDs + * + *************************************/ + +void neogeo_state::set_outputs( ) +{ + static const UINT8 led_map[0x10] = + { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0x4c,0x62,0x69,0x78,0x00 }; + + /* EL */ + output().set_digit_value(0, led_map[m_el_value]); + + /* LED1 */ + output().set_digit_value(1, led_map[m_led1_value >> 4]); + output().set_digit_value(2, led_map[m_led1_value & 0x0f]); + + /* LED2 */ + output().set_digit_value(3, led_map[m_led2_value >> 4]); + output().set_digit_value(4, led_map[m_led2_value & 0x0f]); +} + + +void neogeo_state::set_output_latch( UINT8 data ) +{ + /* looks like the LEDs are set on the + falling edge */ + UINT8 falling_bits = m_output_latch & ~data; + + if (falling_bits & 0x08) + m_el_value = 16 - (m_output_data & 0x0f); + + if (falling_bits & 0x10) + m_led1_value = ~m_output_data; + + if (falling_bits & 0x20) + m_led2_value = ~m_output_data; + + if (falling_bits & 0xc7) + logerror("%s Unmaped LED write. Data: %x\n", machine().describe_context(), falling_bits); + + m_output_latch = data; + + set_outputs(); +} + + +void neogeo_state::set_output_data( UINT8 data ) +{ + m_output_data = data; +} + + + +/************************************* + * + * Machine initialization + * + *************************************/ + +DRIVER_INIT_MEMBER(neogeo_state,neogeo) +{ + if (!m_cartslots[0]) m_banked_cart->install_banks(machine(), m_maincpu, m_region_maincpu->base(), m_region_maincpu->bytes()); + + m_sprgen->m_fixed_layer_bank_type = 0; + + // install controllers + m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, read16_delegate(FUNC(neogeo_state::in0_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x340000, 0x340001, 0, 0x01fffe, read16_delegate(FUNC(neogeo_state::in1_r), this)); +} + + +void neogeo_state::neogeo_postload() +{ + m_bank_audio_main->set_entry(m_use_cart_audio); + + if (m_type == NEOGEO_MVS) set_outputs(); +} + + +void neogeo_state::machine_start() +{ + m_type = NEOGEO_MVS; + + + /* set the initial main CPU bank */ + neogeo_main_cpu_banking_init(); + + /* set the initial audio CPU ROM banks */ + neogeo_audio_cpu_banking_init(1); + + create_interrupt_timers(); + + /* irq levels for MVS / AES */ + m_vblank_level = 1; + m_raster_level = 2; + + /* start with an IRQ3 - but NOT on a reset */ + m_irq3_pending = 1; + + // enable rtc and serial mode + m_upd4990a->cs_w(1); + m_upd4990a->oe_w(1); + m_upd4990a->c0_w(1); + m_upd4990a->c1_w(1); + m_upd4990a->c2_w(1); + + /* register state save */ + save_item(NAME(m_display_position_interrupt_control)); + save_item(NAME(m_display_counter)); + save_item(NAME(m_vblank_interrupt_pending)); + save_item(NAME(m_display_position_interrupt_pending)); + save_item(NAME(m_irq3_pending)); + save_item(NAME(m_audio_cpu_nmi_enabled)); + save_item(NAME(m_audio_cpu_nmi_pending)); + save_item(NAME(m_save_ram_unlocked)); + save_item(NAME(m_output_data)); + save_item(NAME(m_output_latch)); + save_item(NAME(m_el_value)); + save_item(NAME(m_led1_value)); + save_item(NAME(m_led2_value)); + + save_item(NAME(m_use_cart_vectors)); + save_item(NAME(m_use_cart_audio)); + + machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::neogeo_postload), this)); + + + m_cartslots[0] = m_cartslot1; + m_cartslots[1] = m_cartslot2; + m_cartslots[2] = m_cartslot3; + m_cartslots[3] = m_cartslot4; + m_cartslots[4] = m_cartslot5; + m_cartslots[5] = m_cartslot6; + + + m_sprgen->set_screen(m_screen); + m_sprgen->set_sprite_region(m_region_sprites->base(), m_region_sprites->bytes()); + m_sprgen->set_fixed_regions(m_region_fixed->base(), m_region_fixed->bytes(), m_region_fixedbios); + +} + + + +/************************************* + * + * Machine reset + * + *************************************/ + +void neogeo_state::set_slot_number(int slot) +{ + if (slot != m_currentslot) + { + m_currentslot = slot; + + address_space &space = m_maincpu->space(AS_PROGRAM); + + // unmap old handlers, some carts will have installed overlays on them, we need them to be cleared + space.unmap_readwrite(0x000080, 0x0fffff); + space.unmap_readwrite(0x200000, 0x2fffff); + + + if (m_cartslots[m_currentslot]->get_sprites_size() == 0) + return; + + // give the sprite chip pointers to the graphics for this slot from the slot device + m_sprgen->set_sprite_region(m_cartslots[m_currentslot]->get_sprites_base(), m_cartslots[m_currentslot]->get_sprites_size()); + m_sprgen->set_fixed_regions(m_cartslots[m_currentslot]->get_fixed_base(), m_cartslots[m_currentslot]->get_fixed_size(), m_region_fixedbios); + m_sprgen->set_optimized_sprite_data(m_cartslots[m_currentslot]->get_sprites_optimized(), m_cartslots[m_currentslot]->get_sprites_addrmask()); + m_sprgen->m_fixed_layer_bank_type = m_cartslots[m_currentslot]->get_fixed_bank_type(); + /* + Resetting a sound device causes the core to update() it and generate samples if it's not up to date. + Thus we preemptively reset it here while the old pointers are still valid so it's up to date and + doesn't generate samples below when we reset it for the new pointers. + */ + device_t* ym = machine().device("ymsnd"); + ym->reset(); + + m_cartslots[m_currentslot]->setup_memory_banks(machine()); // setup basic pointers + + ym->reset(); // reset it again to get the new pointers + + // these could have changed, ensure the pointers are valid + m_region_maincpu.findit(); + m_region_sprites.findit(); + m_region_fixed.findit(); + + space.install_rom(0x000080, 0x0fffff, m_region_maincpu->base()+0x80); // reinstall the base program rom handler + + m_cartslots[m_currentslot]->activate_cart(machine(), m_maincpu, m_region_maincpu->base(), m_region_maincpu->bytes(), m_cartslots[m_currentslot]->get_fixed_base(), m_cartslots[m_currentslot]->get_fixed_size()); + //memcpy((UINT8*)m_cartslots[m_currentslot]->get_rom_base(),m_region_maincpu->base(), m_region_maincpu->bytes()); // hack- copy back any mods activate made (eh cthd2003)c + + neogeo_audio_cpu_banking_init(0); // should probably be responsibility of the cart + m_audiocpu->reset(); // or some games like svc have no sounnd if in higher slots? + + } +} + +void neogeo_state::machine_reset() +{ + offs_t offs; + address_space &space = m_maincpu->space(AS_PROGRAM); + + /* reset system control registers */ + for (offs = 0; offs < 8; offs++) + system_control_w(space, offs, 0); + + // disable audiocpu nmi + m_audio_cpu_nmi_enabled = false; + m_audio_cpu_nmi_pending = false; + audio_cpu_check_nmi(); + + m_maincpu->reset(); + + start_interrupt_timers(); + + /* trigger the IRQ3 that was set by MACHINE_START */ + update_interrupts(); + + m_recurse = false; + + if (m_cartslots[0]) // if thie system has cart slots then do some extra initialization + { + set_slot_number(0); + } + +} + +READ16_MEMBER(neogeo_state::banked_vectors_r) +{ + if (!m_use_cart_vectors) + { + UINT16* bios = (UINT16*)memregion("mainbios")->base(); + return bios[offset]; + } + else + { + UINT16* game = (UINT16*)m_region_maincpu->base(); + return game[offset]; + } + +} + +READ16_MEMBER(neogeo_state::neogeo_slot_rom_low_r) +{ + return m_cartslots[m_currentslot]->read_rom(space, offset+(0x80/2), mem_mask); +} + +READ16_MEMBER(neogeo_state::neogeo_slot_rom_low_bectors_r) +{ + if (!m_use_cart_vectors) + { + UINT16* bios = (UINT16*)memregion("mainbios")->base(); + return bios[offset]; + } + else + { + return m_cartslots[m_currentslot]->read_rom(space, offset, mem_mask); + } + +} + + +/************************************* + * + * Main CPU memory handlers + * + *************************************/ + +ADDRESS_MAP_START( neogeo_main_map, AS_PROGRAM, 16, neogeo_state ) + + AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x0f0000) AM_RAM + /* some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the ROM is read here too */ + AM_RANGE(0x300080, 0x300081) AM_MIRROR(0x01ff7e) AM_READ_PORT("TEST") + AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01fffe) AM_DEVWRITE8("watchdog", watchdog_timer_device, reset_w, 0x00ff) + AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("AUDIO/COIN") AM_WRITE8(audio_command_w, 0xff00) + AM_RANGE(0x360000, 0x37ffff) AM_READ(neogeo_unmapped_r) + AM_RANGE(0x380000, 0x380001) AM_MIRROR(0x01fffe) AM_READ_PORT("SYSTEM") + AM_RANGE(0x380000, 0x38007f) AM_MIRROR(0x01ff80) AM_WRITE8(io_control_w, 0x00ff) + AM_RANGE(0x3a0000, 0x3a001f) AM_MIRROR(0x01ffe0) AM_READ(neogeo_unmapped_r) AM_WRITE8(system_control_w, 0x00ff) + AM_RANGE(0x3c0000, 0x3c0007) AM_MIRROR(0x01fff8) AM_READ(neogeo_video_register_r) + AM_RANGE(0x3c0000, 0x3c000f) AM_MIRROR(0x01fff0) AM_WRITE(neogeo_video_register_w) + AM_RANGE(0x3e0000, 0x3fffff) AM_READ(neogeo_unmapped_r) + AM_RANGE(0x400000, 0x401fff) AM_MIRROR(0x3fe000) AM_READWRITE(neogeo_paletteram_r, neogeo_paletteram_w) + AM_RANGE(0x800000, 0x800fff) AM_READWRITE(memcard_r, memcard_w) + AM_RANGE(0xc00000, 0xc1ffff) AM_MIRROR(0x0e0000) AM_ROM AM_REGION("mainbios", 0) + AM_RANGE(0xd00000, 0xd0ffff) AM_MIRROR(0x0f0000) AM_RAM_WRITE(save_ram_w) AM_SHARE("saveram") + AM_RANGE(0xe00000, 0xffffff) AM_READ(neogeo_unmapped_r) +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( main_map_slot, AS_PROGRAM, 16, neogeo_state ) + AM_RANGE(0x000000, 0x00007f) AM_READ(neogeo_slot_rom_low_bectors_r) + AM_RANGE(0x000080, 0x0fffff) AM_READ(neogeo_slot_rom_low_r) + AM_RANGE(0x200000, 0x2fffff) AM_ROMBANK("cartridge") +// AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(main_cpu_bank_select_w) + AM_IMPORT_FROM( neogeo_main_map ) +ADDRESS_MAP_END + +/************************************* + * + * Audio CPU memory handlers + * + *************************************/ + +static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, neogeo_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("audio_main") + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("audio_8000") + AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("audio_c000") + AM_RANGE(0xe000, 0xefff) AM_ROMBANK("audio_e000") + AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("audio_f000") + AM_RANGE(0xf800, 0xffff) AM_RAM +ADDRESS_MAP_END + + + +/************************************* + * + * Audio CPU port handlers + * + *************************************/ + +static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, neogeo_state ) + AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READWRITE(audio_command_r, soundlatch_clear_byte_w) + AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) + AM_RANGE(0x08, 0x08) AM_MIRROR(0xff10) AM_MASK(0x0010) AM_WRITE(audio_cpu_enable_nmi_w) + AM_RANGE(0x08, 0x0b) AM_MIRROR(0xfff0) AM_MASK(0xff03) AM_READ(audio_cpu_bank_select_r) + AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_WRITE(soundlatch2_byte_w) +ADDRESS_MAP_END + + + +/************************************* + * + * Standard Neo-Geo DIPs and + * input port definition + * + *************************************/ + +INPUT_PORTS_START( neogeo ) + PORT_START("DSW") + PORT_DIPNAME( 0x01, 0x01, "Setting Mode" ) PORT_DIPLOCATION("SW:1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW:2") + PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, "VS Mode" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3") + PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) ) + PORT_DIPSETTING( 0x00, "Mahjong Panel" ) + PORT_DIPNAME( 0x18, 0x18, "COMM Setting (Cabinet No.)" ) PORT_DIPLOCATION("SW:4,5") + PORT_DIPSETTING( 0x18, "1" ) + PORT_DIPSETTING( 0x10, "2" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPNAME( 0x20, 0x20, "COMM Setting (Link Enable)" ) PORT_DIPLOCATION("SW:6") + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW:7") + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW:8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("SYSTEM") + PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_3) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_4) + PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state, get_memcard_status, nullptr) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Hardware type (AES=0, MVS=1). Some games check this and show a piracy warning screen if the hardware and BIOS don't match */ + + PORT_START("AUDIO/COIN") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN3 ) /* What is this? "us-e" BIOS uses it as a coin input; Universe BIOS uses it to detect MVS or AES hardware */ + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN4 ) /* What is this? "us-e" BIOS uses it as a coin input; Universe BIOS uses it to detect MVS or AES hardware */ + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* what is this? When ACTIVE_HIGH + IN4 bit 6 ACTIVE_LOW MVS-4 slot is detected */ + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd4990a", upd1990a_device, tp_r) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd4990a", upd1990a_device, data_out_r) + PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_audio_result, nullptr) + + PORT_START("TEST") + PORT_BIT( 0x003f, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* what is this? If ACTIVE_LOW, MVS-6 slot detected, when ACTIVE_HIGH MVS-1 slot (AES) detected */ + PORT_SERVICE_NO_TOGGLE( 0x0080, IP_ACTIVE_LOW ) + PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END + +static INPUT_PORTS_START( neogeo_6slot ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("TEST") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) +INPUT_PORTS_END + + + + +DRIVER_INIT_MEMBER(neogeo_state,mvs) +{ + DRIVER_INIT_CALL(neogeo); +} + + + + +/************************************* + * + * Machine driver + * + *************************************/ + +MACHINE_CONFIG_START( neogeo_base, neogeo_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, NEOGEO_MAIN_CPU_CLOCK) + MCFG_CPU_PROGRAM_MAP(neogeo_main_map) + + MCFG_CPU_ADD("audiocpu", Z80, NEOGEO_AUDIO_CPU_CLOCK) + MCFG_CPU_PROGRAM_MAP(audio_map) + MCFG_CPU_IO_MAP(audio_io_map) + + /* video hardware */ + MCFG_DEFAULT_LAYOUT(layout_neogeo) + + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART) + MCFG_SCREEN_UPDATE_DRIVER(neogeo_state, screen_update_neogeo) + + /* 4096 colors * two banks * normal and shadow */ + MCFG_PALETTE_ADD_INIT_BLACK("palette", 4096*2*2) + + MCFG_DEVICE_ADD("spritegen", NEOGEO_SPRITE_OPTIMZIED, 0) + + /* audio hardware */ + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + + MCFG_SOUND_ADD("ymsnd", YM2610, NEOGEO_YM2610_CLOCK) + MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) + MCFG_SOUND_ROUTE(0, "lspeaker", 0.28) + MCFG_SOUND_ROUTE(0, "rspeaker", 0.28) + MCFG_SOUND_ROUTE(1, "lspeaker", 0.98) + MCFG_SOUND_ROUTE(2, "rspeaker", 0.98) + MCFG_NEOGEO_BANKED_CART_ADD("banked_cart") + +MACHINE_CONFIG_END + + +MACHINE_CONFIG_DERIVED( neogeo_arcade, neogeo_base ) + MCFG_WATCHDOG_ADD("watchdog") + MCFG_WATCHDOG_TIME_INIT(attotime::from_ticks(3244030, NEOGEO_MASTER_CLOCK)) + MCFG_UPD4990A_ADD("upd4990a", XTAL_32_768kHz, NOOP, NOOP) + MCFG_NVRAM_ADD_0FILL("saveram") + MCFG_NEOGEO_MEMCARD_ADD("memcard") +MACHINE_CONFIG_END + + +static MACHINE_CONFIG_DERIVED( mvs, neogeo_arcade ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(main_map_slot) + + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false) + + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", false) + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", false) + + MCFG_NEOGEO_CARTRIDGE_ADD("cartslot1", neogeo_cart, nullptr) + MCFG_NEOGEO_CARTRIDGE_ADD("cartslot2", neogeo_cart, nullptr) + MCFG_NEOGEO_CARTRIDGE_ADD("cartslot3", neogeo_cart, nullptr) + MCFG_NEOGEO_CARTRIDGE_ADD("cartslot4", neogeo_cart, nullptr) + MCFG_NEOGEO_CARTRIDGE_ADD("cartslot5", neogeo_cart, nullptr) + MCFG_NEOGEO_CARTRIDGE_ADD("cartslot6", neogeo_cart, nullptr) + + MCFG_SOFTWARE_LIST_ADD("cart_list","neogeo") +MACHINE_CONFIG_END + + + +/* dummy entry for the dummy bios driver */ +ROM_START( neogeo ) + NEOGEO_BIOS + + ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + + ROM_REGION( 0x50000, "audiocpu", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x20000, "fixed", ROMREGION_ERASEFF ) + + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) + + ROM_REGION( 0x100000, "sprites", ROMREGION_ERASEFF ) +ROM_END + + +/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT */ +CONS( 1990, neogeo, 0, 0, mvs, neogeo_6slot, neogeo_state, mvs, "SNK", "Neo-Geo", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/neogeo0.cpp b/docs/release/src/hbmame/drivers/neogeo0.cpp new file mode 100644 index 00000000000..3e5dd15605b --- /dev/null +++ b/docs/release/src/hbmame/drivers/neogeo0.cpp @@ -0,0 +1,182 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + +/******************************************************************************/ + +#include "machine/watchdog.h" + +// set up a hbmame-specific derived class, instead of hacking into src/mame/includes/neogeo.h +class neogeo_hbmame : public neogeo_noslot_state +{ +public: + neogeo_hbmame(const machine_config &mconfig, device_type type, const char *tag) + : neogeo_noslot_state(mconfig, type, tag) + , m_kog_prot(*this, "kog_prot") + {} + + + DECLARE_DRIVER_INIT(cmc42sfix); + DECLARE_DRIVER_INIT(cmc50sfix); + DECLARE_DRIVER_INIT(cthd2k3a); + DECLARE_DRIVER_INIT(fr2ch); + DECLARE_DRIVER_INIT(garoud); + DECLARE_DRIVER_INIT(jckeygpd); + DECLARE_DRIVER_INIT(kof96ep); + DECLARE_DRIVER_INIT(kof97pla); + DECLARE_DRIVER_INIT(kof99bh); + DECLARE_DRIVER_INIT(kof99d); + DECLARE_DRIVER_INIT(kof2000d); + DECLARE_DRIVER_INIT(kof2000h); + DECLARE_DRIVER_INIT(kof2000m); + DECLARE_DRIVER_INIT(kof2kbsd); + DECLARE_DRIVER_INIT(kof2knd); + DECLARE_DRIVER_INIT(kof2kxxx); + DECLARE_DRIVER_INIT(kof2001d); + DECLARE_DRIVER_INIT(kof2001m); + DECLARE_DRIVER_INIT(kf2k1pls); + DECLARE_DRIVER_INIT(kf2k1pa); + DECLARE_DRIVER_INIT(kof2002d); + DECLARE_DRIVER_INIT(kof2002m); + DECLARE_DRIVER_INIT(kof2k2bd); + DECLARE_DRIVER_INIT(kof2k2dbh); + DECLARE_DRIVER_INIT(kof2k2h); + DECLARE_DRIVER_INIT(kof2k2lb); + DECLARE_DRIVER_INIT(kof2k2ps2a); + DECLARE_DRIVER_INIT(kof2003b); + DECLARE_DRIVER_INIT(kof2003d); + DECLARE_DRIVER_INIT(kof2k3br); + DECLARE_DRIVER_INIT(kof2k3d); + DECLARE_DRIVER_INIT(kof2k3hd); + DECLARE_DRIVER_INIT(kof2k3pcd); + DECLARE_DRIVER_INIT(kof10thu); + DECLARE_DRIVER_INIT(kogd); + DECLARE_DRIVER_INIT(matrima); + DECLARE_DRIVER_INIT(matrimd); + DECLARE_DRIVER_INIT(matrmehc); + DECLARE_DRIVER_INIT(mslug3d); + DECLARE_DRIVER_INIT(mslug3fr); + DECLARE_DRIVER_INIT(mslug3n); + DECLARE_DRIVER_INIT(mslug4d); + DECLARE_DRIVER_INIT(mslug4dh); + DECLARE_DRIVER_INIT(mslug4it); + DECLARE_DRIVER_INIT(mslug4m); + DECLARE_DRIVER_INIT(mslug5b); + DECLARE_DRIVER_INIT(mslug5d); + DECLARE_DRIVER_INIT(mslug5hd); + DECLARE_DRIVER_INIT(mslug5nd); + DECLARE_DRIVER_INIT(ms5pcbd); + DECLARE_DRIVER_INIT(mslug5d1); + DECLARE_DRIVER_INIT(mslug5fr1); + DECLARE_DRIVER_INIT(ms5boot); + DECLARE_DRIVER_INIT(pnyaad); + DECLARE_DRIVER_INIT(rotdb); + DECLARE_DRIVER_INIT(rotdd); + DECLARE_DRIVER_INIT(rotdnd); + DECLARE_DRIVER_INIT(samsh5sd); + DECLARE_DRIVER_INIT(samsho5d); + DECLARE_DRIVER_INIT(samsh5hd); + DECLARE_DRIVER_INIT(samsh5spd); + DECLARE_DRIVER_INIT(samsho5hd); + DECLARE_DRIVER_INIT(sengo3d); + DECLARE_DRIVER_INIT(shockt2w); + DECLARE_DRIVER_INIT(svcd); + DECLARE_DRIVER_INIT(svcd1); + DECLARE_DRIVER_INIT(svcpcd); + DECLARE_DRIVER_INIT(svcplusb); + DECLARE_DRIVER_INIT(svcplusd); +private: + optional_device<kog_prot_device> m_kog_prot; +}; + +DRIVER_INIT_MEMBER( neogeo_hbmame, cmc42sfix ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, cmc50sfix ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + + + +static MACHINE_CONFIG_DERIVED( no_watchdog, neogeo_noslot ) + MCFG_WATCHDOG_MODIFY("watchdog") + MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(0.0)) +MACHINE_CONFIG_END + + + + /* The Encrypted Boards do not have a s1 rom, data for it comes from the Cx ROMs */ +#define NEO_SFIX_MT_128K \ + ROM_Y_ZOOM \ + ROM_REGION( 0x20000, "fixedbios", 0 ) \ + ROM_LOAD( "sfix.sfix", 0, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \ + ROM_REGION( 0x20000, "fixed", ROMREGION_ERASE00 ) + +#define NEO_SFIX_MT_512K \ + ROM_Y_ZOOM \ + ROM_REGION( 0x20000, "fixedbios", 0 ) \ + ROM_LOAD( "sfix.sfix", 0, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \ + ROM_REGION( 0x80000, "fixed", ROMREGION_ERASE00 ) + +#define NEO_SFIX_256K(name, hash) \ + ROM_Y_ZOOM \ + ROM_REGION( 0x20000, "fixedbios", 0 ) \ + ROM_LOAD( "sfix.sfix", 0, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \ + ROM_REGION( 0x40000, "fixed", 0 ) \ + ROM_LOAD( name, 0x000000, 0x40000, hash ) + +// Specific for MSLUG hacks +#define NEO_SFIX_MSLUG(name, hash) \ + ROM_Y_ZOOM \ + ROM_REGION( 0x20000, "fixedbios", 0 ) \ + ROM_LOAD( "sfix.sfix", 0, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \ + ROM_REGION( 0x80000, "fixed", 0 ) \ + ROM_LOAD( name, 0x000000, 0x20000, hash ) \ + ROM_RELOAD( 0x020000, 0x20000 ) \ + ROM_RELOAD( 0x040000, 0x20000 ) \ + ROM_RELOAD( 0x060000, 0x20000 ) + +#define NEO_SFIX_2K(name, hash) \ + ROM_Y_ZOOM \ + ROM_REGION( 0x20000, "fixedbios", 0 ) \ + ROM_LOAD( "sfix.sfix", 0, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \ + ROM_REGION( 0x2000, "fixed", 0 ) \ + ROM_LOAD( name, 0x000000, 0x2000, hash ) + + + +/******************************************************************************/ + + +#include "neogeohb.cpp" +#include "neogeo1.cpp" +#include "kof94.cpp" +#include "kof95.cpp" +#include "kof96.cpp" +#include "kof97.cpp" +#include "kof98.cpp" +#include "kof99.cpp" +#include "kof2000.cpp" +#include "kof2001.cpp" +#include "kof2002.cpp" +#include "kof2003.cpp" +#include "mgd2.cpp" +#include "mslug.cpp" +#include "ngdoubledr.cpp" +#include "nggaroup.cpp" +#include "ngkofmisc.cpp" +#include "nglastblade.cpp" +#include "ngrbff.cpp" +#include "ngrotd.cpp" +#include "ngsamsho.cpp" +#include "ngsengoku.cpp" +#include "ngsvc.cpp" +#include "ngwh.cpp" + diff --git a/docs/release/src/hbmame/drivers/neogeo1.cpp b/docs/release/src/hbmame/drivers/neogeo1.cpp new file mode 100644 index 00000000000..86031698854 --- /dev/null +++ b/docs/release/src/hbmame/drivers/neogeo1.cpp @@ -0,0 +1,2563 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// Neogeo hacks that don't warrant their own file + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, jckeygpd) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + + /* install some extra RAM */ + m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, matrima ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, 0, 0, MATRIM_GFX_KEY); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, matrimd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, matrmehc ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, 0, 0, MATRIM_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, pnyaad ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 4); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, shockt2w ) +{ + DRIVER_INIT_CALL(neogeo); + UINT16 *mem16= (UINT16 *)memregion("mainbios"); + mem16[0x0200] = 1; /* Force home mode */ + /* Above causes checksum failure, so patch it out */ + mem16[0x11c62/2] = 0x4e71; + mem16[0x11c64/2] = 0x4e71; +} + + + +ROM_START( 2020bbcd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "030cd.p1", 0x000000, 0x080000, CRC(e13d8a8a) SHA1(3975bdf141abc4994c9fc1919fb4207883687961) ) + + NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) + + NEO_BIOS_AUDIO_64K( "030cd.m1", CRC(124d7b4f) SHA1(fd7bceacd0ec17cab7abb28ee8eab92217f9c197) ) + // use this to get full sound + //NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "030cd.v1", 0x000000, 0x100000, CRC(d725a649) SHA1(cd1206b7190e543f31eb878f645f3be841c5a4ed) ) + ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) + ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) + ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) + ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) +ROM_END + + +ROM_START( androdunpx ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "049px.p1", 0x000000, 0x080000, CRC(5f63193e) SHA1(7ba7bb8f9382ddd7b35601b8171a0e532c9dfe55) ) + ROM_LOAD16_WORD_SWAP( "049-p2.p2", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) ) + + NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) ) + + NEO_BIOS_AUDIO_128K( "049-m1.m1", CRC(edd2acf4) SHA1(c4ee6ba834d54b9fc5a854dbc41a05877e090371) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "049-v1.v1", 0x000000, 0x100000, CRC(ce43cb89) SHA1(47f82e077abb6efc6b1b0490412ae147d5d2acef) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "049-c1.c1", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) ) + ROM_LOAD16_BYTE( "049-c2.c2", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) ) +ROM_END + + +ROM_START( aofbh ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "044bh.p1", 0x000000, 0x080000, CRC(202a60d8) SHA1(f0caa8b6a18dff1b9568aaae552cf6d10a9db722) ) + + NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) + + NEO_BIOS_AUDIO_128K( "044-m1.m1", CRC(0987e4bb) SHA1(8fae4b7fac09d46d4727928e609ed9d3711dbded) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "044-v2.v2", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) ) + ROM_LOAD( "044-v4.v4", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "044-c1.c1", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) ) + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "044-c2.c2", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) ) + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "044-c3.c3", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) ) + ROM_CONTINUE( 0x600000, 0x100000 ) + ROM_LOAD16_BYTE( "044-c4.c4", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) ) + ROM_CONTINUE( 0x600001, 0x100000 ) +ROM_END + + +ROM_START( aof2b ) /* Art of Fighting 2 - Hack by TcwLee - (Can select Geese instead of Mr. Big) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "056b.p1", 0x000000, 0x100000, CRC(c3dc11f8) SHA1(7f92f4931ffdf2561b1a2741e18a4ae301df8497) ) + + NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) + + NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) + ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) + ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) + ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) + ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) + ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) + ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) + ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) + ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) + ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) +ROM_END + +ROM_START( aof2b1 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "056b1.p1", 0x000000, 0x100000, CRC(5d21dc39) SHA1(72df83c4249990386ced39749dd6994aa5a0b2a9) ) + + NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) + + NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) + ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) + ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) + ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) + ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) + ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) + ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) + ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) + ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) + ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) +ROM_END + +ROM_START( aof2bh ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "056bh.p1", 0x000000, 0x100000, CRC(3af1e484) SHA1(57b33dbb93d066092acddf163dbd67d15b5159e2) ) + + NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) + + NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) + ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) + ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) + ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) + ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) + ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) + ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) + ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) + ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) + ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) +ROM_END + +ROM_START( aof2br2 ) /* Art of Fighting 2 - Hack by TcwLee - (Can select Geese instead of Ryo) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "056br2.p1", 0x000000, 0x100000, CRC(02d068b7) SHA1(5aadebfd9a59e48be972c63dbf6c4cac32bba89a) ) + + NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) + + NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) + ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) + ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) + ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) + ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) + ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) + ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) + ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) + ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) + ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) +ROM_END + + +ROM_START( aof3b ) /* Art of Fighting 3 - Hack by Dodowang - (Can select Wyler and Sinclair AES/MVS - enabled add. info) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "096b.p1", 0x000000, 0x100000, CRC(255aec23) SHA1(9E97772CC2DB51139A04BAC725E6529DD6E0F19A) ) + ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) + + NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) + + NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) + ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) + ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) + ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) + ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) + ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) + ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) + ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) + ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) + ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) +ROM_END + +ROM_START( aof3bh ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "096bh.p1", 0x000000, 0x100000, CRC(70969ff1) SHA1(a17d17c451655e01db8d42c6edd31fd2917bd486) ) + ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) + + NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) + + NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) + ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) + ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) + ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) + ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) + ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) + ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) + ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) + ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) + ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) +ROM_END + + +ROM_START( bangbeadp ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "259-p1.p1", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "259p.s1", CRC(bb50fb2d) SHA1(7372939f328fb5e7d09c16985e09ae8c34702b0c) ) + + NEO_BIOS_AUDIO_128K( "259-m1.m1", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "259p.v1", 0x000000, 0x200000, CRC(e97b9385) SHA1(d213cae6cf5732b8ab1f8a8cf04afee5dfd9a260) ) + ROM_LOAD( "259p.v2", 0x200000, 0x200000, CRC(b0cbd70a) SHA1(fc7c8183f8ff9800e8aae7c8d44d962300058cfb) ) + ROM_LOAD( "259-v2.v2", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) ) + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "259p.c1", 0x000000, 0x200000, CRC(e3919e44) SHA1(54c722414b5a7ad311dc8ddf6fdda88535e829d1) ) + ROM_LOAD16_BYTE( "259p.c2", 0x000001, 0x200000, CRC(baf5a320) SHA1(ead3d81d9b4aeb45af4f9cb5c38157f2236b506c) ) + ROM_LOAD16_BYTE( "259p.c3", 0x400000, 0x100000, CRC(c8e52157) SHA1(f10f58e905c4cbaf182b20e63abe5364462133c5) ) + ROM_LOAD16_BYTE( "259p.c4", 0x400001, 0x100000, CRC(69fa8e60) SHA1(29c1fbdb79dedf1470683202e2cb3435732d9275) ) +ROM_END + + +ROM_START( bjourneypx ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "022px.p1", 0x000000, 0x100000, CRC(1e8b5847) SHA1(59bfff5d8459b24bd3d403a73440ced5c440fd2b) ) + + NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) ) + + NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) ) + ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) ) + ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) ) + ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) ) + ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) ) +ROM_END + + +ROM_START( breakersbh ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "230bh.p1", 0x100000, 0x100000, CRC(1d708f96) SHA1(92604d61ed4f6101bdbf6e4352ab28a292e9d0cf) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) ) + + NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) ) + ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) + ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) + ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) + ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) +ROM_END + +ROM_START( breakersp ) /* Breakers - Hack by UNKNOWN - (Move change 26c?) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "230p.p1", 0x100000, 0x100000, CRC(244ad91b) SHA1(22EFEA04BFB86E8C75A80C6584AB0CAA85FC0E92) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) ) + + NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) ) + ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) + ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) + ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) + ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) +ROM_END + +ROM_START( breakersy ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "230y.p1", 0x100000, 0x100000, CRC(e65b2b70) SHA1(a879fa3299240fa82560c140e32c0d046de9aadd) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) ) + + NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) ) + ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) + ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) + ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) + ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) +ROM_END + + +ROM_START( breakrevb ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "245-p1.p1", 0x100000, 0x100000, CRC(52c978b5) SHA1(892712457ba8c789b136b35ba423f5260c20b478) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) ) + + NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) ) + ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) ) + + ROM_REGION( 0x1800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) + ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) + ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) + ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) + ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) ) + ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) ) +ROM_END + +ROM_START( breakrevpp ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "245-p1.p1", 0x100000, 0x100000, CRC(a95c1ef2) SHA1(3d46ab9107eb353668711868b78b284e19ae04f6) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) ) + + NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) ) + ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) ) + + ROM_REGION( 0x1800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) + ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) + ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) + ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) + ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) ) + ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) ) +ROM_END + +ROM_START( breakrevy ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "245-p1.p1", 0x100000, 0x100000, CRC(bae71481) SHA1(df20a616754fe43706fdf55c7371c832dd23245d) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) ) + + NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) ) + ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) ) + + ROM_REGION( 0x1800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) + ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) + ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) + ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) + ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) ) + ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) ) +ROM_END + + +ROM_START( burningfhp ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "018hp.p1", 0x000000, 0x080000, CRC(da26031b) SHA1(44997a8c313356db48716bb007ab842473805d88) ) + + NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) + + NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) + ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) + ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) + ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) + ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) +ROM_END + + +ROM_START( ctomadaypx ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "249px.p1", 0x100000, 0x100000, CRC(734b3c0b) SHA1(5f08a3f509ea1fa56bf8b66d996f259380fecdaa) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "249-s1.s1", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) ) + + NEO_BIOS_AUDIO_128K( "249-m1.m1", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "249-v1.v1", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) ) + ROM_LOAD( "249-v2.v2", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "249-c1.c1", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) ) + ROM_LOAD16_BYTE( "249-c2.c2", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) ) +ROM_END + + +ROM_START( dragons1 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "336.p1", 0x000000, 0x080000, CRC(f25c71ad) SHA1(803fb6cd6a7ada59678ad901ff9788b1e54ddd0c) ) + ROM_LOAD16_BYTE( "336.p2", 0x000001, 0x080000, CRC(f353448c) SHA1(f0f966ca15d503e01b40e901765ff0888463b65d) ) + + //NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) + NEO_SFIX_128K( "336.s1", CRC(706477a7) SHA1(8cbee7f6832e7edd2dc792ca330420a6a984b879) ) + + NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) + ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) + ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "336.c1", 0x000000, 0x1000000, CRC(81821826) SHA1(b7c1a53e32633383675206a16c68f6f2ff984865) ) + ROM_LOAD16_BYTE( "336.c2", 0x000001, 0x1000000, CRC(3601d568) SHA1(800323e52f5d33b402f84d31850b42c688082d67) ) +ROM_END + + +ROM_START( eightmaneb ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "025eb.p1", 0x000000, 0x080000, CRC(6356e4b9) SHA1(c02fe3fe7c59592c464cba05183fe98b1ac13f54) ) + + NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) ) + + NEO_BIOS_AUDIO_128K( "025-m1.m1", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "025-v1.v1", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) ) + ROM_LOAD( "025-v2.v2", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "025-c1.c1", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) ) + ROM_LOAD16_BYTE( "025-c2.c2", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) ) + ROM_LOAD16_BYTE( "025-c3.c3", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) ) + ROM_LOAD16_BYTE( "025-c4.c4", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) ) +ROM_END + + +ROM_START( fightfevbs ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "060bs.p1", 0x000000, 0x080000, CRC(10bc5d92) SHA1(b0bc22f7ece6548512f7582678efe260487c6ed4) ) + ROM_LOAD16_WORD_SWAP( "060bs.p2", 0x080000, 0x080000, CRC(b0801d5f) SHA1(085746d8f5d271d5f84ccbb7f577193c391f88d4) ) + + NEO_SFIX_128K( "060bs.s1", CRC(7f012104) SHA1(f366dcc3923655dff16ec08a40d5fce22a84257d) ) + + NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) + ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) ) + + ROM_REGION( 0x0800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) + ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) + ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) + ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) +ROM_END + +ROM_START( fightfevk ) /* Fight Fever - Hack by UNKNOWN - (Kanji Patch) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "060-epr.sp2", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) ) + ROM_LOAD16_WORD_SWAP( "060k.p2", 0x080000, 0x080000, CRC(b0801d5f) SHA1(085746d8f5d271d5f84ccbb7f577193c391f88d4) ) + + NEO_SFIX_128K( "060k.s1", CRC(51eaac30) SHA1(BF587471680B2795F02D0C4175A07A3AF3543999) ) + + NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) + ROM_LOAD( "060k.v2", 0x200000, 0x100000, CRC(64470036) SHA1(eb2b34b3c01eb5c1a0a40cff6f4c0f2eee7bf7f2) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) + ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) + ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) + ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) +ROM_END + + +ROM_START( flipshotk ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "247k.p1", 0x000000, 0x080000, CRC(d2e7a7e3) SHA1(1ff4f070fcc658bbc7dc69e16c87f82d7392d100) ) + + NEO_SFIX_128K( "247-s1.s1", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) ) + + NEO_BIOS_AUDIO_128K( "247-m1.m1", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "247-v1.v1", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "247k.c1", 0x000000, 0x200000, CRC(1ccfeff9) SHA1(3575b84acca6ec0f26f4a0ad30a16c140e1c0b2e) ) + ROM_LOAD16_BYTE( "247k.c2", 0x000001, 0x200000, CRC(648cdd5d) SHA1(8a0aaf13e2539e48f9b0b18f8154aa50bf4bed2a) ) +ROM_END + + +ROM_START( galaxyfgb ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "078b.p1", 0x100000, 0x100000, CRC(6288cb4a) SHA1(8fb3c124664512f5aa5a8c75064605955b2e24fb) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) ) + + NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) ) + ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) ) + ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) + ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) + ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) + ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) + ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) + ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) + ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) + ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) +ROM_END + + +ROM_START( ganryud ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "252-p1.p1", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "252-m1.m1", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) ) + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "252-v1.v1", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "252d.c1", 0x0000000, 0x800000, CRC(6bf7605b) SHA1(6710cbc27d6ec35648f98f0ca541aaaeeffd0980) ) + ROM_LOAD16_BYTE( "252d.c2", 0x0000001, 0x800000, CRC(596792ce) SHA1(ad9c8f8b0e95396fade2b485d11a1b3d4cb65f37) ) +ROM_END + + +ROM_START( gowcaizrb ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "094b.p1", 0x100000, 0x100000, CRC(7d699c03) SHA1(f92f562e9bbb4b4eb1ac03e140bde4fd20fe41b2) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) + + NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) + ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) + ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) ) + ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) ) + ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) ) + ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) ) + ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) ) + ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) ) + ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) ) + ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) ) +ROM_END + +ROM_START( gowcaizrbs ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "094bs.p1", 0x100000, 0x100000, CRC(d4f37cc4) SHA1(deec8a0516ae2057551713098e81be53c751eff7) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) + + NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) + ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) + ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) ) + ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) ) + ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) ) + ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) ) + ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) ) + ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) ) + ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) ) + ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) ) +ROM_END + +ROM_START( gowcaizrrv ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "094rv.p1", 0x100000, 0x100000, CRC(0316a857) SHA1(8dbe033e3d3d6925c6187335acdd10369b274b46) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) + + NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) + ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) + ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) ) + ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) ) + ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) ) + ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) ) + ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) ) + ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) ) + ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) ) + ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) ) +ROM_END + +ROM_START( gowcaizry ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "094y.p1", 0x100000, 0x100000, CRC(c8f1f4ae) SHA1(95f9fec0e90380a93423f5291eafb2b5b837e397) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) + + NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) + ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) + ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) ) + ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) ) + ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) ) + ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) ) + ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) ) + ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) ) + ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) ) + ROM_LOAD16_BYTE( "094y.c8", 0xc00001, 0x200000, CRC(0d31dee6) SHA1(4979aa3daa7e490fbe39e7b3c70cbb2ef7551c5f) ) +ROM_END + + +ROM_START( gpilotscd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "020cd.p1", 0x000000, 0x100000, CRC(f139df88) SHA1(8a2ce01f83c3c529b3c823555e19f815e0a558b3) ) + + NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) + + NEO_BIOS_AUDIO_64K( "020cd.m1", CRC(08697f52) SHA1(670998421355ccfdc5e778123b9df54df4dcde76) ) + // use this to get full sound + //NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "020cd.v11", 0x000000, 0x100000, CRC(1285132c) SHA1(dad570624888550937ea15180c9ceb5fcdb418b8) ) + ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) + ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) + ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) + ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) +ROM_END + +ROM_START( gpilotse ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "020eh.p1", 0x000000, 0x080000, CRC(80d6950e) SHA1(c83e119c316b9c5d86e06fff598b1be7e2cc53a5) ) + ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) + + NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) + + NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) + ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) + + ROM_REGION( 0x080000, "ym.deltat", 0 ) + ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) + ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) + ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) + ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) +ROM_END + +ROM_START( gpilotspx ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "020px.p1", 0x000000, 0x080000, CRC(69c5532d) SHA1(8ee19e1f06f9168b0fa4dfece569e79a50fec259) ) + ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) + + NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) + + NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) + ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) + ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) + ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) + ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) +ROM_END + + +ROM_START( ironcladb ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "220b.p1", 0x000000, 0x200000, CRC(65849961) SHA1(2846081bb1451a209412159991bfac95d394fe3a) ) + + NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) ) + + NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "220b.c1", 0x000000, 0x800000, CRC(621f4a09) SHA1(117a8e8bea5f880d8315b48bc5884eb805c5e678) ) + ROM_LOAD16_BYTE( "220b.c2", 0x000001, 0x800000, CRC(7fec83e8) SHA1(769c2cb4ed4a9d7c29e3aad3f4601f1d24c96640) ) +ROM_END + +ROM_START( ironcladcd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "220cd.p1", 0x00000, 0xd4000, CRC(cf9257b0) SHA1(2a2742865862d313b5d856e5b500b56b36336ecd) ) + + NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) ) + + NEO_BIOS_AUDIO_64K( "220cd.m1", CRC(b4d7cab0) SHA1(23342f72595f9d460f2e94fbda437ba1364bb5ed) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "220cd.v1", 0x000000, 0x100000, CRC(f7fd9baa) SHA1(a9362d405705f03a1759c2034df0c48daa15b71d) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) ) + ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) ) + ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) ) + ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) ) +ROM_END + + +ROM_START( jockeygpd ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "008-epr.p1", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) ) + ROM_FILL( 0x100000, 0x100000, 0xff ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) ) + + ROM_REGION( 0x0200000, "ymsnd", 0 ) + ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "008d.c1", 0x0000000, 0x800000, CRC(ea259019) SHA1(c14dc59a43e255ef12d8d832b2860f1a84c48170) ) + ROM_LOAD16_BYTE( "008d.c2", 0x0000001, 0x800000, CRC(97f270be) SHA1(06e03b26bacb8568c69ccf22e58175426a69e01b) ) +ROM_END + + +ROM_START( joyjoycd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "021cd.p1", 0x000000, 0x080000, CRC(a483fde0) SHA1(c42a04f5fec60678cbe20bc77675e0128aadf31c) ) + + NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) + + NEO_BIOS_AUDIO_64K( "021cd.m1", CRC(e93556ad) SHA1(616fac84ec2fa80ef8f43fcf993a3186d43a96eb) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "021cd.v1", 0x000000, 0x080000, CRC(241235cd) SHA1(bc4992dde75134c934f6374f370d1831c8160633) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) ) + ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) ) +ROM_END + +ROM_START( joyjoycd1 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "021cd.p1", 0x000000, 0x080000, CRC(a483fde0) SHA1(c42a04f5fec60678cbe20bc77675e0128aadf31c) ) + + NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) + + NEO_BIOS_AUDIO_64K( "021cd1.m1", CRC(72072960) SHA1(83c70714fc458e78f39836b3a86a9b07a553bcdd) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "021cd1.v11", 0x000000, 0x080000, CRC(4fb2fbcc) SHA1(b1defbfd68eb824468c352c91e98d2fc4fba539d) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) ) + ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) ) +ROM_END + + +ROM_START( kabukiklb ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "092b.p1", 0x100000, 0x100000, CRC(9e814a43) SHA1(75f764d19274fefb990e63ae5b6e207370ee4f75) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) + + NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) + ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) + ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) + ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) + ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) + ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) + ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) +ROM_END + +ROM_START( kabukikleh ) /* Kabuki Klash - Far East of Eden - Enhance by Ydmis - (Can choose Manto, Karakuri, Jyashinsai and Lucifeller) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "092eh.p1", 0x100000, 0x100000, CRC(bcf0f989) SHA1(91D493486A2BE79817D31E75A192079497A45360) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) + + NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) + ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) + ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) + ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) + ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) + ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) + ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) +ROM_END + +ROM_START( kabukiklgm ) /* Kabuki Klash - Far East of Eden - Colour fix by Flycboy - (Title screen colour change - character color change) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "092gm.p1", 0x100000, 0x100000, CRC(af1f9201) SHA1(22C3B71608DAD065C09C01FFAE24382F8DDAE7D6) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) + + NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) + ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) + ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) + ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) + ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) + ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) + ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) +ROM_END + +ROM_START( kabukiklgmc ) /* Kabuki Klash - Far East of Eden - Colour fix by Flycboy - (Title screen colour change - character colour change) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "092gmc.p1", 0x100000, 0x100000, CRC(928aa6ce) SHA1(98D6EA9A3C1976B2311F395F2CC9ACEDBB5226EB) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) + + NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) + ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) + ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) + ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) + ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) + ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) + ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) +ROM_END + +ROM_START( kabukiklmc ) /* Kabuki Klash - Far East of Eden - Enhance by Creamymami - (Magic always max) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "092mc.p1", 0x100000, 0x100000, CRC(4807f850) SHA1(DE0094B2DAF59F46ACA1ACB5E84BF142D6A559AD) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) + + NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) + ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) + ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) + ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) + ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) + ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) + ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) +ROM_END + +ROM_START( kabukiklyc ) /* Kabuki Klash - Far East of Eden - Enhance by Creamymami and Ydmis - (Can choose Manto, Karakuri, Jyashinsai and Lucifeller - magic is always max - based on kabukleh) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "092yc.p1", 0x100000, 0x100000, CRC(dc1b9aae) SHA1(8B10ADF0B6192CEA555AB373E9716FAF64DCD897) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) + + NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) + ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) + ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) + ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) + ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) + ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) + ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) +ROM_END + + +ROM_START( karnovreh ) /* Karnov's Revenge - Enhance by Ydmis - (Can choose Big Tornado) */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "066eh.p1", 0x000000, 0x100000, CRC(76dfb5be) SHA1(E7B72C50C5ABC1CF8088FB18A40560B787F5284E) ) + + NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) ) + + NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) ) + ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) ) + ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) ) + ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) ) + ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) ) + ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) ) +ROM_END + + +ROM_START( kizunaeh ) /* Kizuna Encounter - (kizunaeh) - Enhance by Ydmis - (Can choose 2 hidden characters) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "216eh.p1", 0x100000, 0x100000, CRC(a4ccd402) SHA1(038539BF889AF6186BB81DB330E6DBDF06F64FA8) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) ) + + NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) + ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) ) + ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) + ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) + ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) + ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) ) + ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) ) + ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) + ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) + ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) + ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) +ROM_END + + +ROM_START( lans2k4d ) /* Bootleg / Hack of Shock Troopers - 2nd Squad */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "246lnsq.p1", 0x000000, 0x100000, CRC(724576EA) SHA1(075f5d8ccb7303c8b6bebf630c4fa9c204554044) ) + ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) ) + + NEO_SFIX_128K( "246lnsq.s1", CRC(8699c63a) SHA1(d1a0345bcb4e3f6044c93abd52ff6fe6280dc5ee) ) + + NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) ) + ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) ) + ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) ) + ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) ) + ROM_LOAD16_BYTE( "246lnsq.c3", 0x1000000, 0x800000, CRC(b28d702a) SHA1(21d70c94ecf9ca519b4e50e2d31620f6dfab9ad0) ) + ROM_LOAD16_BYTE( "246lnsq.c4", 0x1000001, 0x800000, CRC(da10dd64) SHA1(55bf0922a117325ef6479f654caf13b287a16f67) ) + ROM_LOAD16_BYTE( "246lnsq.c5", 0x2000000, 0x800000, CRC(bab3b417) SHA1(232f718fecf597434b7a93602387fabab2bda9c0) ) + ROM_LOAD16_BYTE( "246lnsq.c6", 0x2000001, 0x800000, CRC(4c089a28) SHA1(f854ce46b4723aa971de280007268d474d2a6361) ) +ROM_END + + +ROM_START( lbowlingcd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "019cd.p1", 0x000000, 0x040000, CRC(c17fd30f) SHA1(908b045542bb575ac05f208a6595ab49c5ca5c0f) ) + + NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) ) + + //NEO_BIOS_AUDIO_64K( "019cd.m1", CRC(f65cb876) SHA1(6c26f400b2fce5fc8f3d533d275622a274982edc) ) // this has bugs and so there's no sound + NEO_BIOS_AUDIO_128K( "019-m1.m1", CRC(d568c17d) SHA1(a2e318ed6ad1809c79f3f0853d75e0dd1a2f275c) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + //ROM_LOAD( "019cd.v1", 0x000000, 0xf5400, CRC(37ff1111) SHA1(ff964981cff279e32da3c583a95912d5ffb5ab22) ) // doesn't match to 019-m1.m1 + ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) ) + ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "019-c1.c1", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) ) + ROM_LOAD16_BYTE( "019-c2.c2", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) ) +ROM_END + + +ROM_START( matrima ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "266a.p1", 0x000000, 0x100000, CRC(1e59c746) SHA1(9a6cdb6c56d5a80e373bb5ec476f1e7c3b3fbba9) ) + ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) ) + + NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) ) + + NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) ) + ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) ) + ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) ) + ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) ) + ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) ) + ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) ) + ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) ) + ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) ) + ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) ) + ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) ) + ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) ) +ROM_END + +ROM_START( matrimd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) ) + ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) ) + ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) ) + ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) ) + ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) ) + ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) ) + ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) ) + ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) ) + ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) ) + ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) ) +ROM_END + +ROM_START( matrimdh ) /* Matrimelee - Hack by Dodowang - (Can choose Sissy, Jimmy, Jones, Lynn and Elias) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "266dh.p1", 0x000000, 0x100000, CRC(70815d65) SHA1(d75a47e8dd02d19730a7a347849f92b6723f4ca7) ) + ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) ) + ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) ) + ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) ) + ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) ) + ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) ) + ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) ) + ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) ) + ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) ) + ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) ) +ROM_END + +ROM_START( matrimeh ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "266eh.p1", 0x000000, 0x100000, CRC(e3b05e78) SHA1(8cbf3fe47c8afedb4ea7dcf5809acf7e5e858aba) ) + ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) ) + + NEO_SFIX_256K( "266eh.s1", CRC(31c02ff8) SHA1(f4096d0b39a2fd682c0b3be435098ed8de990f8b) ) + + NEO_BIOS_AUDIO_128K( "266eh.m1", CRC(f692d84b) SHA1(a3737c574e779e0330916a2eea6ad5b3839f9538) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "266eh-v1d.bin", 0x000000, 0x800000, CRC(328b2194) SHA1(6734da4f1e882a8524c04ff375567ed96a2dae5e) ) + ROM_LOAD( "266eh-v2d.bin", 0x800000, 0x800000, CRC(2a13562d) SHA1(dc13f1af6afaf43f2ac20b7cf1c751a047450312) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) ) + ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) ) + ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) ) + ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) ) + ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) ) + ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) ) + ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) ) + ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) ) +ROM_END + +ROM_START( matrimehc ) /* Matrimelee - Enhance by Creamymami - (Power always max - MVS protection removed) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "266ehc.p1", 0x000000, 0x100000, CRC(090fbe25) SHA1(83088d3982501320937a3df66ba883582e84224e) ) + ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) ) + ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) ) + ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) ) + ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) ) + ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) ) + ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) ) + ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) ) + ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) ) + ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) ) +ROM_END + +ROM_START( matrimnd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "266nd.p1", 0x000000, 0x100000, CRC(d07b4032) SHA1(d9878ac13c8c374d496317359038b4a53c6f1872) ) + ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) ) + + NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) ) + + NEO_BIOS_AUDIO_128K( "266eh.m1", CRC(f692d84b) SHA1(a3737c574e779e0330916a2eea6ad5b3839f9538) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "266eh-v1d.bin", 0x000000, 0x800000, CRC(328b2194) SHA1(6734da4f1e882a8524c04ff375567ed96a2dae5e) ) + ROM_LOAD( "266eh-v2d.bin", 0x800000, 0x800000, CRC(2a13562d) SHA1(dc13f1af6afaf43f2ac20b7cf1c751a047450312) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) ) + ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) ) + ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) ) + ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) ) + ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) ) + ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) ) + ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) ) + ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) ) +ROM_END + + +ROM_START( magdrop3fr ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "233fr.p1", 0x000000, 0x100000, CRC(ed90bb10) SHA1(eb22b362475ef294307357abf6c31a1ff2229f4a) ) + + NEO_SFIX_128K( "233-s1.s1", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) ) + + NEO_BIOS_AUDIO_128K( "233-m1.m1", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) ) + + ROM_REGION( 0x480000, "ymsnd", 0 ) + ROM_LOAD( "233-v1.v1", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) ) + ROM_LOAD( "233-v2.v2", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "233fr.c1", 0x000000, 0x400000, CRC(b10223f2) SHA1(d99565751bdde47cae4c5bb5fac32a0b80bae2b9) ) + ROM_LOAD16_BYTE( "233fr.c2", 0x000001, 0x400000, CRC(39c0f4b8) SHA1(a09c20c12d418e938ce84ea87d3d8bbb3007563c) ) + ROM_LOAD16_BYTE( "233-c3.c3", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) ) + ROM_LOAD16_BYTE( "233-c4.c4", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) ) +ROM_END + + +ROM_START( miexchngfr ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "231fr.p1", 0x000000, 0x80000, CRC(a107101b) SHA1(f1a165779a4a26d7c9067b649fdcb7da40f3aea6) ) + + NEO_SFIX_128K( "231-s1.s1", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) ) + + NEO_BIOS_AUDIO_128K( "231-m1.m1", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "231-v1.v1", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) ) + + ROM_REGION( 0x500000, "sprites", 0 ) + ROM_LOAD16_BYTE( "231fr.c1", 0x000000, 0x200000, CRC(0764d51c) SHA1(06a63359e5859d30ae5a8e2beed5a7615563298a) ) + ROM_LOAD16_BYTE( "231fr.c2", 0x000001, 0x200000, CRC(6a2acd38) SHA1(bc35e7f9898ed6d7fd9ce43d4a4be91a81d0bd04) ) + ROM_LOAD16_BYTE( "231fr.c3", 0x400000, 0x080000, CRC(14524eb5) SHA1(e090b99a1ee2cca4a7f7d5262e764d1cab6bada2) ) + ROM_LOAD16_BYTE( "231fr.c4", 0x400001, 0x080000, CRC(1694f171) SHA1(a6af5d3f1e0b3f73da275e04d4434c6c9c7b9208) ) +ROM_END + + +ROM_START( mutnatex ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "014ex.p1", 0x000000, 0x080000, CRC(2fe45544) SHA1(e55445f5a31c11bc11d74d040f8c4e605a7d4d36) ) + + NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) ) + + NEO_BIOS_AUDIO_128K( "014-m1.m1", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "014-v1.v1", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) ) + ROM_LOAD( "014-v2.v2", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "014-c1.c1", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) ) + ROM_LOAD16_BYTE( "014-c2.c2", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) ) + ROM_LOAD16_BYTE( "014-c3.c3", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) ) + ROM_LOAD16_BYTE( "014-c4.c4", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) ) +ROM_END + + +ROM_START( nam1975g ) // sound effects only, no music no voices + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "001g.p1", 0x000000, 0x100000, CRC(b8bf8b43) SHA1(b5de430d9e13ce82b761d566916329752e84424a) ) + + NEO_SFIX_128K( "001-s1.s1", CRC(7988ba51) SHA1(bc2f661f381b06b34ac2fa215dd5689d3bf84832) ) + + NEO_BIOS_AUDIO_64K( "001g.m1", CRC(afd04078) SHA1(a75833cd26442297ee35de302c186aa193fdb0ed) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) // weapons fire + ROM_LOAD( "001g.v1", 0x000000, 0x100000, CRC(dd5b3adc) SHA1(09b75fa1b2dc7704952cd371e440ea8771068633) ) + + ROM_REGION( 0x180000, "ymsnd.deltat", 0 ) // voices + ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) + ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) ) + ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) ) + ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) ) + ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) ) + ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) ) + ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) ) + ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) ) +ROM_END + +ROM_START( nam1975h ) // infinite lives + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "001h.p1", 0x000000, 0x080000, CRC(908a4fd0) SHA1(37ffc705ee772a1a25e77ff8696750a78dacc7f7) ) + + NEO_SFIX_64K( "001h.s1", CRC(8ded55a5) SHA1(27c8ffac16fbcc19c843d1b5b47ae8d8ef83d44a) ) + + NEO_BIOS_AUDIO_64K( "001h.m1", CRC(cd088502) SHA1(939f745cd576905f326e6246a2eed78e9fa88178) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) ) + + ROM_REGION( 0x180000, "ymsnd.deltat", 0 ) + ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) + ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) ) + ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) ) + ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) ) + ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) ) + ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) ) + ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) ) + ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) ) +ROM_END + + +ROM_START( neocup98k ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "244-p1.p1", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "244k.s1", CRC(becb9e7a) SHA1(b40e0ee79ab234ab2162d735d66aafa63f9d7477) ) + + NEO_BIOS_AUDIO_128K( "244-m1.m1", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "244-v1.v1", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) ) + ROM_LOAD( "244-v2.v2", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "244k.c1", 0x000000, 0x800000, CRC(9067dfda) SHA1(034c0e21ece55df30357d7abfb7cb05994e9b131) ) + ROM_LOAD16_BYTE( "244k.c2", 0x000001, 0x800000, CRC(54e86379) SHA1(e76f27b5cf2ab7ed00a8abfe2e2397394c51dac5) ) +ROM_END + + +ROM_START( ninjamaseh ) /* Ninja Master's - Enhance by Ydmis - (Can choose Ranmaru and Nobunaga) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "217eh.p1", 0x000000, 0x100000, CRC(2cb6c199) SHA1(a7ad5bd0e827e8cece9d3447045a63fddee94385) ) + ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) ) + + NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) ) + + NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) ) + ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) ) + ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) ) + ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) ) + ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) ) + ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) ) + ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) ) + ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) ) + ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) ) +ROM_END + +ROM_START( ninjamasehc ) /* Ninja Master's - Enhance by Creamymami - (Power hack) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "217ehc.p1", 0x000000, 0x100000, CRC(8b88e675) SHA1(d16dad0d05282b577fabf3bd187ac3b8d4ddfa57) ) + ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) ) + + NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) ) + + NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) ) + ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) ) + ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) ) + ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) ) + ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) ) + ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) ) + ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) ) + ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) ) + ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) ) +ROM_END + +ROM_START( ninjamasehyc ) /* Ninja Master's - Enhance by Creamymami and Ydmis - (Can choose Ranmaru and Nobunaga - power hack) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "217ehyc.p1", 0x000000, 0x100000, CRC(99a9ca85) SHA1(25d3995f9669072b17718169693dc5c4fed0c9f2) ) + ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) ) + + NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) ) + + NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) ) + ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) ) + ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) ) + ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) ) + ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) ) + ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) ) + ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) ) + ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) ) + ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) ) +ROM_END + +ROM_START( ninjamasha ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "217ha.p1", 0x000000, 0x100000, CRC(45332f39) SHA1(6689c3de46d199aa32814f773d04ab558b30e98d) ) + ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) ) + + NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) ) + + NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) ) + ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) ) + ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) ) + ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) ) + ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) ) + ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) ) + ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) ) + ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) ) + ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) ) +ROM_END + + +ROM_START( nitdd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "260-p1.p1", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "260d.c1", 0x0000000, 0x800000, CRC(f3ff4953) SHA1(0e54548387f3056088e89086a30da05935d08b24) ) + ROM_LOAD16_BYTE( "260d.c2", 0x0000001, 0x800000, CRC(f1e49faa) SHA1(2a771e318423addd9daae3a9af200de2c70f4021) ) +ROM_END + +ROM_START( nitdfr ) /* Nightmare in the Dark - Translation Hack by NEO-ARC - (French translation) */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "260fr.p1", 0x000000, 0x080000, CRC(aa52c3cf) SHA1(f098aa068ee365fa7af9c638bc09eb82396e1749) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "260fr.c1", 0x0000000, 0x800000, CRC(7c469419) SHA1(06a45016c9493b85fbb8d9ebd33409a0d933ed22) ) + ROM_LOAD16_BYTE( "260fr.c2", 0x0000001, 0x800000, CRC(74ada44f) SHA1(77d051a3522d2c658ef4790ddeac0271e9490fd2) ) +ROM_END + +ROM_START( nitdfro ) /* Nightmare in the Dark - Translation Hack Older? */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "260fro.p1", 0x000000, 0x080000, CRC(b294c6ce) SHA1(77f641c05a645e8d57014540ef1b7f52c4a8849b) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "260fro.c1", 0x0000000, 0x800000, CRC(14c5a25f) SHA1(8b29f7e6920eb1b4a7dc42a063e4c8e6ec9a5700) ) + ROM_LOAD16_BYTE( "260fro.c2", 0x0000001, 0x800000, CRC(6630c255) SHA1(c8a77a3d6e17e1ed64eb6b1e85172567e7e3e71c) ) +ROM_END + +ROM_START( nitdfro1 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "260fro.p1", 0x000000, 0x080000, CRC(b294c6ce) SHA1(77f641c05a645e8d57014540ef1b7f52c4a8849b) ) + + NEO_SFIX_128K( "260fro1.s1", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) ) + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "260-c1fr.bin", 0x0000000, 0x800000, CRC(14c5a25f) SHA1(8b29f7e6920eb1b4a7dc42a063e4c8e6ec9a5700) ) + ROM_LOAD16_BYTE( "260-c2fr.bin", 0x0000001, 0x800000, CRC(6630c255) SHA1(c8a77a3d6e17e1ed64eb6b1e85172567e7e3e71c) ) +ROM_END + +ROM_START( nitdsp ) /* Nightmare in the Dark - Translation Hack by UNKNOWN - (Spanish language hack) */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "260sp.p1", 0x000000, 0x080000, CRC(0ab6d623) SHA1(c508e92d0ed3f600dffe41d2f815d16bb377dace) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) ) + ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) ) +ROM_END + +ROM_START( nitdsp1 ) /* Nightmare in the Dark - Translation Hack by UNKNOWN - (Spanish language hack) */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "260sp1.p1", 0x000000, 0x080000, CRC(42b69e41) SHA1(cb814190d96ef67096ee9f4f305611d870a76e93) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "260sp1.c1", 0x0000000, 0x800000, CRC(3f7fbd0c) SHA1(2e6cedcb099ae8f5bbdb9d989ca3918d7fb0504f) ) + ROM_LOAD16_BYTE( "260sp1.c2", 0x0000001, 0x800000, CRC(b5ddbb97) SHA1(b44dee65bbb5b2c6d7c6d4990762b26deaf3c696) ) +ROM_END + +ROM_START( nitdsp2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "260sp1.p1", 0x000000, 0x080000, CRC(42b69e41) SHA1(cb814190d96ef67096ee9f4f305611d870a76e93) ) + + NEO_SFIX_128K( "260fro1.s1", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) ) + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "260-c1sp.bin", 0x0000000, 0x800000, CRC(3f7fbd0c) SHA1(2e6cedcb099ae8f5bbdb9d989ca3918d7fb0504f) ) + ROM_LOAD16_BYTE( "260-c2sp.bin", 0x0000001, 0x800000, CRC(b5ddbb97) SHA1(b44dee65bbb5b2c6d7c6d4990762b26deaf3c696) ) +ROM_END + + +ROM_START( pbobblenba ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "083b.p1", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) ) + + NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) + + NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) + + ROM_REGION( 0x380000, "ymsnd", 0 ) + ROM_LOAD( "083b.v1", 0x200000, 0x080000, CRC(f8872aed) SHA1(73685980253093b4f148cb38b6a47476fb2a61aa) ) + ROM_LOAD( "083b.v2", 0x280000, 0x080000, CRC(5c8cf5fe) SHA1(97d74466ac48708d7f4004524288dd2f32f17793) ) + ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) + ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) +ROM_END + +ROM_START( pbobblencd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "083cd.p1", 0x000000, 0x040000, CRC(b1095646) SHA1(20fa2bc724df4b5234ff0ccf3074e545f28d1bbd) ) + + NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) + + NEO_BIOS_AUDIO_64K( "083cd.m1", CRC(c505fcdb) SHA1(2b3e10e1475c7c1425b382be30c765e455c5bbc6) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) ) + ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) + ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) +ROM_END + +ROM_START( pbcrazyb1 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "462b1.p1", 0x000000, 0x038db2, CRC(008dd79a) SHA1(1c05d442fb19c3e60257592874737585c9b58b31) ) + + NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) + + NEO_BIOS_AUDIO_64K( "462.m1", CRC(5e378316) SHA1(fa9a904583e00614762ad91bab83e86d52237777) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) ) + ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "462b1.c1", 0x000000, 0x68000, CRC(58ac4d8e) SHA1(4a6a8b914a2f2918675ee2ad358d5ccaa867915a) ) + ROM_LOAD16_BYTE( "462b1.c2", 0x000001, 0x68000, CRC(bc37b7fb) SHA1(d24012bca3dd77150998ae1a69d544d29e607eee) ) +ROM_END + +ROM_START( pbcrazyb2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "462b2.p1", 0x000000, 0x038db2, CRC(6a3227ff) SHA1(45e9006edcb44c208ee1e8221f47158d6a749667) ) + + NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) + + NEO_BIOS_AUDIO_64K( "462.m1", CRC(5e378316) SHA1(fa9a904583e00614762ad91bab83e86d52237777) ) + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) ) + ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "462b2.c1", 0x000000, 0x68000, CRC(b50a9e06) SHA1(d9f7aaddc6e48518a4ad332e718847001b5e3330) ) + ROM_LOAD16_BYTE( "462b2.c2", 0x000001, 0x68000, CRC(427422db) SHA1(e7fed9ae3ce9c61dd85a0adafc51af727acba37d) ) +ROM_END + +ROM_START( pbobblendx ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "083dx.p1", 0x000000, 0x040000, CRC(5ed56e87) SHA1(b927c9fd907f90e1b5556c96f22b5245b23f07a6) ) + + NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) + + NEO_BIOS_AUDIO_64K( "083dx.m1", CRC(129e6054) SHA1(4edd18c44759e7a140705f1544413c649131c551) ) + + ROM_REGION( 0x380000, "ymsnd", 0 ) + ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) + ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) + ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) +ROM_END + +ROM_START( pbobblenh ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "083p.p1", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) ) + + NEO_SFIX_128K( "083-s1.bin", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) + + NEO_BIOS_AUDIO_128K( "083p.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) + + ROM_REGION( 0x380000, "ymsnd", 0 ) + ROM_LOAD( "083-v1.bin", 0x200000, 0x080000, CRC(f8872aed) SHA1(73685980253093b4f148cb38b6a47476fb2a61aa) ) + ROM_LOAD( "083-v2.bin", 0x280000, 0x080000, CRC(5c8cf5fe) SHA1(97d74466ac48708d7f4004524288dd2f32f17793) ) + ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "083-c5.bin", 0x000000, 0x080000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) + ROM_LOAD16_BYTE( "083-c6.bin", 0x000001, 0x080000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) +ROM_END + + +ROM_START( pnyaad ) /* Decrypted C ROMs Version - Encrypted Sound */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "267-p1.p1", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "267d.c1", 0x0000000, 0x800000, CRC(75fa4f27) SHA1(05f39dc5bedfecff67a9e5bd0bb8d09d93168f58) ) + ROM_LOAD16_BYTE( "267d.c2", 0x0000001, 0x800000, CRC(02345689) SHA1(d40c425e73fd8dc0b0f66bf72a79f66b3bf390e1) ) +ROM_END + + +ROM_START( preisle2d ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "255-p1.p1", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) ) + ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) ) + + ROM_REGION( 0x0600000, "ymsnd", 0 ) + ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) ) + ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "255d.c1", 0x0000000, 0x800000, CRC(50fd785e) SHA1(97e03925f3060df4cfa576b6d2c2000952990530) ) + ROM_LOAD16_BYTE( "255d.c2", 0x0000001, 0x800000, CRC(ab913f1e) SHA1(e3413d40dc4a2240ff0302eb9eff4cc64895b6ef) ) + ROM_LOAD16_BYTE( "255d.c3", 0x1000000, 0x800000, CRC(bc0ee75c) SHA1(50c01b97d5457c2c1b8df8c0c7eda69384dea78b) ) + ROM_LOAD16_BYTE( "255d.c4", 0x1000001, 0x800000, CRC(29908823) SHA1(2a40263f3866c06eecc209faeea7ced6641ed918) ) + ROM_LOAD16_BYTE( "255d.c5", 0x2000000, 0x800000, CRC(83c56bca) SHA1(54bec4cce628bef3b87bbd6c0339494232a9516b) ) + ROM_LOAD16_BYTE( "255d.c6", 0x2000001, 0x800000, CRC(59e0e805) SHA1(0d9c9b52bb0672fe70ffbb2780a9449f6a7f0984) ) +ROM_END + + +ROM_START( pspikes2cd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "068cd.p1", 0x000000, 0x100000, CRC(3920534c) SHA1(24e12b41b79145e4f3defaba7f77d1a57ffb8927) ) + + //NEO_SFIX_128K( "068-sg1.s1", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) ) + NEO_SFIX_128K( "068cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) ) // used in many builds for fr2cd/fr2ch + + NEO_BIOS_AUDIO_64K( "068cd.m1", CRC(cddc55db) SHA1(6a80c26490bbdeaddf608522c69f4cd16ba74533) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "068cd.v1", 0x000000, 0x100000, CRC(850ee5a0) SHA1(600a75da9b0f657df75e2d9300cfa08116a8be85) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "068cd.c1", 0x000000, 0x100000, CRC(d380883b) SHA1(0625cddb4e2fcbd3c764732a197d963299bd7d99) ) + ROM_LOAD16_BYTE( "068cd.c2", 0x000001, 0x100000, CRC(9a5ad954) SHA1(4266760d2b6f2b7ef6e593c679b1639ec377e56b) ) + ROM_LOAD16_BYTE( "068cd.c3", 0x200000, 0x100000, CRC(13d8a7f0) SHA1(5e7c35afe1984c67ed03f33ce22e7546861d63e6) ) + ROM_LOAD16_BYTE( "068cd.c4", 0x200001, 0x100000, CRC(ca5af0be) SHA1(be47412b97413d3d36d4cb1acfc9fa252eb7dd70) ) +ROM_END + + +ROM_START( ragnagrdeh ) /* Operation Ragnagard - Enhance by Ydmis - (Can choose Lucifer, Eelis and Behemoth) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "218eh.p1", 0x100000, 0x100000, CRC(fb1e20df) SHA1(f8436078fe3dd495b6f513d9d42f6a42ed264d41) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) ) + + NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) ) + ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) ) + ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) ) + ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) ) + ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) ) + ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) ) + ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) ) + ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) ) + ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) ) +ROM_END + + +ROM_START( roboarma ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "032a.p1", 0x000000, 0x080000, CRC(27c773cb) SHA1(597ca73f142b1129cc7780540bb9cfacd47bc6ce) ) + + NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) + + NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) + ROM_LOAD( "032-v2.v2", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "032-c1.c1", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) ) + ROM_LOAD16_BYTE( "032-c2.c2", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) ) + ROM_LOAD16_BYTE( "032-c3.c3", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) ) + ROM_LOAD16_BYTE( "032-c4.c4", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) ) +ROM_END + + +ROM_START( s1945pd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "254-p1.p1", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) ) + ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) ) + ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) ) + ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) ) + ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "254d.c1", 0x0000000, 0x800000, CRC(7b6902f9) SHA1(c974a3cd84fa15d5ae7c9053adbb004a9aa902cd) ) + ROM_LOAD16_BYTE( "254d.c2", 0x0000001, 0x800000, CRC(51bd4252) SHA1(5a99563de1d83b7cd1d7ca7a50c71d5f30439276) ) + ROM_LOAD16_BYTE( "254d.c3", 0x1000000, 0x800000, CRC(a38993e4) SHA1(0bd3bcecf17abfda7da997e348fe3b0e7a66a828) ) + ROM_LOAD16_BYTE( "254d.c4", 0x1000001, 0x800000, CRC(d5696530) SHA1(15cbdaa729b8dd4d2489157d778379cfb0f79e51) ) + ROM_LOAD16_BYTE( "254d.c5", 0x2000000, 0x800000, CRC(28764bd6) SHA1(21158ea89dd88abd7f73b4513b699089f7944ba5) ) + ROM_LOAD16_BYTE( "254d.c6", 0x2000001, 0x800000, CRC(9931bdf1) SHA1(fa95fd8621403684e09f01a89f8df9ae2fa7de76) ) + ROM_LOAD16_BYTE( "254d.c7", 0x3000000, 0x800000, CRC(6e12afcd) SHA1(ef45d9b923ec937f9c207cd50d917f0ded5b8faf) ) + ROM_LOAD16_BYTE( "254d.c8", 0x3000001, 0x800000, CRC(178d4684) SHA1(3cbf379209c189ee48260a044dc2754035f57e14) ) +ROM_END + +ROM_START( s1945pwe ) /* Strikers 1945 Plus - Enhance by Wesker */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "254we.p1", 0x000000, 0x100000, CRC(524eaf9c) SHA1(03e6e4495eca181c5d702df312565abd6684d6a4) ) + ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) ) + ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) ) + ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) ) + ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) ) + ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) ) + ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) ) + ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) ) + ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) ) + ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) ) + ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) ) + ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) ) +ROM_END + + +ROM_START( savageredb ) /* Savage Reign - Hack by Dodowang - (Debug menue unlocked - press select to change stage, p1 and p2) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "059db.p1", 0x100000, 0x100000, CRC(83be1cfc) SHA1(ec85c5d8416c7895ec7b47a9be50f62dc2c88703) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) ) + + NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) + ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) ) + ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) + ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) + ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) ) + ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) ) + ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) + ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) + ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) + ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) +ROM_END + + +ROM_START( shocktr2px ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "246px.p1", 0x000000, 0x100000, CRC(6e55a59c) SHA1(092c39ee9c28e4b45940ae2d43dc92922e6a9eba) ) + ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) ) + + NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) ) + + NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) ) + ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) ) + ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) ) + ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) ) + ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) ) + ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) ) + ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) ) + ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) ) +ROM_END + +ROM_START( shocktr2w ) /* you must use unibios to select AES */ /* Shock Troopers - 2nd Squad - Hack by Wesker */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "246w.p1", 0x000000, 0x100000, CRC(0af69336) SHA1(680f348f15177d14b7885d9976cf1bac4ae9eaf3) ) + ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) ) + + NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_3_0.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + ROM_REGION( 0x30000, "audiocpu", 0 ) + ROM_LOAD( "246-m1.m1", 0x00000, 0x20000, CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) ) + ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) ) + ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) ) + ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) ) + ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) ) + ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) ) + ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) ) + ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) ) +ROM_END + + +ROM_START( shocktrosp ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "238sp.p1", 0x000000, 0x100000, CRC(6ee78d00) SHA1(8847879749e55f7b24e149a7e24ec301f7b56929) ) + ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) + + NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) + + NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) + ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) + ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) + ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) + ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) + ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) + ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) + ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) + ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) +ROM_END + + +ROM_START( sonicwi2eh ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "075eh.p1", 0x100000, 0x100000, CRC(150cbac6) SHA1(66009a8be55d70345569c1ba23d06a8b1c3e4641) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) + + NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) + ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) + ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) + ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) + ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) +ROM_END + +ROM_START( sonicwi2px ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "075px.p1", 0x100000, 0x100000, CRC(22e4dd5f) SHA1(4f9511c7c2b98db306fece35ada47beb7f3ae4c5) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) + + NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) + ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) + ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) + ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) + ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) +ROM_END + + +ROM_START( sonicwi3eh ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "097eh.p1", 0x100000, 0x100000, CRC(ebd9674e) SHA1(9dac667dae3e31f0d06f815f8dd1ede11966c43e) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) + + NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) + ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) + ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) + ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) + ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) +ROM_END + +ROM_START( sonicwi3h ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "097h.p1", 0x100000, 0x100000, CRC(a09735bd) SHA1(ab7b8f14d4e07933bed52219b0c161cfd85601a0) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) + + NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) + ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) + ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) + ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) + ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) +ROM_END + +ROM_START( sonicwi3px ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "097px.p1", 0x100000, 0x100000, CRC(da80771c) SHA1(654d7d04d03cf2a30fb9cc612cf099bbea852403) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) + + NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) + ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) + ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) + ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) + ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) +ROM_END + + +ROM_START( spinmasth ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "062h.p1", 0x000000, 0x100000, CRC(51d531ee) SHA1(bc8b16ddc76d14de9d239efddd3a1cdfbf207521) ) + ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) ) + + NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) + + NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) + ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) + ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) + ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) + ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) + ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) + ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) + ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) +ROM_END + +ROM_START( spinmastpx ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "062px.p1", 0x000000, 0x100000, CRC(beea0162) SHA1(7e61e690bb5664d49149179309a58b71c5e75b75) ) + ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) ) + + NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) + + NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) + ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) + ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) + ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) + ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) + ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) + ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) + ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) +ROM_END + + +ROM_START( ssidekicd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "052cd.p1", 0x000000, 0x080000, CRC(5cdf0a46) SHA1(60b200eb8d7a217d1f4ce9a51d3c9730d5259fac) ) + + NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) ) + + NEO_BIOS_AUDIO_64K( "052cd.m1", CRC(f47f31a4) SHA1(50eaf535aec5f8f983e13c24f547d6d2d1004f39) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "052cd.v1", 0x000000, 0x100000, CRC(a6944870) SHA1(3c46d028998a57fa8bd46327f3497af1233698b0) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "052cd.c1", 0x000000, 0x100000, CRC(bf1b962b) SHA1(9bdec8df91a6713d6ce4dbc1ba5028eec74d4cb0) ) + ROM_LOAD16_BYTE( "052cd.c2", 0x000001, 0x100000, CRC(c3ce856b) SHA1(326c4a17c62ea97acc9a38e3b144dc9bc69158d4) ) + ROM_LOAD16_BYTE( "052cd.c3", 0x200000, 0x100000, CRC(7642df56) SHA1(f65cee51d4d8734982d305a1c5c4ddd4e064ebf7) ) + ROM_LOAD16_BYTE( "052cd.c4", 0x200001, 0x100000, CRC(265222dc) SHA1(d52a757779d74c2e32fd28bbc953ff8053f33a6c) ) +ROM_END + + +ROM_START( strhoopcd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "079cd.p1", 0x000000, 0x100000, CRC(16795f7f) SHA1(977a6c31ca6553e1cfa3402a5e541bab4c2244be) ) + + NEO_SFIX_128K( "079cd.s1", CRC(c65a5fe8) SHA1(ec8e8c49994ce9286ea5160c2450912da0746fb0) ) + + NEO_BIOS_AUDIO_64K( "079cd.m1", CRC(1a5f08db) SHA1(3121ed568fba4c30794b00d326ddb0c750b7f4ee) ) + + ROM_REGION( 0x280000, "ymsnd", 0 ) + ROM_LOAD( "079-v1.v1", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) ) + ROM_LOAD( "079cd.v2", 0x200000, 0x080000, CRC(b19884f8) SHA1(5fe910f2029da19ddab4dc95c2292d7fbb086741) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "079cd.c1", 0x000000, 0x200000, CRC(c3ebd902) SHA1(daae0ae972ecc0c19b2e6a439e5f2547286f190a) ) + ROM_LOAD16_BYTE( "079cd.c2", 0x000001, 0x200000, CRC(1a471f80) SHA1(725864d734ec9ab2933a46a6dc4d18dbc31fe2c7) ) + ROM_LOAD16_BYTE( "079cd.c3", 0x680000, 0x080000, CRC(4d490ecc) SHA1(8ced8f547799b613edd95acabd6f8cb28c41eab5) ) + ROM_LOAD16_BYTE( "079cd.c4", 0x680001, 0x080000, CRC(e223d27c) SHA1(2e195fea0d5808e90f154412b5e80b430e6341e2) ) +ROM_END + + +ROM_START( superspycd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "011cd.p1", 0x000000, 0x0a0000, CRC(6ef37a8c) SHA1(b65328a4d9af099dabdca931a7487b07122e9433) ) + + NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) ) + + NEO_BIOS_AUDIO_64K( "011cd.m1", CRC(543a711a) SHA1(2d4a5b0a9c7d10c3b182c3a887b9ff7f50a2937a) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "011cd.v1", 0x000000, 0x100000, CRC(9d697082) SHA1(92497e97e1755b930bd960d861f4c5289af7d78d) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "011-c1.c1", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) ) + ROM_LOAD16_BYTE( "011-c2.c2", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) ) + ROM_LOAD16_BYTE( "011-c3.c3", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) ) + ROM_LOAD16_BYTE( "011-c4.c4", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) ) +ROM_END + + +ROM_START( tophuntrpx ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "046px.p1", 0x000000, 0x100000, CRC(949dbb78) SHA1(fb005e60ff693c6656e33cd0641c7300826a6b54) ) + ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) + + NEO_SFIX_128K( "046-s1.s1", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) + + NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) + ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) + ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) + ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) + ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) + ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) + ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) + ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) + ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) + ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) + ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) +ROM_END + + +ROM_START( tpgolfcd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "003cd.p1", 0x000000, 0x100000, CRC(87f2a8ce) SHA1(ad903d7711ac4af47f1dee64ba7c6bb247029407) ) + + NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) ) + + NEO_BIOS_AUDIO_64K( "003cd.m1", CRC(7851d0d9) SHA1(d021cef958cc37ab170b78d7a4b3ae94947e4d13) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "003-c1.c1", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) ) + ROM_LOAD16_BYTE( "003-c2.c2", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) ) + ROM_LOAD16_BYTE( "003cd.c3", 0x100000, 0x80000, CRC(b09f1612) SHA1(03fbb5db4e377ce9cb4e65ddbc0b114c02e7bae1) ) + ROM_LOAD16_BYTE( "003cd.c4", 0x100001, 0x80000, CRC(150ea7a1) SHA1(13edc30144b56285ef37eb8aa6fb934704de18d8) ) + ROM_LOAD16_BYTE( "003-c5.c5", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) ) + ROM_LOAD16_BYTE( "003-c6.c6", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) ) + ROM_LOAD16_BYTE( "003-c7.c7", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) ) + ROM_LOAD16_BYTE( "003-c8.c8", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) ) +ROM_END + + +ROM_START( trallycd ) // title screen is corrupt + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "038-p1.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) ) + ROM_LOAD16_WORD_SWAP( "038cd.p2", 0x080000, 0x080000, CRC(9facb7fb) SHA1(96b4edbdddbd9ba642d0d046b33349c95559badd) ) + + NEO_SFIX_128K( "038cd.s1", CRC(81022312) SHA1(bdb8ae4cd43f196f1b185a48e25980565226bb71) ) + + NEO_BIOS_AUDIO_64K( "038cd.m1", CRC(2e1a89d6) SHA1(d0761c57f58e5a63b7c6a03538b3b5b7fe89271b) ) + + ROM_REGION( 0x0e0000, "ymsnd", 0 ) + ROM_LOAD( "038cd.v1", 0x000000, 0x0e0000, CRC(f7ce806e) SHA1(83967145a6bd616ffe8c19dbf5b0bf63296f2c24) ) + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "038cd.c1", 0x000000, 0x100000, CRC(840e6161) SHA1(553431723d0f348f4776b1e41beb2a4b39c2aeec) ) + ROM_LOAD16_BYTE( "038cd.c2", 0x000001, 0x100000, CRC(51979c7a) SHA1(833600da39daeae40ac700931e77898e9c60a45d) ) + ROM_LOAD16_BYTE( "038-c3.c3", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) ) + ROM_LOAD16_BYTE( "038-c4.c4", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) ) +ROM_END + + +ROM_START( twinsprih ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "224h.p1", 0x100000, 0x100000, CRC(df71c8cd) SHA1(1e49205b46c59c7f4ca6ee1dc06f555320d3b9af) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "224-s1.s1", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) ) + + NEO_BIOS_AUDIO_128K( "224-m1.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "224-v1.v1", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) ) + ROM_LOAD( "224-v2.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) ) + + ROM_REGION( 0xa00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "224-c1.c1", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) ) + ROM_LOAD16_BYTE( "224-c2.c2", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) ) + ROM_LOAD16_BYTE( "224-c3.c3", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) ) + ROM_LOAD16_BYTE( "224-c4.c4", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) ) +ROM_END + + +ROM_START( viewpoinf ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "051f.p1", 0x000000, 0x100000, CRC(d28c99ef) SHA1(c603ae8ad4a80fa3921016cd294a61a60cc37923) ) + + NEO_SFIX_64K( "051tr.s1", CRC(6d0f146a) SHA1(537fc5ef099f46fef64d147c0d1264b319758b4f) ) + + NEO_BIOS_AUDIO_64K( "051tr.m1", CRC(d57bd7af) SHA1(9ed766dbc3c07dbba7869ff335eeb7e297c8e2d9) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) ) + ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) ) + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) ) + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) ) + ROM_CONTINUE( 0x400001, 0x100000 ) +ROM_END + +ROM_START( viewpointr ) /* Viewpoint - Hack by KiWi Starlight - (Unlimited lives and mega-bombs for p1 and p2) */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "051tr.p1", 0x000000, 0x100000, CRC(063b9fa2) SHA1(e2d43646a976d82c809c6fad7dd40cc3dda07b15) ) + + NEO_SFIX_64K( "051tr.s1", CRC(6d0f146a) SHA1(537fc5ef099f46fef64d147c0d1264b319758b4f) ) + + NEO_BIOS_AUDIO_64K( "051tr.m1", CRC(d57bd7af) SHA1(9ed766dbc3c07dbba7869ff335eeb7e297c8e2d9) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) ) + ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) ) + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) ) + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) ) + ROM_CONTINUE( 0x400001, 0x100000 ) +ROM_END + + +ROM_START( wakuwak7bh ) /* Waku Waku 7 - Hack by Dodowang - (Can choose Fernandez and Bonus Kun - only playable when 2 Player play AES/MVS) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "225bh.p1", 0x000000, 0x100000, CRC(7a8fda8e) SHA1(d55c427173278aa513cb86ee2a90ecd8402d55b0) ) + ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) ) + + NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) ) + + NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) ) + ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) ) + + ROM_REGION( 0x1800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) ) + ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) ) + ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) ) + ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) ) + ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) ) + ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) ) +ROM_END + +ROM_START( wakuwak7h ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "225h.p1", 0x000000, 0x100000, CRC(0b7a3776) SHA1(3d8d9e7bdd481dbec3765901999b5148c0f3d776) ) + ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) ) + + NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) ) + + NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) ) + ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) ) + + ROM_REGION( 0x1800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) ) + ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) ) + ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) ) + ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) ) + ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) ) + ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) ) +ROM_END + + +ROM_START( wjammersf ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "065f.p1", 0x000000, 0x100000, CRC(a458cc18) SHA1(0d476edef593c4fa6f50ec4457f69629b2be37e7) ) + + NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) + + NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) + ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) + ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) + ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "065-c1.c1", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) + ROM_LOAD16_BYTE( "065-c2.c2", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) + ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) + ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) +ROM_END + +ROM_START( wjammersk ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "065-p1.p1", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) ) + + NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) + + NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) + ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) + ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) + ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "065k.c1", 0x000000, 0x100000, CRC(ebded27e) SHA1(574a0086bf13a5ac5d27de90c4d4611a19668cf8) ) + ROM_LOAD16_BYTE( "065k.c2", 0x000001, 0x100000, CRC(f5483767) SHA1(756dd8e161bf428659c642b5056aa0bcf5e0d9a8) ) + ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) + ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) +ROM_END + + +ROM_START( zupapad ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "070-p1.p1", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) ) + + NEO_SFIX_128K( "070d.s1", CRC(307967ba) SHA1(b91430d0fb08ca6e0d63ded42016fd2a5cd9728b) ) + + NEO_BIOS_AUDIO_128K( "070-epr.m1", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) ) + + ROM_REGION( 0x0200000, "ymsnd", 0 ) + ROM_LOAD( "070-v1.v1", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "070d.c1", 0x0000000, 0x200000, CRC(2bf91ba1) SHA1(5eecbc5ec2c493d2ffd0e57012e0808d4349871f) ) + ROM_LOAD16_BYTE( "070d.c2", 0x0000001, 0x200000, CRC(8700a5b8) SHA1(bc1ff7e55309120c0ca2d8800b7b003dc3c5ed65) ) +ROM_END + + + +GAME( 1991, 2020bbcd, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "2020 Super Baseball (CD conversion)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, androdunpx, androdun, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Andro Dunos (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, aofbh, aof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2b, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Art of Fighting 2 (Geese instead of Mr. Big)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2b1, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Art of Fighting 2 (Boss hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2bh, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2br2, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Art of Fighting 2 (Geese instead of Ryo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, aof3b, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Art of Fighting 3 (Boss hack by Dodowang)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, aof3bh, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting 3 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2000, bangbeadp, bangbead, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bead (prototype)", MACHINE_SUPPORTS_SAVE ) // commented out in official MAME source +GAME( 1990, bjourneypx, bjourney, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Blue's Journey / Raguy (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, breakersbh, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Breakers (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, breakersp, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Breakers (Move change 26c?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, breakersy, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Breakers (Boss Robert PPX Team hack remixed by ZKW)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, breakrevb, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Breakers Revenge (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, breakrevpp, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Breakers Revenge (Enhanced Power hack by Pipi899 11/06/09)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, breakrevy, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Breakers Revenge (Boss Robert PPX Team hack remixed by ZKW)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfhp, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Burning Fight (High Power by EEZEZY(LB70))", MACHINE_SUPPORTS_SAVE ) + +GAME( 1999, ctomadaypx, ctomaday, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Captain Tomaday (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1997, dragons1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Dragon's Heaven", MACHINE_SUPPORTS_SAVE ) + +GAME( 2009, eightmaneb, eightman, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Eight Man (Enhanced Version hack by Blackheart 2009-08-22)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1994, fightfevbs, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fight Fever (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fightfevk, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Fight Fever (Kanji Patch)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1998, flipshotk, flipshot, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Battle Flip Shot (Korean)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, galaxyfgb, galaxyfg, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Galaxy Fight (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ganryud, ganryu, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Visco", "Ganryu / Musashi Ganryuki (decrypted C)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, gowcaizrb, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Voltage Fighter (Boss hack by Wesker (FGCH))", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gowcaizrbs, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Voltage Fighter (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, gowcaizrrv, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Voltage Fighter (Boss Revised Version 2009-10-05)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gowcaizry, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Voltage Fighter - Gowcaizer (Boss Hack - Easy Moves)", MACHINE_SUPPORTS_SAVE) + +GAME( 1991, gpilotscd, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Ghost Pilots (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilotse, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Ghost Pilots (Enhanced Version, Hack by Robert)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilotspx, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Ghost Pilots (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1996, ironcladb, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ironclad (conversion from Wii)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ironcladcd, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Ironclad (CD conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) + +GAME( 2001, jockeygpd, jockeygp, neogeo_noslot, jockeygp, neogeo_hbmame, jckeygpd, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (decrypted C)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2007, joyjoycd, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, joyjoycd1, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Puzzled / Joy Joy Kid (CD conversion)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, kabukiklb, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den (Boss Hack by Ydmis and Creamymami)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kabukikleh, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Far East of Eden - Kabuki Klash (Add Char)", MACHINE_SUPPORTS_SAVE ) // Manto, Karakuri, Jyashinsai and Lucifeller +GAME( 1995, kabukiklgm, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Flycboy", "Far East of Eden - Kabuki Klash (Color Fix set 2 - Title screen and char color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kabukiklgmc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Flycboy", "Far East of Eden - Kabuki Klash (Color Fix set 1 - Title screen and char color changed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kabukiklmc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Far East of Eden - Kabuki Klash (Magic always max)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kabukiklyc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Far East of Eden - Kabuki Klash (Add Char - Magic always max)", MACHINE_SUPPORTS_SAVE ) // Manto, Karakuri, Jyashinsai and Lucifeller - Based on kabukleh + +GAME( 1994, karnovreh, karnovr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Karnov's Revenge (Add Char)", MACHINE_SUPPORTS_SAVE ) // Big Tornado + +GAME( 1996, kizunaeh, kizuna, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kizuna Encounter (Add Char)", MACHINE_SUPPORTS_SAVE ) // 2 Hidden Char + +GAME( 2004, lans2k4d, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad Bootleg / fully decrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lbowlingcd, lbowling, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "League Bowling (CD conversion)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, magdrop3fr, magdrop3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Magical Drop III (French)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, matrima, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Noise Factory / Atlus Corporation", "Power Instinct - Matrimelee / Shin Gouketsuji Ichizoku Toukon (Alternate)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrimd, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrimd, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660)(NGH-2660) (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrimdh, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrmehc, ROT0, "Dodowang", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (decrypted C) hack", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrimeh, matrim, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Matrimelee (Bootleg, Hero Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrimehc, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrmehc, ROT0, "Creamymami", "Matrimelee (Pow always max - MVS protection rem)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrimnd, matrim, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Matrimelee (unknown nd)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2005, miexchngfr, miexchng, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Money Puzzle Exchanger (French)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, mutnatex, mutnat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Mutation Nation (Ex version, Pipi899)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2008, nam1975g, nam1975, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "NAM-1975 (hack?)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, nam1975h, nam1975, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blast of the Wolf", "NAM-1975 (Max Blast edition)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1998, neocup98k, neocup98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hack", "Neo-Geo Cup '98 - The Road to the Victory (Korean)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1996, ninjamaseh, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Ninja Master's (Add Char)", MACHINE_SUPPORTS_SAVE ) // Ranmaru and Nobunaga +GAME( 1996, ninjamasehc, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Ninja Master's (Pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ninjamasehyc, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Ninja Master's (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE ) // Ranmaru and Nobunaga +GAME( 1996, ninjamasha, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Ninja Master's - haoh-ninpo-cho PLUS (Hack by 007325)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2000, nitdd, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Eleven / Gavaking", "Nightmare in the Dark (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, nitdfr, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Arkatrad", "Nightmare in the Dark (French)", MACHINE_SUPPORTS_SAVE ) // based on decrypted C +GAME( 2005, nitdfro, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Arkatrad", "Nightmare in the Dark (French) (Old)", MACHINE_SUPPORTS_SAVE ) // based on decrypted C +GAME( 2000, nitdfro1, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eleven / Gavaking", "Nightmare in the Dark French (NEO ARC Traduction)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, nitdsp, nitd, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "hack", "Nightmare in the Dark (Spanish)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, nitdsp1, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "hack", "Nightmare in the Dark (Spanish.Rev2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, nitdsp2, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Nightmare in the Dark Spanish (Version 1.1 by MEGANIUZ)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2009, pbcrazyb1, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Puzzle Bobble Crazy (beta1 2009-07-05)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, pbcrazyb2, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Puzzle Bobble Crazy (beta2 2009-07-23)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pbobblenba, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pbobblencd, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo)(CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pbobblendx, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Puzzle Bobble Deluxe / Bust-A-Move Deluxe", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pbobblenh, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Puzzle Bobble (hack)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, pnyaad, pnyaa, neogeo_noslot, neogeo, neogeo_hbmame, pnyaad, ROT0, "Aiky", "Pochi & Nyaa (decrypted C)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1999, preisle2d, preisle2, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Yumekobo", "Prehistoric Isle 2 (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pspikes2cd, pspikes2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Power Spikes II (CD conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) + +GAME( 1996, ragnagrdeh, zedblade, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Operation Ragnagard (Add Char)", MACHINE_SUPPORTS_SAVE ) // Lucifer, Eelis and Behemoth + +GAME( 1991, roboarma, roboarmy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Robo Army (hack)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1999, s1945pd, s1945p, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Psikyo", "Strikers 1945 Plus (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, s1945pwe, s1945p, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "Wesker", "Strikers 1945 Plus (Hack)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, savageredb, savagere, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Savage Reign (Debug menu unlocked - P1 and P2 Press select to change stage)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, shocktr2px, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Shock Troopers - 2nd Squad (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, shocktr2w, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Shock Troopers - 2nd Squad (Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, shocktrosp, shocktro, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "e107", "Shock Troopers (Super Plus hack by e107 2009-08-18)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, sonicwi2eh, sonicwi2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Aero Fighters 2 / Sonic Wings 2 (Hack alternate set by Robert)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, sonicwi2px, sonicwi2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Aero Fighters 2 / Sonic Wings 2 (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sonicwi3eh, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Aero Fighters 3 / Sonic Wings 3 (Hack alternate set by Robert)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sonicwi3h, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Aero Fighters 3 / Sonic Wings 3 (ExChar hack by Wesker)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sonicwi3px, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Aero Fighters 3 / Sonic Wings 3 (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, spinmasth, spinmast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Spin Master / Miracle Adventure (Enhanced Version, Hack by Robert)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, spinmastpx, spinmast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Spin Master / Miracle Adventure (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ssidekicd, ssideki, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "hack", "Super Sidekicks / Tokuten Ou (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, strhoopcd, strhoop, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Street Hoop (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, superspycd, superspy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "The Super Spy (CD conversion)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1994, tophuntrpx, tophuntr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Top Hunter - Roddy & Cathy (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, tpgolfcd, tpgolf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Top Player's Golf (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, trallycd, trally, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Thrash Rally (CD conversion)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, twinsprih, twinspri, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Twinkle Star Sprites (ExChar hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, viewpoinf, viewpoin, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SHYMA.X", "Viewpoint (French by NEOARC Team)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, viewpointr, viewpoin, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KiWi Starlight", "Viewpoint Enhanced", MACHINE_SUPPORTS_SAVE ) // Unlimited lives and mega-bombs for p1 and p2 + +GAME( 1996, wakuwak7bh, wakuwak7, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Waku Waku 7 (Add Char - 2 players only)", MACHINE_SUPPORTS_SAVE ) // Fernandez and Bonus Kun +GAME( 1996, wakuwak7h, wakuwak7, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Waku Waku 7 (Boss Hack)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1994, wjammersf, wjammers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Windjammers (French v0.1 beta by Elrayzeur)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wjammersk, wjammers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Aneue Bannzai", "Windjammers (Korean hack by Aneue Bannzai)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2001, zupapad, zupapa, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Zupapa! (custom decrypted C)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/neogeo_noslot.cpp b/docs/release/src/hbmame/drivers/neogeo_noslot.cpp new file mode 100644 index 00000000000..27d3a229fa0 --- /dev/null +++ b/docs/release/src/hbmame/drivers/neogeo_noslot.cpp @@ -0,0 +1,9472 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari +// thanks-to:Fuzz + +// MAME NeoGeo code for single fixed slot 'shortname' configs +// none of this is required by MESS or the slot-based implementation + +#include "emu.h" +#include "includes/neogeo.h" + + + +static ADDRESS_MAP_START( main_map_noslot, AS_PROGRAM, 16, neogeo_state ) + AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r) + AM_RANGE(0x000080, 0x0fffff) AM_ROM +// AM_RANGE(0x200000, 0x2fffff) AM_ROMBANK("cartridge") +// AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(main_cpu_bank_select_w) + AM_IMPORT_FROM( neogeo_main_map ) +ADDRESS_MAP_END + + +static MACHINE_CONFIG_DERIVED_CLASS( neogeo_noslot, neogeo_arcade, neogeo_noslot_state ) // no slot config (legacy mame) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(main_map_noslot) + + //joystick controller + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "joy", true) + + //no mahjong controller + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true) + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true) + + MCFG_MSLUGX_PROT_ADD("mslugx_prot") + MCFG_SMA_PROT_ADD("sma_prot") + MCFG_CMC_PROT_ADD("cmc_prot") + MCFG_PCM2_PROT_ADD("pcm2_prot") + MCFG_PVC_PROT_ADD("pvc_prot") + MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot") + MCFG_KOF2002_PROT_ADD("kof2002_prot") + MCFG_FATFURY2_PROT_ADD("fatfury2_prot") + MCFG_KOF98_PROT_ADD("kof98_prot") + MCFG_SBP_PROT_ADD("sbp_prot") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED_CLASS( neogeo_kog, neogeo_arcade, neogeo_noslot_kog_state ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(main_map_noslot) + + //joystick controller + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "joy", true) + + //no mahjong controller + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true) + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true) + + MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot") + MCFG_KOG_PROT_ADD("kog_prot") +MACHINE_CONFIG_END + +// these basically correspond to the cabinets which were available in arcades: +// with mahjong panel, with dial for Pop'n Bounce and with 4 controls for Kizuna... +static MACHINE_CONFIG_DERIVED( neogeo_mj, neogeo_noslot ) + + //no joystick panel + MCFG_DEVICE_REMOVE("edge") + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "", true) + + //P1 mahjong controller + MCFG_DEVICE_REMOVE("ctrl1") + MCFG_DEVICE_REMOVE("ctrl2") + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "mahjong", true) + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( neogeo_dial, neogeo_noslot ) + MCFG_DEVICE_REMOVE("edge") + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "dial", true) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( neogeo_imaze, neogeo_noslot ) + MCFG_DEVICE_REMOVE("edge") + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( neogeo_kiz4p, neogeo_noslot ) + MCFG_DEVICE_REMOVE("edge") + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true) +MACHINE_CONFIG_END + +// this is used by V-Liner, which handles differently inputs... +static MACHINE_CONFIG_DERIVED( neogeo_noctrl, neogeo_noslot ) + MCFG_DEVICE_REMOVE("ctrl1") + MCFG_DEVICE_REMOVE("ctrl2") +MACHINE_CONFIG_END + + +/************************************* + * + * Official sets + * + ************************************* + + About supported sets: + ===================== + + MVS carts (arcade) were released before the AES carts (home) + The actual codepath taken depends entirely on the BIOS rom, not the roms in the cartridge, which (with + a few exceptions) support both codepaths. + + The initial AES releases are therefore later revisions of the game, often with bug fixes over the + initial MVS releases. It isn't uncommon for later production runs and bootlegs to use these newer sets, + so all of them are supported in MAME. + + Likewise, because the MVS carts were released first (and were produced in higher numbers and generally + have a lower cost) it's not uncommon for AES units to operate with converted MVS carts, so, with the + exception of the sets that specifically lock out the AES mode* these sets are all equally suitable + for MESS. + * nitd, kof2001 (initial release has no AES code), and a number of the hacked bootlegs. + + The 'MVS ONLY RELEASE' tagged sets were not officially released for the AES (home) system. + Information about this can be found at 'The NeoGeo Master List' (unofficial) - http://www.neo-geo.com + and the official NeoGeo museum - http://neogeomuseum.snkplaymore.co.jp/english/index.php + Several unofficial 'conversions' of these sets can be found across the internet. + For completeness sake: Some of these have sets have been released for the CD system. + + + M1 (sound driver) rom information: + ================================== + . Many 'M1' roms contain mirrored data (64k mirrored or 128k mirrored). + . Found on several early sets (ID 0001 ~ 0045) and on the last sets (ID 0267 ~ 0272). + . This caused some confusion and incorrect rom sizes. + . Minimum 'M1' size is 1mbit, maximum size 4mbit. + . The remaining 64k 'M1' are marked BAD_DUMP. + + + S1 (text layer) rom information: + ================================ + . All 'S1' roms found on prom are 1mbit. + . The remainig 64k 'S1' are marked BAD_DUMP. + + + MULTI PLAY MODE: + ================ + The NeoGeo has three games which support MULTI PLAY MODE (Riding Hero / League Bowling / Trash Rally). + This allows you to 'link' 4 games (MVS) / 2 games (AES) using in game 'Multi-Play' option. To establish + a link between the carts you have to connect the carts to each other by a communicator cable. The communicatior + cable is a regular headphone cable with stereo pin jack. It has been reported that you can also 'link' MVS <-> AES. + + All three games use a special PROG board for MULTI PLAY MODE support: + . Riding Hero (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO) + . League Bowling (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO) + . Trash Rally (AES - NEO-AEG PROG42G-COM / NEO-MVS PROG42G-COM) + + A HD6301V1P MCU on the above boards is used for establishing the 'link'. The MCU has a 4kb internal ROM which + is not dumped. + To use the MULTI PLAY MODE on your MVS you have to set the following hardware dips: + HARD DIP SETTING 4 5 6 + CABINET 1: OFF OFF ON + CABINET 2: OFF ON ON + CABINET 3: ON OFF ON + CABINET 4: ON ON ON + + + SPHERO SYMPHONY: + ================ + Several early games have a 'feature' called "sphero symphony". None of the games featuring "sphero symphony" + uses special hardware. It is something sound based, but what exactly it is (specially arragend samples, + FM synthesis etc.) is unknown. The AES and MVS releases share the same sound data and driver. + + The AES game-inserts and manuals have an eye-shaped logo with the following text (not to be found on MVS sets): + sphero + symphony + STEREOPHONIC SOUND + + Experience this "LIVE" 3 dimensional sound coming from all around you. + + Games featuring "sphero symphony": + ID-0006 - Riding Hero + ID-0007 - Alpha Mission II / ASO II - Last Guardian + ID-0009 - Ninja Combat + ID-0010 - Cyber-Lip + ID-0011 - The Super Spy + ID-0014 - Mutation Nation + ID-0017 - Sengoku / Sengoku Denshou + ID-0018 - Burning Fight + ID-0020 - Ghost Pilots + ID-0024 - Last Resort + ID-0031 - Soccer Brawl + ID-0033 - Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai + ID-0034 - Football Frenzy + ID-0037 - Crossed Swords + ID-0038 - Thrash Rally + ID-0039 - King of the Monsters 2 - The Next Thing + ID-0041 - Baseball Stars 2 + ID-0044 - Art of Fighting / Ryuuko no Ken + ID-0047 - Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai + ID-0049 - Andro Dunos + +*/ + + +// Game specific input definitions + +static INPUT_PORTS_START( dualbios ) + PORT_INCLUDE( neogeo ) + + /* the rom banking seems to be tied directly to the dipswitch */ + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Region ) ) PORT_DIPLOCATION("SW:3") PORT_CHANGED_MEMBER(DEVICE_SELF, neogeo_state, select_bios, 0) + PORT_DIPSETTING( 0x00, DEF_STR( Asia ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Japan ) ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( mjneogeo ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3") + PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) ) + PORT_DIPSETTING( 0x00, "Mahjong Panel" ) +INPUT_PORTS_END + +static INPUT_PORTS_START( kizuna4p ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Players ) ) PORT_DIPLOCATION("SW:2") + PORT_DIPSETTING( 0x02, "2" ) + PORT_DIPSETTING( 0x00, "4" ) + + PORT_MODIFY("SYSTEM") + PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state, kizuna4p_start_r, nullptr) +INPUT_PORTS_END + +static INPUT_PORTS_START( irrmaze ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("SYSTEM") + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END + +static INPUT_PORTS_START( vliner ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("DSW") + PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("View Payout Table/Big") + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Bet/Small") + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Stop/Double Up") + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Start/Collect") + + PORT_MODIFY("SYSTEM") + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */ + + PORT_MODIFY("AUDIO/COIN") + PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("IN5") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Operator Menu") PORT_CODE(KEYCODE_F1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Clear Credit") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Hopper Out") + PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + /* not sure what any of these bits are */ + PORT_START("IN6") + PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xffc0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( jockeygp ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("SYSTEM") + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ +INPUT_PORTS_END + + + +/**************************************** + ID-0001 + . NGM-001 + NEO-MVS PROG-NAM / NEO-MVS CHA-32 + . NGH-001 + NEO-AEG PROG-NAM / NEO-AEG CHA-32 +****************************************/ + +ROM_START( nam1975 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "001-p1.p1", 0x000000, 0x080000, CRC(cc9fc951) SHA1(92f4e6ddeeb825077d92dbb70b50afea985f15c0) ) /* MB834200 */ + + NEO_SFIX_128K( "001-s1.s1", CRC(7988ba51) SHA1(bc2f661f381b06b34ac2fa215dd5689d3bf84832) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "001-m1.m1", CRC(ba874463) SHA1(a83514f4b20301f84a98699900e2593f1c1b8846) ) /* MB832000 */ + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) ) /* MB834200 */ + // AES has different label, data is the same: 001-v1.v1 + + ROM_REGION( 0x180000, "ymsnd.deltat", 0 ) + ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) /* MB834200 */ + // AES has different label, data is the same: 001-v2.v21 + ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) ) /* MB834000 */ + ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) ) /* MB834000 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0002 + . NGM-002 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-002 + NEO-AEG PROG-4A / NEO-AEG CHA-32 +****************************************/ + +ROM_START( bstars ) /* MVS VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "002-pg.p1", 0x000000, 0x080000, CRC(c100b5f5) SHA1(4cea9f29ad67288c3eccfa4cf961ee9782e49165) ) /* MB834200 */ + + NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) ) /* MB832000 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) /* MB834000 */ + ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) /* MB834000 */ + ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) /* MB834000 */ + ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) /* MB834000 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) /* MB834000 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +ROM_START( bstarsh ) /* AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "002-p1.p1", 0x000000, 0x080000, CRC(3bc7790e) SHA1(50b2fffb1278151bb4849fbe1f8cb23916019815) ) /* MB834200 */ + + NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) ) /* MB832000 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) /* MB834000 */ + ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) /* MB834000 */ + ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) /* MB834000 */ + ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) /* MB834000 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) /* MB834000 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0003 + . NGM-003 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-003 + NEO-AEG PROG-4B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( tpgolf ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "003-p1.p1", 0x000000, 0x080000, CRC(f75549ba) SHA1(3f7bdf5e2964e921fe1dd87c51a79a1a501fc73f) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "003-p2.p2", 0x080000, 0x080000, CRC(b7809a8f) SHA1(1604c889592c9610668bff296de48a0d6906156d) ) /* TC534200 */ + + NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "003-m1.m1", CRC(4cc545e6) SHA1(8e014b8cab3e5b3995756a4ea52ce49c36866377) ) /* TC531001 */ + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) ) /* TC534000 */ + // AES has different label, data is the same (also found on MVS): 003-v1.v11 + + ROM_REGION( 0x200000, "ymsnd.deltat", 0 ) + ROM_LOAD( "003-v21.v21", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) ) /* TC534000 */ + // AES has different label, data is the same (also found on MVS): 003-v2.v21 + ROM_LOAD( "003-v22.v22", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) ) /* TC534000 */ + ROM_LOAD( "003-v23.v23", 0x100000, 0x080000, CRC(30f53e54) SHA1(22461f88a56d272b78dbc23204c0c6816200532b) ) /* TC534000 */ + ROM_LOAD( "003-v24.v24", 0x180000, 0x080000, CRC(5ba0f501) SHA1(ca02937a611a2c50c9e4b54f8fd4eaea09259894) ) /* TC534000 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "003-c1.c1", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c2.c2", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c3.c3", 0x100000, 0x80000, CRC(8ce3e8da) SHA1(bc6c49b27d498f75a0d1a8c4d0cca75e140b9efc) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c4.c4", 0x100001, 0x80000, CRC(29725969) SHA1(f1407da84919c2b3fe0e8f1fca65934b147c86c7) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c5.c5", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c6.c6", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c7.c7", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c8.c8", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0004 + . NGM-004 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-004 + NEO-AEG PROG B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( mahretsu ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "004-p1.p1", 0x000000, 0x080000, CRC(fc6f53db) SHA1(64a62ca4c8fb68954e06121399c9402278bd0467) ) /* TC534200 */ + + NEO_SFIX_128K( "004-s1.s1", CRC(2bd05a06) SHA1(876deadd4645373d82a503154eeddf18f440d743) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "004-m1.m1", CRC(c71fbb3b) SHA1(59c58665b53da61352359d191a0569de5dd1f4b3) ) /* TC531001 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "004-v11.v11", 0x000000, 0x080000, CRC(b2fb2153) SHA1(36e0cc8927b11105de40188af46f6cf532794c10) ) /* CXK384001 */ + ROM_LOAD( "004-v12.v12", 0x080000, 0x080000, CRC(8503317b) SHA1(ab22f1aba1e977ab234a4f1d73dc6ed789dbeb85) ) /* CXK384001 */ + + ROM_REGION( 0x180000, "ymsnd.deltat", 0 ) + ROM_LOAD( "004-v21.v21", 0x000000, 0x080000, CRC(4999fb27) SHA1(2d4926a220ea21bdd5e816bb16f985fff089500a) ) /* CXK384001 */ + ROM_LOAD( "004-v22.v22", 0x080000, 0x080000, CRC(776fa2a2) SHA1(e7d5a362ab7806b7b009700a435c815a20e8ec68) ) /* CXK384001 */ + ROM_LOAD( "004-v23.v23", 0x100000, 0x080000, CRC(b3e7eeea) SHA1(4d1e97f380702a3a06e7f954b4caddd9c4119d8f) ) /* CXK384001 */ + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "004-c1.c1", 0x000000, 0x80000, CRC(f1ae16bc) SHA1(df68feed4dcba1e1566032b01ebb7b478a1792bf) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "004-c2.c2", 0x000001, 0x80000, CRC(bdc13520) SHA1(2bc4c996d019a4c539f6c3188ef18089e54b7efa) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "004-c3.c3", 0x100000, 0x80000, CRC(9c571a37) SHA1(21388aeb92bb8e15a55a063701ca9df79e292127) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "004-c4.c4", 0x100001, 0x80000, CRC(7e81cb29) SHA1(5036f04df30cf6903bd1a8cc06ff6f015c24a74b) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0005 + . NGM-005 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-005 + NEO-AEG PROG-4B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( maglord ) /* MVS VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "005-pg1.p1", 0x000000, 0x080000, CRC(bd0a492d) SHA1(d043d3710cf2b0d2b3798008e65e4c7c3ead1af3) ) /* MB834200 */ + + NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) ) /* MB832000 */ + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) /* MB834000 */ + + ROM_REGION( 0x100000, "ymsnd.deltat", 0 ) + ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) /* MB834000 */ + ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) /* MB834000 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +ROM_START( maglordh ) /* AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "005-p1.p1", 0x000000, 0x080000, CRC(599043c5) SHA1(43f234b0f89b72b4c6050c40d9daa5c4e96b94ce) ) /* MB834200 */ + + NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) ) /* MB832000 */ + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) /* MB834000 */ + + ROM_REGION( 0x100000, "ymsnd.deltat", 0 ) + ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) /* MB834000 */ + ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) /* MB834000 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0006 + . NGM-006 + NEO-MVS PROG-HERO / NEO-MVS CHA-32 + . NGH-006 + NEO-AEG PROG-HERO / NEO-AEG CHA-32 +****************************************/ + +ROM_START( ridhero ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "006-p1.p1", 0x000000, 0x080000, CRC(d4aaf597) SHA1(34d35b71adb5bd06f4f1b50ffd9c58ab9c440a84) ) /* MB834200 */ + + ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ + ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally) + + NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) ) /* MB832000 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) /* MB834000 */ + ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) /* MB834000 */ + + ROM_REGION( 0x200000, "ymsnd.deltat", 0 ) + ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) /* MB834000 */ + ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) /* MB834000 */ + ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) /* MB834000 */ + ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) /* MB834000 */ + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) ) /* Plane 0,1 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) ) /* Plane 2,3 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) ) /* Plane 0,1 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) ) /* Plane 2,3 */ /* CXK384000 */ +ROM_END + +ROM_START( ridheroh ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "006-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(52445646) SHA1(647bb31f2f68453c1366cb6e2e867e37d1df7a54) ) + /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */ + + ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ + ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally) + + NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) ) /* MB832000 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) /* MB834000 */ + ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) /* MB834000 */ + + ROM_REGION( 0x200000, "ymsnd.deltat", 0 ) + ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) /* MB834000 */ + ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) /* MB834000 */ + ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) /* MB834000 */ + ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) /* MB834000 */ + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) ) /* Plane 0,1 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) ) /* Plane 2,3 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) ) /* Plane 0,1 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) ) /* Plane 2,3 */ /* CXK384000 */ +ROM_END + +/**************************************** + ID-0007 + . NGM-007 + NEO-MVS PROG42G / NEO-MVS CHA42G + . NGH-007 + NEO-AEG PROG42G / NEO-AEG CHA42G + NEO-AEG PROG42G / NEO-AEG CHA-8M + . prototype + NEO-AEG PROG-EP / NEO-AEG CHA-EP +****************************************/ + +ROM_START( alpham2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "007-p1.p1", 0x000000, 0x080000, CRC(5b266f47) SHA1(8afbf995989f47ad93fea1f31a884afc7228b53a) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "007-p2.p2", 0x080000, 0x020000, CRC(eb9c1044) SHA1(65d3416dcd96663bc4e7cefe90ecb7c1eafb2dda) ) /* TC531024 */ + + NEO_SFIX_128K( "007-s1.s1", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "007-m1.m1", CRC(28dfe2cd) SHA1(1a1a99fb917c6c8db591e3be695ce03f843ee1df) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "007-v1.v1", 0x000000, 0x100000, CRC(cd5db931) SHA1(b59f9f2df29f49470312a6cd20f5669b6aaf51ff) ) /* TC538200 */ + ROM_LOAD( "007-v2.v2", 0x100000, 0x100000, CRC(63e9b574) SHA1(1ade4cd0b15c84dd4a0fb7f7abf0885eef3a3f71) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "007-c1.c1", 0x000000, 0x100000, CRC(8fba8ff3) SHA1(1a682292e99eb91b0edb9771c44bc5e762867e98) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "007-c2.c2", 0x000001, 0x100000, CRC(4dad2945) SHA1(ac85a146276537fed124bda892bb93ff549f1d93) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "007-c3.c3", 0x200000, 0x080000, CRC(68c2994e) SHA1(4f8dfc6e5188942e03b853a2c9f0ea6138dec791) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "007-c4.c4", 0x200001, 0x080000, CRC(7d588349) SHA1(a5ed789d7bbc25be5c5b2d99883b64d379c103a2) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( alpham2p ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION*/ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "007_p1_faac.p1", 0x000001, 0x080000, CRC(c763e52a) SHA1(b24acbac255c5ee1a2e92e77cdde6620a24081cf) ) + ROM_LOAD16_BYTE( "007_p2_1813.p2", 0x000000, 0x080000, CRC(7a0b435c) SHA1(40e6f42a92001d9f4e51898dd7489da143b6b74b) ) + + NEO_SFIX_128K( "007_s1_36f1.s1", CRC(efc9ae2e) SHA1(a594826b0082fe5a13191673e8d9aa42517230f5) ) + + NEO_BIOS_AUDIO_128K( "007_m1_9384.m1", CRC(5976b464) SHA1(ec824567ecc3579f6d86c9d9385710cbaeef16a3) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "007_v11_1bb4.v11", 0x000000, 0x080000, CRC(18eaa9e1) SHA1(85c94d8660f8a32e4ca8e015f0bd704208482d68) ) + ROM_LOAD( "007_v12_c8e8.v12", 0x080000, 0x080000, CRC(2487d495) SHA1(49af3c4dc6a38c5158d3641fd8f9a40041b42aa6) ) + ROM_LOAD( "007_v13_09fa.v13", 0x100000, 0x080000, CRC(25e60f25) SHA1(d06b0df872372de38fcf90187195070ac5f8c651) ) + ROM_LOAD( "007_v21_28c2.v21", 0x180000, 0x080000, CRC(ac44b75a) SHA1(7399a05cd4e2c7ecde4a7323d3e189255afe5fc2) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_COPY( "ymsnd", 0x180000, 0x00000, 0x80000 ) + + ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "007_c1_210e.c11", 0x000000, 0x80000, CRC(24841639) SHA1(fcc2a349121dad86ffefc44b9f0e8ba616ce0d30) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "007_c2_29ae.c12", 0x000002, 0x80000, CRC(912763ab) SHA1(cedf26d7d85ad140399ee62813c71f35e65498d6) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "007_c3_c873.c13", 0x000001, 0x80000, CRC(0743bde2) SHA1(0d13ad6333909ad3cf10f9ac360f9abf191318de) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "007_c4_2462.c14", 0x000003, 0x80000, CRC(61240212) SHA1(dee36f6604adaeb96e0d761a7256241c066b1cd2) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "007_c5_5f16.c15", 0x200000, 0x80000, CRC(cf9f4c53) SHA1(f979c85f83d9f76e554c2617f85f6d4efca6799c) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "007_c6_8abc.c16", 0x200002, 0x80000, CRC(3d903b19) SHA1(001a8c762336b855fe1df69fe2e605d30a3f00a1) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "007_c7_c983.c17", 0x200001, 0x80000, CRC(e41e3875) SHA1(730aceb8a66cb33d0194b096568f053ad7dc000a) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "007_c8_b599.c18", 0x200003, 0x80000, CRC(4483e2cf) SHA1(47c3364f5c36ae9dc3a49fe37ca60bcee0e73314) ) /* Plane 3 */ +ROM_END + +/**************************************** + ID-0008 + Sun Shine (prototype) 1990 SNK / Alpha +****************************************/ + +/**************************************** + ID-0009 + . NGM-009 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-009 + NEO-AEG PROG-4A / NEO-AEG CHA-32 +****************************************/ + +ROM_START( ncombat ) /* MVS VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "009-p1.p1", 0x000000, 0x080000, CRC(b45fcfbf) SHA1(3872147dda2d1ba905d35f4571065d87b1958b4a) ) /* TC534200 */ + + NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) /* TC531001 */ + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) /* TC534000 */ + ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) /* TC534000 */ + ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) /* TC534000 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) /* TC534000 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( ncombath ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "009-pg1.p1", 0x000000, 0x080000, CRC(8e9f0add) SHA1(d0b908a86a58f2537eea73a431038f1cd74a5a2f) ) /* TC534200 */ + + NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) /* TC531001 */ + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) /* TC534000 */ + ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) /* TC534000 */ + ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) /* TC534000 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) /* TC534000 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0010 + . NGM-010 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-010 + NEO-AEG PROG-B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( cyberlip ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "010-p1.p1", 0x000000, 0x080000, CRC(69a6b42d) SHA1(6e7cb089de83f1d22cc4a87db5b1a94bf76fb1e8) ) /* TC534200 */ + + NEO_SFIX_128K( "010-s1.s1", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "010-m1.m1", CRC(8be3a078) SHA1(054ec6a061fcc88df1ecbb0a01611a31f37a7709) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "010-v11.v11", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) ) /* TC534000 */ + ROM_LOAD( "010-v12.v12", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) ) /* TC534000 */ + ROM_LOAD( "010-v13.v13", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) ) /* TC534000 */ + ROM_LOAD( "010-v14.v14", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) ) /* TC534000 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "010-v21.v21", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) ) /* TC534000 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "010-c1.c1", 0x000000, 0x80000, CRC(8bba5113) SHA1(70f0926409ab265da4b8632500d1d32d63cf77cf) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c2.c2", 0x000001, 0x80000, CRC(cbf66432) SHA1(cc529640c475d08330e116ea9c5e5a28b7cd13db) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c3.c3", 0x100000, 0x80000, CRC(e4f86efc) SHA1(fa60863d8a7ed4f21d30f91eb1936d0b8329db7a) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c4.c4", 0x100001, 0x80000, CRC(f7be4674) SHA1(b4ad0432d4bb6d5a98e27015910343c964b73ed4) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c5.c5", 0x200000, 0x80000, CRC(e8076da0) SHA1(3ec5cc19809dea688041a42b32c13d257576f3da) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c6.c6", 0x200001, 0x80000, CRC(c495c567) SHA1(2f58475fbb5f1adafce027d396fb05dd71e8fb55) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0011 + . NGM-011 + NEO-MVS PROG-8MB / NEO-MVS CHA-8M + . NGH-011 + NEO-AEG PROG-8MB / NEO-AEG CHA-8M +****************************************/ + +ROM_START( superspy ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "011-p1.p1", 0x000000, 0x080000, CRC(c7f944b5) SHA1(da7560e09187c68f1d9f7656218497b4464c56c9) ) /* MB834200 */ + ROM_LOAD16_WORD_SWAP( "sp2.p2", 0x080000, 0x020000, CRC(811a4faf) SHA1(8169dfaf79f52d80ecec402ce1b1ab9cafb7ebdd) ) /* TC531024 */ + + NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "011-m1.m1", CRC(ca661f1b) SHA1(4e3cb57db716ec48487c1b070c3a55a5faf40856) ) /* MB832000 */ + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "011-v11.v11", 0x000000, 0x100000, CRC(5c674d5c) SHA1(d7b9beddeb247b584cea9ca6c43ec6869809b673) ) /* MB838000 */ + ROM_LOAD( "011-v12.v12", 0x100000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) /* MB834000 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "011-v21.v21", 0x000000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) ) /* MB834000 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "011-c1.c1", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) ) /* Plane 0,1 */ /* MB838200 */ + ROM_LOAD16_BYTE( "011-c2.c2", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) ) /* Plane 2,3 */ /* MB838200 */ + ROM_LOAD16_BYTE( "011-c3.c3", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) ) /* Plane 0,1 */ /* MB838200 */ + ROM_LOAD16_BYTE( "011-c4.c4", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) ) /* Plane 2,3 */ /* MB838200 */ +ROM_END + +/**************************************** + ID-0012 + unknown +****************************************/ + +/**************************************** + ID-0013 + unknown +****************************************/ + +/**************************************** + ID-0014 + . NGM-014 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-014 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( mutnat ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "014-p1.p1", 0x000000, 0x080000, CRC(6f1699c8) SHA1(87206f67a619dede7959230f9ff3701b8b78957a) ) /* CXK384500 */ + + NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "014-m1.m1", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) ) /* CXK381003A */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "014-v1.v1", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) ) /* CXK388000 */ + ROM_LOAD( "014-v2.v2", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) ) /* CXK388000 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "014-c1.c1", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "014-c2.c2", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) ) /* Plane 2,3 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "014-c3.c3", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "014-c4.c4", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) ) /* Plane 2,3 */ /* CXK388000 */ +ROM_END + +/**************************************** + ID-0015 + unknown +****************************************/ + +/**************************************** + ID-0016 + . NGM-016 + NEO-MVS PROG42G / NEO-MVS CHA42G + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-016 + NEO-AEG PROG42G / NEO-AEG CHA42G + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( kotm ) /* MVS VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "016-p1.p1", 0x000000, 0x080000, CRC(1b818731) SHA1(b98b1b33c0301fd79aac908f6b635dd00d1cb08d) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) /* TC531024 */ + + NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) ) /* TC538200 */ + ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( kotmh ) /* AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "016-hp1.p1",0x000000, 0x080000, CRC(b774621e) SHA1(7684b2e07163aec68cd083ef1d8900f855f6cb42) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) /* TC531024 */ + + NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) ) /* TC538200 */ + ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0017 + . NGM-017 + NEO-MVS PROG42G / NEO-MVS CHA42G + . NGH-017 + NEO-AEG PROG42G / NEO-AEG CHA42G + NEO-AEG PRO42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( sengoku ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "017-p1.p1", 0x000000, 0x080000, CRC(f8a63983) SHA1(7a10ecb2f0fd8315641374c065d2602107b09e72) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) /* TC531024 */ + + NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) /* TC538200 */ + ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( sengokuh ) /* AES VERSION (US) */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "017-hp1.p1", 0x000000, 0x080000, CRC(33eccae0) SHA1(000ccf9a9c73df75eeba3f2c367c3a1a9e0a3a6b) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) /* TC531024 */ + + NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) /* TC538200 */ + ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0018 + . NGM-018 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + also found on (seen several times; CHA and PROG board are 'manually patched up' with wires and resistors) + NEO-MVS PROG42G / NEO-MVS CHA42G + . NGH-018 + NEO-AEG PROG42G / NEO-AEG CHA42G + . prototype + NEO-AEG PROG-EP / NEO-AEG CHA-EP +****************************************/ + +ROM_START( burningf ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "018-p1.p1", 0x000000, 0x080000, CRC(4092c8db) SHA1(df194a4ad2c35e0e18bc053ff9284183444a4666) ) /* HN62434 */ + + NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) /* HN62321 */ + + NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) /* HN62321A */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) /* HN62408 */ + ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) /* HN62408 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) /* Plane 0,1 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) /* Plane 2,3 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) /* Plane 0,1 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) /* Plane 2,3 */ /* HN62408 */ +ROM_END + +ROM_START( burningfh ) /* AES VERSION (US) */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "018-hp1.p1", 0x000000, 0x080000, CRC(ddffcbf4) SHA1(c646c4bbdb4e9b32df76c90f582ccd69fcc9f8e7) ) /* HN62434 */ + + NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) /* HN62321 */ + + NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) /* HN62321A */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) /* HN62408 */ + ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) /* HN62408 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) /* Plane 0,1 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) /* Plane 2,3 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) /* Plane 0,1 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) /* Plane 2,3 */ /* HN62408 */ +ROM_END + +ROM_START( burningfp ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "018_p1_9397.p1", 0x000001, 0x080000, CRC(5b4032e7) SHA1(55df91dad6f484d3d49c28ab5972700bf71a8662) ) + ROM_LOAD16_BYTE( "018_p2_e335.p2", 0x000000, 0x080000, CRC(78762f68) SHA1(12170fc6efe75cb5d32624033d3d341032c97548) ) + + NEO_SFIX_128K( "018_s1_9899.s1", CRC(f3d130e8) SHA1(2fdeb93f4bb2a60d391cac2822be41661b1e1795) ) + + NEO_BIOS_AUDIO_128K( "018_m1_4586.m1", CRC(470dd5d4) SHA1(4291811b4aefe45261a1ae3631b6999fcd74fb3f) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "018_v11_56ac.v11", 0x000000, 0x080000, CRC(dc07ea3c) SHA1(c3e71aaec44ead7ddc581565d16b90030e6db5fd) ) + ROM_LOAD( "018_v12_db95.v12", 0x080000, 0x080000, CRC(f1ae637c) SHA1(02a4c7d4a544350a314ab7b26d8c9d3baa8f5778) ) + ROM_LOAD( "018_v21_98dd.v21", 0x100000, 0x080000, CRC(9f3b4eda) SHA1(7f516923d04daa483b4b99c9babba66505931a34) ) + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_COPY( "ymsnd", 0x100000, 0x00000, 0x80000 ) + + ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "018_c1_ba06.c11", 0x000000, 0x80000, CRC(6569018b) SHA1(25040e0a9c2b72900100a22a2a41de5f6c339d8a) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "018_c2_d534.c12", 0x000002, 0x80000, CRC(6949b501) SHA1(d8ee48837faff6cc849046ee8757b2b94d440303) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "018_c3_9d70.c13", 0x000001, 0x80000, CRC(410f653b) SHA1(ce94667721baa7b2c318fc268e3bb9209671c9f5) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "018_c4_bf9d.c14", 0x000003, 0x80000, CRC(d43bf2a5) SHA1(c27985d8973611d02570f469a0d8cb4f5b63b614) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "018_c5_ac9d.c15", 0x200000, 0x80000, CRC(837d09d3) SHA1(d3b06931fca6123604549599544b04529ef34c53) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "018_c6_d2a5.c16", 0x200002, 0x80000, CRC(5fee51e7) SHA1(835c632fa12a1d5b4104cd80b8f686ac80b314a1) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "018_c7_d568.c17", 0x200001, 0x80000, CRC(0f3f0823) SHA1(ec1d681c1795de43d20f30f85956e2473ec39c95) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "018_c8_d256.c18", 0x200003, 0x80000, CRC(67cc9e34) SHA1(dc72a464c1456a4d2f7b992b416a984fb7885e99) ) /* Plane 3 */ +ROM_END + +/**************************************** + ID-0019 + . NGM-019 + NEO-MVS PROG-HERO / NEO-MVS CHA-32 + . NGH-019 + NEO-AEG PROG-HERO / NEO-AEG CHA-32 +****************************************/ + +ROM_START( lbowling ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "019-p1.p1", 0x000000, 0x080000, CRC(a2de8445) SHA1(893d7ae72b4644123469de143fa35fac1cbcd61e) ) /* TC534200 */ + + ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ + ROM_LOAD( "hd6301v1p.com", 0x0000, 0x1000, NO_DUMP ) + + NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "019-m1.m1", CRC(d568c17d) SHA1(a2e318ed6ad1809c79f3f0853d75e0dd1a2f275c) ) /* TC531001 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) ) /* TC534000 */ + ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) ) /* TC534000 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) ) /* TC534000 */ + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "019-c1.c1", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "019-c2.c2", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0020 + . NGM-020 + NEO-MVS PROG8M42 / NEO-MVS CHA-8M + . NGH-020 + NEO-AEG PROG8M42 / NEO-AEG CHA-8M +****************************************/ + +ROM_START( gpilots ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "020-p1.p1", 0x000000, 0x080000, CRC(e6f2fe64) SHA1(50ab82517e077727d97668a4df2b9b96d2e78ab6) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) /* TC531024 */ + + NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) /* TC531001 */ + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) /* TC538200 */ + ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) /* TC534200 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) /* TC534200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( gpilotsh ) /* AES VERSION (US) */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "020-hp1.p1", 0x000000, 0x080000, CRC(7cdb01ce) SHA1(32cae2ddf5e26fb7e8a09132e600220db82df3b8) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) /* TC531024 */ + + NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) /* TC531001 */ + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) /* TC538200 */ + ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) /* TC534200 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) /* TC534200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0021 + . NGM-021 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-021 + NEO-AEG PROG B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( joyjoy ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "021-p1.p1", 0x000000, 0x080000, CRC(39c3478f) SHA1(06ebe54c9c4e14c5c31e770013d58b7162359ecc) ) /* MB834200 */ + + NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "021-m1.m1", CRC(5a4be5e8) SHA1(552f025ce0d51c25f42e1a81cf0d08376ca5475d) ) /* MB832000 */ + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "021-v11.v11", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) ) /* MB834000 */ + + ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) + ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) /* MB834000 */ + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0022 + . ALM-001 + NEO-MVS PROG8M42 / NEO-MVS CHA-8M + . ALH-001 + NEO-AEG PROG 8M42 / NEO-AEG CHA-8M +****************************************/ + +ROM_START( bjourney ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "022-p1.p1", 0x000000, 0x100000, CRC(6a2f6d4a) SHA1(b8ca548e56f1c7abcdce415ba7329e0cf698ee13) ) /* TC538200 */ + + NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) ) /* TC538200 */ + ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0023 + . NGM-023 + NEO-MVS PROG42G / NEO-MVS CHA42G + NEO-MVS PROGTOP / NEO-MVS CHA-256 + Boards used for the Korean release + . NGH-023 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( quizdais ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "023-p1.p1", 0x000000, 0x100000, CRC(c488fda3) SHA1(4cdf2f1837fffd720efef42f81f933bdf2ef1402) ) /* TC538200 */ + + NEO_SFIX_128K( "023-s1.s1", CRC(ac31818a) SHA1(93c8d67a93606a2e02f12ca4cab849dc3f3de286) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "023-m1.m1", CRC(2a2105e0) SHA1(26fc13556fda2dbeb7b5b035abd994e302dc7662) ) /* TC531001 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "023-v1.v1", 0x000000, 0x100000, CRC(a53e5bd3) SHA1(cf115c6478ce155d889e6a5acb962339e08e024b) ) /* TC538200 */ + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "023-c1.c1", 0x000000, 0x100000, CRC(2999535a) SHA1(0deabf771039987b559edc2444eea741bd7ba861) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "023-c2.c2", 0x000001, 0x100000, CRC(876a99e6) SHA1(8d1dcfc0927d7523f8be8203573192406ec654b4) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( quizdaisk ) /* KOREAN VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "123-p1.p1", 0x000000, 0x100000, CRC(a6f35eae) SHA1(edd3fd5ba8eae2231e2b0a6605fa00e5c6de094a) ) + + NEO_SFIX_128K( "123-s1.s1", CRC(53de938a) SHA1(5024fee3b245f8a069d7ecfa6f033b70ed1a5fce) ) + + NEO_BIOS_AUDIO_128K( "123-m1.m1", CRC(d67f53f9) SHA1(73a1bd175ae29dd957a907a046884f8715bd0a34) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "123-v1.v1", 0x000000, 0x200000, CRC(986f4af9) SHA1(9e15d2142ec5e5d076582dc1cecfd724b0924f54) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "123-c1.c1", 0x000000, 0x100000, CRC(e579a606) SHA1(b9430ec157902f0707e5d52e69bd5d93792e7118) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "123-c2.c2", 0x000001, 0x100000, CRC(e182c837) SHA1(a8f7648bf21ebd3efe3a49606b53220815a60d0f) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0024 + . NGM-024 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-024 + + . prototype + NEO-MVS PROG-EP / NEO-MVS CHA-EPG +****************************************/ + +ROM_START( lresort ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "024-p1.p1", 0x000000, 0x080000, CRC(89c4ab97) SHA1(3a1817c427185ea1b44fe52f009c00b0a9007c85) ) /* TC534200 */ + + NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "024-m1.m1", CRC(cec19742) SHA1(ab6c6ba7737e68d2420a0617719c6d4c89039c45) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "024-v1.v1", 0x000000, 0x100000, CRC(efdfa063) SHA1(e4609ecbcc1c820758f229da5145f51285b50555) ) /* TC538200 */ + ROM_LOAD( "024-v2.v2", 0x100000, 0x100000, CRC(3c7997c0) SHA1(8cb7e8e69892b19d318978370dbc510d51b06a69) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "024-c1.c1", 0x000000, 0x100000, CRC(3617c2dc) SHA1(8de2643a618272f8aa1c705363edb007f4a5f5b7) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "024-c2.c2", 0x000001, 0x100000, CRC(3f0a7fd8) SHA1(d0c9c7a9dde9ce175fb243d33ec11fa719d0158c) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "024-c3.c3", 0x200000, 0x080000, CRC(e9f745f8) SHA1(bbe6141da28b0db7bf5cf321d69b7e613e2414d7) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "024-c4.c4", 0x200001, 0x080000, CRC(7382fefb) SHA1(e916dec5bb5462eb9ae9711f08c7388937abb980) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( lresortp ) /* prototype - all roms were hand labeled with CRCs */ /* MVS VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "024_p1_5937.podd", 0x000001, 0x080000, CRC(8e6008ee) SHA1(6779663118782207156dc9fa9e24e81e30c6391c) ) + ROM_LOAD16_BYTE( "024_p2_8d37.peven", 0x000000, 0x080000, CRC(6d9ee90f) SHA1(ecd42182988092417bc96db8301ea408e47735f2) ) + + NEO_SFIX_128K( "024_s1_22fe.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) + + NEO_BIOS_AUDIO_128K( "024_m1_fc7a.m1", CRC(22122875) SHA1(540c21559163381467679f836cb068adaf526659) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "024_v11_b085.v11", 0x000000, 0x080000, CRC(0722da38) SHA1(66a9b463d5277908b3a01c03de82b3de9118f2cb) ) // 024_v11_b085.bin 024-v1.v1 [1/2] IDENTICAL + ROM_LOAD( "024_v12_d3b7.v12", 0x080000, 0x080000, CRC(670ce3ec) SHA1(9004aa85d4a9b0ecf9cf9357b073ed55a98fdb02) ) // 024_v12_d3b7.bin 024-v1.v1 [2/2] IDENTICAL + ROM_LOAD( "024_v13_a31e.v13", 0x100000, 0x080000, CRC(2e39462b) SHA1(b0a9b1a3377bf0369f3020192505c46ca52927d6) ) // 024_v13_a31e.bin 024-v2.v2 [1/2] IDENTICAL + ROM_LOAD( "024_v24_2f0f.v24", 0x180000, 0x080000, CRC(7944754f) SHA1(d42a46c5127c6c62041ebffb0007af8a24abd360) ) // 024_v24_2f0f.bin 024-v2.v2 [2/2] IDENTICAL + + ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "024_c1_b764.c1", 0x000000, 0x80000, CRC(677749ec) SHA1(6f94675e037956a380652ab1056e6f1dec605bec) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "024_c2_1951.c2", 0x000002, 0x80000, CRC(104d7b59) SHA1(404e8776ee8df4ca282eb7b747759af8628ddca1) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "024_c3_0f63.c3", 0x000001, 0x80000, CRC(b0965a74) SHA1(e8026dd4f722ccab9c913261d09ab8843ef56a0e) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "024_c4_c5b5.c4", 0x000003, 0x80000, CRC(dcfc3860) SHA1(8443b455ae8de656adab57f3b7e68919f22d3b9d) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "024_c5_dd03.c5", 0x200000, 0x80000, CRC(50322397) SHA1(3308fbe48ad165b9894a52fc3a8d9898bbbc0c0e) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "024_c6_c81a.c6", 0x200002, 0x80000, CRC(c3c93894) SHA1(f23b9d7e2b54d44c96370dde282bdf45cebd9cba) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "024_c7_5edc.c7", 0x200001, 0x80000, CRC(21faf72b) SHA1(00bf257b06180ae6ede57744cea6257b3488d9f0) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "024_c8_0850.c8", 0x200003, 0x80000, CRC(fb57217b) SHA1(607a98da754e8b1dd94a6432b21a36cc38e06a0f) ) /* Plane 3 */ +ROM_END + + +/**************************************** + ID-0025 + . NGM-025 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-025 + NEO-AEG PROG42G / NEO-AEG CHA42G +****************************************/ + +ROM_START( eightman ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "025-p1.p1", 0x000000, 0x080000, CRC(43344cb0) SHA1(29dfd699f35b0a74e20fedd6c9174c289f0ef6e0) ) /* TC574200 */ + + NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "025-m1.m1", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) ) /* TC541000 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "025-v1.v1", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) ) /* TC538200 */ + ROM_LOAD( "025-v2.v2", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "025-c1.c1", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "025-c2.c2", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "025-c3.c3", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "025-c4.c4", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0026 + Fun Fun Brothers (prototype) 1991 Alpha +****************************************/ + +/**************************************** + ID-0027 + . MOM-001 + NEO-MVS PROG-8MB / NEO-MVS CHA-8M + . MOH-001 + NEO-AEG PROG-8MB / NEO-AEG CHA-8M +****************************************/ + +ROM_START( minasan ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "027-p1.p1", 0x000000, 0x080000, CRC(c8381327) SHA1(c8f8be0ba276c6d12ef13d05af3cf83a2b924894) ) /* HN62422PC */ + + NEO_SFIX_128K( "027-s1.s1", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) ) /* HN62321BP */ + + NEO_BIOS_AUDIO_128K( "027-m1.m1", CRC(add5a226) SHA1(99995bef2584abbba16777bac52f55523f7aa97d) ) /* HN62321AP */ + + ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "027-v11.v11", 0x000000, 0x100000, CRC(59ad4459) SHA1(bbb8ba8a8e337dd2946eefda4757e80d0547d54a) ) /* HN62308BPC */ + + ROM_REGION( 0x100000, "ymsnd.deltat", 0 ) + ROM_LOAD( "027-v21.v21", 0x000000, 0x100000, CRC(df5b4eeb) SHA1(134f3bcc3bb82e2a5711496af1019f343f9c0f7e) ) /* HN62308BPC */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "027-c1.c1", 0x000000, 0x100000, CRC(d0086f94) SHA1(7d6579530ccb5188f653be69b1df17e47e40e7a6) ) /* Plane 0,1 */ /* HN62408PD */ + ROM_LOAD16_BYTE( "027-c2.c2", 0x000001, 0x100000, CRC(da61f5a6) SHA1(82c5b4e5c5c5e30a3fd1c2e11c6157f39d033c42) ) /* Plane 2,3 */ /* HN62408PD */ + ROM_LOAD16_BYTE( "027-c3.c3", 0x200000, 0x100000, CRC(08df1228) SHA1(288b7ad328c2249f28d17df4dad3584995dca7bf) ) /* Plane 0,1 */ /* HN62408PD */ + ROM_LOAD16_BYTE( "027-c4.c4", 0x200001, 0x100000, CRC(54e87696) SHA1(90816dc86be3983dc57f56ededf7738475c0c61e) ) /* Plane 2,3 */ /* HN62408PD */ +ROM_END + +/**************************************** + ID-0028 + Dunk Star (prototype) 1991 Sammy +****************************************/ + +/**************************************** + ID-0029 + . ??M-029 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . ??H-029 +****************************************/ + +ROM_START( legendos ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "029-p1.p1", 0x000000, 0x080000, CRC(9d563f19) SHA1(9bff7bf9fdcf81a0a6c4ce3e196097d4f05e67b6) ) /* TC534200 */ + + NEO_SFIX_128K( "029-s1.s1", CRC(bcd502f0) SHA1(a3400f52c037aa6a42e59e602cc24fa45fcbc951) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "029-m1.m1", CRC(6f2843f0) SHA1(975fb1598b87a2798fff05e951fca2e2e0329e79) ) /* TC531001 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "029-v1.v1", 0x000000, 0x100000, CRC(85065452) SHA1(7154b7c59b16c32753ac6b5790fb50b51ce30a20) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "029-c1.c1", 0x000000, 0x100000, CRC(2f5ab875) SHA1(3e060973bba41a6c22ff7054104bdc5eee1fa13a) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "029-c2.c2", 0x000001, 0x100000, CRC(318b2711) SHA1(7014110cee98280317e1189f306ca40652b61f6f) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "029-c3.c3", 0x200000, 0x100000, CRC(6bc52cb2) SHA1(14323a4664b7dcbcde82e594168e535d7a921e44) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "029-c4.c4", 0x200001, 0x100000, CRC(37ef298c) SHA1(7a0c4c896dc3e730e06dcadbf00cf354f08a4466) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0030 + . NGM-030 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-030 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 + NEO-AEG PROG42G / NEO-AEG CHA42G +****************************************/ + +ROM_START( 2020bb ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "030-p1.p1", 0x000000, 0x080000, CRC(d396c9cb) SHA1(47ba421d14d05b965a8d44e7475b227a208e5a07) ) /* TC534200 */ + /* also found AES set with p1 label 030-P1 on TC534200 on NEO-AEG PROG42G and m1 label 030-M1 on TC531001 on NEO-AEG CHA42G; other chip labels are the same */ + + NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ + ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( 2020bba ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "030-epr.p1", 0x000000, 0x080000, CRC(c59be3dd) SHA1(4fbd462c1c18e85a252c58b04b54fd3b82b46cb0) ) /* TC574200 */ + /* P1 on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ + ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( 2020bbh ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "030-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(12d048d7) SHA1(ee0d03a565b11ca3bee2d24f62ff46a85ef18d90) ) + /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */ + + NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ + ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0031 + . NGM-031 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-031 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( socbrawl ) /* MVS VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "031-pg1.p1", 0x000000, 0x080000, CRC(17f034a7) SHA1(2e66c7bd93a08efe63c4894494db50bbf58f60e4) ) /* TC534200 */ + + NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) ) /* TC538200 */ + ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( socbrawlh ) /* AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "031-p1.p1", 0x000000, 0x080000, CRC(a2801c24) SHA1(627d76ff0740ca29586f37b268f47fb469822529) ) /* TC534200 */ + + NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) ) /* TC538200 */ + ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0032 + . NGM-032 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-032 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( roboarmy ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "032-p1.p1", 0x000000, 0x080000, CRC(cd11cbd4) SHA1(23163e3da2f07e830a7f4a02aea1cb01a54ccbf3) ) /* TC534200 */ + /* also found AES and MVS set with p1 on eprom on NEO-AEG PROG42G-1 and NEO-MVS PROG42G-COM; correct chip label unknown */ + + NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */ + ROM_LOAD( "032-v2.v2", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "032-c1.c1", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "032-c2.c2", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "032-c3.c3", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "032-c4.c4", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0033 + . NGM-033 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-033 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( fatfury1 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "033-p1.p1", 0x000000, 0x080000, CRC(47ebdc2f) SHA1(d46786502920fb510f1999db00c5e09fb641c0bd) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "033-p2.p2", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) ) /* TC531024 */ + + NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "033-m1.m1", CRC(5be10ffd) SHA1(90a5e6cbbc58a7883cd2a3a597180d631a466882) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "033-v1.v1", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) ) /* TC538200 */ + ROM_LOAD( "033-v2.v2", 0x100000, 0x100000, CRC(fa2ae47f) SHA1(80d0ba4cd30aab59b6f0db8fa341387bd7388afc) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "033-c1.c1", 0x000000, 0x100000, CRC(74317e54) SHA1(67b9c2814a12603b959612456f59de55f9bf6f57) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "033-c2.c2", 0x000001, 0x100000, CRC(5bb952f3) SHA1(ea964bbcc0408b6ae07cbb5043d003281b1aca15) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "033-c3.c3", 0x200000, 0x100000, CRC(9b714a7c) SHA1(b62bdcede3207d062a89e0a4a9adf706101bb681) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "033-c4.c4", 0x200001, 0x100000, CRC(9397476a) SHA1(a12dbb74020aeb6ebf24ec2abbfba5129cabcb7d) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0034 + . NGM-034 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-034 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( fbfrenzy ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "034-p1.p1", 0x000000, 0x080000, CRC(cdef6b19) SHA1(97482db0dffc6d625fb41fa38449c0a74d741a72) ) /* TC534200 */ + + NEO_SFIX_128K( "034-s1.s1", CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "034-m1.m1", CRC(f41b16b8) SHA1(f3e1cfc4cd2c5baece176f169906aa796367d303) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "034-v1.v1", 0x000000, 0x100000, CRC(50c9d0dd) SHA1(2b3f2875b00e5f307d274128bd73c1521a7d901b) ) /* TC538200 */ + ROM_LOAD( "034-v2.v2", 0x100000, 0x100000, CRC(5aa15686) SHA1(efe47954827a98d539ba719347c5f8aa60e6338b) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "034-c1.c1", 0x000000, 0x100000, CRC(91c56e78) SHA1(2944d49ebfc71239d345209ca7f25993c2cc5a77) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "034-c2.c2", 0x000001, 0x100000, CRC(9743ea2f) SHA1(cf4fccdf10d521d555e92bc24123142393c2b3bb) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "034-c3.c3", 0x200000, 0x080000, CRC(e5aa65f5) SHA1(714356a2cee976ec0f515b1034ce971018e5c02e) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "034-c4.c4", 0x200001, 0x080000, CRC(0eb138cc) SHA1(21d31e1f136c674caa6dd44073281cd07b72ea9b) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0035 + Mystic Wand (prototype) 1991 Alpha +****************************************/ + +/**************************************** + ID-0036 + . MOM-002 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1 + . MOH-002 + NEO-AEG PROG42G / NEO-AEG CHA42G +****************************************/ + +ROM_START( bakatono ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "036-p1.p1", 0x000000, 0x080000, CRC(1c66b6fa) SHA1(6c50cc452971c46c763ae0b2def95792671a1798) ) /* CXK384500 */ + + NEO_SFIX_128K( "036-s1.s1", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "036-m1.m1", CRC(f1385b96) SHA1(e7e3d1484188a115e262511116aaf466b8b1f428) ) /* CXK381003 */ + + ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "036-v1.v1", 0x000000, 0x100000, CRC(1c335dce) SHA1(493c273fa71bf81861a20af4c4eaae159e169f39) ) /* CXK388000 */ + ROM_LOAD( "036-v2.v2", 0x100000, 0x100000, CRC(bbf79342) SHA1(45a4f40e415cdf35c3073851506648c8f7d53958) ) /* CXK388000 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "036-c1.c1", 0x000000, 0x100000, CRC(fe7f1010) SHA1(5b6f5053821f4da8dc3768371e2cd51bb29da963) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "036-c2.c2", 0x000001, 0x100000, CRC(bbf003f5) SHA1(054b2a3327e038836eece652055bb84c115cf8ed) ) /* Plane 2,3 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "036-c3.c3", 0x200000, 0x100000, CRC(9ac0708e) SHA1(8decfe06d73a3dd3c3cf280719978fcf6d559d29) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "036-c4.c4", 0x200001, 0x100000, CRC(f2577d22) SHA1(a37db8055ca4680e244c556dc6df8bdba16c2083) ) /* Plane 2,3 */ /* CXK388000 */ +ROM_END + +/**************************************** + ID-0037 + . ALM-002 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . ALH-002 + NEO-AEG PROG42G / NEO-AEG CHA42G +****************************************/ + +ROM_START( crsword ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "037-p1.p1", 0x000000, 0x080000, CRC(e7f2553c) SHA1(8469ecb900477feed05ae3311fe9515019bbec2a) ) /* TC534200 */ + + NEO_SFIX_128K( "037-s1.s1", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "037-m1.m1", CRC(9504b2c6) SHA1(9ce8e681b9df6eacd0d23a36bad836bd5074233d) ) /* TC531001 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "037-v1.v1", 0x000000, 0x100000, CRC(61fedf65) SHA1(98f31d1e23bf7c1f7844e67f14707a704134042e) ) /* TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "037-c1.c1", 0x000000, 0x100000, CRC(09df6892) SHA1(df2579dcf9c9dc88d461212cb74de106be2983c1) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "037-c2.c2", 0x000001, 0x100000, CRC(ac122a78) SHA1(7bfa4d29b7d7d9443f64d81caeafa74fe05c606e) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "037-c3.c3", 0x200000, 0x100000, CRC(9d7ed1ca) SHA1(2bbd25dc3a3f825d0af79a418f06a23a1bf03cc0) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "037-c4.c4", 0x200001, 0x100000, CRC(4a24395d) SHA1(943f911f40985db901eaef4c28dfcda299fca73e) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0038 + . ALM-003 + NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1 + . ALH-003 + NEO-AEG PROG42G-COM / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( trally ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "038-p1.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "038-p2.p2", 0x080000, 0x080000, CRC(a5193e2f) SHA1(96803480439e90da23cdca70d59ff519ee85beeb) ) /* TC534200 */ + + ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ + ROM_LOAD( "hd6301v1p.hd6301v1", 0x0000, 0x1000, NO_DUMP ) + + NEO_SFIX_128K( "038-s1.s1", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "038-m1.m1", CRC(0908707e) SHA1(df7489ea6abf84d7f137ba7a8f52a4fd1b088fd7) ) /* TC531001 */ + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "038-v1.v1", 0x000000, 0x100000, CRC(5ccd9fd5) SHA1(c3c8c758a320c39e4ceb0b6d9f188ed6d122eec4) ) /* TC538200 */ + ROM_LOAD( "038-v2.v2", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) ) /* TC534200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "038-c1.c1", 0x000000, 0x100000, CRC(c58323d4) SHA1(a6bd277471a4b612d165f8b804f3cb662f499b70) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "038-c2.c2", 0x000001, 0x100000, CRC(bba9c29e) SHA1(b70bbfdfa8c4f9ea76406530e86b16e42498d284) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "038-c3.c3", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "038-c4.c4", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0039 + . NGM-039 + NEO-MVS PROG16 / NEO-MVS CHA42G-1 + . NGH-039 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( kotm2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "039-p1.p1", 0x000000, 0x080000, CRC(b372d54c) SHA1(b70fc6f72e16a66b6e144cc01370548e3398b8b8) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "039-p2.p2", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) ) /* TC534200 */ + + NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) /* TC531001 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "039-v2.v2", 0x000000, 0x200000, CRC(86d34b25) SHA1(89bdb614b0c63d678962da52e2f596750d20828c) ) /* TC5316200 */ + ROM_LOAD( "039-v4.v4", 0x200000, 0x100000, CRC(8fa62a0b) SHA1(58ac2fdd73c542eb8178cfc4adfa0e5940183283) ) /* TC538200 */ + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "039-c1.c1", 0x000000, 0x100000, CRC(6d1c4aa9) SHA1(4fbc9d7cb37522ec298eefbe38c75a2d050fbb4a) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "039-c2.c2", 0x000001, 0x100000, CRC(f7b75337) SHA1(4d85f85948c3e6ed38b0b0ccda79de3ce026e2d9) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "039-c3.c3", 0x200000, 0x080000, CRC(bfc4f0b2) SHA1(f4abe2b52882b966412f3b503b8f2c8f49b57968) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "039-c4.c4", 0x200001, 0x080000, CRC(81c9c250) SHA1(e3a34ff69081a8681b5ca895915892dcdccfa7aa) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( kotm2p ) /* fairly late prototype release, only the code differs from the main set */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "proto_039-p1.p1", 0x000001, 0x080000, CRC(3c1d17e7) SHA1(aeaff465fafa46ded903ed4e8cb8cd05de8dc096) ) + ROM_LOAD16_BYTE( "proto_039-p2.p2", 0x000000, 0x080000, CRC(bc9691f0) SHA1(3854659b952d4f8c2edd5d59858a61ce6d518604) ) + + NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) /* TC531001 */ + + // same data as main set, but prototype board layout + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "proto_039-v1.v1", 0x000000, 0x080000, CRC(dd3566f1) SHA1(f7c2a3747aaab2bc57cdfa33d8bb9fab057b5214) ) + ROM_LOAD( "proto_039-v2.v2", 0x080000, 0x080000, CRC(57f60274) SHA1(7e17740aa05cf7ad4f9084e147600a8eb82c7284) ) + ROM_LOAD( "proto_039-v3.v3", 0x100000, 0x080000, CRC(0f008a07) SHA1(ed243a0449232bbea409308c3fec7e057fcd8501) ) + ROM_LOAD( "proto_039-v4.v4", 0x180000, 0x080000, CRC(1943d0fe) SHA1(47fb716c76ea6b5fe64204ff6d72b7feea10bda9) ) + ROM_LOAD( "proto_039-v5.v5", 0x200000, 0x080000, CRC(13be045b) SHA1(0e3713ae6b164ebae434c0f18c466365b26b9a77) ) + ROM_LOAD( "proto_039-v6.v6", 0x280000, 0x080000, CRC(d1dd3fd6) SHA1(052b92168a76cf3a97c8cacebcc3ebab228726df) ) + + // same data as main set, but prototype board layout + ROM_REGION( 0x600000, "sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "proto_039-c1.c1", 0x000000, 0x100000, CRC(7192a787) SHA1(7bef6ce79c618103485480aee3c6f856968eb51f) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "proto_039-c2.c2", 0x000002, 0x100000, CRC(7157eca1) SHA1(65f36c6a3834775b04076d2c38a6047bffe9a8cf) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "proto_039-c3.c3", 0x000001, 0x100000, CRC(11d75727) SHA1(5a4c7b5ca3f1195e7853b45c5e71c13fe74d16e9) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "proto_039-c4.c4", 0x000003, 0x100000, CRC(7ad48b28) SHA1(27e65d948f08c231107cb1a810e2b06731091fc3) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "proto_039-c5.c5", 0x400000, 0x080000, CRC(5bdaf9ca) SHA1(60620d42ac6cd0e5da019fede2814a2f4171ff3f) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "proto_039-c6.c6", 0x400002, 0x080000, CRC(21d4be8c) SHA1(f1b19d37d52d21584f304b7d37d5c096b58219d6) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "proto_039-c7.c7", 0x400001, 0x080000, CRC(da55fd00) SHA1(52804f955597591fdd1d7478dc340b36d3c08c4a) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "proto_039-c8.c8", 0x400003, 0x080000, CRC(592e9267) SHA1(0d27de59970ccbcaa1d47909ea3d741ffb0d9e07) ) /* Plane 3 */ +ROM_END + +/**************************************** + ID-0040 + . NGM-040 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 + . NGH-040 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( sengoku2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "040-p1.p1", 0x000000, 0x100000, CRC(6dde02c2) SHA1(e432e63feb88c71629ec96aa84650dcfe356a551) ) /* TC538200 */ + + NEO_SFIX_128K( "040-s1.s1", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "040-m1.m1", CRC(d4de4bca) SHA1(ecf604d06f01d40b04e285facef66a6ae2d35661) ) /* TC531001 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "040-v1.v1", 0x000000, 0x200000, CRC(71cb4b5d) SHA1(56d9aca1d476c19c7d0f707176a8fed53e0189b7) ) /* TC5316200 */ + // AES has different label, data is the same: 040-v1.v2 + ROM_LOAD( "040-v2.v2", 0x200000, 0x100000, CRC(c5cece01) SHA1(923a3377dac1919e8c3d9ab316902250caa4785f) ) /* TC538200 */ + // AES has different label, data is the same: 040-v2.v4 + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "040-c1.c1", 0x000000, 0x100000, CRC(faa8ea99) SHA1(714575e57ea1990612f960ec42b38d2e157ad400) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "040-c2.c2", 0x000001, 0x100000, CRC(87d0ec65) SHA1(23645e0cf859fb4cec3745b3846ca0ef64c689fb) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "040-c3.c3", 0x200000, 0x080000, CRC(24b5ba80) SHA1(29d58a6b56bd24ee2046a8d45e023b4d7ab7685b) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "040-c4.c4", 0x200001, 0x080000, CRC(1c9e9930) SHA1(d017474873750a7602b7708c663d29b25ef7bb63) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0041 + . NGM-041 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-041 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( bstars2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "041-p1.p1", 0x000000, 0x080000, CRC(523567fd) SHA1(f1e81eb4678f586b214ea102cde6effea1b0f768) ) /* TC534200 */ + + NEO_SFIX_128K( "041-s1.s1", CRC(015c5c94) SHA1(f1c60cd3dc54986b39f630ef3bf48f68c68695dc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "041-m1.m1", CRC(15c177a6) SHA1(3f4abed635102f9bc8b44809750828c82e79b44f) ) /* TC531001 */ + + ROM_REGION( 0x280000, "ymsnd", 0 ) + ROM_LOAD( "041-v1.v1", 0x000000, 0x100000, CRC(cb1da093) SHA1(4f4d1d5fefa9dda372083c045bf0d268a57ce8f1) ) /* TC538200 */ + ROM_LOAD( "041-v2.v2", 0x100000, 0x100000, CRC(1c954a9d) SHA1(159bc6efdd531615461f6e16f83f6d4c4e67c237) ) /* TC538200 */ + ROM_LOAD( "041-v3.v3", 0x200000, 0x080000, CRC(afaa0180) SHA1(c4a047e21f093830498a163598ed7bd48a8cf9d1) ) /* TC534200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "041-c1.c1", 0x000000, 0x100000, CRC(b39a12e1) SHA1(bafe383bd7c5a6aac4cb92dabbc56e3672fe174d) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "041-c2.c2", 0x000001, 0x100000, CRC(766cfc2f) SHA1(79e1063925d54a57df943019a88bea56c9152df3) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "041-c3.c3", 0x200000, 0x100000, CRC(fb31339d) SHA1(f4e821299680970b2e979acc4a170029b968c807) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "041-c4.c4", 0x200001, 0x100000, CRC(70457a0c) SHA1(a1e307f11ddab85d2e9c09d0428fac2e6da774b1) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0042 + . NGM-042 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-042 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( quizdai2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "042-p1.p1", 0x000000, 0x100000, CRC(ed719dcf) SHA1(12baf2601e86c0e4358517b9fa1c55f2f5835f1d) ) /* TC538200 */ + + NEO_SFIX_128K( "042-s1.s1", CRC(164fd6e6) SHA1(dad35bedc33d502a5ae745a45a972af8d901b160) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "042-m1.m1", CRC(bb19995d) SHA1(ed458fad5a23c6bd0d099927d98c31e1e6562d1b) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "042-v1.v1", 0x000000, 0x100000, CRC(af7f8247) SHA1(99a47014017c20e4e22010c60612b6b7f6efc9e5) ) /* TC538200 */ + ROM_LOAD( "042-v2.v2", 0x100000, 0x100000, CRC(c6474b59) SHA1(a6c5054032b698116247b2f09a8b94a1b588c4f1) ) /* TC538200 */ + + ROM_REGION( 0x300000, "sprites", 0 ) + ROM_LOAD16_BYTE( "042-c1.c1", 0x000000, 0x100000, CRC(cb5809a1) SHA1(b53d06685246dd51b82b5c1d54d639d10e2ec26d) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "042-c2.c2", 0x000001, 0x100000, CRC(1436dfeb) SHA1(27d136fb1be793bd345a741f5e55a977275fff86) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "042-c3.c3", 0x200000, 0x080000, CRC(bcd4a518) SHA1(f355298fe0f2cf50ddcc0d613db56a5c04d7230f) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "042-c4.c4", 0x200001, 0x080000, CRC(d602219b) SHA1(34cf0f16db1e224396464ac838f4cd2e6d1c640e) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0043 + . NGM-043 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 + NEO-MVS PROG-G2 / NEO-MVS CHA 42G-2 + . NGH-043 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( 3countb ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "043-p1.p1", 0x000000, 0x100000, CRC(ffbdd928) SHA1(05b24655ca32723661adc5509b450824deb0c176) ) /* TC538200 */ + /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */ + + NEO_SFIX_128K( "043-s1.s1", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "043-m1.m1", CRC(7eab59cb) SHA1(5ae4107457e091f73960bfba39b589ae36d51ca3) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "043-v1.v1", 0x000000, 0x200000, CRC(63688ce8) SHA1(5c6ac29a0cc0655a87cfe3ada8706838b86b86e4) ) /* TC5316200 */ + ROM_LOAD( "043-v2.v2", 0x200000, 0x200000, CRC(c69a827b) SHA1(f5197ea87bb6573fa6aef3a1713c3679c58c1e74) ) /* TC5316200 */ + + ROM_REGION( 0x0800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "043-c1.c1", 0x000000, 0x100000, CRC(bad2d67f) SHA1(04928e50ca75b7fbc52b64e816ec5701901f5893) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "043-c2.c2", 0x000001, 0x100000, CRC(a7fbda95) SHA1(9da3c5faf22592a7eaf8df9fa6454f48c2a927ae) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "043-c3.c3", 0x200000, 0x100000, CRC(f00be011) SHA1(2721cdba37a511a966a2a53b9bd6240f181d920c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x600000, 0x100000 ) + ROM_LOAD16_BYTE( "043-c4.c4", 0x200001, 0x100000, CRC(1887e5c0) SHA1(9b915359add7c10c78d8b281b4084eceea8f0499) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x600001, 0x100000 ) +ROM_END + +/**************************************** + ID-0044 + . NGM-044 + NEO-MVS PROG16 / NEO-MVS CHA42G-1 + NEO-MVS PROG4096 / NEO-MVS CHA42G-1 + . NGH-044 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( aof ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "044-p1.p1", 0x000000, 0x080000, CRC(ca9f7a6d) SHA1(4d28ef86696f7e832510a66d3e8eb6c93b5b91a1) ) /* TC534200 */ + /* also found sets with ep1 or p1 on eprom. */ + + NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "044-m1.m1", CRC(0987e4bb) SHA1(8fae4b7fac09d46d4727928e609ed9d3711dbded) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "044-v2.v2", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) ) /* TC5316200 */ + ROM_LOAD( "044-v4.v4", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) ) /* TC5316200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "044-c1.c1", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "044-c2.c2", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "044-c3.c3", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x600000, 0x100000 ) + ROM_LOAD16_BYTE( "044-c4.c4", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x600001, 0x100000 ) +ROM_END + +/**************************************** + ID-0045 + . NGM-045 + NEO-MVS PROGGSC / NEO-MVS CHA 42G-3 + . NGH-045 + NEO-AEG PROGGS / NEO-AEG CHA42G-4 +****************************************/ + +ROM_START( samsho ) /* MVS VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) ) /* TC538200 */ + /* also found set with ep1 / ep2 on eprom and sp2 on maskrom; same rom data as samshoh is used. */ + + NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) /* TC5316200 */ + ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) /* TC5316200 */ + + ROM_REGION( 0xa00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( samshoh ) /* AES VERSION */ + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) ) /* TC534200 */ + + NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) /* TC5316200 */ + ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) /* TC5316200 */ + + ROM_REGION( 0x900000, "sprites", 0 ) + ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) /* Plane 2,3 */ /* TC534200 */ + /* also found AES set with C6 on TC538200; label is 045-C61.C6 */ +ROM_END + +/**************************************** + ID-0046 + . NGM-046 + NEO-MVS PROGTOP / NEO-MVS CHA256B + . NGH-046 + NEO-AEG PROGTOP / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( tophuntr ) /* MVS VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "046-p1.p1", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "046-s1.s1", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +ROM_START( tophuntrh ) /* AES VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "046-pg1.p1",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "046-p2.sp2",0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "046-sg1.s1", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0047 + . NGM-047 + NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA42G-1 + . NGH-047 + NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2B + NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2 +****************************************/ + +ROM_START( fatfury2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "047-p1.p1", 0x000000, 0x100000, CRC(ecfdbb69) SHA1(59e2f137c6eaf043df4ddae865a9159a10265c60) ) /* TC538200 */ + /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */ + + NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) /* TC5316200 */ + ROM_LOAD( "047-v2.v2", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) ) /* TC5316200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "047-c1.c1", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "047-c2.c2", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "047-c3.c3", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x600000, 0x100000 ) + ROM_LOAD16_BYTE( "047-c4.c4", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x600001, 0x100000 ) +ROM_END + +/**************************************** + ID-0048 + . ??M-048 + NEO-MVS PROGGSC / NEO-MVS CHA256 +****************************************/ + +ROM_START( janshin ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "048-p1.p1", 0x000000, 0x100000, CRC(fa818cbb) SHA1(afee2c897b766c84f13891fb52c574fb18df0951) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "048-s1.s1", CRC(8285b25a) SHA1(d983640cda3e346e38469b4d3ec8048b116a7bb7) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "048-m1.m1", CRC(310467c7) SHA1(c529961195c9bdf5d1ce70a38ad129002d1f3b5f) ) /* mask rom TC531001 */ + + ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "048-v1.v1", 0x000000, 0x200000, CRC(f1947d2b) SHA1(955ff91ab24eb2a7ec51ff46c9f9f2ec060456b2) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "048-c1.c1", 0x000000, 0x200000, CRC(3fa890e9) SHA1(e73d2802bacfbc2b2b16fbbedddde17488e4bbde) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "048-c2.c1", 0x000001, 0x200000, CRC(59c48ad8) SHA1(2630817e735a6d197377558f4324c1442803fe15) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0049 + . NGM-049 + NEO-MVS PROG16 / NEO-MVS CHA42G-1 + . NGH-049 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( androdun ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "049-p1.p1", 0x000000, 0x080000, CRC(3b857da2) SHA1(4dd86c739944696c16c3cdd85935d6dfa9fdc276) ) /* CXK384500 */ + ROM_LOAD16_WORD_SWAP( "049-p2.p2", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) ) /* CXK384500 */ + + NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "049-m1.m1", CRC(edd2acf4) SHA1(c4ee6ba834d54b9fc5a854dbc41a05877e090371) ) /* CXK381003 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "049-v1.v1", 0x000000, 0x100000, CRC(ce43cb89) SHA1(47f82e077abb6efc6b1b0490412ae147d5d2acef) ) /* CXK388000 */ + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "049-c1.c1", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "049-c2.c2", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) ) /* Plane 2,3 */ /* CXK388000 */ +ROM_END + +/**************************************** + ID-0050 + . ALM-004 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . ALH-004 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( ncommand ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "050-p1.p1", 0x000000, 0x100000, CRC(4e097c40) SHA1(43311a7ca14a14dcd4a99d8576a12e897b078643) ) /* CXK388000 */ + + NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "050-m1.m1", CRC(6fcf07d3) SHA1(e9ecff4bfec1f5964bf06645f75d80d611b6231c) ) /* CXK381003 */ + + ROM_REGION( 0x180000, "ymsnd", 0 ) + ROM_LOAD( "050-v1.v1", 0x000000, 0x100000, CRC(23c3ab42) SHA1(b6c59bb180f1aa34c95f3ec923f3aafb689d57b0) ) /* CXK388000 */ + ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) ) /* CXK384000 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "050-c1.c1", 0x000000, 0x100000, CRC(87421a0a) SHA1(1d8faaf03778f7c5b062554d7333bbd3f0ca12ad) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "050-c2.c2", 0x000001, 0x100000, CRC(c4cf5548) SHA1(ef9eca5aeff9dda2209a050c2af00ed8979ae2bc) ) /* Plane 2,3 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "050-c3.c3", 0x200000, 0x100000, CRC(03422c1e) SHA1(920e5015aebe2ffc5ce43a52365c7f0a705f3b9e) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "050-c4.c4", 0x200001, 0x100000, CRC(0845eadb) SHA1(3c71a02bf0e07a5381846bb6d75bbe7dd546adea) ) /* Plane 2,3 */ /* CXK388000 */ +ROM_END + +/**************************************** + ID-0051 + . AIM-051 + NEO-MVS PROG-G2 / NEO-MVS CHA42G-1 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 + . AIH-051 +****************************************/ + +ROM_START( viewpoin ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "051-p1.p1", 0x000000, 0x100000, CRC(17aa899d) SHA1(674cd8ace7acdf4f407de741e3d0071bcb49c902) ) /* CXK388002 */ + + NEO_SFIX_128K( "051-s1.s1", CRC(9fea5758) SHA1(5c6f01da89f2639cf741ee7c39e27023b8083052) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "051-m1.m1", CRC(8e69f29a) SHA1(7a25f4997996434ea1b7d0d1ca9e7aaf966cbd03) ) /* CXK381003 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + /* What board was originally used (labels 051-V2 and 051-V4)? MVS is twice confirmed on NEO-MVS PROG-G2 */ + ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) ) /* CXK381600 */ + ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) ) /* CXK381600 */ + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) ) /* Plane 0,1 */ /* CXK381600 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) ) /* Plane 2,3 */ /* CXK381600 */ + ROM_CONTINUE( 0x400001, 0x100000 ) +ROM_END + +/**************************************** + ID-0052 + . NGM-052 + NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA 42G-2 + . NGH-052 + NEO-AEG PROG-G2 (SNK-9201) / NEO-AEG CHA42G-2 +****************************************/ + +ROM_START( ssideki ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "052-p1.p1", 0x000000, 0x080000, CRC(9cd97256) SHA1(1c780b711137fd79cc81b01941e84f3d59e0071f) ) /* TC534200 */ + + NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) ) /* TC5316200 */ + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "052-c1.c1", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "052-c2.c2", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) +ROM_END + +/**************************************** + ID-0053 + . ALM-005 + NEO-MVS PROG16 / NEO-MVS CHA42G-1 + . ALH-005 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 + NEO-AEG PROG-G2 / NEO-AEG CHA42G-2C +****************************************/ + +ROM_START( wh1 ) /* MVS VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "053-epr.p1", 0x000000, 0x080000, CRC(d42e1e9a) SHA1(9d1911fe4bf6202466ec45557dd008cbf01ca9c6) ) /* D27C4000 */ + ROM_LOAD16_WORD_SWAP( "053-epr.p2", 0x080000, 0x080000, CRC(0e33e8a3) SHA1(4b7086edb504f3c30529d51ba8f453d48eba5164) ) /* D27C4000 */ + /* P's on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC54H1000 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ + ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( wh1h ) /* AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "053-p1.p1", 0x000000, 0x080000, CRC(95b574cb) SHA1(b7b7af6a04c3d902e7f8852897741ecaf0b1062c) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "053-p2.p2", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) ) /* TC534200 */ + + NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC531001 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ + ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( wh1ha ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "053-p1_a.p1", 0x000000, 0x080000, CRC(ed29fde2) SHA1(52b8ca5b804f786f95e1dfb348d8c7b82f1d4ddf) ) /* D27C4000 */ + ROM_LOAD16_WORD_SWAP( "053-p2_a.p2", 0x080000, 0x080000, CRC(98f2b158) SHA1(a64e1425970eb53cc910891db39973dee3d54ccc) ) /* D27C4000 */ + /* Correct chip labels for p1 and p2 unknown */ + + NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC531001 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ + ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0054 + Crossed Swords 2 (CD only? not confirmed, MVS might exist) +****************************************/ + +/**************************************** + ID-0055 + . NGM-055 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256B + . NGH-055 + NEO-AEG PROGRK / NEO-AEG CHA256 +****************************************/ + +ROM_START( kof94 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "055-p1.p1", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) /* mask rom TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) /* mask rom TC5316200 */ + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) /* mask rom TC5316200 */ + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0056 + . NGM-056 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . NGH-056 + NEO-AEG PROGRKB / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( aof2 ) /* MVS VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) /* TC538200 */ + + NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) /* TC531001 */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) /* TC5316200 */ + ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) /* TC5316200 */ + ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Different layout with 4xC (32mbit) also exists; chip labels are 056-C13, 056-C24, 056-C57 and 056-C68 */ + ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( aof2a ) /* AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) /* TC538200 */ + /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ + ROM_LOAD16_WORD_SWAP( "056-epr.ep1", 0x000000, 0x80000, CRC(75d6301c) SHA1(e72d15fba55f96be7b4fa29e705a7b78f56edf7d) ) /* M27C4002 */ + /* P is on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) /* TC531001 */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) /* TC5316200 */ + ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) /* TC5316200 */ + ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0057 + . ALM-006 + NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 + . ALH-006 + NEO-AEG PROG4096 B / NEO-AEG CHA42G-3 +****************************************/ + +ROM_START( wh2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "057-p1.p1", 0x100000, 0x100000, CRC(65a891d9) SHA1(ff8d5ccb0dd22c523902bb3db3c645583a335056) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) ) /* TC5316200 */ + ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) ) /* TC5316200 */ + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0058 + . NGM-058 + NEO-MVS PROGGSC / NEO-MVS CHA42G-3B + NEO-MVS PROGGSC / NEO-MVS CHA 42G-3 + . NGH-058 + NEO-AEG PROGGS / NEO-AEG CHA42G-4 +****************************************/ + +ROM_START( fatfursp ) /* MVS AND AES VERSION */ + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */ + + NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */ + ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */ + ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */ + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +ROM_START( fatfurspa ) /* MVS AND AES VERSION */ + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */ + /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ + ROM_LOAD16_WORD_SWAP( "058-epr.ep1", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) ) /* M27C4002 */ + /* P is on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */ + ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */ + ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */ + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0059 + . NGM-059 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 + . NGH-059 +****************************************/ + +ROM_START( savagere ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "059-p1.p1", 0x100000, 0x100000, CRC(01d4e9c0) SHA1(3179d2be59bf2de6918d506117cff50acf7e09f3) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ + ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) ) /* TC5316200 */ + ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0060 + . ??M-060 + NEO-MVS PROGGSC / NEO-MVS CHA256B +****************************************/ + +ROM_START( fightfev ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) /* VIC940800 */ + + NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) ) /* VIC930100 */ + + NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) /* VIC930100 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) /* VIC931600 */ + ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) ) /* VIC930800 */ + + ROM_REGION( 0x0800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) /* Plane 0,1 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) /* Plane 2,3 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) /* Plane 0,1 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) /* Plane 2,3 */ /* VIC931600 */ +ROM_END + +ROM_START( fightfeva ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) /* VIC940800 */ + /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ + ROM_LOAD16_WORD_SWAP( "1.sp2", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) ) + /* P is on eprom, has a Viccom logo at the top of the label with a circled '1' in the center */ + + NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) ) /* VIC930100 */ + + NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) /* VIC930100 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) /* VIC931600 */ + ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) ) /* VIC930800 */ + + ROM_REGION( 0x0800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) /* Plane 0,1 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) /* Plane 2,3 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) /* Plane 0,1 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) /* Plane 2,3 */ /* VIC931600 */ +ROM_END + +/**************************************** + ID-0061 + . NGM-061 + NEO-MVS PROGGSC / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROG 4096 B / NEO-MVS CHA256 + . NGH-061 + NEO-AEG PROGRKB / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( ssideki2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "061-p1.p1", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) /* mask rom TC538200 */ + /* also found MVS sets with ep1 / ep2 on eprom; correct chip label unknown. */ + + NEO_SFIX_128K( "061-s1.s1", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "061-m1.m1", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "061-v1.v1", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) ) /* mask rom TC5316200 */ + ROM_LOAD( "061-v2.v2", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + /* Different layout with 8xC (8 mbit) also exists; naming sheme 061-Cx */ + ROM_LOAD16_BYTE( "061-c1-16.c1", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "061-c2-16.c2", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "061-c3-16.c3", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "061-c4-16.c4", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0062 + . DEM-001 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . DEH-001 +****************************************/ + +ROM_START( spinmast ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "062-p1.p1", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) /* mask rom TC531001 */ + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0063 + . NGM-063 + NEO-MVS PROGTOP / NEO-MVS CHA256 + . NGH-063 + NEO-AEG PROGTOP2 / NEO-AEG CHA256 B +****************************************/ + +ROM_START( samsho2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "063-p1.p1", 0x100000, 0x100000, CRC(22368892) SHA1(0997f8284aa0f57a333be8a0fdea777d0d01afd6) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + /* also found MVS sets with ep1 / ep2 on eprom and p1 / sp2 on maskrom; correct chip label unknown */ + + NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) /* TC531001 */ + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) /* TC5316200 */ + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) /* TC5316200 */ + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) /* TC5316200 */ + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( samsho2k ) /* KOREAN VERSION */ + // This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + // the roms below apply as patch over the main program (I haven't checked what they change, the game boots as the Korean version even with just the above program) + ROM_LOAD16_WORD_SWAP( "063-ep1-kan.ep1", 0x000000, 0x080000, CRC(fa32e2d8) SHA1(94f56759ec04ab3a1e557bc2dc51b92176b3c147) ) + ROM_LOAD16_WORD_SWAP( "063-ep2-kan.ep2", 0x080000, 0x080000, CRC(70b1a4d9) SHA1(387737e87a68d0ea4fd13693f1f30d3227a17c82) ) // this is exactly the same data anyway! + + NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) ) + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) /* TC531001 */ + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) /* TC5316200 */ + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) /* TC5316200 */ + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) /* TC5316200 */ + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0064 + . ADM-007 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . ADH-007 + NEO-AEG PROGRK / NEO-AEG CHA256 + NEO-AEG PROGRKB / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( wh2j ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "064-p1.p1", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) ) /* TC5316200 */ + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) /* TC5316200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Different layout with 4xC (32 mbit) also exists; chip labels are 064-C13, 064-C24, 064-C57 and 064-c68. */ + ROM_LOAD16_BYTE( "064-c1.c1", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c2.c2", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c3.c3", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c4.c4", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c5.c5", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c6.c6", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c7.c7", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c8.c8", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0065 + . DEM-002 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . DEH-002 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( wjammers ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "065-p1.p1", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) /* mask rom TC538200 */ + ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) /* mask rom TC538200 */ + ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) /* mask rom TC538200 */ + ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) /* mask rom TC538200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "065-c1.c1", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "065-c2.c2", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0066 + . DEM-003 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . DEH-003 +****************************************/ + +ROM_START( karnovr ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "066-p1.p1", 0x000000, 0x100000, CRC(8c86fd22) SHA1(8cf97c6fb9c5717167ccc54bf5856248ccaf32c6) ) /* TC538200 */ + + NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) ) /* TC5316200 */ + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0067 + . ??M-067 + NEO-MVS PROG16 / NEO-MVS CHA256B + NEO-MVS PROG16 / NEO-MVS CHA256 +****************************************/ + +ROM_START( gururin ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "067-p1.p1", 0x000000, 0x80000, CRC(4cea8a49) SHA1(cea4a35db8de898e30eb40dd339b3cbe77ac0856) ) /* UM8303B */ + + NEO_SFIX_128K( "067-s1.s1", CRC(b119e1eb) SHA1(f63a68a71aea220d3d4475847652e2a1f68b2b6f) ) /* UMK300 */ + + NEO_BIOS_AUDIO_128K( "067-m1.m1", CRC(9e3c6328) SHA1(17e8479c258f28a01d2283be9e692ff7685898cc) ) /* UML359 */ + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "067-v1.v1", 0x000000, 0x80000, CRC(cf23afd0) SHA1(10f87014ee10613f92b04f482f449721a6379db7) ) /* UM8302 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "067-c1.c1", 0x000000, 0x200000, CRC(35866126) SHA1(e4b24670ccc7901af5f66b11b15fae4e67f843ab) ) /* Plane 0,1 */ /* UMT301B */ + ROM_LOAD16_BYTE( "067-c2.c2", 0x000001, 0x200000, CRC(9db64084) SHA1(68a43c12f63f5e98d68ad0902a6551c5d30f8543) ) /* Plane 2,3 */ /* UMT302B */ +ROM_END + +/**************************************** + ID-0068 + . NGM-068 + NEO-MVS PROGTOP / NEO-MVS CHA256 +****************************************/ + +ROM_START( pspikes2 ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "068-pg1.p1", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "068-sg1.s1", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "068-mg1.m1", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) ) /* mask rom TC531001 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* mask rom TC538200 */ + ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* mask rom TC538200 */ + ROM_LOAD( "068-v3.v3", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) ) /* mask rom TC538200 */ + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c5.c5", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c6.c6", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0069 + . NGM-069 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +. NGH-069 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( fatfury3 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "069-p1.p1", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) /* TC5316200 */ + + NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ + ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) /* TC5316200 */ + + ROM_REGION( 0x1400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0070 + . ??M-070 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( zupapa ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "070-p1.p1", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) ) /* mask rom TC538200 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "070-epr.m1", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) ) /* M27C1001 */ + /* M1 on eprom, correct chip label unknown */ + + ROM_REGION( 0x0200000, "ymsnd", 0 ) + ROM_LOAD( "070-v1.v1", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "070-c1.c1", 0x0000000, 0x800000, CRC(f8ad02d8) SHA1(9be54532332a8e963ec35ff1e518947bb11ebade) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "070-c2.c2", 0x0000001, 0x800000, CRC(70156dde) SHA1(06286bf043d50199b47df9a76ca91f39cb28cb90) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0071 + Bang Bang Busters (prototype) 1994 Visco + Prepared for release in 2000/2001, but apparently Zupapa was favored + The 2000 version was released in 2010 for MVS and AES (Releaser claims that it is officially licensed by VISCO) + + Reported UNIVERSE BIOS CRC32: + ROM EC861CAF + BANK 0 NOT USED + BANK 1 NOT USED + BANK 2 NOT USED + BANK 3 NOT USED + ****************************************/ +ROM_START( b2b ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "071.p1", 0x000000, 0x080000, CRC(7687197d) SHA1(4bb9cb7819807f7a7e1f85f1c4faac4a2f8761e8) ) + + NEO_SFIX_128K( "071.s1", CRC(44e5f154) SHA1(b3f80051789e60e5d8c5df0408f1aba51616e92d) ) + + NEO_BIOS_AUDIO_128K( "071.m1", CRC(6da739ad) SHA1(cbf5f55c54b4ee00943e2a411eeee4e465ce9c34) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "071.v1", 0x000000, 0x100000, CRC(50feffb0) SHA1(00127dae0130889995bfa7560bc4b0662f74fba5) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "071.c1", 0x000000, 0x200000, CRC(23d84a7a) SHA1(9034658ad40e2c45558abc3db312aa2764102fc4) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "071.c2", 0x000001, 0x200000, CRC(ce7b6248) SHA1(ad1cd5adae5c151e183ff88b68afe10f7009f48e) ) /* Plane 2,3 */ +ROM_END + + +/**************************************** + ID-0072 + Last Odyssey Pinball Fantasia (prototype) 1995 Monolith + A video of this was on youtube in 2010/2011. + ****************************************/ + +/**************************************** + ID-0073 + . ??M-073 + NEO-MVS PROGTOP / NEO-MVS CHA256 +****************************************/ + +ROM_START( panicbom ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "073-p1.p1", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) ) /* mask rom TC534200 */ + + NEO_SFIX_128K( "073-s1.s1", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "073-m1.m1", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) ) /* mask rom TC531001 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "073-v1.v1", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) ) /* mask rom TC5316200 */ + ROM_LOAD( "073-v2.v2", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) ) /* mask rom TC538200 */ + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "073-c1.c1", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "073-c2.c2", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0074 + . ADM-008 + NEO-MVS PROGTOP / NEO-MVS CHA256B + . ADH-008 + NEO-AEG PROGRK / NEO-AEG CHA256 +****************************************/ + +ROM_START( aodk ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "074-p1.p1", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "074-s1.s1", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "074-m1.m1", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "074-v1.v1", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) ) /* TC5316200 */ + ROM_LOAD( "074-v2.v2", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) ) /* TC5316200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "074-c1.c1", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c2.c2", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c3.c3", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c4.c4", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c5.c5", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c6.c6", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c7.c7", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c8.c8", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0075 + . NGM-075 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . NGH-075 + NEO-AEG PROGRK / NEO-AEG CHA256 +****************************************/ + +ROM_START( sonicwi2 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "075-p1.p1", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) /* mask rom TC531001 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) /* mask rom TC5316200 */ + ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0076 + . ??M-076 + NEO-MVS PROGGSC / NEO-MVS CHA256 +****************************************/ + +ROM_START( zedblade ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "076-p1.p1", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "076-s1.s1", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "076-m1.m1", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) ) /* mask rom TC531001 */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "076-v1.v1", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) ) /* mask rom TC5316200 */ + ROM_LOAD( "076-v2.v2", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) ) /* mask rom TC5316200 */ + ROM_LOAD( "076-v3.v3", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "076-c1.c1", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "076-c2.c2", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "076-c3.c3", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "076-c4.c4", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0077 + The Warlocks of the Fates / Shinryu Senki (prototype) 1995 SNK/Astec21 + a video of intro and full gameplay was on youtube in 2014. +****************************************/ + +/**************************************** + ID-0078 + . NGM-078 + NEO-MVS PROGTOP / NEO-MVS CHA256 + . NGH-078 +****************************************/ + +ROM_START( galaxyfg ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "078-p1.p1", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) ) /* mask rom TC531001 */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) ) /* mask rom TC5316200 */ + ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) ) /* mask rom TC5316200 */ + ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) ) /* mask rom TC538200 */ + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0079 + . DEM-004 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . DEH-004 + NEO-AEG PROGRK / NEO-AEG CHA256 +****************************************/ + +ROM_START( strhoop ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "079-p1.p1", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) ) /* TC538200 */ + + NEO_SFIX_128K( "079-s1.s1", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "079-m1.m1", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) ) /* TC531001 */ + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "079-v1.v1", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) ) /* TC5316200 */ + ROM_LOAD( "079-v2.v2", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) ) /* TC538200 */ + /* AES 079-v2 is only 4 mbit (TC534200), data is the same */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "079-c1.c1", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "079-c2.c2", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "079-c3.c3", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "079-c4.c4", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0080 + . SAM-080 + NEO-MVS PROGGSC / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256 + Boards used for the Korean release + . SAH-080 + NEO-AEG PROGTOP2 / NEO-AEG CHA256 B +****************************************/ + +ROM_START( quizkof ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "080-p1.p1", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "080-s1.s1", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "080-m1.m1", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) ) /* mask rom TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) /* mask rom TC5316200 */ + ROM_LOAD( "080-v2.v2", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) ) /* mask rom TC5316200 */ + ROM_LOAD( "080-v3.v3", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "080-c1.c1", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "080-c2.c2", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "080-c3.c3", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "080-c4.c4", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +ROM_START( quizkofk ) /* KOREAN VERSION */ + /* Made by Viccom Corp.; proms have manufacturer stamp VICxxxxxx-xxx, chip labels same as quizkof; Cart ID 0080 */ + /* Due to parent set naming limitations, roms have been named vic-xxx */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "vic-080-p1.p1", 0x000000, 0x100000, CRC(2589488e) SHA1(609f3095c1cf8b11335b56f23c5d955eebd66dd2) ) + + NEO_SFIX_128K( "vic-080-s1.s1", CRC(af72c30f) SHA1(f6a2c583f38295b7da2cbcf4b2c7ed3d3e01db4f) ) + + NEO_BIOS_AUDIO_128K( "vic-080-m1.m1", CRC(4f157e9a) SHA1(8397bfdd5738914670ada7cd8c611c20ed1f74da) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) /* mask rom TC5316200 */ + ROM_LOAD( "vic-080-v2.v2", 0x200000, 0x200000, CRC(719fee5b) SHA1(c94f8ca066c9693cd7c9fd311db1ad9b2665fc69) ) + ROM_LOAD( "vic-080-v3.v3", 0x400000, 0x200000, CRC(64b7efde) SHA1(11727f9a3c4da17fa7b00559c7081b66e7211c49) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "vic-080-c1.c1", 0x000000, 0x200000, CRC(94d90170) SHA1(4ab63dadc6ee0d32b8784c327681376f5fef0df9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "vic-080-c2.c2", 0x000001, 0x200000, CRC(297f25a1) SHA1(0dd845726c640d70804b5fd5854921771e8dbf19) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "vic-080-c3.c3", 0x400000, 0x200000, CRC(cf484c4f) SHA1(f588908a693dbbb8362ffbfe5035dd5f867d9697) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "vic-080-c4.c4", 0x400001, 0x200000, CRC(36e5d997) SHA1(99955ff947e2e586e60c1146c978c70705787917) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0081 + . NGM-081 + NEO-MVS PROGTOP / NEO-MVS CHA42G-3B + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . NGH-081 + NEO-AEG PROGTOP2 / NEO-AEG CHA256 B +****************************************/ + +ROM_START( ssideki3 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "081-p1.p1", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "081-s1.s1", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "081-m1.m1", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "081-v1.v1", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) ) /* TC5316200 */ + ROM_LOAD( "081-v2.v2", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) ) /* TC5316200 */ + ROM_LOAD( "081-v3.v3", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) ) /* TC5316200 */ + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "081-c1.c1", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c2.c2", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c3.c3", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c4.c4", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c5.c5", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c6.c6", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0082 + . NGM-082 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA 42G-3 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256B + NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 + . NGH-082 +****************************************/ + +ROM_START( doubledr ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082-p1.p1", 0x100000, 0x100000, CRC(34ab832a) SHA1(fbb1bd195f5653f7b9c89648649f838eaf83cbe4) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) /* TC5316200 */ + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) /* TC5316200 */ + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0083 + . NGM-083 + NEO-MVS PROGTOP / NEO-MVS CHA256 +****************************************/ + +ROM_START( pbobblen ) /* MVS ONLY RELEASE */ + /* This set uses CHA and PROG board from Power Spikes II. Six Power Spikes II prom's are replaced with + Puzzle Bobble prom's. Confirmed on several original carts. Do other layouts also exist? */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "d96-07.ep1", 0x000000, 0x080000, CRC(6102ca14) SHA1(328429d11de5b327a0654ae0548da4d0025a2ae6) ) /* 27C240 */ + + NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) /* M27C1001 */ + /* M1 on eprom with sticker; label is D96-06 */ + + ROM_REGION( 0x380000, "ymsnd", 0 ) + ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) /* mask rom TC538200 */ + ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) /* mask rom TC534200 */ + + ROM_REGION( 0x500000, "sprites", 0 ) + ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x080000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ /* mask rom TC534200 */ + ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x080000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ /* mask rom TC534200 */ +ROM_END + +/**************************************** + ID-0084 + . NGM-084 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGSM / NEO-MVS CHA256 + . NGH-084 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( kof95 ) /* MVS VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084-p1.p1",0x100000, 0x100000, CRC(2cba2716) SHA1(f6c2d0537c9c3e0938065c65b1797c47198fcff8) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ + /* 600000-7fffff empty */ + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( kof95a ) /* MVS VERSION */ + /* This set uses NEO-MVS PROGSM board; same rom data as in kof95h is used */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084-epr.ep1", 0x000000, 0x080000, CRC(577ca1bb) SHA1(0d9d8b6db8a5a4ea47fd6602bc77df68b74b1691) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "084-epr.ep2", 0x080000, 0x080000, CRC(30802a5d) SHA1(04109e7c4f8d171fcebbe1198f85a271b008f8f1) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "084-epr.ep3", 0x100000, 0x080000, CRC(21ae248a) SHA1(87318a1bc667f31a9824beefee94617b4724dc2d) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "084-epr.ep4", 0x180000, 0x080000, CRC(19d3fbee) SHA1(39225ec8a7ed5d2f5e83f5d575b9fa38800b0704) ) /* M27C4002 */ + /* P's on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ + /* 600000-7fffff empty */ + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( kof95h ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "084-pg1.p1", 0x100000, 0x100000, CRC(5e54cf95) SHA1(41abe2042fdbb1526e92a0789976a9b1ac5e60f0) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ + + ROM_REGION( 0x900000, "ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ + /* 600000-7fffff empty */ + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0085 + Shinsetsu Samurai Spirits Bushidoretsuden / Samurai Shodown RPG (CD only) +****************************************/ + +/**************************************** + ID-0086 + . ??M-086 + NEO-MVS PROGBK1 / NEO-MVS CHA256B +****************************************/ + +ROM_START( tws96 ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "086-p1.p1", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "086-s1.s1", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "086-m1.m1", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "086-v1.v1", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) ) /* mask rom TC5316200 */ + ROM_LOAD( "086-v2.v2", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) ) /* mask rom TC5316200 */ + + ROM_REGION( 0xa00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "086-c1.c1", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "086-c2.c2", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "086-c3.c3", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "086-c4.c4", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0087 + . NGM-087 + NEO-MVS PROGSS3 / NEO-MVS CHA256 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-087 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( samsho3 ) /* MVS VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "087-epr.ep1", 0x000000, 0x080000, CRC(23e09bb8) SHA1(79da99fa50a639fce9d1266699b5e53c9ac55642) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "087-epr.ep2", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "087-epr.ep3", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) ) /* M27C4002 */ + /* P's on eprom, correct chip label unknown */ + ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) ) /* TC538200 */ + /* also found MVS set with p1 / sp2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */ + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* T531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( samsho3h ) /* AES VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "087-pg1.p1", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom TC5316200 */ + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* T531000 */ + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* T531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( fswords ) /* KOREAN VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "187-p1k.p1", 0x000000, 0x100000, CRC(c8e7c075) SHA1(7b74f2917114460d79d8f46ee24829a4c08cbf2a) ) + ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom TC5316200 */ + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0088 + . NGM-088 + NEO-MVS PROGBK1 / NEO-MVS CHA42-3B + . NGH-088 + NEO-AEG PROGRKB / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( stakwin ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "088-p1.p1", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000) + + NEO_SFIX_128K( "088-s1.s1", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "088-m1.m1", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "088-v1.v1", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) ) /* TC5316200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "088-c1.c1", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "088-c2.c2", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "088-c3.c3", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "088-c4.c4", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0089 + . NGM-089 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-089 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( pulstar ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "089-p1.p1", 0x000000, 0x100000, CRC(5e5847a2) SHA1(b864d0ec4184b785569ddbf67c2115b5ab86ee3e) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "089-p2.sp2", 0x100000, 0x200000, CRC(028b774c) SHA1(fc5da2821a5072f2b78245fc59b6e3eeef116d16) ) /* mask rom TC5316200 */ + + NEO_SFIX_128K( "089-s1.s1", CRC(c79fc2c8) SHA1(914c224fb3c461a68d7425cae724cf22bd5f985d) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "089-m1.m1", CRC(ff3df7c7) SHA1(59d2ef64f734f6026073b365300221909057a512) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "089-v1.v1", 0x000000, 0x400000, CRC(6f726ecb) SHA1(e8e2a46af690ce6c7ee64a58ab5010d22df9548c) ) /* mask rom TC5332204 */ + ROM_LOAD( "089-v2.v2", 0x400000, 0x400000, CRC(9d2db551) SHA1(83f7e5db7fb1502ceadcd334df90b11b1bba78e5) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "089-c1.c1", 0x0000000, 0x400000, CRC(f4e97332) SHA1(54693827a99836e7d61c45d495dd78bf3fcf1544) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c2.c2", 0x0000001, 0x400000, CRC(836d14da) SHA1(99cc4f9b764503eff7849ff2977d90bb47c5564a) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c3.c3", 0x0800000, 0x400000, CRC(913611c4) SHA1(9664eb1fe1e6f8c3ddeeff872d38ea920ed38a82) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c4.c4", 0x0800001, 0x400000, CRC(44cef0e3) SHA1(34f6f348ba86a2a06cb9c43a16b97cf6ee6158ac) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c5.c5", 0x1000000, 0x400000, CRC(89baa1d7) SHA1(976c745c44967de61e2a23227835be580b1d283a) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c6.c6", 0x1000001, 0x400000, CRC(b2594d56) SHA1(685c0bf8ff76c76e41c2ceaebb96349634cfdb2e) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c7.c7", 0x1800000, 0x200000, CRC(6a5618ca) SHA1(9a1d5f998b0dfabacf9dad45c94bef2bb43e5e0c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "089-c8.c8", 0x1800001, 0x200000, CRC(a223572d) SHA1(2791b1212f57937b2b2a95bc9e420c06d0c37669) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0090 + . ADM-009 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROGGSC / NEO-MVS CHA256 + NEO-MVS PROGGSC / NEO-MVS CHA256B + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . ADH-009 +****************************************/ + +ROM_START( whp ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090-p1.p1", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) /* mask rom TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) /* mask rom TC5316200 */ + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) /* mask rom TC5316200 */ + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + /* 0c00000-0ffffff empty */ + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0091 + ADK World / ADK Special 1995 ADK (CD only) +****************************************/ + +/**************************************** + ID-0092 + . NGM-092 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256 + . NGH-092 +****************************************/ + +ROM_START( kabukikl ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "092-p1.p1", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) /* mask rom TC531001 */ + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) /* mask rom TC5316200 */ + ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) /* mask rom TC5316200 */ + ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) /* mask rom TC5316200 */ + ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) /* mask rom TC538200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0093 + . ??M-093 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( neobombe ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "093-p1.p1", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) ) /* TC538200 */ + + NEO_SFIX_128K( "093-s1.s1", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "093-m1.m1", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "093-v1.v1", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) ) /* TC5332204 */ + ROM_LOAD( "093-v2.v2", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) ) /* TC5316200 */ + + ROM_REGION( 0x900000, "sprites", 0 ) + ROM_LOAD16_BYTE( "093-c1.c1", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "093-c2.c2", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "093-c3.c3", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "093-c4.c4", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0094 + . NGM-094 + NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B + . NGH-094 +****************************************/ + +ROM_START( gowcaizr ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "094-p1.p1", 0x100000, 0x100000, CRC(33019545) SHA1(213db6c0b7d24b74b809854f9c606dbea1d9ba00) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) /* TC531001 */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) /* TC5316200 */ + ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) /* TC5316200 */ + ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + dev board, same ID as gowcaizr +****************************************/ + +ROM_START( dragonsh ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "EP2.bin", 0x000000, 0x080000, CRC(f25c71ad) SHA1(803fb6cd6a7ada59678ad901ff9788b1e54ddd0c) ) + ROM_LOAD16_BYTE( "EP1.bin", 0x000001, 0x080000, CRC(f353448c) SHA1(f0f966ca15d503e01b40e901765ff0888463b65d) ) + + NEO_SFIX_128K( "s1.s1", BAD_DUMP CRC(706477a7) SHA1(8cbee7f6832e7edd2dc792ca330420a6a984b879) ) // was a dead AXS512PC 512KB sram card, this data is handcrafted to make the set usable (hence BAD_DUMP) + + NEOGEO_BIOS + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + ROM_REGION( 0x30000, "audiocpu", ROMREGION_ERASEFF ) + /* not present */ + + ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 ) + ROM_LOAD( "sram.v1", 0x000000, 0x200000, NO_DUMP ) // was a dead AXS2000PC 2MB sram card, battery dead, data lost. + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "no3.bin", 0x000000, 0x1000000, CRC(81821826) SHA1(b7c1a53e32633383675206a16c68f6f2ff984865) ) + ROM_LOAD16_BYTE( "no4.bin", 0x000001, 0x1000000, CRC(3601d568) SHA1(800323e52f5d33b402f84d31850b42c688082d67) ) +ROM_END + +/**************************************** + ID-0095 + . NGM-095 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-095 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( rbff1 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ + + NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ + ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( rbff1a ) /* MVS VERSION */ + /* This is a bug fixed revision applied over the original cart. The original P1 and P2 stayed in the cart and this */ + /* 512k ROM was added to replace the first 512k of P1. */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ + /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ + ROM_LOAD16_WORD_SWAP( "095-epr.ep1", 0x000000, 0x080000, CRC(be0060a3) SHA1(fa741d34898ad5004a23e280139d1446f1a082c7) ) /* M27C4002 */ + /* P is on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ + ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0096 + . NGM-096 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-096 +****************************************/ + +ROM_START( aof3 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "096-p1.p1", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */ + + NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */ + ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */ + ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */ + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( aof3k ) /* KOREAN VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "196-p1k.p1", 0x000000, 0x100000, CRC(a0780789) SHA1(83657922a9a3502653ef8cda45b15d9f935aa96a) ) + ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */ + + NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */ + ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */ + ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */ + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0097 + . NGM-097 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-097 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( sonicwi3 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "097-p1.p1", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) /* TC5332201 */ + ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) /* TC5316200 */ + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0098 + Idol Mahjong - final romance 2 (CD only? not confirmed, MVS might exist) +****************************************/ + +/**************************************** + ID-0099 + Neo Pool Masters +****************************************/ + + +/* ID range from 100 - 199 is used for Korean (some) and Neo Print carts */ + +/* + The following ID's are used by Korean releases: + + ID-0122 - Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV) + ID-0123 - Quiz Daisousa Sen - The Last Count Down (Korean release) + ID-0124 - Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release) + ID-0134 - The Last Soldier (Korean release of The Last Blade) + ID-0140 - Real Bout Fatal Fury 2 - The Newcomers (Korean release) + ID-0152 - The King of Fighters '99 - Millennium Battle (Korean release) + ID-0163 - Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II) + ID-0187 - Fighters Swords (Korean release of Samurai Shodown III) + ID-0196 - Art of Fighting 3 - The Path of the Warrior (Korean release) +*/ + + +/**************************************** + ID-0200 + . NGM-200 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-200 +****************************************/ + +ROM_START( turfmast ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "200-p1.p1", 0x100000, 0x100000, CRC(28c83048) SHA1(e7ef87e1de21d2bb17ef17bb08657e92363f0e9a) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000) + + NEO_SFIX_128K( "200-s1.s1", CRC(9a5402b2) SHA1(ae1a0b5450869d61b2bb23671c744d3dda8769c4) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "200-m1.m1", CRC(9994ac00) SHA1(7bded797f3b80fd00bcbe451ac0abe6646b19a14) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "200-v1.v1", 0x000000, 0x200000, CRC(00fd48d2) SHA1(ddfee09328632e598fd51537b3ae8593219b2111) ) /* mask rom TC5316200 */ + ROM_LOAD( "200-v2.v2", 0x200000, 0x200000, CRC(082acb31) SHA1(2f1c053040e9d50a6d45fd7bea1b96742bae694f) ) /* mask rom TC5316200 */ + ROM_LOAD( "200-v3.v3", 0x400000, 0x200000, CRC(7abca053) SHA1(e229bc0ea82a371d6ee8fd9fe442b0fd141d0a71) ) /* mask rom TC5316200 */ + ROM_LOAD( "200-v4.v4", 0x600000, 0x200000, CRC(6c7b4902) SHA1(d55e0f542d928a9a851133ff26763c8236cbbd4d) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "200-c1.c1", 0x000000, 0x400000, CRC(8e7bf41a) SHA1(148eb747f2f4d8e921eb0411c88a636022ceab80) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "200-c2.c2", 0x000001, 0x400000, CRC(5a65a8ce) SHA1(d6c7afe035411f3eacdf6868d36f91572dd593e0) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0201 + . NGM-201 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . NGH-201 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( mslug ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) ) /* TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) ) /* TC5332204 */ + ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) ) /* TC5332204 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0202 + . ??M-202 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 +****************************************/ + +ROM_START( puzzledp ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "202-p1.p1", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) ) /* TC534200 */ + /* also found set with p1 on eprom with sticker; label is 202-P1 */ + + NEO_SFIX_128K( "202-s1.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) /* TC531001 */ + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) /* TC534200 */ + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0203 + . ADM-010 + NEO-MVS PROGTOP / NEO-MVS CHA42G-3B + . ADH-010 +****************************************/ + +ROM_START( mosyougi ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "203-p1.p1", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) ) /* TC538200 */ + + NEO_SFIX_128K( "203-s1.s1", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "203-m1.m1", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "203-v1.v1", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) ) /* TC5316200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "203-c1.c1", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "203-c2.c2", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0204 + QP (prototype) 1997 Success +****************************************/ + +/**************************************** + ID-0205 + Neo-Geo CD Special (CD only) +****************************************/ + +/**************************************** + ID-0206 + . ??M-206 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . ??H-206 +****************************************/ + +ROM_START( marukodq ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "206-p1.p1", 0x000000, 0x100000, CRC(c33ed21e) SHA1(bffff0d17e587e67672227e60c0ebd3f3a7193e6) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "206-s1.s1", CRC(f0b68780) SHA1(3f60950b14d121a5af3e6a8155ae9832ddc6ec46) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "206-m1.m1", CRC(0e22902e) SHA1(fb8466c342d4abd8bb4cad01c6ceab03f96cdad8) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "206-v1.v1", 0x000000, 0x200000, CRC(5385eca8) SHA1(1ca171ce74a5885ae8841d0924de21dc0af2214e) ) /* mask rom TC5316200 */ + ROM_LOAD( "206-v2.v2", 0x200000, 0x200000, CRC(f8c55404) SHA1(cecc41e9e08a7ff05b6f62e713fc86a816bf55a2) ) /* mask rom TC5316200 */ + + ROM_REGION( 0xa00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "206-c1.c1", 0x000000, 0x400000, CRC(846e4e8e) SHA1(ba9b96340aca7fadaff0e6d484391ddb5c5e7bd4) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "206-c2.c2", 0x000001, 0x400000, CRC(1cba876d) SHA1(3254ceb5a2f76c172930d9889d5d81e093e87628) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "206-c3.c3", 0x800000, 0x100000, CRC(79aa2b48) SHA1(31f94217cd35f48845c74a55256314c16fd26ed7) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "206-c4.c4", 0x800001, 0x100000, CRC(55e1314d) SHA1(fffbc9eb9000ff5b1063af1817de7ea4a267fedd) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0207 + . ??M-207 + NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B + NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B +****************************************/ + +ROM_START( neomrdo ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "207-p1.p1", 0x000000, 0x100000, CRC(334ea51e) SHA1(0a642f8565ec6e9587ed767bcf177f4677547162) ) /* TC538200 */ + + NEO_SFIX_128K( "207-s1.s1", CRC(6aebafce) SHA1(5db03715fbed62f2ff3cef7f93606f30261c0362) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "207-m1.m1", CRC(b5b74a95) SHA1(7b01f3b87c247cc7472591f8cdcf0ae8065e31c6) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "207-v1.v1", 0x000000, 0x200000, CRC(4143c052) SHA1(561b19bc8811b80f2f42ffc0b5df27132696470a) ) /* TC5316200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "207-c1.c1", 0x000000, 0x200000, CRC(c7541b9d) SHA1(25ca1a2b14cc2648d8dbe432cbd1396017af822c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "207-c2.c2", 0x000001, 0x200000, CRC(f57166d2) SHA1(bf3aa47d17156485c2177fb63cba093f050abb98) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0208 + . ??M-208 + NEO-MVS PROGBK1 / NEO-MVS CHA256B +****************************************/ + +ROM_START( sdodgeb ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "208-p1.p1", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "208-s1.s1", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "208-m1.m1", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "208-v1.v1", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) ) /* TC5332204 */ + + ROM_REGION( 0x0c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "208-c1.c1", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "208-c2.c2", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "208-c3.c3", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "208-c4.c4", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0209 + . ??M-209 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( goalx3 ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "209-p1.p1", 0x100000, 0x100000, CRC(2a019a79) SHA1(422a639e74284fef2e53e1b49cf8803b0a7e80c6) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "209-s1.s1", CRC(c0eaad86) SHA1(99412093c9707d51817893971e73fb8469cdc9d0) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "209-m1.m1", CRC(cd758325) SHA1(b51eac634fc646c07210dff993018ad9ebabd3f9) ) /* mask rom TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "209-v1.v1", 0x000000, 0x200000, CRC(ef214212) SHA1(3e05ccaa2d06decb18b379b96f900c0e6b39ce70) ) /* mask rom TC5316200 */ + + ROM_REGION( 0xa00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "209-c1.c1", 0x000000, 0x400000, CRC(b49d980e) SHA1(722d10074f16fa7f14c71270f43fdab427b85e2b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "209-c2.c2", 0x000001, 0x400000, CRC(5649b015) SHA1(9c9674f3841e6becd3b8e63bae9b9df45ac9f11e) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "209-c3.c3", 0x800000, 0x100000, CRC(5f91bace) SHA1(3864be27dce6d8f8828d3bf09bfc8116116a2b56) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "209-c4.c4", 0x800001, 0x100000, CRC(1e9f76f2) SHA1(b57fdc226bfe328b8848127fb4292295f1287bf6) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0210 + Karate Ninja Sho (prototype) 1995 Yumekobo +****************************************/ + +/**************************************** + ID-0211 + Oshidashi Zintrick (CD only? not confirmed, MVS might exist) 1996 SNK/ADK +****************************************/ + +/**************************************** + ID-0212 + . ADM-011 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . ADH-011 +****************************************/ + +ROM_START( overtop ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "212-p1.p1", 0x100000, 0x100000, CRC(16c063a9) SHA1(5432869f830eed816ee5ed71c7fd39f749d15619) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "212-s1.s1", CRC(481d3ddc) SHA1(7b0df3fc5b19f282abfd0eb5a4c6ed836a536ece) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "212-m1.m1", CRC(fcab6191) SHA1(488b8310b0957f0012fe50f73641b606f6ac4a57) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "212-v1.v1", 0x000000, 0x400000, CRC(013d4ef9) SHA1(438a697c44525bdf78b54432c4f7217ab5667047) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x1400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "212-c1.c1", 0x0000000, 0x400000, CRC(50f43087) SHA1(e5a8c914ef8e77c7a29bffdeb18f1877b5c2fc7d) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "212-c2.c2", 0x0000001, 0x400000, CRC(a5b39807) SHA1(e98e82cf99576cb48cc5e8dc655b7e9a428c2843) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "212-c3.c3", 0x0800000, 0x400000, CRC(9252ea02) SHA1(269066e0f893d3e8e7c308528026a486c2b023a2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "212-c4.c4", 0x0800001, 0x400000, CRC(5f41a699) SHA1(abbb162658e06a37db8475b659ece7e1270ebb49) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "212-c5.c5", 0x1000000, 0x200000, CRC(fc858bef) SHA1(0031def13e7cf4a465a1eca7aa0d13d1b21427e2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "212-c6.c6", 0x1000001, 0x200000, CRC(0589c15e) SHA1(b1167caf7cb61f3e05a5d342290bfe00e02e9d38) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0213 + . ??M-213 + NEO-MVS PROGBK1 / NEO-MVS CHA256B +****************************************/ + +ROM_START( neodrift ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "213-p1.p1", 0x100000, 0x100000, CRC(e397d798) SHA1(10f459111db4bab7aaa63ca47e83304a84300812) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000) + + NEO_SFIX_128K( "213-s1.s1", CRC(b76b61bc) SHA1(5fdb407d16ab9e33c4f26ee09ff70891ae1d2bd0) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "213-m1.m1", CRC(200045f1) SHA1(7a6cd1c8d4447ea260d7ff4520c676b8d685f2e4) ) /* mask rom TC531001*/ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "213-v1.v1", 0x000000, 0x200000, CRC(a421c076) SHA1(129f05c1a28a6493442f47a79c2d3577a1a43ef5) ) /* mask rom TC5316200 */ + ROM_LOAD( "213-v2.v2", 0x200000, 0x200000, CRC(233c7dd9) SHA1(be7f980aa83831b6605aaaf4ec904180bb96c935) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "213-c1.c1", 0x000000, 0x400000, CRC(3edc8bd3) SHA1(71dcba9afd3b08ebfa13294644dcb365c2740780) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "213-c2.c2", 0x000001, 0x400000, CRC(46ae5f16) SHA1(a01310632734e776e889af6a531063cb1661c33a) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0214 + . NGM-214 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGSS3 / NEO-MVS CHA256 + . NGH-214 + NEO-AEG PROGBK1Y / NEO-GEO AEG CHA256RY +****************************************/ + +ROM_START( kof96 ) /* MVS VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ + /* also found sets with ep1 / ep2 / ep3 / ep4 on eprom and 214-P5 on TC5316200; correct chip labels for eproms is unknown */ + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */ + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */ + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( kof96h ) /* AES VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "214-pg1.p1", 0x000000, 0x100000, CRC(bd3757c9) SHA1(35392a044117e46c088ff0fdd07d69a3faa4f96e) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */ + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */ + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0215 + . NGM-215 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-215 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( ssideki4 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "215-p1.p1", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "215-s1.s1", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "215-m1.m1", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "215-v1.v1", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) ) /* TC5332204 */ + ROM_LOAD( "215-v2.v2", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) ) /* TC5316200 */ + + ROM_REGION( 0x1400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "215-c1.c1", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "215-c2.c2", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "215-c3.c3", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "215-c4.c4", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "215-c5.c5", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "215-c6.c6", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0216 + . ??M-216 + NEO-MVS PROGTOP / NEO-MVS CHA256 + . ??H-216 + NEO-AEG PROGTOP2Y / NEO-AEG CHA256BY + NEO-AEG PROGTOP2Y / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( kizuna ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ + ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) ) /* mask rom TC5316200 */ + ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ + ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ + /* 400000-7fffff empty */ + ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + + +ROM_START( kizuna4p ) /* same cartridge as kizuna - 4-player mode is enabled by an extension board that plugs into a compatible MVS */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) ) /* mask rom TC531000 */ + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + /* these two BIOSes are the only ones we have that are compatible with the 4-player extension board */ + ROM_SYSTEM_BIOS( 0, "asia", "NEO-MVH MV1C" ) + ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-45.sp1",0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) + ROM_SYSTEM_BIOS( 1, "japan", "Japan MVS (J3)" ) + ROM_LOAD16_WORD_SWAP_BIOS( 1, "japan-j3.bin",0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) + ROM_LOAD( "216-m1.m1", 0x00000, 0x20000, CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) ) /* mask rom TC531001 */ + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ + ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) ) /* mask rom TC5316200 */ + ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ + ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ + /* 400000-7fffff empty */ + ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + + +/**************************************** + ID-0217 + . ADM-012 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . ADH-012 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( ninjamas ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "217-p1.p1", 0x000000, 0x100000, CRC(3e97ed69) SHA1(336bcae375a5109945d11356503bf0d9f4a9a50a) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) ) /* TC5316200 */ + + NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) ) /* TC5332204 */ + ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0218 + . NGM-218 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-218 +****************************************/ + +ROM_START( ragnagrd ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "218-p1.p1", 0x100000, 0x100000, CRC(ca372303) SHA1(67991e4fef9b36bc7d909810eebb857ac2f906f1) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) ) /* mask rom TC5332204 */ + ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0219 + . NGM-219 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( pgoal ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "219-p1.p1", 0x100000, 0x100000, CRC(6af0e574) SHA1(c3f0fed0d942e48c99c80b1713f271c033ce0f4f) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "219-s1.s1", CRC(002f3c88) SHA1(a8a5bbc5397c8ae9858e38997ebdc713b7b4f50a) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "219-m1.m1", CRC(958efdc8) SHA1(aacc6056b1ff48cde8f241a11a27473cfb4b4aa3) ) /* TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "219-v1.v1", 0x000000, 0x400000, CRC(d0ae33d9) SHA1(cb21a91184d9d84ff25ca86c00dcadfc210272a8) ) /* TC5332204 */ + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "219-c1.c1", 0x0000000, 0x400000, CRC(67fec4dc) SHA1(b99767972a2a4fce2b704df8d08e6b092665a696) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "219-c2.c2", 0x0000001, 0x400000, CRC(86ed01f2) SHA1(9d7d1493946e8fbbd572503d2362b0156c023b76) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "219-c3.c3", 0x0800000, 0x200000, CRC(5fdad0a5) SHA1(56f6d2a7224aa4e82a1858079f918e85cadbd6c2) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "219-c4.c4", 0x0800001, 0x200000, CRC(f57b4a1c) SHA1(875ca69afbc5304ec23f4bc9186abe92f477f6c8) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0220 + Choutetsu Brikin'ger - Iron clad (prototype) 1996 Saurus +****************************************/ + +ROM_START( ironclad ) /* Prototype - crcs should match the ones of the unreleased dump. */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "proto_220-p1.p1", 0x100000, 0x100000, CRC(62a942c6) SHA1(12aaa7d9bd84328d1bf4610e056b5c57d0252537) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) ) + + NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) ) /* Plane 2,3 */ +ROM_END + +ROM_START( ironclado ) /* Prototype - bootleg/hack based on later release. */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "proto_220-p1o.p1", 0x100000, 0x100000, CRC(ce37e3a0) SHA1(488f95fa15f56eea6666dda13d96ec29dba18e19) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) ) + + NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0221 + . NGM-221 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-221 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( magdrop2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "221-p1.p1", 0x000000, 0x80000, CRC(7be82353) SHA1(08ab39f52b893591c13a7d7aa26b20ce86e9ddf5) ) /* mask rom TC534200 */ + + NEO_SFIX_128K( "221-s1.s1", CRC(2a4063a3) SHA1(0e09a7d88d85b1a2100888f4211960ea56ef978b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "221-m1.m1", CRC(bddae628) SHA1(02c77e6aaaed43e39778bf83a3184e7c21db63d4) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "221-v1.v1", 0x000000, 0x200000, CRC(7e5e53e4) SHA1(72b063b2d4acaaf72a20d14ad5bfc90cb64d3fed) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "221-c1.c1", 0x000000, 0x400000, CRC(1f862a14) SHA1(1253e8b65d863d552d00dbdbfc5c168f5fc7edd1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "221-c2.c2", 0x000001, 0x400000, CRC(14b90536) SHA1(e0d41f6b84d8261729f154b44ddd95c9b9c0714a) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0222 + . NGM-222 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-222 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( samsho4 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222-p1.p1", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) /* TC5332205 */ + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) /* TC5332204 */ + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) /* TC5332204 */ + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( samsho4k ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222-p1k.p1", 0x000000, 0x100000, CRC(06e0a25d) SHA1(81e6727e0acb67ae41383518c0fc07f28d232979) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) /* TC5332205 */ + + NEO_SFIX_128K( "222-s1k.s1", CRC(d313687d) SHA1(9ba468a9d582ef76c863f57ad9a0f811f3f08bd9) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) /* TC5332204 */ + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) /* TC5332204 */ + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0223 + . NGM-223 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . NGH-223 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( rbffspec ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223-p1.p1", 0x000000, 0x100000, CRC(f84a2d1d) SHA1(fc19225d9dbdb6bd0808023ee32c7829f6ffdef6) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) /* TC5332205 */ + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) /* TC5332204 */ + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) /* TC5332204 */ + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( rbffspeck ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223-p1k.p1", 0x000000, 0x100000, CRC(b78c8391) SHA1(936b356ac135331b10a37bc10882ec2e4f6b400b) ) + /* Chip label is correct. They used Cart ID 0124 as 0123 was already used by quizdaisk */ + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) /* TC5332205 */ + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) /* TC5332204 */ + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) /* TC5332204 */ + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0224 + . ADM-013 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . ADH-013 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( twinspri ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "224-p1.p1", 0x100000, 0x100000, CRC(7697e445) SHA1(5b55ca120f77a931d40719b14e0bfc8cac1d628c) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "224-s1.s1", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "224-m1.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) ) /* mask rom TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "224-v1.v1", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) ) /* mask rom TC5332204 */ + ROM_LOAD( "224-v2.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) ) /* mask rom TC5316200 */ + + ROM_REGION( 0xa00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "224-c1.c1", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "224-c2.c2", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "224-c3.c3", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "224-c4.c4", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0225 + . SUM-225 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . SUH-225 +****************************************/ + +ROM_START( wakuwak7 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "225-p1.p1", 0x000000, 0x100000, CRC(b14da766) SHA1(bdffd72ff705fc6b085a4026217bac1c4bc93163) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) ) /* TC5316200 */ + /* also found Korean MVS set with ep1 /ep2 on eprom and sp2 on TC5316200 on NEO-MVS PROGBK1; correct chip label for eproms unknown */ + + NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) ) /* TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) ) /* TC5332204 */ + ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) ) /* TC5332204 */ + + ROM_REGION( 0x1800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0226 + Pair Pair Wars (prototype) 1996 Sunsoft? +****************************************/ + +/**************************************** + ID-0227 + . NGM-227 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-227 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( stakwin2 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "227-p1.p1", 0x100000, 0x100000, CRC(daf101d2) SHA1(96b90f884bae2969ebd8c04aba509928464e2433) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "227-s1.s1", CRC(2a8c4462) SHA1(9155fbb5fee6d46a68d17ea780a7a92565f9aa47) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "227-m1.m1", CRC(c8e5e0f9) SHA1(09bb05ae6f09b59b9e4871fae1fc7c3bafd07394) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "227-v1.v1", 0x000000, 0x400000, CRC(b8f24181) SHA1(0a3af88d20ff65b82c58325d32c20b99fc07f7f3) ) /* mask rom TC5332204 */ + ROM_LOAD( "227-v2.v2", 0x400000, 0x400000, CRC(ee39e260) SHA1(4ed6802564ce262ebe92c7276424056b70998758) ) /* mask rom TC5332204 */ + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "227-c1.c1", 0x0000000, 0x400000, CRC(7d6c2af4) SHA1(e54f0ab15c95d7a6f965b5d8ab28b5445100650b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "227-c2.c2", 0x0000001, 0x400000, CRC(7e402d39) SHA1(9d3a44f98ddd0b606c8b3efa0c6b9d5a46c0bfeb) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "227-c3.c3", 0x0800000, 0x200000, CRC(93dfd660) SHA1(5b473c556ef919cd7a872351dbb20a636aae32b6) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "227-c4.c4", 0x0800001, 0x200000, CRC(7efea43a) SHA1(3f2b1718fe7be06b6d75ec34badc2de2a3554d3e) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0228 + Ghostlop (prototype) 1996 Data East Corp. +****************************************/ + +ROM_START( ghostlop ) /* Prototype */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "proto_228-p1.p1", 0x000000, 0x100000, CRC(6033172e) SHA1(f57fb706aa8dd9e5f9e992a5d35c1799578b59f8) ) + + NEO_SFIX_128K( "proto_228-s1.s1", CRC(83c24e81) SHA1(585ef209d8bfc23bdccc1f37d8b764eeedfedc1c) ) + + NEO_BIOS_AUDIO_128K( "proto_228-m1.m1", CRC(fd833b33) SHA1(ab6c218c42cba821654cbdae154efecb69f844f6) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "proto_228-v1.v1", 0x000000, 0x200000, CRC(c603fce6) SHA1(5a866471d35895b2ae13cbd5d1cb41bf2e72e1b8) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_228-c1.c1", 0x000000, 0x400000, CRC(bfc99efe) SHA1(5cd2545310142080b8286e787cf5b859f627b3db) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_228-c2.c2", 0x000001, 0x400000, CRC(69788082) SHA1(c3ecb42ddcbd9e16d0018a0c3adb56a911d813ca) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0229 + King of Fighters '96 CD Collection (CD only) +****************************************/ + + +/* With ID-0230 the product ID code changed from xxM-xxx / xxH-xxx to xxM-xxx0 / xxH-xxx0 */ + + +/**************************************** + ID-0230 + . NGM-2300 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . NGH-2300 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( breakers ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "230-p1.p1", 0x100000, 0x100000, CRC(ed24a6e6) SHA1(3fb77ae696d92d2f9a5d589e08b708545c7cda0a) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) ) /* TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) ) /* TC5332204 */ + ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) ) /* TC5332204 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0231 + . ??M-2310 + NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B +****************************************/ + +ROM_START( miexchng ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "231-p1.p1", 0x000000, 0x80000, CRC(61be1810) SHA1(1ab0e11352ca05329c6e3f5657b60e4a227fcbfb) ) /* mask rom TC534200 */ + + NEO_SFIX_128K( "231-s1.s1", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "231-m1.m1", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "231-v1.v1", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "231-c1.c1", 0x000000, 0x200000, CRC(6c403ba3) SHA1(3830446fbd07d5a6564f9ac68a4bec5ff5b7d5c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "231-c2.c2", 0x000001, 0x200000, CRC(554bcd9b) SHA1(e658161618bd41a66f1040be409efdea28020cf6) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "231-c3.c3", 0x400000, 0x100000, CRC(4f6f7a63) SHA1(10935dbc1f52b95979a097b13a114cff18d4d446) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "231-c4.c4", 0x400001, 0x100000, CRC(2e35e71b) SHA1(6f248191c2c60ca1b1b4f2ebf08756e036682144) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0232 + . NGM-2320 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2320 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( kof97 ) /* MVS VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( kof97h ) /* AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-pg1.p1", 0x000000, 0x100000, CRC(5c2400b7) SHA1(49e23f80c012c62146a1bb8f254a7597823de430) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( kof97k ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "232-m1k.m1", CRC(bbea9070) SHA1(c26c2e29fe90966dd574838be63f0037ea799aca) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0233 + . NGM-2330 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-2330 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( magdrop3 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "233-p1.p1", 0x000000, 0x100000, CRC(931e17fa) SHA1(4a95c4b79d0878485ce272e9f4c4f647bec0e070) ) /* TC538200 */ + + NEO_SFIX_128K( "233-s1.s1", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "233-m1.m1", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) ) /* TC531001 */ + + ROM_REGION( 0x480000, "ymsnd", 0 ) + ROM_LOAD( "233-v1.v1", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) ) /* TC5332204 */ + ROM_LOAD( "233-v2.v2", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) ) /* TC534200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "233-c1.c1", 0x000000, 0x400000, CRC(65e3f4c4) SHA1(a6deb75d802225327f8f1c2733a7f2b47e722e59) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "233-c2.c2", 0x000001, 0x400000, CRC(35dea6c9) SHA1(ea133bf947f950236f49d0ae0d1a9af3bc1a9a50) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "233-c3.c3", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "233-c4.c4", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0234 + . NGM-2340 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2340 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( lastblad ) /* MVS VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234-p1.p1", 0x000000, 0x100000, CRC(e123a5a3) SHA1(a3ddabc00feeb54272b145246612ad4632b0e413) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ + /* also found sets with p1 / sp2 / ep1 / ep2 / m1 on eprom with sticker */ + /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1 */ + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( lastbladh ) /* AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234-pg1.p1", 0x000000, 0x100000, CRC(cd01c06d) SHA1(d66142571afe07c6191b52f319f1bc8bc8541c14) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( lastsold ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "134-p1k.p1", 0x000000, 0x100000, CRC(906f3065) SHA1(25167665f1b8e82e13f7fcf4d0e3c54a925c2a58) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0235 + . ??M-2350 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 +****************************************/ + +ROM_START( puzzldpr ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "235-p1.p1", 0x000000, 0x080000, CRC(afed5de2) SHA1(a5d82c6dbe687505e8c8d7339908da45cd379a0b) ) /* TC534200 */ + + NEO_SFIX_128K( "235-s1.s1", CRC(3b13a22f) SHA1(4506fc340d9658a50fa415676564f10bbfba2703) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) /* TC531001 */ + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) /* TC534200 */ + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0236 + . ??M-2360 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y +****************************************/ + +ROM_START( irrmaze ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "236-p1.p1", 0x100000, 0x100000, CRC(4c2ff660) SHA1(4a0cbd09044648ff9ec67723729f16d422c34bda) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "236-s1.s1", CRC(5d1ca640) SHA1(40a9668a1742a44597a07ce72273d17119815637) ) /* TC531000 */ + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + /* special BIOS with trackball support, we only have one Irritating Maze bios and thats asia */ + ROM_LOAD16_WORD_SWAP("236-bios.sp1", 0x00000, 0x020000, CRC(853e6b96) SHA1(de369cb4a7df147b55168fa7aaf0b98c753b735e) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) + ROM_LOAD( "236-m1.m1", 0x00000, 0x20000, CRC(880a1abd) SHA1(905afa157aba700e798243b842792e50729b19a0) ) /* TC531001 */ + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "236-v1.v1", 0x000000, 0x200000, CRC(5f89c3b4) SHA1(dc8fd561cf8dfdd41696dcf14ea8d2d0ac4eec4b) ) /* TC5316200 */ + + ROM_REGION( 0x100000, "ymsnd.deltat", 0 ) + ROM_LOAD( "236-v2.v2", 0x000000, 0x100000, CRC(1e843567) SHA1(30d63887b4900571025b3077b9e41099a59c3ad9) ) /* TC538200 */ + + ROM_REGION( 0x0800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "236-c1.c1", 0x000000, 0x400000, CRC(c1d47902) SHA1(727001c34f979226fc8f581113ce2aaac4fc0d42) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "236-c2.c2", 0x000001, 0x400000, CRC(e15f972e) SHA1(6a329559c57a67be73a6733513b59e9e6c8d61cc) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0237 + . ??M-2370 + NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B +****************************************/ + +ROM_START( popbounc ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "237-p1.p1", 0x000000, 0x100000, CRC(be96e44f) SHA1(43679da8664fbb491103a1108040ddf94d59fc2b) ) /* TC538200 */ + + NEO_SFIX_128K( "237-s1.s1", CRC(b61cf595) SHA1(b14f8b78af7c634d41cf34d36b11b116e61f7342) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "237-m1.m1", CRC(d4c946dd) SHA1(6ca09040b5db8d89511d627954c783154d58ab01) ) /* TC531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "237-v1.v1", 0x000000, 0x200000, CRC(edcb1beb) SHA1(62f086b9968b366b59276ee4ae3c32c4d76fc6ce) ) /* TC5316200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "237-c1.c1", 0x000000, 0x200000, CRC(eda42d66) SHA1(2735538fcb9dc0c16e043a8728c8b642650189f4) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "237-c2.c2", 0x000001, 0x200000, CRC(5e633c65) SHA1(9a82107caf027317c173c1c1ef676f0fdeea79b2) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0238 + . ??M-2380 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( shocktro ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "238-p1.p1", 0x000000, 0x100000, CRC(5677456f) SHA1(f76169fa5c90871d65e2a16fd1bb036c90533ac8) ) + ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) /* TC5332205 */ + + NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) /* TC5332204 */ + ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( shocktroa ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "238-pg1.p1", 0x000000, 0x100000, CRC(efedf8dc) SHA1(f638df9bf7aa7d514ee2bccfc7f2adbf39ca83fc) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) /* TC5332205 */ + + NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) /* TC5332204 */ + ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0239 + . NGM-2390 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2390 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( blazstar ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "239-p1.p1", 0x000000, 0x100000, CRC(183682f8) SHA1(dcee1c2cf4a991ca1f9f2b40c4a738f21682807b) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "239-p2.sp2", 0x100000, 0x200000, CRC(9a9f4154) SHA1(f8805453d0995c8fa16cd9accfb7a990071ca630) ) /* TC5316200 */ + + NEO_SFIX_128K( "239-s1.s1", CRC(d56cb498) SHA1(420ce56431dc7f3f7de84fcbc8c0a17b5eab205e) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "239-m1.m1", CRC(d31a3aea) SHA1(e23abfeb23052f0358edcf2c83401025fe632511) ) /* TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "239-v1.v1", 0x000000, 0x400000, CRC(1b8d5bf7) SHA1(67fc1f7e36e92a89cd1d415eb31a2892f57b0d04) ) /* TC5332204 */ + ROM_LOAD( "239-v2.v2", 0x400000, 0x400000, CRC(74cf0a70) SHA1(b00451a2a30de2517ae3eca35eb1fe985b950eb8) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "239-c1.c1", 0x0000000, 0x400000, CRC(84f6d584) SHA1(ff36db8504611b0d8d942d1e24823ff71e4aeb37) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c2.c2", 0x0000001, 0x400000, CRC(05a0cb22) SHA1(4abe03e7f3a86f277131d413a3151c7b9c3646c8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c3.c3", 0x0800000, 0x400000, CRC(5fb69c9e) SHA1(77b96518d8ad8ad120537e0f8ba65d69d1c33566) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c4.c4", 0x0800001, 0x400000, CRC(0be028c4) SHA1(d3f8b37786ca7838c3525895a7f2b49afc8530d4) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c5.c5", 0x1000000, 0x400000, CRC(74bae5f8) SHA1(812c9a31f0721c2971a316b084ce69337dbe3747) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c6.c6", 0x1000001, 0x400000, CRC(4e0700d2) SHA1(cd059fb713c403208923c17e1e8ef02fcfd2fe8d) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c7.c7", 0x1800000, 0x400000, CRC(010ff4fd) SHA1(2571d406442f007a7458d8ccb0939a9201c9c9bf) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c8.c8", 0x1800001, 0x400000, CRC(db60460e) SHA1(a5cb27c0983c8b400d96fd0828ef0639a66d4dba) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0240 + . NGM-2400 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2400 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( rbff2 ) /* MVS VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240-p1.p1", 0x000000, 0x100000, CRC(80e41205) SHA1(8f83eb8ff54be4ec40f8a0dd2cbe56c54908d00a) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ + ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ + ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( rbff2h ) /* AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240-pg1.p1", 0x000000, 0x100000, CRC(b6969780) SHA1(e3373d18e0f0724d69efb8024a27cca121f1b5b2) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ + ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ + ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( rbff2k ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "140-p1k.p1", 0x000000, 0x100000, CRC(965edee1) SHA1(7f4b947b19ccfee32fc73e4fd89645eb313b5c77) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ + ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ + ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0241 + . NGM-2410 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-2410 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( mslug2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "241-p1.p1", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) /* TC5316200 */ + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) /* TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) /* TC5332204 */ + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + /* Different layout with 8xC (16 mbit) also exists; naming sheme 241-Cx */ + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0242 + . NGM-2420 + NEO-MVS PROGSF1 (1998.6.17) (protected board) / NEO-MVS CHA512Y + NEO-MVS PROGSF1E (1998.6.18) (protected board) / NEO-MVS CHA512Y + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2420 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( kof98 ) /* encrypted code + protection */ /* MVS VERSION */ + /* This set uses NEO-MVS PROGSF1 board */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof98a ) /* encrypted code + protection */ /* MVS VERSION */ + /* This set uses NEO-MVS PROGSF1E board; same rom data as in kof98 is used */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ + ROM_LOAD16_WORD_SWAP( "242-ep1.ep1", 0x200000, 0x200000, CRC(3f74a000) SHA1(e887e0ac232683bd28703e08c4055fd0ea36402c) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "242-ep2.ep2", 0x400000, 0x200000, CRC(6e474841) SHA1(0ce401277f9c53435ea00b930efe361c8d25a7d9) ) /* M27C160 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof98k ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + /* Correct chip label */ + NEO_BIOS_AUDIO_256K( "242-m1k.m1", CRC(ce12da0c) SHA1(e7c01dae2852d543d1a58d55735239f6a5aa05a5) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof98ka ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */ + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + /* Correct chip label */ + NEO_BIOS_AUDIO_256K( "242-mg1k.m1", CRC(ce9fb07c) SHA1(631d995f1291dd803fb069f3b25e7b9ed30d8649) ) /* 27C2000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof98h ) /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0243 + . NGM-2430 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2430 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( lastbld2 ) /* MVS AND AES VERSION */ /* later revision */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243-pg1.p1", 0x000000, 0x100000, CRC(af1e6554) SHA1(bd8526f60c2472937728a5d933fbd19d899f2cba) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) /* TC5332205 */ + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) /* TC5332204 */ + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) /* TC5332204 */ + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) /* TC5332204 */ + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) /* TC5332204 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0244 + . ??M-2440 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . ??H-2440 +****************************************/ + +ROM_START( neocup98 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "244-p1.p1", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "244-s1.s1", CRC(9bddb697) SHA1(2f479bcd5a433201168792a578de3057252d649f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "244-m1.m1", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) ) /* TC531001 */ + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "244-v1.v1", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) ) /* TC5332204 */ + ROM_LOAD( "244-v2.v2", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) ) /* TC5316200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "244-c1.c1", 0x000000, 0x800000, CRC(c7a62b23) SHA1(4534ecc9ade69c543188c66229dcad89dbc48668) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "244-c2.c2", 0x000001, 0x800000, CRC(33aa0f35) SHA1(3443c7765c6aa177003d42bbfcac9f31d1e12575) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0245 + . ??M-2450 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y +****************************************/ + +ROM_START( breakrev ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "245-p1.p1", 0x100000, 0x100000, CRC(c828876d) SHA1(1dcba850e5cf8219d0945612cfded6d20ca8682a) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) ) /* mask rom TC5332204 */ + ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x1800000, "sprites", 0 ) + /* The chip labels and sizes are correct */ + ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0246 + . NGM-2460 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2460 +****************************************/ + +ROM_START( shocktr2 ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "246-p1.p1", 0x000000, 0x100000, CRC(6d4b7781) SHA1(3c9d53d5da9842bfd45037c919064dda3fb2e089) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) ) /* TC5332205 */ + + NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) ) /* TC5332204 */ + ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) ) /* TC5332204 */ + ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0247 + . ??M-2470 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( flipshot ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "247-p1.p1", 0x000000, 0x100000, CRC(95779094) SHA1(a985e033bc6f137fa65855d3eed245d66d5b244a) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "247-s1.s1", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "247-m1.m1", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) ) /* mask rom TC 531001 */ + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "247-v1.v1", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "247-c1.c1", 0x000000, 0x200000, CRC(c9eedcb2) SHA1(7627f2810322c146511525eb70b573a6a5ede926) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "247-c2.c2", 0x000001, 0x200000, CRC(7d6d6e87) SHA1(6475b58b9f91c20d1f465f3e892de0c68e12a92b) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0248 + . ??M-2480 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( pbobbl2n ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "248-p1.p1", 0x000000, 0x100000, CRC(9d6c0754) SHA1(95c70c2d51fc4de01e768e03cc800a850aaad5dc) ) /* TC538200 */ + + NEO_SFIX_128K( "248-s1.s1", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) ) /* TC531000DP */ + + NEO_BIOS_AUDIO_128K( "248-m1.m1", CRC(883097a9) SHA1(677bf9684c0c7977a9a3f0c1288e430040a53b49) ) /* TC531001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "248-v1.v1", 0x000000, 0x400000, CRC(57fde1fa) SHA1(af39bc141fc35b78dcacfd42b3abb29d7e5c2c89) ) /* TC5332204 */ + ROM_LOAD( "248-v2.v2", 0x400000, 0x400000, CRC(4b966ef3) SHA1(083c0e9fd7b8e506087648cdd8ec4206103984cd) ) /* TC5332204 */ + + ROM_REGION( 0xa00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "248-c1.c1", 0x000000, 0x400000, CRC(d9115327) SHA1(a49aa836a902326cfe785428e1699fefcf8566d4) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "248-c2.c2", 0x000001, 0x400000, CRC(77f9fdac) SHA1(4642d71d32b6a05dc8bfa0f95c936a77c7cef05e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "248-c3.c3", 0x800000, 0x100000, CRC(8890bf7c) SHA1(a52f6bafd60e72003bfe38c80c1dde24b4983b2a) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "248-c4.c4", 0x800001, 0x100000, CRC(8efead3f) SHA1(f577d2f7c6f850b3d100c36947ad15e33dfa0bed) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0249 + . ??M-2490 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y +****************************************/ + +ROM_START( ctomaday ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "249-p1.p1", 0x100000, 0x100000, CRC(c9386118) SHA1(5554662c7bc8605889cac4a67fee05bbb4eb786f) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "249-s1.s1", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) ) /* TC531000DP */ + + NEO_BIOS_AUDIO_128K( "249-m1.m1", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) ) /* TC531001 */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "249-v1.v1", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) ) /* TC5332204 */ + ROM_LOAD( "249-v2.v2", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) ) /* TC538200 */ + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "249-c1.c1", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "249-c2.c2", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0250 + . NGM-2500 + NEO-MVS PROGEOP (1999.2.2) / NEO-MVS CHA512Y + . NGH-2500 + NEO-AEG PROGEOP (1999.4.2) / NEO-AEG CHA512Y +****************************************/ + +ROM_START( mslugx ) /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) /* TC5332205 */ + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) /* TC5332204 */ + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) /* TC5332204 */ + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) /* Plane 0,1 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0251 + . NGM-2510 + SMA protected version found on: + NEO-MVS PROGLBA (NEO-SMA) (1999.4.12) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + Non SMA protected version found on: + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + . NGH-2510 + NEO-AEG PROGLBA (NEO-SMA) (1999.7.6) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) +****************************************/ + +ROM_START( kof99 ) /* Original Version - Encrypted Code & GFX */ /* MVS VERSION */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "251-p2.p2", 0x500000, 0x400000, CRC(90175f15) SHA1(aa9e75810438a8b45808a8bf32cb04d91b5c0b3a) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99h ) /* Original Version - Encrypted Code & GFX */ /* AES VERSION */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001DP */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99e ) /* Original Version - Encrypted Code & GFX */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */ + /* Is the SMA for this set correct? A set with this layout and a SMA.KB is known */ + ROM_LOAD16_WORD_SWAP( "251-ep1.p1", 0x100000, 0x200000, CRC(1e8d692d) SHA1(eea1aa8c0a17f089ac14831889c36535e559072c) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "251-ep2.p2", 0x300000, 0x200000, CRC(d6206e5a) SHA1(0e1100d03c40c6d5cfa899d009e319ae73fce6b8) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "251-ep3.p3", 0x500000, 0x200000, CRC(d58c3ef8) SHA1(f927d90d55b49944f448d6286e0cb913cc70ade1) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "251-ep4.p4", 0x700000, 0x200000, CRC(52de02ae) SHA1(f16924ff8eef92da7716236a6a055e22e090a02b) ) /* M27C160 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99k ) /* Original Version - Encrypted GFX */ /* KOREAN VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) /* TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001DP */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99p ) /* Prototype Version - Possibly Hacked */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "proto_251-p1.p1", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + /* This is the S1 from the prototype, the final is different */ + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + /* Did the Prototype really use the same sound program / voice roms, sound isn't great .. */ + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* these are probably decrypted versions of the roms found in the final */ + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0252 + . ??M-2520 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( ganryu ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "252-p1.p1", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "252-m1.m1", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) ) /* TC531001DP */ + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "252-v1.v1", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) ) /* TC5332204 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "252-c1.c1", 0x0000000, 0x800000, CRC(50ee7882) SHA1(ace0f95407c246d0456341cf2ad8a7668b81df8a) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "252-c2.c2", 0x0000001, 0x800000, CRC(62585474) SHA1(b35461598087aa82886af0030c61b26cc064af5f) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0253 + . NGM-2530 + NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + . NGH-2530 + NEO-AEG PROGLBA (1999.7.6) (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) +****************************************/ + +ROM_START( garou ) /* Original Version - Encrypted GFX */ /* MVS VERSION - later revision */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) ) /* M27C160 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) /* TC5332204 */ + ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) /* TC5332204 */ + ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) /* TC5332204 */ + ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( garouh ) /* Original Version - Encrypted GFX */ /* MVS AND AES VERSION - earlier revision */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "ke.neo-sma", 0x0c0000, 0x040000, CRC(96c72233) SHA1(29e19effd40fdf7e5144332396857f4ad0eff13e) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "253-p1.p1", 0x100000, 0x400000, CRC(18ae5d7e) SHA1(bdb58ec9137d8653979b47132f2d10e1cc6aaa24) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "253-p2.p2", 0x500000, 0x400000, CRC(afffa779) SHA1(ac017986f02277fbcd656b8c02492a3f4216a90e) ) /* mask rom TC5332205 */ + /* also found AES JP set with ep1 / ep2 / ep3 and ep4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) /* TC5332204 */ + ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) /* TC5332204 */ + ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) /* TC5332204 */ + ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( garoup ) /* Prototype Version, seems genuine */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "proto_253-p1.p1", 0x000000, 0x100000, CRC(c72f0c16) SHA1(1ff6bb651682f93bef9ff02622c3cf63fe594986) ) + ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0254 + . ??M-2540 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( s1945p ) /* Original Version, Encrypted GFX Roms */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "254-p1.p1", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) ) /* TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) ) /* TC531001DP */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) ) /* TC5332204 */ + ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) ) /* TC5332204 */ + ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) ) /* TC5332204 */ + ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0255 + . ??M-2550 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( preisle2 ) /* Original Version, Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "255-p1.p1", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) ) /* TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) ) /* TC531001DP */ + + ROM_REGION( 0x0600000, "ymsnd", 0 ) + ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) ) /* TC5332204 */ + ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "255-c1.c1", 0x0000000, 0x800000, CRC(ea06000b) SHA1(1539b12e461fa48301190eb8171bbffff9d984b7) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c2.c2", 0x0000001, 0x800000, CRC(04e67d79) SHA1(aadb6ee750da2c14c6eededa2218db95e051a32c) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c3.c3", 0x1000000, 0x800000, CRC(60e31e08) SHA1(bd5b81ad9d04cdc4e0df31ac40eca305f98277eb) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c4.c4", 0x1000001, 0x800000, CRC(40371d69) SHA1(90011ccc5672ff1b90737cf50c963e71b6217ce3) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c5.c5", 0x2000000, 0x800000, CRC(0b2e6adf) SHA1(15c7d9aa8b1ad9a071e6fd0ef0de8a057c23b02e) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c6.c6", 0x2000001, 0x800000, CRC(b001bdd3) SHA1(394ba8004644844ee97a120cfda48aeac685af8a) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0256 + . NGM-2560 + SMA protected version found on: + NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + Non SMA protected version found on: + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + . NGH-2560 + NEO-AEG PROGLBA (1999.7.6) (NEO-SMA)(LBA-SUB) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) +****************************************/ + +ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) /* stored in the custom chip */ + /* The SMA for this release has a green colour marking; the older revision has a white colour marking */ + ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) ) /* TC5332202 */ + ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) ) /* TC5332202 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( mslug3h ) /* Original Version - Encrypted GFX */ /* revision 2000.3.17 */ /* AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "256-ph1.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + /* also found AES sets with p1 / p2 on maskrom on NEO-AEG PROGLBA (NEO-SMA); chip labels are 256-PG1 and 256-PG2 */ + /* The SMA on those sets has a pink or green color marking */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0257 + . NGM-2570 + SMA protected version found on: + NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + Non SMA protected version found on: + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + . NGH-2570 + NEO-AEG PROGLBA (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) +****************************************/ + +ROM_START( kof2000 ) /* Original Version, Encrypted Code + Sound + GFX Roms */ /* MVS AND AES VERSION */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "257-p1.p1", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) ) /* mask rom TC5332202 */ + ROM_LOAD16_WORD_SWAP( "257-p2.p2", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) ) /* mask rom TC5332202 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) /* TC5332204 */ + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) /* TC5332204 */ + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) /* TC5332204 */ + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof2000n ) /* Original Version, Encrypted Sound + GFX Roms */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) /* TC5332204 */ + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) /* TC5332204 */ + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) /* TC5332204 */ + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0258 + SNK vs. Capcom? +****************************************/ + +/**************************************** + ID-0259 + . ??M-2590 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( bangbead ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "259-p1.p1", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "259-m1.m1", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) ) /* TC531001DP */ + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "259-v1.v1", 0x000000, 0x400000, CRC(088eb8ab) SHA1(608306e35501dd7d382d9f96b28e7550aa896a03) ) /* TC533204 */ + ROM_LOAD( "259-v2.v2", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "259-c1.c1", 0x0000000, 0x800000, CRC(1f537f74) SHA1(b8ef691e92191c20a5ed4f20a75cca3c7383bca6) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "259-c2.c2", 0x0000001, 0x800000, CRC(0efd98ff) SHA1(d350315d3c7f26d638458e5ccf2126069a4c7a5b) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0260 + . ??M-2600 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( nitd ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "260-p1.p1", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) ) /* TC534200 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) /* TC534000 */ + + ROM_REGION( 0x0400000, "ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) /* TC5332204 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0261 + . NGM-2610 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + . NGH-2610 + NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) +****************************************/ + +ROM_START( sengoku3 ) /* Original Version - Encrypted GFX */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261-ph1.p1", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + /* also found MVS set with p1 label 261-PG1; older revision? */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "261-m1.m1", CRC(7d501c39) SHA1(8e6bcc428f5ac7532d9c9be7e07ad0821461a080) ) /* mask rom TC534000 */ + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) /* mask rom TC5332204 */ + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) /* mask rom TC5332204 */ + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) /* mask rom TC5332204 */ + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0262 + . NGM-262? + MVS PROGBK2 REV1.0 (NEO-PCM2 SNK)/ MVS CHAFIO REV1.0 (NEO-CMC 7050) + . NGH-2621 + NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) + - Distribution by BrezzaSoft +****************************************/ + +ROM_START( kof2001 ) /* MVS VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) /* mask rom TC5332205 */ + /* The first/early production run sets have proms with above labels. Some later? sets found have eproms instead of proms */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kof2001h ) /* AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "262-pg1.p1", 0x000000, 0x100000, CRC(2af7e741) SHA1(e41282d73ed6d521da056f1a16573bb61bfa3826) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0263 + . NGM-2630 + NEO-MVS PROGBK2 (NEO-PCM2 SNK)/ NEO-MVS CHAFIO (NEO-CMC 7050) + . NGH-2630 + NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) +****************************************/ + +ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ /* MVS VERSION */ + /* There also exist carts where p1 label is pg1; the PG1 revision has a Japanese cart label, SN 02Jxxxxx + The P1 revision has a US/EUR cart label, SN 02Txxxxx ; Rom data on both is identical. + These carts were manufactured by Mega Enterprise, not SNK. */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( mslug4h ) /* Original Version - Encrypted GFX */ /* AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "263-ph1.p1", 0x000000, 0x100000, CRC(c67f5c8d) SHA1(12af74964843f103520d9f0825069ea2f67eeb2f) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "263-ph2.sp2", 0x100000, 0x400000, CRC(bc3ec89e) SHA1(2cb0626bc4fa57e1d25f208e04532b570d87b3fb) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0264 + . NGM-264? + NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + . NGH-2641 + NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) + - Distribution by BrezzaSoft +****************************************/ + +ROM_START( rotd ) /* Encrypted Set */ /* MVS VERSION */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) ) /* mask rom TC5364205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) ) /* mask rom 27c010 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) /* mask rom TC5364205 */ + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0265 + . NGM-2650 + NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + . NGH-2650 + NEO-AEG PROGBK2 (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) +****************************************/ + +ROM_START( kof2002 ) /* Encrypted Set */ /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0266 + . NGM-2660 + NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + . NGH-2660 + NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) +****************************************/ + +ROM_START( matrim ) /* Encrypted Set */ /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "266-m1.m1", CRC(456c3e6c) SHA1(5a07d0186198a18d2dda1331093cf29b0b9b2984) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) ) /* mask rom TC5364205 */ + ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0267 + . ??M-2670 + NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) +****************************************/ + +ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "267-p1.p1", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) ) /* mask rom TC538200 */ + /* also found set with p1 and m1 on eprom with sticker; chip labels is PN 2.02 and M1 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) /* mask rom TC534000 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "267-c1.c1", 0x0000000, 0x800000, CRC(5eebee65) SHA1(7eb3eefdeb24e19831d0f51d4ea07a0292c25ab6) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "267-c2.c2", 0x0000001, 0x800000, CRC(2b67187b) SHA1(149c3efd3c444fd0d35a97fa2268102bf76be3ed) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0268 + . NGM-2680 + NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2680 + NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( mslug5 ) /* Encrypted Set */ /* MVS VERSION */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) /* mask rom TC5332205 */ + ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( mslug5h ) /* Encrypted Set */ /* AES release of the game but is also found in later MVS carts */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) ) + ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) ) + /* also found AES set with p1 / p2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0269 + . NGM-2690 + NEO-MVS PROGBK3R (2003.9.2) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2690 + NEO-AEG PROGBK3R (2003.8.29) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( svc ) /* Encrypted Set */ /* MVS AND AES VERSION */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) ) /* mask rom TC5332205 */ + ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) /* mask rom TC5364205 */ + ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0270 + . NGM-2700 + NEO-MVS PROGBK2R (2003.8.26) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2700 + NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( samsho5 ) /* Encrypted Set */ /* MVS VERSION */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) ) /* mask rom 27c040 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) /* mask rom TC5364205 */ + ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( samsho5h ) /* Encrypted Set, Alternate Set */ /* AES VERSION */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270-p1c.p1", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) ) /* mask rom 27c040 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) /* mask rom TC5364205 */ + ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0271 + . NGM-2710 + NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2710 + NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( kof2003 ) /* Encrypted Code + Sound + GFX Roms */ /* MVS VERSION */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "271-p1c.p1", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) ) /* mask rom TC5332205 */ + ROM_LOAD32_WORD_SWAP( "271-p2c.p2", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "271-p3c.p3", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) ) /* mask rom TC538200 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kof2003h ) /* Encrypted Code + Sound + GFX Roms */ /* AES VERSION */ + /* All chip labels for this set are correct */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "271-p1k.p1", 0x000000, 0x400000, CRC(d0d0ae3e) SHA1(538d054ac50c91694fbbfefcce548b063713e14e) ) /* mask rom TC5332205 */ + ROM_LOAD32_WORD_SWAP( "271-p2k.p2", 0x000002, 0x400000, CRC(fb3f79d9) SHA1(f253d10e732d6e23ae82d74ac9269d21f69ddb4d) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "271-p3k.p3", 0x800000, 0x100000, CRC(232702ad) SHA1(6045046027dac1cbd4cbd14b5c1ece522bc6197f) ) /* mask rom TC538200 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1k.c1", 0x0000000, 0x800000, CRC(efb9dd24) SHA1(1c6fe10fdbfc3306c3b7321c731f28ffdbfb15b8) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2k.c2", 0x0000001, 0x800000, CRC(3fb90447) SHA1(04d196de7c54c77bc75eba56d3060d46efc2d406) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3k.c3", 0x1000000, 0x800000, CRC(27950f28) SHA1(924f4de61c86b9efde6f1104b986886f1117055d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4k.c4", 0x1000001, 0x800000, CRC(735177f8) SHA1(c95da1bc256995a7f44c9cc3312879ab6cbc15d6) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5k.c5", 0x2000000, 0x800000, CRC(a51b7c0f) SHA1(53dcf692b35b8d32abe5962ac799b8d641f04710) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6k.c6", 0x2000001, 0x800000, CRC(d5cae4e0) SHA1(248cd9eaac7a04d6b5d80c7534de90b057d566d7) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7k.c7", 0x3000000, 0x800000, CRC(e65ae2d0) SHA1(39744e10697d7ac539ecfcfa597e75597f321955) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8k.c8", 0x3000001, 0x800000, CRC(312f528c) SHA1(b4ad75f54f730ada6cb00112b74022250f055725) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0272 + . NGM-2720 + NEO-MVS PROGBK2S (2003.10.18) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2720 + NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( samsh5sp ) /* Encrypted Set */ /* MVS VERSION */ + /* Uncensored */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) ) + ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ +ROM_END + + +/* Some info about the 2nd AES release of Samurai Shodown 5 Special (samsh5sph): + + The fixed carts have a small round neogeo sticker applied to the front side of the cart (top right near cart sticker). + SNK Playmore had authorized a recall of all Samurai Shodown V Special (Samurai Spirits 0 Special) home cartridges. This recall involved bug fixes + and the addition of fatalities. (The fatalities were originally removed at the last minute due to the Nagasaki incident, a murder caused by a child killing her classmate by knife.) + Bug fixes: Improvements on Voice, Back Ground Music, and Practice mode. + Fatalities: SNK PLAYMORE modified the game program by including the removed "Zetumei Ougi" in a modified version. + This new version does not show the complete fatalities, they are instead replaced by what SNK PLAYMORE refers to as "lessened fatalities". +*/ + +ROM_START( samsh5sph ) /* Encrypted Set */ /* AES VERSION, 2nd bugfix release */ + /* Less censored */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272-p1ca.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) ) + ROM_LOAD16_WORD_SWAP( "272-p2ca.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) ) + /* Correct chip labels unknown */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ +ROM_END + +ROM_START( samsh5spho ) /* Encrypted Set */ /* AES VERSION, 1st release */ + /* Censored */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272-p1c.p1", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) ) + ROM_LOAD16_WORD_SWAP( "272-p2c.sp2", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ +ROM_END + + +/************************************* + * + * BrezzaSoft games, licensed? + * + *************************************/ + +/**************************************** + B-J-02 + . ???-???? + MVS PROGV (2000.11.17) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) +****************************************/ + +ROM_START( jockeygp ) /* MVS ONLY RELEASE */ + /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "008-epr.p1", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) ) /* M27C160 */ + /* P on eprom, correct chip label unknown */ + ROM_FILL( 0x100000, 0x100000, 0xff ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) ) /* M27C4001 */ + + ROM_REGION( 0x0200000, "ymsnd", 0 ) + ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( jockeygpa ) /* MVS ONLY RELEASE */ + /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "008-epr_a.p1", 0x000000, 0x100000, CRC(b8f35532) SHA1(b46c96677f1bfe324b678112e9c614a20c550d51) ) /* M27C800 */ + /* P on eprom, correct chip label unknown */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) ) /* M27C4001 */ + + ROM_REGION( 0x0200000, "ymsnd", 0 ) + ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + B-V-01 + . ???-???? + MVS PROGV (2000.11.17) / MVS CHAV (2000.10.26) +****************************************/ + +ROM_START( vliner ) /* MVS ONLY RELEASE */ + /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "epr.p1", 0x000000, 0x080000, CRC(72a2c043) SHA1(b34bcc10ff33e4465126a6865fe8bf6b6a3d6cee) ) /* AM27C400 */ + /* P on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) ) + + NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) ) + + ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) ) /* Plane 2,3 */ +ROM_END + +ROM_START( vlinero ) /* MVS ONLY RELEASE */ + /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "epr_54.p1", 0x000000, 0x080000, CRC(172efc18) SHA1(8ca739f8780a9e6fa19ac2c3e931d75871603f58) ) + /* P on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) ) + + NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) ) + + ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) ) /* Plane 2,3 */ +ROM_END + + +/************************************* + * + * Vektorlogic games, unlicensed + * + *************************************/ + +/**************************************** + NSBP V1.0U + PROGRAM CART REVISION 2.0 COPYRIGHT VEKTORLOGIC (C) 2004 / GRAPHICS CART REVISION 1.2 COPYRIGHT VEKTORLOGIC (C) 2004 +****************************************/ + +// this doesn't boot, protection like kof98? +// you can force it to boot with a simple debugger trick, but then it resets when starting a game +ROM_START( sbp ) /* Unlicensed, no official game ID # */ /* MVS ONLY VERSION */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "001-003-02a.u2", 0x000000, 0x080000, CRC(d054d264) SHA1(d1b4bc626d000e0679def0545940fa75035921ab) ) /* HN27C4096HG */ + + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_LOAD( "001-003-02b.u2", 0x000000, 0x20000, CRC(2fd04b2a) SHA1(1acb446704ab56d0a33df7c48855aa8d00fd5a3c) ) /* M27C4001 */ + ROM_IGNORE(0x20000) + ROM_IGNORE(0x20000) + ROM_IGNORE(0x20000) + + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + ROM_Y_ZOOM + + NEO_BIOS_AUDIO_512K( "001-003-01b.u1", CRC(7b1f86f7) SHA1(15b6af7f9fbd0f1f6a1ecd912200ca8d0af2da2a) ) /* M27C4001 */ + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "001-003-12a.u12", 0x000000, 0x400000, CRC(c96723b9) SHA1(52eec88550781d45f84efbf9b905d7e7912e96fa) ) /* M27C322 */ + ROM_LOAD( "001-003-13a.u13", 0x400000, 0x400000, CRC(08c339a5) SHA1(badc9510ae243ef2a7877977eb36efa81b1489fe) ) /* M27C322 */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "001-003-03b.u3", 0x000000, 0x200000, CRC(44791317) SHA1(9e773eb9aae5ee767213bd17348ff8a312e9cb16) ) /* Plane 0,1 */ /* M27C160 */ + ROM_LOAD16_BYTE( "001-003-04b.u4", 0x000001, 0x200000, CRC(a3a1c0df) SHA1(3b1e5be673f7cbb04199a805b0e0de93dad8cb8c) ) /* Plane 2,3 */ /* M27C160 */ +ROM_END + + +/************************************* + * + * Jamma PCB sets + * + *************************************/ + +/**************************************** + ID-2680 + . MV-0 ???? + NEO-MVH MVOBR 2003.8.4 +****************************************/ + +ROM_START( ms5pcb ) /* Encrypted Set, JAMMA PCB */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "268-p1r.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) + ROM_LOAD32_WORD_SWAP( "268-p2r.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) + + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */ + ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) ) + + /* Encrypted */ + ROM_REGION( 0x80000, "audiocrypt", 0 ) + ROM_LOAD( "268-m1.m1", 0x00000, 0x80000, CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) + + /* Encrypted */ + + ROM_Y_ZOOM + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "268-v1.v1", 0x000000, 0x1000000, CRC(8458afe5) SHA1(62b4c6e7db763e9ff2697bbcdb43dc5a56b48c68) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD32_WORD( "268-c1.c1", 0x0000000, 0x1000000, BAD_DUMP CRC(802042e8) SHA1(ff028b65f60f0b51b255a380cc47ec19fdc0c0cf) ) /* Plane 0,1 */ + ROM_LOAD32_WORD( "268-c2.c2", 0x0000002, 0x1000000, BAD_DUMP CRC(3b89fb9f) SHA1(cbc0729aae961f683b105ec3e1cda58b3f985abc) ) /* Plane 2,3 */ + ROM_LOAD32_WORD( "268-c3.c3", 0x2000000, 0x1000000, BAD_DUMP CRC(0f3f59e3) SHA1(8cc751dc7d4e94864a9ce3346f23b8f011082fcc) ) /* Plane 0,1 */ + ROM_LOAD32_WORD( "268-c4.c4", 0x2000002, 0x1000000, BAD_DUMP CRC(3ad8435a) SHA1(b333c8993c9b4c4ea59450ad0a3560e0b28056bc) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-2690 + . MV-0 ???? + NEO-MVH MVO 2003.6.5 +****************************************/ + +ROM_START( svcpcb ) /* Encrypted Set, JAMMA PCB */ + ROM_REGION( 0x2000000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269-p1.p1", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) ) + + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */ + ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) ) + + /* Encrypted */ + ROM_REGION( 0x80000, "audiocrypt", 0 ) + ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) /* mask rom TC534000 */ + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) + + ROM_Y_ZOOM + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) + ROM_LOAD( "269-v2.v1", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD( "269-c1.c1", 0x0000000, 0x2000000, CRC(1b608f9c) SHA1(4e70ad182da2ca18815bd3936efb04a06ebce01e) ) /* Plane 0,1 */ + ROM_LOAD( "269-c2.c1", 0x2000000, 0x2000000, CRC(5a95f294) SHA1(6123cc7b20b494076185d27c2ffea910e124b195) ) /* Plane 0,1 */ +ROM_END + +/**************************************** + ID-2690 + . MV-0 ???? + NEO-MVH MVOB 2003.7.9 +****************************************/ + +ROM_START( svcpcba ) /* Encrypted Set, JAMMA PCB */ + /* alt PCB version, this one has the same program roms as the MVS set, and different GFX / Sound rom arrangements */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "269-p1a.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) ) + ROM_LOAD32_WORD_SWAP( "269-p2a.p1", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) ) + + ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */ + ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) ) + + /* Encrypted */ + ROM_REGION( 0x80000, "audiocrypt", 0 ) + ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) + + ROM_Y_ZOOM + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "269-v1a.v1", 0x000000, 0x1000000, CRC(a6af4753) SHA1(ec4f61a526b707a7faec4653b773beb3bf3a17ba) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD32_WORD( "269-c1a.c1", 0x0000000, 0x1000000, CRC(e64d2b0c) SHA1(0714198c400e5c273181e4c6f906b49e35fef75d) ) /* Plane 0,1 */ + ROM_LOAD32_WORD( "269-c2a.c2", 0x0000002, 0x1000000, CRC(249089c2) SHA1(1c0ca19e330efe1a74b2d35a1a9a8d61481e16a9) ) /* Plane 2,3 */ + ROM_LOAD32_WORD( "269-c3a.c3", 0x2000000, 0x1000000, CRC(d32f2fab) SHA1(273d58cb3c9075075b1ca39a3b247a2cd545fbe7) ) /* Plane 0,1 */ + ROM_LOAD32_WORD( "269-c4a.c4", 0x2000002, 0x1000000, CRC(bf77e878) SHA1(e6e76f8eed0d04ee9ad39bf38ce305930b10e2c1) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-2710 + . MV-0 ???? + NEO-MVH MVOC 2003.11.3 +****************************************/ + +ROM_START( kf2k3pcb ) /* Encrypted Set, JAMMA PCB */ + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "271-p1.p1", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) ) + ROM_LOAD32_WORD_SWAP( "271-p2.p2", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) ) + ROM_LOAD16_WORD_SWAP( "271-p3.p3", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) ) + + ROM_REGION( 0x100000, "fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x100000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "spj.sp1", 0x00000, 0x080000, CRC(148dd727) SHA1(2cf592a16c7157de02a989675d47965f2b3a44dd) ) // encrypted + + /* Encrypted */ + ROM_REGION( 0x80000, "audiocrypt", 0 ) + ROM_LOAD( "271-m1.m1", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) ) + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) + + ROM_Y_ZOOM + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1.v1", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) ) + + ROM_REGION( 0x6000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD32_WORD( "271-c1.c1", 0x0000000, 0x1000000, CRC(f5ebb327) SHA1(e4f799a54b09adcca13b1b0cf95971a1f4291b61) ) /* Plane 0,1 */ + ROM_LOAD32_WORD( "271-c2.c2", 0x0000002, 0x1000000, CRC(2be21620) SHA1(872c658f53bbc558e90f18d5db9cbaa82e748a6a) ) /* Plane 2,3 */ + ROM_LOAD32_WORD( "271-c3.c3", 0x2000000, 0x1000000, CRC(ddded4ff) SHA1(ff7b356125bc9e6637b164f5e81b13eabeb8d804) ) /* Plane 0,1 */ + ROM_LOAD32_WORD( "271-c4.c4", 0x2000002, 0x1000000, CRC(d85521e6) SHA1(62278fa8690972ed32aca07a4f7f97e7203d9f3a) ) /* Plane 2,3 */ + ROM_LOAD32_WORD( "271-c5.c5", 0x4000000, 0x1000000, CRC(18aa3540) SHA1(15e0a8c4e0927b1f7eb9bee8f532acea6818d5eb) ) /* Plane 0,1 */ + ROM_LOAD32_WORD( "271-c6.c6", 0x4000002, 0x1000000, CRC(1c40de87) SHA1(8d6425aed43ff6a96c88194e203df6a783286373) ) /* Plane 2,3 */ +ROM_END + + + +/************************************* + * + * Bootleg sets + * + *************************************/ + +/* + About supported sets: + + For many bootleg sets, only P's (program rom), M1 (sound driver) and S1 (text layer) roms were dumped. + For these sets it is assumed that the original V's (sound data) and C's (gfx data) are used. + This requires verification. + +*/ + + +/* Zintrick bootleg */ + +/* This Zintrick set appears to be a bootleg made from the CD version, not a genuine + prototype the code is based on that of the NeoCD version with some minor patches, + for example the ADK SAMPLE TEST text that appears on the screen is actually a hacked + PROG LOAD ERROR message. The set is supported in order to distinguish the hacks from + a real prototype should one turn up. */ + +ROM_START( zintrckb ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "zin-p1.bin", 0x000000, 0x100000, CRC(06c8fca7) SHA1(b7bf38965c3d0db4d7a9684d14cac94a45b4a45b)) + + NEO_SFIX_128K( "zin-s1.bin", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) ) + + NEO_BIOS_AUDIO_128K( "zin-m1.bin", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "zin-v1.bin", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) ) /* Plane 2,3 */ +ROM_END + +/* The King of Fighters '97 bootlegs */ + +ROM_START( kof97pls ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "kf97-p1p.bin", 0x000000, 0x100000, CRC(c01fda46) SHA1(bc6402f5082efc80a8936364c657165f19b49415) ) + ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) ) + + NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( kof97oro ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "orochi-p1.bin", 0x0000000, 0x100000, CRC(6dcb2946) SHA1(3ccb3fdf3d32a75c7fcfefff5db1f3c75054731f) ) + ROM_LOAD16_WORD_SWAP( "orochi-p21.bin", 0x0200000, 0x100000, CRC(6e1c4d8c) SHA1(f514638a599a8a582c5f4df72f6a957bab776b7e) ) + ROM_CONTINUE( 0x100000, 0x100000 ) + ROM_LOAD16_WORD_SWAP( "orochi-p29.bin", 0x0400000, 0x100000, CRC(4c7c0221) SHA1(fdd05927743cb12210b74768155bb3f59bff01b5) ) + ROM_CONTINUE( 0x300000, 0x100000 ) + + NEO_SFIX_128K( "orochi-s1.bin", CRC(4ee2149a) SHA1(180a1a90021031eac1a643b769d9cdeda56518f5) ) + + NEO_BIOS_AUDIO_128K( "orochi-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "orochi-v1.bin", 0x000000, 0x0400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "orochi-v2.bin", 0x400000, 0x0400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "orochi-v3.bin", 0x800000, 0x0400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + // The C1 and C2 here are reconstructed but very likely to be correct. + ROM_LOAD16_BYTE( "orochi-c1.bin", 0x0000000, 0x1000000, BAD_DUMP CRC(f13e841c) SHA1(e24b3fb5f7e1c1f4752cad382c264f5f93e737a0) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "orochi-c2.bin", 0x0000001, 0x1000000, BAD_DUMP CRC(2db1f6d3) SHA1(13d957c04bd69f0db140e4633c39db4a9e44eab8) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "orochi-c51.bin", 0x2000000, 0x0200000, CRC(a90340cb) SHA1(97eaa89f0e860e2c591ca3a995fd910d8116347d) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "orochi-c61.bin", 0x2000001, 0x0200000, CRC(188e351a) SHA1(ab724250bc07ace0873fc825b798ace934260988) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "orochi-c52.bin", 0x2400000, 0x0200000, CRC(d4eec50a) SHA1(0930cce5346fbbd5c1524f9148d0577cbe634420) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "orochi-c62.bin", 0x2400001, 0x0200000, CRC(031b1ad5) SHA1(d47b3452953b553348be0a55473b863ce2872f6e) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kog ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5232-p1.bin", 0x000000, 0x200000, CRC(d2413ec6) SHA1(c0bf409d1e714cba5fdc6f79e4c2aec805316634) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + + NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) ) /* Plane 2,3 */ +ROM_END + +/* Shock Troopers - 2nd Squad bootleg */ + +ROM_START( lans2004 ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "lnsq-p1.bin", 0x000000, 0x200000, CRC(b40a879a) SHA1(379f3d44b0bae430b32157fd5f4018d77b243c58) ) + ROM_LOAD16_WORD_SWAP( "lnsq-p21.bin", 0x200000, 0x200000, CRC(ecdb2d42) SHA1(0d930cd369dfbcab7778b144355e5f70874aa324) ) + ROM_LOAD16_WORD_SWAP( "lnsq-p22.bin", 0x400000, 0x200000, CRC(fac5e2e7) SHA1(5cce7226c137da80c969df00e1cda41ef9c5082c) ) + + NEO_SFIX_128K( "lnsq-s1.bin", CRC(39e82897) SHA1(24a8c94dd7e70ecde8f90ea17f75b6b5d065704f) ) + + NEO_BIOS_AUDIO_128K( "246-m1.bin", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) + + ROM_REGION( 0xA00000, "ymsnd", 0 ) + ROM_LOAD( "lnsq-v1.bin", 0x000000, 0x400000, CRC(4408ebc3) SHA1(e3f4d8a7e243a8cf48e97d91bbfec7829c0d9404) ) + ROM_LOAD( "lnsq-v2.bin", 0x400000, 0x400000, CRC(3d953975) SHA1(6a4ab02ab3d4416a65343cf16815007cb273f19b) ) + ROM_LOAD( "lnsq-v3.bin", 0x800000, 0x200000, CRC(437d1d8e) SHA1(95e015c21707b53ed7223eaa19f6cdcfb4d94f0c) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "lnsq-c1.bin", 0x0000000, 0x800000, CRC(b83de59f) SHA1(8cc060f9a57ab7d4238543b0bce5f5cd1d271d4f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "lnsq-c2.bin", 0x0000001, 0x800000, CRC(e08969fd) SHA1(c192639d023cdad64a8f53dbcda02aa8cfb4168e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "lnsq-c3.bin", 0x1000000, 0x800000, CRC(013f2cda) SHA1(6261111ce69dc23fbf97241131e5a6a49355d18c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "lnsq-c4.bin", 0x1000001, 0x800000, CRC(d8c3a758) SHA1(d19ca3be06f9fb0cb1933b1eb3da318524c3145d) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "lnsq-c5.bin", 0x2000000, 0x800000, CRC(75500b82) SHA1(06d2afe94ea3eb3c4e523f593b8e709dd7c284a3) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "lnsq-c6.bin", 0x2000001, 0x800000, CRC(670ac13b) SHA1(f448a144caae51b69ea19e1f43940db135d1164a) ) /* Plane 2,3 */ +ROM_END + +/* Garou - Mark of the Wolves bootleg */ + +ROM_START( garoubl ) /* bootleg of garoup */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "garou-p1.bin", 0x000000, 0x100000, CRC(fd446d59) SHA1(e37484673a935b2af76c84cd26977c751c0f8cff) ) + ROM_LOAD16_WORD_SWAP( "garou-p2.bin", 0x100000, 0x400000, CRC(3fb10a84) SHA1(4e4a4f4cd7f0ad2520c938c64c8910e6f8805eaf) ) + + NEO_SFIX_128K( "garou-s1.bin", CRC(df720e33) SHA1(58d05002d4851682bd626241fa7b70f78f6f3bc8) ) + + NEO_BIOS_AUDIO_512K( "garou-m1.bin", CRC(7c51d002) SHA1(01ffba6cbc8da07804f7b21d8c71c39d64a1a4e2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "garou-v1.bin", 0x000000, 0x400000, CRC(98d736e4) SHA1(3edda9a1d45b0e38a85156d24fc8ff2f0011239b) ) + ROM_LOAD( "garou-v2.bin", 0x400000, 0x400000, CRC(eb43c03f) SHA1(83c9c168b154e60a64f1033004b2d33e218bbb8b) ) + ROM_LOAD( "garou-v3.bin", 0x800000, 0x400000, CRC(10a0f814) SHA1(e86def80d6fb2a38ebc9f3338d22f28c15ce85da) ) + ROM_LOAD( "garou-v4.bin", 0xc00000, 0x400000, CRC(8918fdd3) SHA1(60ea2104a0f993341124728d8fde0e8e937c55ef) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "garou-c1.bin", 0x0000000, 0x1000000, CRC(e2ac83fa) SHA1(186f88a85d80efbb0371bd42cca152b6b59817fb) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "garou-c2.bin", 0x0000001, 0x1000000, CRC(7c344b24) SHA1(f8af62a917e0ce2bf8ae4f17736fdd84d55d0788) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "garou-c3.bin", 0x2000000, 0x1000000, CRC(d3aec5a6) SHA1(c1a584909a8a1519f676aa49351742b87c18276d) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "garou-c4.bin", 0x2000001, 0x1000000, CRC(e02a242d) SHA1(8a73826d14880303a7bea2a903e842c733178aca) ) /* Plane 2,3 */ +ROM_END + +/* Metal Slug 3 bootleg */ + +ROM_START( mslug3b6 ) /* This "Metal Slug 6" is a hack/bootleg of Metal Slug 3, the real Metal Slug 6 is on Atomiswave Hardware */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "299-p1.bin", 0x000000, 0x200000, CRC(5f2fe228) SHA1(747775a2dfc0da87ad2ddd4f57ce5b2522f23fa5) ) + ROM_LOAD16_WORD_SWAP( "299-p2.bin", 0x100000, 0x400000, CRC(193fa835) SHA1(fb1f26db7998b0bb6b1c8b92500c1596ec5dfc71) ) + + NEO_SFIX_128K( "299-s1.bin", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) ) + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/* Nightmare in the Dark bootleg */ + +ROM_START( nitdbl ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "nitd-p1.bin", 0x000000, 0x080000, CRC(1a05bd1b) SHA1(7bbddef842d50b0778711063af695b168a76ff61) ) + + NEO_SFIX_128K( "nitd-s1.bin", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) ) + + /* Bootleg m1 is 128k, data is identical */ + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) /* TC534000 */ + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "nitd-v1.bin", 0x000000, 0x200000, CRC(79008868) SHA1(90bd6aaefd37341297ab1f4ae7246e52facd87d0) ) + ROM_LOAD( "nitd-v2.bin", 0x200000, 0x200000, CRC(728558f9) SHA1(309aa7c933c199b2e540a601b363e7af8744fe00) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "nitd-c1.bin", 0x000000, 0x200000, CRC(b4353190) SHA1(90d5352e243a05f5c2be4fa7475667bb56e78016) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "nitd-c2.bin", 0x000001, 0x200000, CRC(6e27511f) SHA1(1fc5cf7786ad0f0bc7b1623acabe605ad04af3c1) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "nitd-c3.bin", 0x400000, 0x200000, CRC(472cf075) SHA1(7cdd25019e37a3d127e68a4179c051881df19afa) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "nitd-c4.bin", 0x400001, 0x200000, CRC(4c3926e6) SHA1(7fc54a9886dbef911f7b226e3cd20081c535e989) ) /* Plane 2,3 */ +ROM_END + +/* The King of Fighters 2001 bootlegs */ + +ROM_START( cthd2003 ) /* Protected hack/bootleg of kof2001 Phenixsoft */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + /* sound roms are identical to kof2001 */ + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ +ROM_END + +ROM_START( ct2k3sp ) /* Protected hack/bootleg of kof2001 Phenixsoft */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5003-p1sp.bin", 0x000000, 0x100000, CRC(ab5c4de0) SHA1(ca9a6bfd4c32d791ecabb34ccbf2cbf0e84f97d5) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x40000, "fixed", 0 ) + ROM_LOAD( "5003-s1sp.bin", 0x00000, 0x40000, CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + /* sound roms are identical to kof2001 */ + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ +ROM_END + +ROM_START( ct2k3sa ) /* Protected hack/bootleg of kof2001 Phenixsoft, alternate version */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5003-p1sa.bin", 0x000000, 0x100000, CRC(013a509d) SHA1(c61c9b777e6e062b5f4ad87cdb78e9ca05e9bfb9) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_LOAD( "5003-s1sa.bin", 0x00000, 0x20000, CRC(4e1f7eae) SHA1(3302ad290804272447ccd2e8edd3ce968f043db1) ) + /* S1 needs redump, correct? */ + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + /* Original set has 2x64 mbit sound roms */ + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ +ROM_END + +/* Metal Slug 4 bootleg */ + +ROM_START( ms4plus ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "ms4-p1p.bin", 0x000000, 0x100000, CRC(806a6e04) SHA1(df503772d607271ea51285154c9fd68e18b143ce) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) /* mask rom TC5332205 */ + + NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x3000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/* The King of Fighters 2002 bootlegs */ + +ROM_START( kof2002b ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "2k2-p2.bin", 0x100000, 0x400000, CRC(6dbee4df) SHA1(9a9646c81b233b44213c624b898c19f83e9a07f8) ) + + NEO_SFIX_128K( "2k2-s1.bin", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "2k2-c1.bin", 0x0000000, 0x800000, CRC(f25d3d66) SHA1(eb1da3e171c126d91e851ce141840709a2f62f8a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "2k2-c2.bin", 0x0000001, 0x800000, CRC(e3e66f1d) SHA1(af93e9e134816353d6187a53959c6e418b83ad8d) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "2k2-c3.bin", 0x1000000, 0x800000, CRC(8732fa30) SHA1(81c482b375c04bcfbbc69e3e2a2e9ab567c9bb78) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "2k2-c4.bin", 0x1000001, 0x800000, CRC(0989fd40) SHA1(355d6b2c528319e41ce89952c5cf5bcc47cd6de0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "2k2-c5.bin", 0x2000000, 0x800000, CRC(60635cd2) SHA1(0cf2c54e003edfcdbed64e0570e6b800e7ed3c1b) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "2k2-c6.bin", 0x2000001, 0x800000, CRC(bd736824) SHA1(d897fc8248ace145fef57d8aa393eaebc4a1ccc4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "2k2-c7.bin", 0x3000000, 0x800000, CRC(2da8d8cf) SHA1(ab8aa88b8e1baba88e5fc01d0f3cb55503b6c81a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "2k2-c8.bin", 0x3000001, 0x800000, CRC(2048404a) SHA1(d6d0f049ffc196334825328e0472b04e04bf6695) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kf2k2pls ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "2k2-p1p.bin", 0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ + + NEO_SFIX_128K( "2k2-s1p.bin", CRC(595e0006) SHA1(ff086bdaa6f40e9ad963e1100a27f44618d684ed) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k2pla ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "2k2-p1pa.bin", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ + + NEO_SFIX_128K( "2k2-s1pa.bin", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e)) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k2mp ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "kf02m-p1.bin", 0x000000, 0x400000, CRC(ff7c6ec0) SHA1(704c14d671dcb4cfed44d9f978a289cb7dd9d065) ) + ROM_LOAD16_WORD_SWAP( "kf02m-p2.bin", 0x400000, 0x400000, CRC(91584716) SHA1(90da863037cf775957fa154cd42536e221df5740) ) + + NEO_SFIX_128K( "kf02m-s1.bin", CRC(348d6f2c) SHA1(586da8a936ebbb71af324339a4b60ec91dfa0990) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k2mp2 ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "k2k2m2p1.bin", 0x000000, 0x200000, CRC(1016806c) SHA1(a583b45e9c0d6f67b95c52e44444aabe88f68d97) ) + ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x200000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) ) + + NEO_SFIX_128K( "k2k2m2s1.bin", CRC(446e74c5) SHA1(efc2afb26578bad9eb21659c70eb0f827d6d1ef6) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kof10th ) + ROM_REGION( 0x900000, "maincpu", 0 ) // Modified + ROM_LOAD16_WORD_SWAP( "kf10-p1.bin", 0x000000, 0x800000, CRC(b1fd0c43) SHA1(5f842a8a27be2d957fd4140d6431ae47154997bb) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x40000, "fixed", 0 ) // modified + ROM_FILL( 0x000000, 0x40000, 0x000000 ) // modified + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kf10thep ) /* this is a hack of kof2002 much like the various korean hacks / bootlegs of games */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5008-p1.bin", 0x000000, 0x200000, CRC(bf5469ba) SHA1(f05236d8fffab5836c0d27becdeeb80def32ee49) ) + ROM_LOAD16_WORD_SWAP( "5008-p2.bin", 0x200000, 0x400000, CRC(a649ec38) SHA1(5c63ed5e5c848940f587c966da4908d04cf1293c) ) + ROM_LOAD16_WORD_SWAP( "5008-p3.bin", 0x600000, 0x200000, CRC(e629e13c) SHA1(6ebe080ce01c51064cb2f4d89315ba98a45ae727) ) + + NEO_SFIX_128K( "5008-s1.bin", CRC(92410064) SHA1(1fb800b46341858207d3b6961a760289fbec7faa) ) + + NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + //NEO_BIOS_AUDIO_128K( "5004-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5008-c7b.bin", 0x3800000, 0x400000, CRC(33604ef0) SHA1(57deec23c81d5d673ce5992cef1f2567f1a2148e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5008-c8b.bin", 0x3800001, 0x400000, CRC(51f6a8f8) SHA1(9ef1cdbdd125a2b430346c22b59f36902312905f) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kf2k5uni ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5006-p2a.bin", 0x000000, 0x400000, CRC(ced883a2) SHA1(f93db4d74ce0a73a3e9631966fee37be22470c89) ) + ROM_LOAD16_WORD_SWAP( "5006-p1.bin", 0x400000, 0x400000, CRC(72c39c46) SHA1(4ba0657de20319c0bc30c7c3bba7d7331d0ce9a7) ) + + NEO_SFIX_128K( "5006-s1.bin", CRC(91f8c544) SHA1(9d16cafb9ca4bc54f31f7fd82b1be06ec8b11c79) ) + + NEO_BIOS_AUDIO_128K( "5006-m1.bin", CRC(9050bfe7) SHA1(765bf3d954f775231b7ef2504bb844cd0b29e3f7) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kof2k4se ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "k2k4s-p2.bin", 0x000000, 0x080000, CRC(21a84084) SHA1(973e8a0bffa0e1f055803f663f81a8e03701802d) ) + ROM_LOAD16_WORD_SWAP( "k2k4s-p3.bin", 0x080000, 0x080000, CRC(febb484e) SHA1(4b1838795b84f22d578ad043641df0a7bf7d9774) ) + ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) ) + + NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) ) + + NEO_BIOS_AUDIO_128K( "k2k4s-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) ) + ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "k2k4s-c7.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) /* Plane 2,3 */ +ROM_END + +/* Matrimelee bootleg */ + +ROM_START( matrimbl ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + ROM_REGION( 0x80000, "fixed", 0 ) + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "mart-m1.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "mart-v1.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) ) + ROM_LOAD16_WORD_SWAP( "mart-v2.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) ) + ROM_LOAD( "mart-v3.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) ) + ROM_LOAD16_WORD_SWAP( "mart-v4.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "mart-c1.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "mart-c2.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "mart-c3.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "mart-c4.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "mart-c5.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "mart-c6.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "mart-c7.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "mart-c8.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) ) /* Plane 2,3 */ +ROM_END + +/* Metal Slug 5 bootleg */ + +ROM_START( ms5plus ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "ms5-p1p.bin", 0x000000, 0x100000, CRC(106b276f) SHA1(0e840df95f3813145e5043573483c7610d2d3e68) ) + ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) ) + ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/* Puzzle Bobble / Bust-A-Move (Neo-Geo) bootleg */ + +ROM_START( pbobblenb ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "u7", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) ) + + NEO_SFIX_128K( "us1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) + + NEO_BIOS_AUDIO_128K( "um1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) + + ROM_REGION( 0x380000, "ymsnd", 0 ) + /* 0x000000-0x1fffff empty */ + ROM_LOAD( "u8", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) + ROM_LOAD( "u9", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "uc5", 0x000000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "uc6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ +ROM_END + +/* SNK vs. CAPCOM SVC CHAOS bootlegs */ + +ROM_START( svcboot ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-p1.bin", 0x000000, 0x800000, CRC(0348f162) SHA1(c313351d68effd92aeb80ed320e4f8c26a3bb53e) ) + + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEOGEO_BIOS + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + + ROM_REGION( 0x50000, "audiocpu", 0 ) + ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 ) + + ROM_Y_ZOOM + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) + ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) + ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) + ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ +ROM_END + +ROM_START( svcplus ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-p1p.bin", 0x000000, 0x200000, CRC(a194d842) SHA1(72b7bfa34a97632b1aa003488e074d766a6c2f08) ) + ROM_LOAD16_WORD_SWAP( "svc-p2p.bin", 0x200000, 0x200000, CRC(50c0e2b7) SHA1(97b396415ab0e692e43ddf371091e5a456712f0a) ) + ROM_LOAD16_WORD_SWAP( "svc-p3p.bin", 0x400000, 0x200000, CRC(58cdc293) SHA1(3c4f2418ec513bcc13ed33a727de11dfb98f7525) ) + + NEO_SFIX_128K( "svc-s1p.bin", CRC(73344711) SHA1(04d84c4fe241b9135cd210f8ed8c725f595d11d2) ) + + NEOGEO_BIOS + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + + ROM_REGION( 0x50000, "audiocpu", 0 ) + ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) + ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) + ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) + ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ +ROM_END + +ROM_START( svcplusa ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-p1pl.bin", 0x000000, 0x200000, CRC(16b44144) SHA1(5eab530274b1b6f480a39a86c199da524cddfccc) ) + ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) ) + + ROM_REGION( 0x20000, "fixed", 0 ) + ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEOGEO_BIOS + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + + ROM_REGION( 0x50000, "audiocpu", 0 ) + ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 ) + + ROM_Y_ZOOM + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) + ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) + ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) + ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ +ROM_END + +ROM_START( svcsplus ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-p1sp.bin", 0x000000, 0x400000, CRC(2601902f) SHA1(202348a13c6480f7de37a3ee983823838822fc98) ) + ROM_LOAD16_WORD_SWAP( "svc-p2sp.bin", 0x400000, 0x400000, CRC(0ca13305) SHA1(ac8fbca71b754acbcdd11802161a62ae1cf32d88) ) + + NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) ) + + NEOGEO_BIOS + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + + ROM_REGION( 0x50000, "audiocpu", 0 ) + ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) + ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) + ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) + ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ +ROM_END + +/* Samurai Shodown 5 bootleg */ + +ROM_START( samsho5b ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "ssv-p2.bin", 0x000000, 0x400000, CRC(5023067f) SHA1(b1d682fa7d158f19664356a919da6572e8cfeee0) ) + ROM_LOAD16_WORD_SWAP( "ssv-p1.bin", 0x400000, 0x400000, CRC(b6cbe386) SHA1(99c2407361116c2b2c5fe72df53e05c5f99163c1) ) + + NEO_SFIX_128K( "ssv-s1.bin", CRC(70f667d0) SHA1(6d7ce62bb77eb215cc22d6c3c677accfd740aa83) ) + + NEO_BIOS_AUDIO_128K( "ssv-m1.bin", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "ssv-v1.bin", 0x000000, 0x400000, CRC(a3609761) SHA1(6dce1dbfd228c739b3716ae1cf08fd7f925d8650) ) + ROM_LOAD( "ssv-v2.bin", 0x400000, 0x400000, CRC(cbd6ebd5) SHA1(00211be3fa32035b0947ac65920ea8acae7bfae2) ) + ROM_LOAD( "ssv-v3.bin", 0x800000, 0x400000, CRC(6f1c2703) SHA1(8015df3d788cb7926ebbcda64a96964fe102ba27) ) + ROM_LOAD( "ssv-v4.bin", 0xc00000, 0x400000, CRC(5020c055) SHA1(bd1e68d1b0a47b0e2b365159e210048f8b22823a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "ssv-c1.bin", 0x0000000, 0x1000000, CRC(9c564a01) SHA1(99dc8900fd8f56ae04fff72b34ddcaa8abe4c1be) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "ssv-c2.bin", 0x0000001, 0x1000000, CRC(4b73b8da) SHA1(a8b626de74cf57bbd8c222e8e24c953c9e8680f4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "ssv-c3.bin", 0x2000000, 0x1000000, CRC(029f9bb5) SHA1(6296c879aa0bbd22383ceeeac0326805cbc8b4ec) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "ssv-c4.bin", 0x2000001, 0x1000000, CRC(75722430) SHA1(30594c30a167e75463670249df7744755e39e75b) ) /* Plane 2,3 */ +ROM_END + +/* The King of Fighters 2003 bootlegs */ + +ROM_START( kf2k3bl ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "2k3-p1.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) ) + ROM_LOAD16_WORD_SWAP( "2k3-p2.bin", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k3bla ) + ROM_REGION( 0x700000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "2k3-p1bl.bin", 0x000000, 0x100000, CRC(4ea414dd) SHA1(c242c9709c20a8cde3ad562adbe640a5dd5abcf1) ) + ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) ) + ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) ) + + NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k3pl ) + ROM_REGION( 0x700000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "2k3-p1pl.bin", 0x000000, 0x100000, CRC(07b84112) SHA1(0b085a928a39ff9c0745a58bfa4ce6106b5f474a) ) + ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) ) + ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) ) + + NEO_SFIX_128K( "2k3-s1pl.bin", CRC(ad548a36) SHA1(7483dbe2d74a1bd1b4dc501e99e48a683416d08e) ) + + NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k3upl ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "2k3-p1up.bin", 0x000000, 0x800000, CRC(87294c01) SHA1(21420415a6b2ba1b43ecc1934270dc085d6bd7d9) ) + + NEO_SFIX_128K( "2k3-s1up.bin", CRC(e5708c0c) SHA1(5649446d3b0b1bd138b5a8b40b96a6d0f892f4d8) ) + + NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + + + /* Unlicensed Prototypes */ + +ROM_START( diggerma ) /* Unlicensed Prototype, no official game ID # */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "dig-p1.bin", 0x000000, 0x080000, CRC(eda433d7) SHA1(abb14c66777ab0fe4ac76a402e253a49df7178d8) ) + + NEO_SFIX_128K( "dig-s1.bin", CRC(9b3168f0) SHA1(9be8c625686a1482f7399e5a856cfe2fef25ec52) ) + + NEO_BIOS_AUDIO_128K( "dig-m1.bin", CRC(e777a234) SHA1(9f3974ac07859337bc0203f903c40ae3f60dc1fb) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "dig-v1.bin", 0x000000, 0x080000, CRC(ee15bda4) SHA1(fe2206728e6efd02d6302869a98b196eb19a17df) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "dig-c1.bin", 0x000000, 0x080000, CRC(3db0a4ed) SHA1(6214faa883d97ea05809b6af7e0c85a236a18a28) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "dig-c2.bin", 0x000001, 0x080000, CRC(3e632161) SHA1(83711c4286fb1d9f3f91414ac6e5fed36618033e) ) /* Plane 2,3 */ +ROM_END + +// MVS cart +ROM_START( lasthope ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "NGDT-300-P1.bin", 0x000000, 0x100000, CRC(3776a88f) SHA1(ea8b669da06d7c6b5ff7fa97a195f56a9253a7a1) ) + + NEO_SFIX_64K( "NGDT-300-S1.bin", CRC(0c0ff9e6) SHA1(c87d1ea8731ac1e63ab960b8182dd1043bcc10bb) ) + + NEO_BIOS_AUDIO_128K( "NGDT-300-M1.bin", CRC(113c870f) SHA1(854425eb4be0d7fa088a6c3bf6078fdd011707f5) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "NGDT-300-V1.bin", 0x000000, 0x200000, CRC(b765bafe) SHA1(b2048c44089bf250c8dcfabb27c7981e9ee5002a) ) + ROM_LOAD( "NGDT-300-V2.bin", 0x200000, 0x200000, CRC(9fd0d559) SHA1(09e70d5e1c6e172a33f48feb3e442515c34a8f3d) ) + ROM_LOAD( "NGDT-300-V3.bin", 0x400000, 0x200000, CRC(6d5107e2) SHA1(4ba74836e3d0421a28af47d3d8341ac16af1d7d7) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "NGDT-300-C1.bin", 0x000000, 0x400000, CRC(53ef41b5) SHA1(a8f1fe546403b609e12f0df211c05d7ac479d98d) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "NGDT-300-C2.bin", 0x000001, 0x400000, CRC(f9b15ab3) SHA1(d8ff2f43686bfc8c2f7ead3ef445e51c15dfbf16) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "NGDT-300-C3.bin", 0x800000, 0x400000, CRC(50cc21cf) SHA1(0350aaef480c5fa12e68e540a4c974dbf5870add) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "NGDT-300-C4.bin", 0x800001, 0x400000, CRC(8486ad9e) SHA1(19a2a73c825687e0cb9fd62bde00db91b5409529)) /* Plane 2,3 */ +ROM_END + + +/************************************* + * + * Game-specific inits + * + *************************************/ + + // macros allow code below to be copy+pasted into slot devices more easily +#define cpuregion memregion("maincpu")->base() +#define cpuregion_size memregion("maincpu")->bytes() +#define spr_region memregion("sprites")->base() +#define spr_region_size memregion("sprites")->bytes() +#define fix_region memregion("fixed")->base() +#define fix_region_size memregion("fixed")->bytes() +#define ym_region memregion("ymsnd")->base() +#define ym_region_size memregion("ymsnd")->bytes() +#define audiocpu_region memregion("audiocpu")->base() +#define audio_region_size memregion("audiocpu")->bytes() +#define audiocrypt_region memregion("audiocrypt")->base() +#define audiocrypt_region_size memregion("audiocrypt")->bytes() + + +/*********************************************** SMA + CMC42 */ + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof99) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sma_prot->kof99_decrypt_68k(cpuregion); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY); + m_sma_prot->kof99_install_protection(m_maincpu,m_banked_cart); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,garou) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sma_prot->garou_decrypt_68k(cpuregion); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GAROU_GFX_KEY); + m_sma_prot->garou_install_protection(m_maincpu,m_banked_cart); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,garouh) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sma_prot->garouh_decrypt_68k(cpuregion); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GAROU_GFX_KEY); + m_sma_prot->garouh_install_protection(m_maincpu,m_banked_cart); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sma_prot->mslug3_decrypt_68k(cpuregion); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY); + m_sma_prot->mslug3_install_protection(m_maincpu,m_banked_cart); +} + +/*********************************************** SMA + CMC50 */ + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2000) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sma_prot->kof2000_decrypt_68k(cpuregion); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2000_GFX_KEY); + m_sma_prot->kof2000_install_protection(m_maincpu,m_banked_cart); +} + +/*********************************************** CMC42 */ + +DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3h) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,ganryu) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GANRYU_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,s1945p) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, S1945P_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,preisle2) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, PREISLE2_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,bangbead) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, BANGBEAD_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,nitd) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, NITD_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,sengoku3) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SENGOKU3_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,zupapa) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, ZUPAPA_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof99k) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY); +} + +/*********************************************** CMC50 */ + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2000n) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2000_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2001) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2001_GFX_KEY); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); +} + +/*********************************************** CMC50 + PCM2 */ + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug4) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; /* USA violent content screen is wrong -- not a bug, confirmed on real hardware! */ + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG4_GFX_KEY); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,rotd) +{ + DRIVER_INIT_CALL(neogeo); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, ROTD_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,pnyaa) +{ + DRIVER_INIT_CALL(neogeo); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 4); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, PNYAA_GFX_KEY ); +} + +/*********************************************** CMC50 + PCM2 + prg scramble */ + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2002) +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,matrim) +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MATRIM_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,samsho5) +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SAMSHO5_GFX_KEY); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,samsh5sp) +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SAMSHO5SP_GFX_KEY); +} + +/*********************************************** CMC50 + PCM2 + PVC */ + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug5) +{ + DRIVER_INIT_CALL(neogeo); + m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG5_GFX_KEY); + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,svc) +{ + DRIVER_INIT_CALL(neogeo); + m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SVC_GFX_KEY); + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2003) +{ + DRIVER_INIT_CALL(neogeo); + m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2003h) +{ + DRIVER_INIT_CALL(neogeo); + m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); +} + +/*********************************************** misc carts */ + +DRIVER_INIT_MEMBER(neogeo_noslot_state,mslugx) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_mslugx_prot->mslugx_install_protection(m_maincpu); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,fatfury2) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_fatfury2_prot->fatfury2_install_protection(m_maincpu,m_banked_cart); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof98) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_kof98_prot->kof98_decrypt_68k(cpuregion, cpuregion_size); + m_kof98_prot->install_kof98_protection(m_maincpu); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,sbp) // copied to slot, missing from softlist +{ + DRIVER_INIT_CALL(neogeo); + m_sbp_prot->sbp_install_protection(m_maincpu, cpuregion, cpuregion_size); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,jockeygp) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, JOCKEYGP_GFX_KEY); + + /* install some extra RAM */ + m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff); + +// m_maincpu->space(AS_PROGRAM).install_read_port(0x280000, 0x280001, "IN5"); +// m_maincpu->space(AS_PROGRAM).install_read_port(0x2c0000, 0x2c0001, "IN6"); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,vliner) +{ + if (!m_cartslots[0]) m_banked_cart->install_banks(machine(), m_maincpu, m_region_maincpu->base(), m_region_maincpu->bytes()); + + m_sprgen->m_fixed_layer_bank_type = 0; + + m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff); + + m_maincpu->space(AS_PROGRAM).install_read_port(0x300000, 0x300001, 0, 0x01ff7e, "DSW"); + m_maincpu->space(AS_PROGRAM).install_read_port(0x280000, 0x280001, "IN5"); + m_maincpu->space(AS_PROGRAM).install_read_port(0x2c0000, 0x2c0001, "IN6"); + +} + + +/*********************************************** bootlegs */ + +DRIVER_INIT_MEMBER(neogeo_noslot_state,garoubl) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,cthd2003) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size); + m_bootleg_prot->patch_cthd2003(m_maincpu,m_banked_cart, cpuregion, cpuregion_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,ct2k3sp) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->decrypt_ct2k3sp(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size); + m_bootleg_prot->patch_cthd2003(m_maincpu,m_banked_cart, cpuregion, cpuregion_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,ct2k3sa) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->decrypt_ct2k3sa(spr_region, spr_region_size, audiocpu_region,audio_region_size); + m_bootleg_prot->patch_ct2k3sa(cpuregion, cpuregion_size); +} + + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf10thep) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->kf10thep_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k5uni) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->decrypt_kf2k5uni(cpuregion, cpuregion_size, audiocpu_region,audio_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2k4se) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->decrypt_kof2k4se_68k(cpuregion, cpuregion_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,svcplus) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->svcplus_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size, 1); + m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,svcplusa) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->svcplusa_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size); + m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,samsho5b) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->samsho5b_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->samsho5b_vx_decrypt(ym_region, ym_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof97oro) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->kof97oro_px_decode(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,lans2004) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->lans2004_decrypt_68k(cpuregion, cpuregion_size); + m_bootleg_prot->lans2004_vx_decrypt(ym_region, ym_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof10th) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->decrypt_kof10th(cpuregion, cpuregion_size); + m_bootleg_prot->install_kof10th_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size, fix_region, fix_region_size); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_kog_state,kog) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + + m_kog_prot->kog_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size); + m_kog_prot->kog_install_protection(m_maincpu); +} + + + +/*********************************************** bootlegs - can use original prot */ + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,ms4plus) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG4_GFX_KEY); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2pls) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); +} + +/*********************************************** bootleg hybrid */ + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3b6) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2002b) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_bootleg_prot->kof2002b_gfx_decrypt(spr_region,0x4000000); + m_bootleg_prot->kof2002b_gfx_decrypt(fix_region,0x20000); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2mp) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->kf2k2mp_decrypt(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2mp2) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->kf2k2mp2_px_decrypt(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,matrimbl) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size); + m_sprgen->m_fixed_layer_bank_type = 2; + m_bootleg_prot->matrimbl_decrypt(spr_region, spr_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); /* required for text layer */ +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,ms5plus) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG5_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_bootleg_prot->install_ms5plus_protection(m_maincpu,m_banked_cart); +} + + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,svcboot) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->svcboot_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size); + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,svcsplus) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->svcsplus_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size); + m_bootleg_prot->svcsplus_px_hack(cpuregion, cpuregion_size); + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); +} + + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3bl) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->kf2k3bl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3pl) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_bootleg_prot->kf2k3pl_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1); + m_bootleg_prot->kf2k3pl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3upl) // copied to slot +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_bootleg_prot->kf2k3upl_px_decrypt(cpuregion, cpuregion_size); + m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2); + m_bootleg_prot->kf2k3bl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size); +} + + + + + + +/*********************************************** non-carts */ + +void neogeo_noslot_state::install_banked_bios() +{ + m_maincpu->space(AS_PROGRAM).install_read_bank(0xc00000, 0xc1ffff, 0, 0x0e0000, "bankedbios"); + membank("bankedbios")->configure_entries(0, 2, memregion("mainbios")->base(), 0x20000); + membank("bankedbios")->set_entry(1); +} + +INPUT_CHANGED_MEMBER(neogeo_state::select_bios) +{ + membank("bankedbios")->set_entry(newval ? 0 : 1); +} + +DRIVER_INIT_MEMBER(neogeo_noslot_state,ms5pcb) +{ + DRIVER_INIT_CALL(neogeo); + + m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size); + svcpcb_gfx_decrypt(); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG5_GFX_KEY); + m_sprgen->m_fixed_layer_bank_type = 2; + svcpcb_s1data_decrypt(); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2); + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); + install_banked_bios(); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,svcpcb) +{ + DRIVER_INIT_CALL(neogeo); + + m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size); + svcpcb_gfx_decrypt(); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SVC_GFX_KEY); + svcpcb_s1data_decrypt(); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3); + m_sprgen->m_fixed_layer_bank_type = 2; + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); + install_banked_bios(); +} + + +DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3pcb) +{ + DRIVER_INIT_CALL(neogeo); + m_pvc_prot->kf2k3pcb_decrypt_68k(cpuregion, cpuregion_size); + kf2k3pcb_gfx_decrypt(); + kf2k3pcb_sp1_decrypt(); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); + + /* extra little swap on the m1 - this must be performed AFTER the m1 decrypt + or the m1 checksum (used to generate the key) for decrypting the m1 is + incorrect */ + { + int i; + UINT8* rom = memregion("audiocpu")->base(); + for (i = 0; i < 0x90000; i++) + { + rom[i] = BITSWAP8(rom[i], 5, 6, 1, 4, 3, 0, 7, 2); + } + } + + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY); + kf2k3pcb_decrypt_s1data(); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5); + m_sprgen->m_fixed_layer_bank_type = 2; + m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart); + m_maincpu->space(AS_PROGRAM).install_rom(0xc00000, 0xc7ffff, 0, 0x080000, memregion("mainbios")->base()); // 512k bios +} + + + +/************************************* + * + * Title catalog + * (source: http://neogeomuseum.snkplaymore.co.jp/english/catalogue/index.php) + * + ************************************* + + In 2010, SNK Playmore, the successor of SNK, released a title catalogue which lists the released + games (MVS/AES/CD) including their release dates in Japan. It is not 100% complete. + The included title catalogue is the english one. + + Game Title Genre Publisher Date Released (in Japan) + ================================================================================================================================= + NAM-1975 3D Action SNK MVS Cartridge:1990/04/26 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + MAHJONG KYORETSUDEN Mahjong SNK MVS Cartridge:1990/04/26 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + MAGICIAN LORD Action ADK MVS Cartridge:1990/04/26 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/10/31 + BASEBALL STARS PROFESSIONAL Sports SNK MVS Cartridge:1990/04/26 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/04/21 + TOP PLAYER'S GOLF Sports SNK MVS Cartridge:1990/05/23 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + NINJA COMBAT Action ADK MVS Cartridge:1990/07/24 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/10/31 + RIDING HERO 3D Racing SNK MVS Cartridge:1990/07/24 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/05/26 + THE SUPER SPY 3D Action SNK MVS Cartridge:1990/10/08 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + CYBER-LIP Action SNK MVS Cartridge:1990/11/07 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/04/21 + PUZZLED Puzzle SNK MVS Cartridge:1990/11/20 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + LEAGUE BOWLING Sports SNK MVS Cartridge:1990/12/10 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + GHOST PILOTS Shooter SNK MVS Cartridge:1991/01/25 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/03/17 + SENGOKU Action SNK MVS Cartridge:1991/02/12 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/03/17 + KING OF THE MONSTERS Fighting SNK MVS Cartridge:1991/02/25 + NEOGEO ROM-cart:1991/07/01 + BLUE'S JOURNEY Action ADK MVS Cartridge:1991/03/14 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/10/31 + ALPHA MISSION II Shooter SNK MVS Cartridge:1991/03/25 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + BURNING FIGHT Action SNK MVS Cartridge:1991/05/20 + NEOGEO ROM-cart:1991/08/09 + NEOGEO CD:1994/09/09 + MINNASAN NO OKAGESAMA DESU Table Monolith MVS Cartridge:1991/07/25 + NEOGEO ROM-cart:1991/07/21 + CROSSED SWORDS Action ADK MVS Cartridge:1991/07/25 + NEOGEO ROM-cart:1991/10/01 + NEOGEO CD:1994/10/31 + LEGEND OF SUCCESS JOE Action Wave MVS Cartridge:1991/07 + NEOGEO ROM-cart:1991/08/30 + QUIZ DAISUSA SEN: THE LAST COUNT DOWN Quiz SNK MVS Cartridge:1991/07 + NEOGEO ROM-cart:1991/08/30 + SUPER BASEBALL 2020 Sports SNK MVS Cartridge:1991/09/20 + NEOGEO ROM-cart:1991/10/25 + NEOGEO CD:1995/02/25 + ROBO ARMY Action SNK MVS Cartridge:1991/10/30 + NEOGEO ROM-cart:1991/12/20 + NEOGEO CD:1995/04/21 + THRASH RALLY Racing ADK MVS Cartridge:1991/11/08 + NEOGEO ROM-cart:1991/12/20 + NEOGEO CD:1994/10/31 + EIGHT MAN Action SNK NEOGEO ROM-cart:1991/11/20 + FATAL FURY Fighting SNK MVS Cartridge:1991/11/25 + NEOGEO ROM-cart:1991/12/20 + NEOGEO CD:1994/09/09 + BAKATONO-SAMA MAHJONG MAN'YUKI Mahjong Monolith MVS Cartridge:1991/11 + NEOGEO ROM-cart:1991/12/13 + THRASH RALLY Racing ADK NEOGEO ROM-cart:1991/12/20 + FOOTBALL FRENZY Sports SNK MVS Cartridge:1992/01/31 + NEOGEO ROM-cart:1992/02/21 + NEOGEO CD:1994/09/09 + SOCCER BRAWL Sports SNK MVS Cartridge:1992/02/14 + NEOGEO ROM-cart:1992/03/13 + NEOGEO CD:1995/03/31 + MUTATION NATION Action SNK MVS Cartridge:1992/03/16 + NEOGEO ROM-cart:1992/04/17 + NEOGEO CD:1995/02/25 + LAST RESORT Shooter SNK MVS Cartridge:1992/03/23 + NEOGEO ROM-cart:1992/04/24 + NEOGEO CD:1994/09/09 + QUIZ MEITANTEI NEO & GEO: QUIZ DAISOUSASEN PART 2 Quiz SNK MVS Cartridge:1992/03 + NEOGEO ROM-cart:1991/04/24 + BASEBALL STARS 2 Sports SNK MVS Cartridge:1992/04/15 + NEOGEO ROM-cart:1992/04/28 + NEOGEO CD:1994/09/09 + NINJA COMMANDO Shooter ADK MVS Cartridge:1992/04/30 + NEOGEO ROM-cart:1992/05/29 + NEOGEO CD:1994/10/31 + KING OF THE MONSTERS 2 Fighting SNK MVS Cartridge:1992/05/25 + NEOGEO ROM-cart:1992/06/19 + NEOGEO CD:1994/09/09 + ANDRO DUNOS Shooter Visco MVS Cartridge:1992/06/15 + NEOGEO ROM-cart:1992/07/17 + WORLD HEROES Fighting ADK MVS Cartridge:1992/07/28 + NEOGEO ROM-cart:1992/09/11 + NEOGEO CD:1995/03/17 + ART OF FIGHTING Fighting SNK MVS Cartridge:1992/09/24 + NEOGEO ROM-cart:1992/12/11 + NEOGEO CD:1994/09/09 + VIEWPOINT Shooter Sammy MVS Cartridge:1992/11/20 + NEOGEO ROM-cart:1992/12/11 + NEOGEO CD:1995/02/25 + FATAL FURY 2 Fighting SNK MVS Cartridge:1992/12/10 + NEOGEO ROM-cart:1993/03/05 + NEOGEO CD:1994/09/09 + SUPER SIDEKICKS Sports SNK MVS Cartridge:1992/12/14 + NEOGEO ROM-cart:1993/02/19 + NEOGEO CD:1995/03/31 + SENGOKU 2 Action SNK MVS Cartridge:1993/02/18 + NEOGEO ROM-cart:1993/04/09 + NEOGEO CD:1995/03/17 + 3 COUNT BOUT Fighting SNK MVS Cartridge:1993/03/25 + NEOGEO ROM-cart:1993/04/23 + NEOGEO CD:1995/04/21 + WORLD HEROES 2 Fighting ADK MVS Cartridge:1993/04/26 + NEOGEO ROM-cart:1993/06/04 + NEOGEO CD:1995/04/14 + SAMURAI SHODOWN Fighting SNK MVS Cartridge:1993/07/07 + NEOGEO ROM-cart:1993/08/11 + NEOGEO CD:1994/09/09 + FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1993/09/16 + NEOGEO ROM-cart:1993/12/22 + NEOGEO CD:1994/09/09 + SPINMASTER Sideview Action Data East MVS Cartridge:1993/12/16 + NEOGEO ROM-cart:1994/02/18 + ART OF FIGHTING 2 Fighting SNK MVS Cartridge:1994/02/03 + NEOGEO ROM-cart:1994/03/11 + NEOGEO CD:1994/09/09 + WINDJAMMERS Sports Data East MVS Cartridge:1994/02/17 + NEOGEO ROM-cart:1994/04/08 + NEOGEO CD:1995/01/20 + KARNOV'S REVENGE Fighting Data East MVS Cartridge:1994/03/17 + NEOGEO ROM-cart:1994/04/28 + NEOGEO CD:1994/12/22 + SUPER SIDEKICKS 2 Sports SNK MVS Cartridge:1994/04/19 + NEOGEO ROM-cart:1994/05/27 + NEOGEO CD:1994/09/09 + WORLD HEROES 2 JET Fighting ADK MVS Cartridge:1994/04/26 + NEOGEO ROM-cart:1994/06/10 + NEOGEO CD:1994/11/11 + TOP HUNTER Action SNK MVS Cartridge:1994/05/18 + NEOGEO ROM-cart:1994/06/24 + NEOGEO CD:1994/09/29 + GURURIN Puzzle Face MVS Cartridge:1994/05/25 + FIGHT FEVER Fighting VICCOM MVS Cartridge:1994/06/28 + JANSHIN DENSETSU: QUEST OF JONGMASTER Mahjong Aicom MVS Cartridge:1994/06/29 + NEOGEO CD:1995/03/31 + AERO FIGHTERS 2 Topview Shooter Video System MVS Cartridge:1994/07/18 + NEOGEO ROM-cart:1994/08/26 + NEOGEO CD:1994/09/29 + AGGRESSORS OF DARK KOMBAT Fighting ADK MVS Cartridge:1994/07/26 + NEOGEO ROM-cart:1994/08/26 + NEOGEO CD:1995/01/13 + THE KING OF FIGHTERS '94 Fighting SNK MVS Cartridge:1994/08/25 + NEOGEO ROM-cart:1994/10/01 + NEOGEO CD:1994/11/02 + ZED BLADE Shooter NMK MVS Cartridge:1994/09/13 + POWER SPIKES II Sports Video System MVS Cartridge:1994/10/19 + NEOGEO CD:1995/03/18 + SAMURAI SHODOWN II Fighting SNK MVS Cartridge:1994/10/28 + NEOGEO ROM-cart:1994/12/02 + NEOGEO CD:1994/12/15 + STREET HOOP Sports Data East MVS Cartridge:1994/12/08 + NEOGEO ROM-cart:1994/12/09 + NEOGEO CD:1995/01/20 + PUZZLE BOBBLE Puzzle TAITO MVS Cartridge:1994/12/21 + NEOGEO CD:1995/05/02 + SUPER VOLLEY '94 Sports TAITO MVS Cartridge:1994 + BOMBERMAN: PANIC BOMBER Puzzle Eighting MVS Cartridge:1995/01/18 + GALAXY FIGHT: UNIVERSAL WARRIORS Fighting Sunsoft MVS Cartridge:1995/01/24 + NEOGEO ROM-cart:1995/02/25 + NEOGEO CD:1995/04/21 + QUIZ KING OF FIGHTERS Quiz Saurus MVS Cartridge:1995/02/01 + NEOGEO ROM-cart:1995/03/10 + NEOGEO CD:1995/04/07 + DOUBLE DRAGON Fighting Technos MVS Cartridge:1995/03/03 + NEOGEO ROM-cart:1995/03/31 + NEOGEO CD:1995/06/02 + SUPER SIDEKICKS 3 Sports SNK MVS Cartridge:1995/03/07 + NEOGEO ROM-cart:1995/04/07 + NEOGEO CD:1995/06/23 + FATAL FURY 3 Fighting SNK MVS Cartridge:1995/03/27 + NEOGEO ROM-cart:1995/04/21 + NEOGEO CD:1995/04/28 + SAVAGE REIGN Fighting SNK MVS Cartridge:1995/04/25 + NEOGEO ROM-cart:1995/03/10 + NEOGEO CD:1995/06/16 + CROSSED SWORDS II Action ADK NEOGEO CD:1995/05/02 + WORLD HEROES PERFECT Fighting ADK MVS Cartridge:1995/05/25 + NEOGEO ROM-cart:1995/06/30 + NEOGEO CD:1995/07/21 + FAR EAST OF EDEN: KABUKI KLASH Fighting Hudson Soft MVS Cartridge:1995/06/20 + NEOGEO ROM-cart:1995/07/28 + NEOGEO CD:1995/11/24 + THE KING OF FIGHTERS '95 Fighting SNK MVS Cartridge:1995/07/25 + NEOGEO ROM-cart:1995/09/01 + NEOGEO CD:1995/09/29 + IDOL MAHJONG FINAL ROMANCE 2 Mahjong Video System NEOGEO CD:1995/08/25 + PULSTAR Sidevi. Shooter Aicom MVS Cartridge:1995/08/28 + NEOGEO ROM-cart:1995/09/29 + NEOGEO CD:1995/10/27 + VOLTAGE FIGHTER GOWCAIZER Fighting Technos MVS Cartridge:1995/09/18 + NEOGEO ROM-cart:1995/10/20 + NEOGEO CD:1995/11/24 + STAKES WINNER Action Saurus MVS Cartridge:1995/09/27 + NEOGEO ROM-cart:1995/10/27 + NEOGEO CD:1996/03/22 + SHOGI NO TATSUJIN - MASTER OF SYOUGI Japanese chess ADK MVS Cartridge:1995/09/28 + NEOGEO ROM-cart:1995/10/13 + NEOGEO CD:1995/10/20 + AERO FIGHTERS 3 Topview Action Video System MVS Cartridge:1995/10/12 + NEOGEO ROM-cart:1995/11/17 + NEOGEO CD:1995/12/08 + ADK WORLD Variety ADK NEOGEO CD:1995/11/10 + SAMURAI SHODOWN III Fighting SNK MVS Cartridge:1995/11/15 + NEOGEO ROM-cart:1995/12/01 + NEOGEO CD:1995/12/29 + CHIBI MARUKO-CHAN DELUXE QUIZ Variety Takara MVS Cartridge:1995/11/27 + NEOGEO ROM-cart:1996/01/26 + PUZZLE DE PON! Puzzle Visco MVS Cartridge:1995/11/28 + REAL BOUT FATAL FURY Fighting SNK MVS Cartridge:1995/12/21 + NEOGEO ROM-cart:1996/01/26 + NEOGEO CD:1996/02/23 + NEO-GEO CD SPECIAL Variety SNK NEOGEO CD:1995/12/22 + NEO TURF MASTERS Sports Nazca MVS Cartridge:1996/01/29 + NEOGEO ROM-cart:1996/03/01 + NEOGEO CD:1996/05/03 + ART OF FIGHTING 3 Fighting SNK MVS Cartridge:1996/03/12 + NEOGEO ROM-cart:1996/04/26 + NEOGEO CD:1996/06/14 + MAGICAL DROP II Puzzle Data East MVS Cartridge:1996/03/21 + NEOGEO ROM-cart:1996/04/19 + NEOGEO CD:1996/05/24 + OSHIDASHI JIN TRICK Puzzle ADK NEOGEO CD:1996/03/22 + NEO DRIFT OUT Racing Visco MVS Cartridge:1996/03/28 + NEOGEO CD:1996/07/26 + METAL SLUG Action Nazca MVS Cartridge:1996/04/19 + NEOGEO ROM-cart:1996/05/24 + NEOGEO CD:1996/07/05 + OVER TOP Racing ADK MVS Cartridge:1996/04/26 + NEOGEO ROM-cart:1996/06/07 + NEOGEO CD:1996/07/26 + NINJA MASTER'S Fighting ADK MVS Cartridge:1996/05/27 + NEOGEO ROM-cart:1996/06/28 + NEOGEO CD:1996/09/27 + RAGNAGARD Fighting Saurus MVS Cartridge:1996/06/13 + NEOGEO ROM-cart:1996/07/26 + NEOGEO CD:1996/08/23 + FUTSAL Sports Saurus NEOGEO CD:1996/07/19 + THE KING OF FIGHTERS '96 Fighting SNK MVS Cartridge:1996/07/30 + NEOGEO ROM-cart:1996/09/27 + NEOGEO CD:1996/10/25 + KIZUNA ENCOUNTER SUPER TAG BATTLE Fighting SNK MVS Cartridge:1996/09/20 + NEOGEO ROM-cart:1996/11/08 + CHOUTETSU BURIKINGA Shooter Saurus NEOGEO CD:1996/09/20 + STAKES WINNER 2 Real Jockey Act Saurus MVS Cartridge:1996/09/24 + NEOGEO ROM-cart:1996/12/13 + THE ULTIMATE 11 Sports SNK MVS Cartridge:1996/10/16 + NEOGEO ROM-cart:1996/12/20 + SAMURAI SHODOWN IV Fighting SNK MVS Cartridge:1996/10/25 + NEOGEO ROM-cart:1996/11/29 + NEOGEO CD:1996/12/27 + WAKU WAKU 7 Fighting Sunsoft MVS Cartridge:1996/11/21 + NEOGEO ROM-cart:1996/12/27 + TWINKLE STAR SPRITES Shooter ADK MVS Cartridge:1996/11/25 + NEOGEO ROM-cart:1997/01/31 + NEOGEO CD:1997/02/21 + BREAKERS Fighting Visco MVS Cartridge:1996/12/17 + NEOGEO ROM-cart:1997/03/21 + NEOGEO CD:1997/04/25 + MONEY IDOL EXCHANGER Puzzle Face MVS Cartridge:1997/01/15 + Real Bout FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1997/01/28 + NEOGEO ROM-cart:1997/02/28 + NEOGEO CD:1997/03/03 + THE KING OF FIGHTERS '96 NEOGEO COLLECTION Variety SNK NEOGEO CD:1997/02/14 + MAGICAL DROP III Puzzle Data East MVS Cartridge:1997/02/25 + NEOGEO ROM-cart:1997/04/25 + NEO BOMBERMAN Action Hudson Soft MVS Cartridge:1997/05/01 + NEO MR.DO! Action Visco MVS Cartridge:1997/06/26 + SHINSETSU SAMURAI SHODOWN BUSHIDO RETSUDEN Role-playing SNK NEOGEO CD:1997/06/27 + THE KING OF FIGHTERS '97 Fighting SNK MVS Cartridge:1997/07/28 + NEOGEO ROM-cart:1997/09/25 + NEOGEO CD:1997/10/30 + UCCHAN NANCHAN NO HONO NO CHALLENGER ULTRA DENRYU IRAIRABOU Action Saurus MVS Cartridge:1997/08/25 + SHOCK TROOPERS Shooter Saurus MVS Cartridge:1997/11/11 + THE LAST BLADE Fighting SNK MVS Cartridge:1997/12/05 + NEOGEO ROM-cart:1998/01/29 + NEOGEO CD:1998/03/26 + BLAZING STAR Shooter Yumekobo MVS Cartridge:1998/01/19 + NEOGEO ROM-cart:1998/02/26 + METAL SLUG 2 Action SNK MVS Cartridge:1998/02/23 + NEOGEO ROM-cart:1998/04/02 + NEOGEO CD:1998/06/25 + REAL BOUT FATAL FURY 2 Fighting SNK MVS Cartridge:1998/03/20 + NEOGEO ROM-cart:1998/04/29 + NEOGEO CD:1998/07/23 + NEOGEO CUP '98 Sports SNK MVS Cartridge:1998/05/28 + NEOGEO ROM-cart:1998/07/30 + BREAKERS REVENGE Fighting Visco MVS Cartridge:1998/07/03 + NEOGEO ROM-cart: + THE KING OF FIGHTERS '98 Fighting SNK MVS Cartridge:1998/07/23 + NEOGEO ROM-cart:1998/09/23 + NEOGEO CD:1998/12/23 + SHOCK TROOPERS 2nd Squad Action Shooter Saurus MVS Cartridge:1998/11/06 + NEOGEO ROM-cart:1999/06/24 + THE LAST BLADE 2 Fighting SNK MVS Cartridge:1998/11/25 + NEOGEO ROM-cart:1999/01/28 + NEOGEO CD:1999/02/27 + FLIP SHOT Action Visco MVS Cartridge:1998/12/08 + METAL SLUG X Action SNK MVS Cartridge:1999/03/19 + NEOGEO ROM-cart:1999/05/27 + CAPTAIN TOMADAY Shooter Visco MVS Cartridge:1999/05/27 + THE KING OF FIGHTERS '99 Fighting SNK MVS Cartridge:1999/07/22 + NEOGEO ROM-cart:1999/09/23 + NEOGEO CD:1999/12/02 + PREHISTORIC ISLE 2 Shooter Yumekobo MVS Cartridge:1999/09/27 + GAROU: MARK OF THE WOLVES Fighting SNK MVS Cartridge:1999/11/26 + NEOGEO ROM-cart:2000/02/25 + STRIKERS 1945 PLUS Shooter Psikyo MVS Cartridge:1999/12/24 + METAL SLUG 3 Action Shooter SNK MVS Cartridge:2000/03/23 + NEOGEO ROM-cart:2000/06/01 + THE KING OF FIGHTERS 2000 Fighting SNK MVS Cartridge:2000/07/26 + NEOGEO ROM-cart:2000/12/21 + NIGHTMARE IN THE DARK Horror Action Gavaking MVS Cartridge:2001 + ZUPAPA! Comical Action Video System MVS Cartridge:2001 + SENGOKU 3 Action SNK PLAYMORE MVS Cartridge:2001/07/18 + NEOGEO ROM-cart:2001/10/25 + THE KING OF FIGHTERS 2001 Fighting SNK PLAYMORE MVS Cartridge:2001/11/15 + NEOGEO ROM-cart:2002/03/14 + METAL SLUG 4 Action Shooter SNK PLAYMORE MVS Cartridge:2002/03/27 + NEOGEO ROM-cart:2002/06/13 + RAGE OF THE DRAGONS Fighting Evoga MVS Cartridge:2002/06/06 + NEOGEO ROM-cart:2002/09/26 + THE KING OF FIGHTERS 2002 Fighting SNK PLAYMORE MVS Cartridge:2002/10/10 + NEOGEO ROM-cart:2002/12/19 + POWER INSTINCT MATRIMELEE Fighting ATLUS/NOISE FA. MVS Cartridge:2003/03/20 + NEOGEO ROM-cart:2003/05/29 + SNK VS. CAPCOM: SVC CHAOS Fighting SNK PLAYMORE MV-0:2003/07/24 + NEOGEO ROM-cart:2003/11/13 + SAMURAI SHODOWN V Fighting SNK P/Yuki Ent MVS Cartridge:2003/10/10 + NEOGEO ROM-cart:2003/12/11 + METAL SLUG 5 Action Shooter SNK PLAYMORE MV-0:2003/11/14 + NEOGEO ROM-cart:2004/02/19 + THE KING OF FIGHTERS 2003 Fighting SNK PLAYMORE MV-0:2003/12/12 + NEOGEO ROM-cart:2004/03/18 + POCHI & NYAA Puzzle Aiky MVS Cartridge:2003/12/24 + SAMURAI SHODOWN V SPECIAL Fighting SNK P/Yuki Ent MVS Cartridge:2004/04/22 + NEOGEO ROM-cart:2004/07/15 +****************************************************************************/ + +/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */ +/* SNK */ +GAME( 1990, nam1975, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "NAM-1975 (NGM-001)(NGH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bstars, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGM-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bstarsh, bstars, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGH-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, tpgolf, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (NGM-003)(NGH-003)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mahretsu, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mahjong Kyo Retsuden (NGM-004)(NGH-004)", MACHINE_SUPPORTS_SAVE ) // does not support mahjong panel in MVS mode +GAME( 1990, ridhero, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (NGM-006)(NGH-006)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ridheroh, ridhero, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, alpham2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (NGM-007)(NGH-007)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, alpham2p, alpham2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, cyberlip, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (NGM-010)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, superspy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (NGM-011)(NGH-011)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mutnat, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (NGM-014)(NGH-014)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kotm, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kotmh, kotm, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sengoku, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGM-017)(NGH-017)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sengokuh, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGH-017)(US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningf, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGM-018)(NGH-018)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfh, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGH-018)(US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfp, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lbowling, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (NGM-019)(NGH-019)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilots, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGM-020)(NGH-020)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilotsh, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGH-020)(US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, joyjoy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled / Joy Joy Kid (NGM-021)(NGH-021)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, quizdais, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (NGM-023)(NGH-023)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, quizdaisk, quizdais, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, lresort, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, lresortp, lresort, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, eightman, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (NGM-025)(NGH-025)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, legendos, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Legend of Success Joe / Ashita no Joe Densetsu", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bba, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bbh, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, socbrawl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGM-031)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, socbrawlh, socbrawl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGH-031)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, fatfury1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai (NGM-033)(NGH-033)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, roboarmy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fbfrenzy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (NGM-034)(NGH-034)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kotm2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (NGM-039)(NGH-039)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kotm2p, kotm2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sengoku2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bstars2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, quizdai2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042)(NGH-042)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, 3countb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout / Fire Suplex (NGM-043)(NGH-043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, aof, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken (NGM-044)(NGH-044)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, samsho, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGM-045)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, samshoh, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGH-045)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, tophuntr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGM-046)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, tophuntrh, tophuntr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGH-046)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fatfury2, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai (NGM-047)(NGH-047)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ssideki, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '94 (NGM-055)(NGH-055)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2a, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfursp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (set 1)(NGM-058)(NGH-058)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfurspa, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (set 2)(NGM-058)(NGH-058)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, savagere, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - kakutou sousei", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssideki2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - real fight football (NGM-061)(NGH-061)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru jigokuhen (NGM-063)(NGH-063)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2k, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II)", MACHINE_SUPPORTS_SAVE ) // official or hack? +GAME( 1995, fatfury3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - haruka-naru tatakai (NGM-069)(NGH-069)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, ssideki3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - eikou e no michi", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95a, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084), alternate board", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95h, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGH-084)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, samsho3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, samsho3h, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fswords, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rbff1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095)(NGH-095)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rbff1a, rbff1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, aof3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, aof3k, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode +GAME( 1996, kof96, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGM-214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96h, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ssideki4, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kizuna, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kizuna4p, kizuna, neogeo_kiz4p, kizuna4p, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222)(NGH-222)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4k, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffspec, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffspeck, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGM-2320)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97h, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGH-2320)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97k, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97pls, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97oro, kof97, neogeo_noslot, neogeo, neogeo_noslot_state, kof97oro, ROT0, "bootleg", "The King of Fighters '97 Oroshi Plus 2003 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kog, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "bootleg", "King of Gladiator (The King of Fighters '97 bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // protected bootleg +GAME( 1997, lastblad, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lastbladh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lastsold, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, irrmaze, neogeo, neogeo_imaze, irrmaze, neogeo_state, neogeo, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGM-2400)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2h, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGH-2400)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2k, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode +GAME( 1998, mslug2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410)(NGH-2410)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98a, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420, alternate board)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98k, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98ka, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98h, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGH-2420)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lastbld2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430)(NGH-2430)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, neocup98, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mslugx, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "SNK", "Metal Slug X - Super Vehicle-001 (NGM-2500)(NGH-2500)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGM-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, kof99h, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGH-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX, crashes going into attract demo */ +GAME( 1999, kof99e, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, kof99k, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 1999, kof99p, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garou, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, garou, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, garouh, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garouh, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)(NGH-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, garoup, garou, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoubl, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garoubl, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Bootleg of garoup */ +GAME( 2000, mslug3, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 2000, mslug3h, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3h, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2000, mslug3b6, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3b6, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */ +GAME( 2000, kof2000, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570) (NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 2000, kof2000n, kof2000, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000n, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, zupapa, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, zupapa, ROT0, "SNK", "Zupapa!" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, sengoku3, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Noise Factory / SNK", "Sengoku 3 / Sengoku Densho 2001" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, kof2001, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGM-262?)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, kof2001h, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGH-2621)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2003, cthd2003, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ +GAME( 2003, ct2k3sp, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, ct2k3sp, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ +GAME( 2003, ct2k3sa, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, ct2k3sa, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2001 */ +GAME( 2002, kof2002, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (NGM-2650)(NGH-2650)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kof2002b, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002b, ROT0, "bootleg", "The King of Fighters 2002 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kf2k2pls, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2pls, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 1)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2pla, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2pls, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2mp, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2mp, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2mp2, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2mp2, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kof10th, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof10th, ROT0, "bootleg", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2005, kf10thep, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf10thep, ROT0, "bootleg", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2004, kf2k5uni, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k5uni, ROT0, "bootleg", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2004, kof2k4se, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "bootleg", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2002 */ +GAME( 2003, mslug5, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug5, ROT0, "SNK Playmore", "Metal Slug 5 (NGM-2680)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5h, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, mslug5, ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", MACHINE_SUPPORTS_SAVE ) /* Also found in later MVS carts */ +GAME( 2003, ms5pcb, 0, neogeo_noslot, dualbios, neogeo_noslot_state, ms5pcb, ROT0, "SNK Playmore", "Metal Slug 5 (JAMMA PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ms5plus, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcpcb, 0, neogeo_noslot, dualbios, neogeo_noslot_state, svcpcb, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1)", MACHINE_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart. +GAME( 2003, svcpcba, svcpcb, neogeo_noslot, dualbios, neogeo_noslot_state, svcpcb, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code */ +GAME( 2003, svc, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690)(NGH-2690)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcboot, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcplus, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplus, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcplusa, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcsplus, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcsplus, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5h, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5b, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5b, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", MACHINE_SUPPORTS_SAVE ) // different program scrambling +GAME( 2003, kf2k3pcb, 0, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pcb, ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", MACHINE_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart. +GAME( 2003, kof2003, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2003, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2003h, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kof2003h, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kf2k3bl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3bl , ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?) +GAME( 2003, kf2k3bla, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pl, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2003, kf2k3pl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pl, ROT0, "bootleg", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2003, kf2k3upl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3upl, ROT0, "bootleg", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2004, samsh5sp, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5sph, samsh5sp, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spho, samsh5sp, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)", MACHINE_SUPPORTS_SAVE ) + +/* Alpha Denshi Co. / ADK (changed name in 1993) */ +GAME( 1990, maglord, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGM-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, maglordh, maglord, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGH-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ncombat, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ncombath, ncombat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bjourney, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001)(ALH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, crsword, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002)(ALH-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, trally, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003)(ALH-003)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ncommand, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Commando", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALM-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1h, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALH-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1ha, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, wh2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK", "World Heroes 2 (ALM-006)(ALH-006)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wh2j, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007)(ADH-007)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aodk, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008)(ADH-008)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes Perfect", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, mosyougi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Syougi No Tatsujin - Master of Syougi", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, overtop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK", "Over Top", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ninjamas, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Ninja Master's - haoh-ninpo-cho", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, twinspri, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Twinkle Star Sprites", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, zintrckb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Zintrick / Oshidashi Zentrix (hack)", MACHINE_SUPPORTS_SAVE ) + +/* Aicom (was a part of Sammy) / Yumekobo (changed name in 1996) */ +GAME( 1992, viewpoin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sammy / Aicom", "Viewpoint", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, janshin, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Aicom", "Jyanshin Densetsu - Quest of Jongmaster", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, pulstar, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Aicom", "Pulstar", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, blazstar, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Blazing Star", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, preisle2, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, preisle2, ROT0, "Yumekobo", "Prehistoric Isle 2" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ + +/* Data East Corporation */ +GAME( 1993, spinmast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wjammers, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, karnovr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, strhoop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream (DEM-004)(DEH-004)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ghostlop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Ghostlop (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, magdrop2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop II", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, magdrop3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop III", MACHINE_SUPPORTS_SAVE ) + +/* Eleven */ +GAME( 2000, nitd, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, nitdbl, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Nightmare in the Dark (bootleg)" , MACHINE_SUPPORTS_SAVE ) + +/* Face */ +GAME( 1994, gururin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Gururin", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, miexchng, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, dragonsh, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Dragon's Heaven (development board)", MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // same ID code as Voltage Fighter Gowkaizer, developed by ex-Technos staff + +/* Hudson Soft */ +GAME( 1994, panicbom, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eighting / Hudson", "Panic Bomber", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kabukikl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, neobombe, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Neo Bomberman", MACHINE_SUPPORTS_SAVE ) + +/* Monolith Corp. */ +GAME( 1990, minasan, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minasanno Okagesamadesu! Daisugorokutaikai (MOM-001)(MOH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bakatono, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuuki (MOM-002)(MOH-002)", MACHINE_SUPPORTS_SAVE ) + +/* Nazca (later acquired by SNK) */ +GAME( 1996, turfmast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, mslug, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", MACHINE_SUPPORTS_SAVE ) + +/* NMK */ +GAME( 1994, zedblade, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NMK", "Zed Blade / Operation Ragnarok", MACHINE_SUPPORTS_SAVE ) + +/* Psikyo */ +GAME( 1999, s1945p, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "Psikyo", "Strikers 1945 Plus" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ + +/* Saurus */ +GAME( 1995, quizkof, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (SAM-080)(SAH-080)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, quizkofk, quizkof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, stakwin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI kinzen seiha e no michi", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ragnagrd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, pgoal, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ironclad, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Choutetsu Brikin'ger - Iron clad (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ironclado, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Choutetsu Brikin'ger - Iron clad (prototype, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, stakwin2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shocktro, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shocktroa, shocktro, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, shocktr2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers - 2nd Squad", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lans2004, shocktr2, neogeo_noslot, neogeo, neogeo_noslot_state, lans2004, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", MACHINE_SUPPORTS_SAVE ) + +/* Sunsoft */ +GAME( 1995, galaxyfg, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, wakuwak7, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Waku Waku 7", MACHINE_SUPPORTS_SAVE ) + +/* Taito */ +GAME( 1994, pbobblen, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (NGM-083)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pbobblenb, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, pbobbl2n, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, pnyaa, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, pnyaa, ROT0, "Aiky / Taito", "Pochi and Nyaa", MACHINE_SUPPORTS_SAVE ) + +/* Takara */ +GAME( 1995, marukodq, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", MACHINE_SUPPORTS_SAVE ) + +/* Technos Japan */ +GAME( 1995, doubledr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gowcaizr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sdodgeb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", MACHINE_SUPPORTS_SAVE ) + +/* Tecmo */ +GAME( 1996, tws96, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Tecmo", "Tecmo World Soccer '96", MACHINE_SUPPORTS_SAVE ) + +/* Viccom */ +GAME( 1994, fightfev, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fightfeva, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 2)", MACHINE_SUPPORTS_SAVE ) + +/* Video System Co. */ +GAME( 1994, pspikes2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Power Spikes II (NGM-068)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, sonicwi2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sonicwi3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, popbounc, neogeo, neogeo_dial, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", MACHINE_SUPPORTS_SAVE ) + +/* Visco */ +GAME( 1992, androdun, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (NGM-049)(NGH-049)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, puzzledp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon!", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, neomrdo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Mr. Do!", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, goalx3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Goal! Goal! Goal!", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, neodrift, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Drift Out - New Technology", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, breakers, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, puzzldpr, puzzledp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, breakrev, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers Revenge", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, flipshot, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Battle Flip Shot", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ctomaday, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Captain Tomaday", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ganryu, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, ganryu, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2000, bangbead, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, bangbead, ROT0, "Visco", "Bang Bead", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, b2b, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bang Busters (2010 NCI release)" , MACHINE_SUPPORTS_SAVE ) + +/* Mega Enterprise */ +GAME( 2002, mslug4, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug4, ROT0, "Mega / Playmore", "Metal Slug 4 (NGM-2630)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4h, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, mslug4, ROT0, "Mega / Playmore", "Metal Slug 4 (NGH-2630)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, ms4plus, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, ms4plus, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) + +/* Evoga */ +GAME( 2002, rotd, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, rotd, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGM-264?)", MACHINE_SUPPORTS_SAVE ) + +/* Atlus */ +GAME( 2002, matrim, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, matrim, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660) (NGH-2660)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrimbl, matrim, neogeo_noslot, neogeo, neogeo_noslot_state, matrimbl, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", MACHINE_SUPPORTS_SAVE ) + +/***** Unlicensed commercial releases *****/ + +/* BrezzaSoft */ +GAME( 2001, jockeygp, neogeo, neogeo_noslot, jockeygp, neogeo_noslot_state, jockeygp, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, jockeygpa, jockeygp, neogeo_noslot, jockeygp, neogeo_noslot_state, jockeygp, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, vliner, neogeo, neogeo_noctrl, vliner, neogeo_noslot_state, vliner, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, vlinero, vliner, neogeo_noctrl, vliner, neogeo_noslot_state, vliner, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 2)", MACHINE_SUPPORTS_SAVE ) + +/* Kyle Hodgetts */ +GAME( 2000, diggerma, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", MACHINE_SUPPORTS_SAVE ) + +/* Vektorlogic */ +GAME( 2004, sbp, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, sbp, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING ) + +/* NG:DEV.TEAM */ +GAME( 2005, lasthope, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope (bootleg AES to MVS conversion, no coin support)", MACHINE_SUPPORTS_SAVE ) // wasn't actually released on MVS but bootleg carts have been sold, this doesn't accept coins, runs like a console game +// Last Hope Pink Bullets (c)2008 - MVS/AES +// Fast Striker (c)2010 - MVS/AES +// Fast Striker 1.5 (c)2010 - MVS/AES +// GunLord (c)2012 - MVS/AES +// Neo XYX (c)2013 - MVS/AES +// Razion (c)2014 - MVS/AES? +// Kraut Buster (c)2016 - MVS/AES + +/* N.C.I - LE CORTEX */ +// Treasure of the Caribbean (c)2011 - AES only (no credits system if ran on an MVS, Freeplay) + +/* NEOBITZ */ +// Knight's Chance (c)2014 - MVS/AES + + + +#include "../hbmame/drivers/neogeo0.cpp" + diff --git a/docs/release/src/hbmame/drivers/neogeohb.cpp b/docs/release/src/hbmame/drivers/neogeohb.cpp new file mode 100644 index 00000000000..f0906423a67 --- /dev/null +++ b/docs/release/src/hbmame/drivers/neogeohb.cpp @@ -0,0 +1,1707 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/********************************************************************************************************* + +neogeohb.cpp - started 2014-06-02 + +HBMAME list of protos, unreleased, and homebrews. This number system is to make the categorisation +of non-official NeoGeo sets easier. 300-399 is for unreleased commercial sets, while 400-999 is for +homebrews. Protos will generally have an equivalent 'official' number that can be used. + +300-399 is mostly speculation, it is not really known what may or may not have actually existed. +It is possible that a game is already known under another title, or perhaps it was a +prototype of another title. Corrected info is welcome. + +400-499 are mostly confirmed as having existed at some time. A few of them seem unobtainable now. +800-899 highly-priced limited edition homebrew carts, and are not to be emulated until after the maker + has discontinued the item. + +We want the MVS or AES roms for any game marked with * after the number. + +Please note: It is planned to move this list to the HBMAME website sometime this year. + +******* CD-only titles that may possibly exist as roms ************* + +NUM YEAR COMPANY TITLE +--- ---- ---------------- ------------------------------------------- +054*1995 ADK Crossed Swords 2 +085*1997 SNK Samurai Showdown R.P.G. (also known as 'Shinsetsu Samurai Spirits Bushidoretsuden') +091*1995 ADK ADK World +098*1995 Video System Co Final Romance 2 +205*1995 SNK NeoGeo CD Special +211*1996 ADK Zintrick +229*1996 SNK King of Fighters 96 CD Collection + + + +******* Normal games that have alternate titles (or other) ************* + +NUM TITLES +--- ------------------------------------------------------------------- +001 NAM-1975 (The MVS misses the demo sequence) +004 Mahjong Kyo Retsuden / Real Mah-Jong Game +007 Alpha Mission II / ASD Last Guardian II (MGD2 dump has extra sounds & roms) +021 Puzzled / JoyJoyKid (The MVS misses the war & sun god sequence, AES misses demo) +022 Blue's Journey / Raguy +023 Quiz Daisousa Den / The Last Count Down +033 Fatal Fury / Garou Densetsu +038 Thrash Rally / Rally Chase +043 3 Count Bout / Fire Suplex +045 Samurai Shodown / Samurai Spirits +047 Fatal Fury 2 / Garoudensetsu 2 +048 Mahjong Janshin / Quest of Jongmaster +058 Fatal Fury Special / Garoudensetsu +062 Spin Master / Miracle Adventure +063 Samurai Shodown 2 / Samurai Spirits 2 / Saulabi Spirits 2 +065 Windjammers / Flying Power Disc +066 Karnov's Revenge / Fighter's History Dynamite +069 Fatal Fury 3 / Garoudensetsu 3; The Battle of Destiny; Road to the Final Victory +076 Zed Blade / Operation Ragnarok +079 Street Hoop / Dunk Dream +092 Kabuki Klash / Far East of Eden +200 Neo Turf Masters / Big Tournament Golf +215 Super Sidekicks 4 / SNK Football Championship +216 Kizuna Encounter; Super Tag Battle +219 Pleasure Goal / Futsal +220 Ironclad / Brikin'ger +222 Samurai Shodown 4 / Legend of a Warrior + + + +********************** 300 to 399 ********************************** + +NUM YEAR COMPANY TITLE +--- ---- ---------------- ------------------------------------------- +300* Baseball Stars 3 +301* Death Match +302* Fire Suplex 2 +303* Heavy Glove Boxing +304* Magician Lord 2 +305* Ninja Gaiden (This may be Ninja Gaiden II, 1994, Tecmo) +306* Reactor +307* World Heroes Link-up +308*1990 Alpha Denshi Sun Shine / Block Paradise +309*1991 Sammy Dunk Star +310*1991 Alpha Denshi Mystic Wand +311*1991 Alpha Denshi Fun Fun Brothers +312*1994 Visco Crystal Legacy (this may be an early name for Breakers) +313*1994 Video System Co Super Volley 94 (this may be an early name for Power Spikes 2) +314*1994 Mahou All Stars Volley +315*1994 Visco Puzzlekko Club +316 1994 Face Treasure of the Caribbean (may also be known as 'Carib No Zaihou') +317*1995 Face Ultimate 4 / King of Athlete +318*1995 Monolith Last Odyssey Pinball Fantasia +319*1995 MAX Maseki Taisen Stoon +320*1995 Astec Warlocks of the Fates +321*1995 Yumekobo The Karate Ninja Show +322*1996 Sunsoft Hebereke's Pair Pair Wars +323*1996 Viccom The Eye of Typhoon +324*1996 Kigyo Action Pac +325*1996 SNK Kizuna Encounter Special Edition (could be "Kizuna Encounter 4way Battle") (could be "Fu'un Super Tag Battle Link-up") +326*1996 Saurus Mahou Juku Magic Master +327*1997 Saurus Neo Pool Master +328*1997 Success Q.P. +329*1997 Gapporin Ookiku Fukuramasete Gapporn +330*2000 SNK Garou 2 / Mark of the Wolves Special +331 2001 Brezzasoft Jockey Grand Prix +332 2001 Brezzasoft V-Liner +333*2002 Sun Amusement Poker Kingdom / Bingo Island +334*2002 ADK Dance RhythMIX +335*2002 ADK World Heroes 3 +336 Face Dragon's Heaven +337*2000 Vektorlogic Neo Sparks (cancelled?) +338 2004 Vektorlogic Super Bubble Pop +339* Vektorlogic TommyK (cancelled?) +350* Neo Dev Cart +351* MVS Test Cart +360 2003 PhenixSoft Crouching Tiger Hidden Dragon (hack of kof2001) (original number 5003) +361 2003 SNK? King of Gladiator (hack of kof97) (original number 5232) +362 2004 Saurus/SNK Lansquenet 2004 (hack of Shock Troopers 2nd squad) +363 2004 SNK? King of Fighters 10th Anniversary (hack of kof2002) (original number 5004,5008) +364 2004 SNK? King of Fighters 2004 EX (hack of kof2003) +365 2004 Dragon Co, Ltd King of Fighters Special Edition 2004 (hack of kof2002) +366 2008 SNK? King of Fighters 10th Anniversary 2008 (hack of kof10th) (original number 5009) + + + +********************** 400 to 499 ********************************** +(n/r) = not released (yet) + +NUM YEAR COMPANY TITLE +--- ---- ----------------------- ------------------------------------------- +400 1999 Kyle Hodgetts Digger Man +401 2002 Jeff Kurtz Shadow of the Beast demo (original number 2002) +402* Neobitz Neobitz demo (Jeff M. Kurtz is Neobitz) +403 2003 Neobitz Poker Night (original number 2003) +404 2004 Neobitz Columns (original number 2000) +405*2005 Neobitz Neo-Pac (pacman game) +406 2000 Blastar System Check +407 2002 Blastar Neo no Panepon +408 2004 Blastar Neo 2500 demo +409 2005 Blastar Jonas Indiana and the Lost Temple of Ra +410 2006 Blastar Codename: Blut Engel +411 2006 Blastar NGEM2K +412 2002 Neodev Neo Pong +413 2001 Rastersoft WW2 demo +414 2005 Rastersoft Frog Feast demo +415 2006 Rastersoft Frog Feast +416 2003 Charles Doty Neogeo Demo +417 2011 Furrtek Nyan Cat demo +418 2008 Crim Neogeo 2-player Tetris +419 2011 Sebastian Mihai Neo Thunder +420 2004 BarfHappy Neo Castlevania demo +421 2012 Oxygene Neo 3D demo +422 2012 NeoGeoFreak Time's Up! demo +423*1996 Kigyo Corp Action-Pac (not known if it ever existed) +424 2012 NeoGeoFreak Transparency demo +425 2009 Raregame Chip n Dale intro +426 2009 Raregame Darkwing Duck intro +427 2009 Raregame Ghostbusters intro +428 2009 Raregame Robocop intro +429 2009 Raregame Spiderman intro +430 2009 Raregame Teenage Mutant Ninja Turtles intro +431 2009 Raregame Duck Tales Intro +432 +433 +434*2010 CeL Hello World +435 2010 CeL Neorom Jukebox +436*2010 CeL Neo Pang +437 2013 Le Cortex Crouching Pony Hidden Dragon demo +438 +439 2013 Cristiano Bei Primo demo +440 2013 Cristiano Bei Neo Geo Galaga demo +441 2013 Cristiano Bei Neo Geo Sound Test +442 +443 +444 2012 M.Priewe Santaball +445*2014 M.Priewe Doom in the Deep (in development) +446 2014 M.Priewe Monitor Test Tool +447*2016 M.Priewe Hypernoid (in development) +448 +449 +450*2012 RKGAMES Neo-sprite demo (CD only) +451*2000 Martinez Fabrice VIP2 demo (CD only) [nebula] +452*2011 Furrtek VUmeter (CD only) [nebula] +453 +454*2013 Cristiano Bei NGPhoenix (CD only) +455*2004 Blastar Neo Puzzle League (CD only) [nebula] +456*2013 Jeff Ferrier Neo Geo Manic Panic +457 Furrtek MVSTest01 +458 Furrtek KnackiBalls +459*n/r Furrtek Unleashed (in development or cancelled) +460*n/r Furrtek Astrosmash (in development or cancelled) +461*n/r RiKo Cosmic Tower (in development or cancelled) +462 2009 Elrayzeur Puzzle Bobble Crazy +463* NGD NGD::ARK (Arkanoid port) +464* NGD NGD::AIR (ngdevgroup.com [dead]) +465* NGD NGD::FIGHT +466* 4-player input test +467 2011 Furrtek Sprite Experimenter +468*n/r Neobitz Submarine Shooter (in development) +469 +470 2015 freem ADPCM-B Playback Demo +471*n/r tcdev Donkey Kong (in development or cancelled) +472 2015 freem ADPCM-A Playback Demo +473 2015 blastar Twister in a mirror intro +474 2015 freem Sound-Loop Demo +475 2016 kannagi Sprite Demo + + +********************** 800 to 899 ********************************** + +NUM YEAR COMPANY TITLE +--- ---- ----------------------- ------------------------------------------- +800*2012 NeoGeoFreak Time's Up! +801*2013 Le Cortex Crouching Pony Hidden Dragon +802 2006 NG:DEV.Team Last Hope +803*2010 NG:DEV.Team Fast Striker +804*2011 NG:DEV.Team Last Hope Pink Bullets +805*2012 NG:DEV.Team Gunlord +806*2013 NG:DEV.Team NEO XYX +807*2013 Neobitz Knight's Chance +808*2014 NG:DEV.Team Razion +809*2015 NG:DEV.Team Kraut Buster + + +*********************************************************************************************************/ + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, fr2ch ) +{ +//// Fix rebooting at start + + UINT16 *src = (UINT16*)memregion("maincpu")->base(); + + // change jsr to C004DA + src[0x01AF8 /2] = 0x04DA; // C00552 (Not used?) + src[0x01BF6 /2] = 0x04DA; // C0056A (fixes crash) + src[0x01ED8 /2] = 0x04DA; // C00570 (Not used?) + src[0x1C384 /2] = 0x04DA; // C00552 (fixes crash) + + // 0x001C06 - this routine can cause a loop/freeze + src[0x01C06 /2] = 0x4E75; + +//// Fix text on bottom line + + UINT8 *dst = memregion( "fixed" )->base(); + + // Move text for credit + coin info (Thanks to Kanyero), overwrites "MA" in neogeo logo + memcpy(dst, dst + 0x600, 0x140); + + // Patch out neogeo intro (because of above line) + src[0x114 /2]=0x200; + + +//// Optional stuff + + + UINT8 i, *rom = memregion("maincpu")->base(); + + UINT8 data[16] = { + 0x49, 0x46, 0x41, 0x4E, 0x20, 0x4C, 0x4F, 0x52, + 0x41, 0x4D, 0x43, 0x4E, 0x20, 0x45, 0x20, 0x32 }; + + // Hack in the proper identification (see setup menu [F2]) + for (i = 0; i < 16; i++) + rom[0x3A6 + i] = rom[0x61E + i] = rom[0x896 + i] = data[i]; + + // Album Fix + src[0x1C382 /2] = 0x0008; // C00552 + src[0x1C384 /2] = 0x0000; + src[0x80000 /2] = 0x33FC; + src[0x80002 /2] = 0x0001; + src[0x80004 /2] = 0x0020; + src[0x80006 /2] = 0x0002; + src[0x80008 /2] = 0x4E75; + + DRIVER_INIT_CALL(neogeo); + + /* old fr2cd code: + UINT16 *mem16 = (UINT16*)memory_region(machine, "maincpu"); + mem16[0x1BF2/2] = 0x4E71; + mem16[0x1BF4/2] = 0x4E71; + mem16[0x1BF6/2] = 0x4E71; + DRIVER_INIT_CALL(neogeo); */ +} + + + +// 054 : Crossed Swords 2 +ROM_START( crswd2bl ) + ROM_REGION( 0x200000, "maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "054-p1.p1", 0x100000, 0x100000, CRC(64836147) SHA1(083cb1626885893e736fc9998036c952cd4d503b) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "054-s1.s1", CRC(22e02ddd) SHA1(ebd834affc763cc5854abf1c6c42f43f3f3755fd) ) + + NEO_BIOS_AUDIO_128K( "054-m1.m1", CRC(63e28343) SHA1(f46dbc2f1d6033b11047cca31a9a7d715dc69cb2) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "054-v1.v1", 0x000000, 0x200000, CRC(22d4b93b) SHA1(0515f2ee5d9a8ce424c80721e06f746ac6a543a8) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "054-c1.c1", 0x000000, 0x400000, CRC(8221b712) SHA1(7e68871f1bfc402ef27c8fa088c680cbd133f71a) ) + ROM_LOAD16_BYTE( "054-c2.c2", 0x000001, 0x400000, CRC(d6c6183d) SHA1(cc546ff063fae2c01c109fabcd5b2d29ec3299db) ) +ROM_END + +// Roms missing; not working at all +ROM_START( csw2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "054.p1", 0x000000, 0x100000, CRC(b6e8f765) SHA1(fac63109664b834b43240a6e93353173e129e6af) ) + + NEO_SFIX_128K( "054.s1", CRC(7ddb9c7e) SHA1(c7ca63f1ff9edb2f71d13cc14d6a426b85182228) ) + + NEO_BIOS_AUDIO_64K( "054.m1", CRC(c45e902b) SHA1(fa17a16077393f986b72f412ce91bded34558af0) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "054.v1", 0x000000, 0x80000, CRC(a12842f2) SHA1(6f6377ff54465c4c13e34f8cb4f333f4f15aed5c) ) + ROM_LOAD( "054.v2", 0x000001, 0x80000, CRC(3b7feef0) SHA1(748db17fbd3bf8fc427ff57e0952f21dd2782e6b) ) + + ROM_REGION( 0x400000, "sprites", 0 ) // c-roms not found yet, using crswd2bl roms for now + ROM_LOAD16_BYTE( "054-c1.c1", 0x000000, 0x400000, CRC(8221b712) SHA1(7e68871f1bfc402ef27c8fa088c680cbd133f71a) ) + ROM_LOAD16_BYTE( "054-c2.c2", 0x000001, 0x400000, CRC(d6c6183d) SHA1(cc546ff063fae2c01c109fabcd5b2d29ec3299db) ) +ROM_END + + +// 098 : Idol Mahjong Final Romance 2 +ROM_START( fr2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "098.p1", 0x000000, 0x80000, CRC(09675541) SHA1(6afb89d43e67f93e40f3877cbedfec9566e3ff0f) ) + + NEO_SFIX_128K( "098.s1", CRC(0e6a7c73) SHA1(31b1194524dcc80ec4d63bac088b6fb4909f496c) ) + + NEO_BIOS_AUDIO_128K( "098.m1", CRC(da4878cf) SHA1(ce13d18a4c5d01974df8542c67c4df00dbc6e7c1) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "098.v1", 0x000000, 0x100000, CRC(6f8ccddc) SHA1(696df2d0f416c2374b0eb7c858486054688c5bca) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "098.c1", 0x0000000, 0x400000, CRC(29148bf7) SHA1(75097fbe8877720afbcbe4dbe30bc600466d759f) ) + ROM_LOAD16_BYTE( "098.c2", 0x0000001, 0x400000, CRC(226b1263) SHA1(dee6a4a0a727c1d8a6d298cb38ed1b9901992d5b) ) +ROM_END + +ROM_START( fr2cd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "098cd.p1", 0x000000, 0x100000, CRC(a2527a5f) SHA1(1f6e3c7de9154c0026360ee6fa0bd211ed541af1) ) + + NEO_SFIX_128K( "098cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) ) + + NEO_BIOS_AUDIO_64K( "098cd.m1", CRC(a455fa31) SHA1(82ccc5e2e5869a46da7533ed10ac5eab549a0063) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "098cd.v1", 0x000000, 0x100000, CRC(92e175f0) SHA1(788a9cce9028f16d6734bff163beb1a19305b8be) ) + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "098cd.c1", 0x0000000, 0x300000, CRC(29bf9af0) SHA1(6c7e9c2b7062bf361a2290010c4e1828eb7019cc) ) + ROM_LOAD16_BYTE( "098cd.c2", 0x0000001, 0x300000, CRC(3cf46f63) SHA1(c5316e83586e7b1c902746f8f2049baf026b52bf) ) +ROM_END + +ROM_START( fr2ch ) // CD to MVS Conversion + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "098ch.p1", 0x000000, 0x080000, CRC(9AA8CEE0) SHA1(b2201f16d8fde4eaae9dbc754d019e7b381ecc06) ) + + NEO_SFIX_128K( "098cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) ) + + NEO_BIOS_AUDIO_64K( "098cd.m1", CRC(a455fa31) SHA1(82ccc5e2e5869a46da7533ed10ac5eab549a0063) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "098cd.v1", 0x000000, 0x100000, CRC(92e175f0) SHA1(788a9cce9028f16d6734bff163beb1a19305b8be) ) + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "098ch.c1", 0x000000, 0x100000, CRC(6158CF4A) SHA1(8e34b65f2cdfccaa6eeb40fef1ab3453eab92f46) ) + ROM_LOAD16_BYTE( "098ch.c2", 0x000001, 0x100000, CRC(93A809A3) SHA1(9b680b8b758cfc77f01d7211b67343a90462b3f3) ) + ROM_LOAD16_BYTE( "098ch.c3", 0x200000, 0x100000, CRC(FAFA3381) SHA1(0c4f20c4d5f57c1dad50b914f9d1299a9d882b42) ) + ROM_LOAD16_BYTE( "098ch.c4", 0x200001, 0x100000, CRC(9895E23F) SHA1(565b5fbe07f65fb48d0bde769d3245a6ac747774) ) + ROM_LOAD16_BYTE( "098ch.c5", 0x400000, 0x100000, CRC(EEAAA818) SHA1(434c13852153d7bebe138611a836d9bf07d1d4cf) ) + ROM_LOAD16_BYTE( "098ch.c6", 0x400001, 0x100000, CRC(F3D9A190) SHA1(44932122e044d23234235cb3899f6e1e63970983) ) +ROM_END + + +// 211 : Zintrick +ROM_START( zintrkcd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "211cd.p1", 0x000000, 0x100000, CRC(9a0bfe0a) SHA1(94299c51572b66fa37e3e496436299573b1faaa8) ) + + NEO_SFIX_128K( "211cd.s1", CRC(56d16afa) SHA1(6e1f960a781f5ef1f858c51507fe573bead8ea66) ) + + NEO_BIOS_AUDIO_64K( "211cd.m1", CRC(fcae1407) SHA1(5b4bff97a8c5930852eff6aee553eadc18e8f3d9) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "211cd.v1", 0x000000, 0x100000, CRC(781439da) SHA1(a80cdf3be55b5fc2ba1d167f69e222463d06ad88) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) ) + ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) ) +ROM_END + +ROM_START( zintrkcd1 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "211m1.p1", 0x000000, 0x100000, CRC(032df2ba) SHA1(dfd35d77da203ebad5319b355fd65e6ed6a553da) ) + + NEO_SFIX_128K( "211cd.s1", CRC(56d16afa) SHA1(6e1f960a781f5ef1f858c51507fe573bead8ea66) ) + + NEO_BIOS_AUDIO_64K( "211m1.m1", CRC(8e539e59) SHA1(fba718ca565a6d5f122baa6d695108632672d1b0) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "211m1.v1", 0x000000, 0x800000, CRC(00e392ed) SHA1(8a46673c02fc25e65821d45749aa6fe697fa81c1) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) ) + ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) ) +ROM_END + +ROM_START( zintrkm ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "211m.p1", 0x000000, 0x100000, CRC(b3fb325c) SHA1(27a34ff0dfea02b1aac3ddbc7c965684694390f1) ) + + NEO_SFIX_128K( "211m.s1", CRC(b67cb1fd) SHA1(3abf201bcc28ec5bd145f0848dc44c239a6ec651) ) + + NEO_BIOS_AUDIO_128K( "211m.m1", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "211m.v1", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) ) + ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) ) +ROM_END + +ROM_START( zintrckbh ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "211h.p1", 0x000000, 0x100000, CRC(328af665) SHA1(ece74116955ecb9ec40ac90913d496836ecc82cf) ) + + NEO_SFIX_128K( "zin-s1.bin", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) ) + + NEO_BIOS_AUDIO_128K( "zin-m1.bin", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "zin-v1.bin", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) ) + ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) ) +ROM_END + + +// 316 : Treasure of the Caribbean +ROM_START( totc ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "316.p1", 0x000000, 0x100000, CRC(99604539) SHA1(88d5f4fe56516aa36496cafd2508f6864118f1e2) ) + + NEO_SFIX_128K( "316.s1", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) ) + + NEO_BIOS_AUDIO_128K( "316.m1", CRC(18b23ace) SHA1(d55495f3d8bb5568c8f2322763278a86ba5297b3) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "316.v1", 0x000000, 0x200000, CRC(15c7f9e6) SHA1(c51328a92dc7c612fd6c2f3841caee4fbd120f36) ) + ROM_LOAD( "316.v2", 0x200000, 0x200000, CRC(1b264559) SHA1(50c28858304e51cdc60f425483a1d1d2bbfb2f8d) ) + ROM_LOAD( "316.v3", 0x400000, 0x100000, CRC(84b62c5d) SHA1(30d7f2e16c6d602cebce5e9b4b8a5b2bde20af58) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "316.c1", 0x000000, 0x200000, CRC(cdd6600f) SHA1(85649c199b32db7553012cb5a058a92bbbb7355a) ) + ROM_LOAD16_BYTE( "316.c2", 0x000001, 0x200000, CRC(f362c271) SHA1(4a2efa043cd2553ff7039cb18a1dba8b41493be7) ) +ROM_END + + +// 401 : Shadow of the Beast demo by Neobitz +// No sound +ROM_START( beast ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "401.p1", 0x000000, 0x080000, CRC(1f9e62a4) SHA1(f245ce9802c5deb257a11fa714b2d1d4d72fc786) ) + + NEO_SFIX_128K( "401.s1", CRC(05a417f5) SHA1(932eeab5ba06f654ed39112c71a4e5a1f78c70bd) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "401.c1", 0x000000, 0x80000, CRC(e1974741) SHA1(175b09778875a18f12e7b34c53862ac8c93141c1) ) + ROM_LOAD16_BYTE( "401.c2", 0x000001, 0x80000, CRC(9f5b9cf6) SHA1(857595fc93bfec069c8b1cf647ab9feedce56f1f) ) +ROM_END + + +// 403 : Poker Night by Neobitz +// No sound +ROM_START( poknight ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "403.p1", 0x000000, 0x080000, CRC(750421ee) SHA1(0a86823456a82506bc96989c361626be4b3ceeaf) ) + + NEO_SFIX_128K( "403.s1", CRC(a26d2f09) SHA1(e7da6005a66e52f5479f9fe9f0cc67527dcb5d04) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "403.c1", 0x000000, 0x80000, CRC(5fb2b761) SHA1(12ec2abcd199da866519aca767818a080d9b40bf) ) + ROM_LOAD16_BYTE( "403.c2", 0x000001, 0x80000, CRC(f2b570e3) SHA1(1c8d8dc75651ec788729bfc7198c926285ad6080) ) +ROM_END +ROM_START( poknightcd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "403.p1", 0x000000, 0x080000, CRC(750421ee) SHA1(0a86823456a82506bc96989c361626be4b3ceeaf) ) + + NEO_SFIX_64K( "403a.s1", CRC(d6919a39) SHA1(46c858249292c1077c1e4ba5a6be469eb39ed483) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "403a.c1", 0x000000, 0x80000, CRC(0ab5143b) SHA1(73d81c09deec02174aa5528aafad28c1294e8b8e) ) + ROM_LOAD16_BYTE( "403a.c2", 0x000001, 0x80000, CRC(a7b2d3b9) SHA1(9723d53d10efdf9d1d402d4b9487ef5697262491) ) +ROM_END +ROM_START( poknightfr ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "403b.p1", 0x000000, 0x020000, CRC(e0b3e776) SHA1(4b5aa783d59d37a04553671830e932a35561d447) ) + + NEO_SFIX_MT_128K + ROM_LOAD( "403b.s1", 0x00000, 0x08000, CRC(3824214d) SHA1(446bf7ec6afc80a758d7d5dc3156a12cdee3b38d) ) + //ROM_RELOAD (0x10000, 0x08000) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "403b.c1", 0x000000, 0x18000, CRC(0ee80e14) SHA1(4dbe8b0750ca8e479bc6936ecf15572ef5ff7462) ) + ROM_LOAD16_BYTE( "403b.c2", 0x000001, 0x18000, CRC(84f17a6d) SHA1(3a2232469274c5418e58dd48b78106d540f2c6ad) ) +ROM_END + + +// 404 : Columns by Neobitz +// No sound +ROM_START( columnsn ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "404.p1", 0x000000, 0x080000, CRC(c6c9888d) SHA1(5a2ec1071872c817bf82053ca7b7d5d63fab6755) ) + + NEO_SFIX_128K( "404.s1", CRC(089a28a8) SHA1(b38b5c42eb909c57c16b016addffcd4e930806ce) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "404.c1", 0x000000, 0x80000, CRC(9a579cab) SHA1(9efd285c1bdc49a0d1daf2a062d0f906a0f5b542) ) + ROM_LOAD16_BYTE( "404.c2", 0x000001, 0x80000, CRC(91d14043) SHA1(de6a1178fbfa3d75285e4338967f0ce4ed1aff23) ) +ROM_END + +ROM_START( columnsncd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "404.p1", 0x000000, 0x080000, CRC(c6c9888d) SHA1(5a2ec1071872c817bf82053ca7b7d5d63fab6755) ) + + NEO_SFIX_64K( "404a.s1", CRC(16cdb953) SHA1(a699f05fe9fb02a9bb0f03778578a5adcae00b91) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "404a.c1", 0x000000, 0x80000, CRC(cf503ff1) SHA1(3fb3131fa55d6137381b817dbb07b740096749b7) ) + ROM_LOAD16_BYTE( "404a.c2", 0x000001, 0x80000, CRC(c4d6e319) SHA1(19a5bb2622c01bea2c0eb2206724c7751caca318) ) +ROM_END + + +// 406 : NeoSystemCheck v1.0b by Blastar +// No sound +ROM_START( syscheck ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "406.p1", 0x000000, 0x80000, CRC(a4adbe1e) SHA1(eee4a8ebe62a2c97282f0350b3c28c615ea44956) ) + + NEO_SFIX_64K( "406.s1", CRC(4774f28e) SHA1(f381dac250fca3dfe1eb8c8f1b9b3bf0d521000e) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "406.m1", 0x0000, 0x10000, CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + ROM_RELOAD( 0x10000, 0x10000 ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "406.v1", 0x000000, 0x80000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "406.c1", 0x000000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) ) + ROM_LOAD16_BYTE( "406.c2", 0x000001, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) ) +ROM_END + + +// 407 : Neo No Panepon by Blastar, 2002 +// No sound +/* There are 4 versions. + Release dates: v1a and v1b = 2002-07-07, v1c = 2002-08-22, v2 = 2002-10-05 + + MAME has a bug where the first 2 high scores do not show. +*/ +ROM_START( neonopon_d1 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) ) + + NEO_SFIX_64K( "407a.s1", CRC(e28ea706) SHA1(bd113a91a1303e2ec670250225a1cd35d34c7f60) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "407a.c1", 0x000000, 0x100000, CRC(24dcba77) SHA1(da7ce6797bf4ac9903dbb00587815c51c835c879) ) + ROM_LOAD16_BYTE( "407a.c2", 0x000001, 0x100000, CRC(57c41e26) SHA1(39d810547f3f8a44b45e7807f1e6b3a0672a1688) ) +ROM_END +ROM_START( neonopon_d2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) ) + + NEO_SFIX_64K( "407a.s1", CRC(e28ea706) SHA1(bd113a91a1303e2ec670250225a1cd35d34c7f60) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "407b.c1", 0x000000, 0x100000, CRC(0833c9e7) SHA1(62f4e093bd5b521ee3f64aa1744e324a3a50eb12) ) + ROM_LOAD16_BYTE( "407b.c2", 0x000001, 0x100000, CRC(fbf5f67f) SHA1(52a6a800d4afaa9675e1f6eab5ed4be772f17338) ) +ROM_END +ROM_START( neonopon_d3 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) ) + + NEO_SFIX_64K( "407.s1", CRC(93e6fe7d) SHA1(791789c33eeeaa23fe6581db2f0ee3c35c73c052) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "407c.c1", 0x000000, 0x100000, CRC(e0573498) SHA1(80ec6ef8a6133f1f66704920332e92daa3daee14) ) + ROM_LOAD16_BYTE( "407b.c2", 0x000001, 0x100000, CRC(fbf5f67f) SHA1(52a6a800d4afaa9675e1f6eab5ed4be772f17338) ) +ROM_END + +ROM_START( neonopon ) // v.0.2 + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "407.p1", 0x000000, 0x080000, CRC(8a792271) SHA1(6f8db18f9ced0706cb2e4b5545da97be871352dd) ) + + NEO_SFIX_64K( "407.s1", CRC(93e6fe7d) SHA1(791789c33eeeaa23fe6581db2f0ee3c35c73c052) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "407.c1", 0x000000, 0x100000, CRC(4a718ae3) SHA1(e59515bacd9065c4b2712710a6a9a647e42c31e6) ) + ROM_LOAD16_BYTE( "407.c2", 0x000001, 0x100000, CRC(0e2cbc25) SHA1(3c45eedb2efc6a3a7ec65487f980e117485abc9f) ) +ROM_END + + +// 408 : Neo 2500 demo by Blaster (c) 2004 +// No sound +ROM_START( neo2500 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "408.p1", 0x000000, 0x080000, CRC(2321c0d8) SHA1(e0d535af20f271794dc14c83ff3ffbc1f6bf98d9) ) + + NEO_SFIX_64K( "408.s1", CRC(1a37925c) SHA1(2060196c3a4d5dcc75aa62e5f02b0d397ec54b1b) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "408.c1", 0x000000, 0x80000, CRC(8c304b56) SHA1(f99298b7942c0bafb6b8038b2ac3b80b75034e34) ) + ROM_LOAD16_BYTE( "408.c2", 0x000001, 0x80000, CRC(9a0758d6) SHA1(ac1c147fe55c80082c9a68a86c30b516ff086cc4) ) +ROM_END + + +// 409 : Jonas Indiana and the Lost Temple of Ra by Blastar (c) 2005 +// Bugs: Insert Coin causes reboot; You can climb into the ceiling and get stuck there; can't jump from one rope to another +ROM_START( ltorb ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "409.p1", 0x000000, 0x040000, CRC(353f6b05) SHA1(ae2ebb9a08e936a86cd09aaafda9e90826461bbf) ) + + NEO_SFIX_64K( "409.s1", CRC(8224d8b7) SHA1(2e7b176e5dffd8a44fa813b928155801d80b1ee6) ) + + NEO_BIOS_AUDIO_64K( "409.m1", CRC(6847fd52) SHA1(6e6d9045299966d41e3f193b3aff032d5b5e135d) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "409.v1", 0x000000, 0x080000, CRC(0329c2e7) SHA1(44c7f04d4e37fb5a06b0366d291f80c3a67a46f5) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "409.c1", 0x000000, 0x080000, CRC(8b607198) SHA1(23dc0b285518f3e80a8feab4d674d625e76e8896) ) + ROM_LOAD16_BYTE( "409.c2", 0x000001, 0x080000, CRC(6b96b59c) SHA1(a62600c337d7f6821ce56bdfd5c484f05c88187f) ) +ROM_END + + +// 410 : Codename: Blut Engel by Blastar (c) 2005 +// Bugs: Insert Coin causes reboot +ROM_START( cnbe ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "410.p1", 0x000000, 0x080000, CRC(7ece4186) SHA1(fc4ed3b5ed551744542c2ff1e45a6e97c68eff88) ) + + NEO_SFIX_64K( "410.s1", CRC(40a4698f) SHA1(be631408b261906f36c41c58c775c1a4c418a256) ) + + NEO_BIOS_AUDIO_128K( "410.m1", CRC(a5821c9c) SHA1(81779f12bbb012bf910c484725779e03b07e44ec) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "410.v1", 0x000000, 0x080000, CRC(70191764) SHA1(7dff2122c32886a3626c0d7befc7e7c3961c6cee) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "410.c1", 0x000000, 0x100000, CRC(0f4fea6f) SHA1(2eeaa661272817dc205072cd63d8bffbe7d6fbec) ) + ROM_LOAD16_BYTE( "410.c2", 0x000001, 0x100000, CRC(3d5fc36f) SHA1(59c045bc5999ccd6c1413364a6cd337a858f599e) ) +ROM_END + + +// 411 : NGEM2K by Blastar (c) 2006 +// No sound +// Bugs: Insert Coin causes reboot +ROM_START( ngem2k ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "411.p1", 0x000000, 0x080000, CRC(f2c42fe3) SHA1(fcd7453019ad21ecf77999a60b6792fc8d72d409) ) + + NEO_SFIX_64K( "411.s1", CRC(fb3c02d2) SHA1(961cf3cfd56e9ace059265f0ff4c283289972938) ) + + NEO_BIOS_AUDIO_128K( "411.m1", CRC(b1f44a15) SHA1(a1d7b498430b713b15ce886bac2ea473adadfb0c) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "411.v1", 0x000000, 0x080000, CRC(c32199f0) SHA1(2e17a6736c27d703c64d58fdc1b43edd8bb36d35) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "411.c1", 0x000000, 0x100000, CRC(a8e2ab47) SHA1(69a6ee8f659a63600a48e31b10782fba263e32e2) ) + ROM_LOAD16_BYTE( "411.c2", 0x000001, 0x100000, CRC(a738ea1c) SHA1(3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3) ) +ROM_END + + +// 412 : Neo Pong by Neodev (c) 2002 +// MAME bug : On the title screen, there's a vertical blank area that slowly moves from left to right +ROM_START( neopong ) // v1.1 + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "412.p1", 0x000000, 0x020000, CRC(9f35e29d) SHA1(261ce9305950debbc2fe088a45ab0fa83d6cf10d) ) + + NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) + + NEO_BIOS_AUDIO_128K( "412.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "412.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "412.c1", 0x000000, 0x100000, CRC(f5a57d1a) SHA1(781170ae439f48fcbcee6af4cb3a1367dbb70498) ) + ROM_LOAD16_BYTE( "412.c2", 0x000001, 0x100000, CRC(affde64e) SHA1(25ba8b4f6f961027d97d35f13cebeaee2dbb6f5a) ) +ROM_END + +ROM_START( neoponga ) // v1.0, has no sound, does not satisfy the watchdog + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "412a.p1", 0x000000, 0x020000, CRC(31b724d7) SHA1(e374613609aeda64b547d8ce38d2078b6ed55ad5) ) + + NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "412a.c1", 0x000000, 0x100000, CRC(d7587282) SHA1(6fbc317dede78265dc4cfd2a6d79968320b8fd50) ) + ROM_LOAD16_BYTE( "412a.c2", 0x000001, 0x100000, CRC(fefc9d06) SHA1(f191bcd3683a184b5a7d6046156e0b2bca231e95) ) +ROM_END + + +// 413 : WW2 demo by Rastersoft +// No sound +// The supplied m1 gives a Z80 ERROR, so it has been replaced. +// If the game doesn't work, read the FAQ. +// Bugs: Insert Coin freezes HBMAME. +ROM_START( ww2demo ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "413.p1", 0x000000, 0x80000, CRC(d53762ff) SHA1(231174363266ec1d5a028295f36bddfbf0a54235) ) + + NEO_SFIX_64K( "413.s1", CRC(3fda5d1a) SHA1(ec0a9e008f56d694184e6b553c271763529eb711) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + // Z80 error NEO_BIOS_AUDIO_128K( "413.m1", CRC(99c2354e) SHA1(fa2ea40ae3d01bda909c82b6c4baa01335c6fe8f) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "413.c1", 0x000000, 0x100000, CRC(955efd3e) SHA1(b1c3ebff7158f1653b3b9bc5a52b06d8c62da1bb) ) + ROM_LOAD16_BYTE( "413.c2", 0x000001, 0x100000, CRC(c213940f) SHA1(430c017f93ee87127a146bcfba684c840bc69f5b) ) +ROM_END + + +// 414 : Frog Feast demo by Rastersoft +// No sound +ROM_START( ffeastd ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "414.p1", 0x000000, 0x80000, CRC(db0417ec) SHA1(dff85b47749142b3e965b2a9b5b8857096e58464) ) + + NEO_SFIX_64K( "414.s1", CRC(29814a2c) SHA1(a7313fa1280a2a2340b1c8a0d522354d82496a68) ) + + NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "414.c1", 0x000000, 0x100000, CRC(22a65cea) SHA1(3fb8cb92cd8d40c2b24e2b54833fde4c7dc255a4) ) + ROM_LOAD16_BYTE( "414.c2", 0x000001, 0x100000, CRC(63ddd657) SHA1(41fb6fdd66fcdf5fce42eb01c8a3e00e632f6347) ) +ROM_END + + +// 415 : Frog Feast by Rastersoft +ROM_START( ffeast ) /* Frog Feast - Full Version */ + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "415.p1", 0x000000, 0x080000, CRC(c26848da) SHA1(33737f8d2366b3a554ceb9ea2fcd85aaed75f344) ) + + NEO_SFIX_128K( "415.s1", CRC(88f4cd13) SHA1(7f3b28c903ecf90478f2dcddf790714d7363aa2b) ) + + NEO_BIOS_AUDIO_128K( "415.m1", CRC(c825b484) SHA1(7dea872ae39ef83981436aaf3c9b602ac8bec676) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "415.v1", 0x000000, 0x100000, CRC(2639da11) SHA1(4309e46014d623066d427ce3473542c99f678f86) ) + ROM_LOAD( "415.v2", 0x100000, 0x100000, CRC(e5eda58b) SHA1(ae203cfedf4b563da914939e0a4d7f4697070f82) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "415.c1", 0x000000, 0x100000, CRC(7b2f9fb3) SHA1(62deacf16c3b259422f962c9604b4efc2f32d91b) ) + ROM_LOAD16_BYTE( "415.c2", 0x000001, 0x100000, CRC(a7f18a6f) SHA1(1a277c79eaacf09d12a4b7c88421e7a6d6153503) ) +ROM_END + + +// 416 : Neogeo demo by Charles Doty +// Left-right will move the turning logo +// No sound +ROM_START( neodemo ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "416.p1", 0x000000, 0x080000, CRC(fbfce2a4) SHA1(53472533456e131bee9fa792996b4110999b5c21) ) + + NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x080000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "416.c1", 0x000000, 0x100000, CRC(870b28ea) SHA1(255f8e394534afc929bad31f253a2e8b03253e07) ) + ROM_LOAD16_BYTE( "416.c2", 0x000001, 0x100000, CRC(1ecf8128) SHA1(66d200ceb023a1ff3cbe4ef7c5b1ef0068ab47f0) ) +ROM_END + + +// 417 : Nyan Cat demo by Furrtek +// Movement keys will move nyancat around +// Bugs: Insert Coin freezes HBMAME. +ROM_START( nyan ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD( "417.p1", 0x000000, 0x20000, CRC(1c9e076f) SHA1(95361da308bf8f946fa218424c991ace872fd374) ) + + NEO_SFIX_128K( "417.s1", CRC(2e7f15ec) SHA1(b41ac46ca2a81cf240dc6df4a80694ecebf65202) ) + + NEO_BIOS_AUDIO_128K( "417.m1", CRC(97b9a8e0) SHA1(161a06ac0a6d33a6b337a5c6ec65345cd10472e4) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "417.v1", 0x000000, 0x3d400, CRC(8870e0bb) SHA1(5f6f33c07f04bb00337cca6ee4db1cfa7beaa63e) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "417.c1", 0x000000, 0x400000, CRC(71128701) SHA1(76ae8ef8f032621706cb39161f01ef7e747ceb70) ) + ROM_LOAD16_BYTE( "417.c2", 0x000001, 0x400000, CRC(85dcccef) SHA1(4270b11c9f9400b3b818124c96db352d94512807) ) +ROM_END + + +// 418 : Tetris by Crim +ROM_START( ngtetris ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "418.p1", 0x000000, 0x80000, CRC(3465569a) SHA1(51506d549fa048581321fc39403c0a3bf8f77467) ) + + NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) ) + + NEO_BIOS_AUDIO_128K( "418.m1", CRC(6b3703c6) SHA1(6fa41b713f03e0957f410a387aa896e7d924acb2) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "418.v1", 0x000000, 0x80000, CRC(2be8e290) SHA1(198cff1b1d70f7d05344d6ab38a4354f993dc4b8) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "418.c1", 0x000000, 0x80000, CRC(acc6d1d4) SHA1(1f6ad8578d8edaa22a35ad58dc76de8543a96db9) ) + ROM_LOAD16_BYTE( "418.c2", 0x000001, 0x80000, CRC(7ec06ab5) SHA1(3a8503be7f14d451f5ae964888b385334c12e8c6) ) +ROM_END + + +// 419 : Neo Thunder demo by Sebastian Mihai +// No sound +ROM_START( neothund ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "419.p1", 0x000000, 0x100000, CRC(f7050757) SHA1(b73009050905ad2b1f06690e0106e59fb5ede86b) ) + + NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "419.c1", 0x000000, 0x100000, CRC(48b9126e) SHA1(38bf1296c3d8762372d4eab785f34507a4f8776c) ) + ROM_LOAD16_BYTE( "419.c2", 0x000001, 0x100000, CRC(214df62e) SHA1(21e4ce2a0ac636081c9e07a294cb44987692039e) ) +ROM_END + + +// 420 : Castlevania demo by BarfHappy +// No sound. +ROM_START( neocstlv ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "420.p1", 0x000000, 0x080000, CRC(8d6cd9f2) SHA1(23258690b0268367420cb25ef951cfb15f79b88e) ) + + NEO_SFIX_256K( "420.s1", CRC(be950195) SHA1(883a99b79b495f66f81025bf4c1f5fb23cc0b4c7) ) + + NEO_BIOS_AUDIO_128K( "420.m1", CRC(89c71460) SHA1(3c675b9b0e46be2cafd2aa8858a40efd07034fcd) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "420.c1", 0x000000, 0x100000, CRC(960a7414) SHA1(753a8af8bfe9a6e9322744b9a31c8d8ef3615cae) ) + ROM_LOAD16_BYTE( "420.c2", 0x000001, 0x100000, CRC(24a961d0) SHA1(c11dd77c9df0f829461bb3aebb3c6287b7e703f9) ) +ROM_END + + +// 421 : 3D demo by Oxygene +ROM_START( neo3d ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "421.p1", 0x000000, 0x080000, CRC(791f6042) SHA1(d44848322d08daad91c67c7dc7e9ee985d582b2b) ) + + NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) + + NEO_BIOS_AUDIO_128K( "421.m1", CRC(7e74cc1f) SHA1(2855577a9785baa4076567de0b37fc0d0117abe5) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "421.c1", 0x000000, 0x100000, CRC(a7eaca76) SHA1(7b046932466092e250dc879d76656227102037c5) ) + ROM_LOAD16_BYTE( "421.c2", 0x000001, 0x100000, CRC(042f2cde) SHA1(225b03541ac3d5258de2c33d93e46e068798731f) ) +ROM_END + + +// 422 : Time's UP! demo by NGF +ROM_START( timesupd ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "422.p1", 0x000000, 0x200000, CRC(be86adb1) SHA1(4b363bab51dfc43b2302956f79a0b1d5202339ac) ) + + NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) ) + + NEO_BIOS_AUDIO_128K( "422.m1", CRC(fe795d11) SHA1(53ba44f2197aa700229f18dee6513bc0c2619904) ) + + ROM_REGION( 0x800000, "ymsnd", 0 ) + ROM_LOAD( "422.v1", 0x000000, 0x400000, CRC(13b8f47b) SHA1(4f0384101f9f6fce8c86a27a11a2b9d43a84a154) ) + ROM_LOAD( "422.v2", 0x400000, 0x400000, CRC(6fdd663d) SHA1(9667f11b4350285d0722c67052ff4e9a63a3409f) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "422.c1", 0x000000, 0x200000, CRC(c19a300a) SHA1(3ab4ec4b10583257b92f5a989434db89f8130626) ) + ROM_LOAD16_BYTE( "422.c2", 0x000001, 0x200000, CRC(fdb3f7ed) SHA1(dd1d69515e58e9fba8cefb1c4cd808dfea0475d9) ) +ROM_END + + +// 424 : Transparency demo by NGF +ROM_START( ngftdemo ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "424.p1", 0x000000, 0x080000, CRC(84d87190) SHA1(7b944603a47a062c050faf9d7e2f9ed754c325cf) ) + + NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) ) + + NEO_BIOS_AUDIO_128K( "424.m1", CRC(5ea216be) SHA1(5ae7e878a08dcd5a1a3b5d25abfe98eea0dfc7d3) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "424.v1", 0x000000, 0x200000, CRC(d03c87eb) SHA1(033815e3cf8fa3732c481ef308aacea595e3e008) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "424.c1", 0x000000, 0x200000, CRC(b2fba994) SHA1(278bc9b2f969cec8160dbea879426bbf2c7ea2d4) ) + ROM_LOAD16_BYTE( "424.c2", 0x000001, 0x200000, CRC(37495ab2) SHA1(b6caba50aaf7cf73cfd5c23302fac4785baafe43) ) +ROM_END + + +// 425 : Chip n Dale intro from Raregame +ROM_START( cndi ) /* you must use unibios to select Japan Console */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "425.p1", 0x000000, 0x800000, CRC(2df9a41d) SHA1(f08d81f529f17d22218b4bb52840f4a13f5821a2) ) + + NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "425.m1", 0x0000, 0x2000, CRC(ae120a59) SHA1(11a49a82007810890ac01757af217ce76c78335b) ) + // alternate in MultiJet: ROM_LOAD( "425a.m1", 0x0000, 0x2000, CRC(591adc4f) SHA1(02886106b5bbcd1c63a7ccd5c91456a785b0621a) + ROM_RELOAD( 0x10000, 0x2000 ) + + ROM_REGION( 0x092000, "ymsnd", 0 ) + ROM_LOAD( "425.v1", 0x000000, 0x092000, CRC(91d45537) SHA1(2e3fe9733a49a7d5597fea40f59274133c331795) ) + // alternate in MultiJet: ROM_LOAD( "425a.v1", 0x000000, 0x091000, CRC(15d318a6) SHA1(10f99dbded4093bac104ce954e93dba7ce8c4ade) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "425.c1", 0x0000000, 0x400000, CRC(55bd32fc) SHA1(9ca14628b50182257e812a64ae7779b677f49b3a) ) + ROM_LOAD16_BYTE( "425.c2", 0x0000001, 0x400000, CRC(bbb43733) SHA1(cbb698354f34045a08f3f30ccd54796374c47ab9) ) + ROM_LOAD16_BYTE( "425.c3", 0x0800000, 0x400000, CRC(715e0318) SHA1(ceab1079b9e8d53f32f0aafce5d7cda037a91e02) ) + ROM_LOAD16_BYTE( "425.c4", 0x0800001, 0x400000, CRC(016f3c7e) SHA1(05fc02c571008dfa83eea11dc596248cee53153a) ) + ROM_LOAD16_BYTE( "425.c5", 0x1000000, 0x400000, CRC(28c6cb8c) SHA1(05acb12720a12918debed333243b4bc42555a0b3) ) + ROM_LOAD16_BYTE( "425.c6", 0x1000001, 0x400000, CRC(9c89503f) SHA1(8c3fc78f7bb903684367d663ede13b87c72c8cca) ) + ROM_LOAD16_BYTE( "425.c7", 0x1800000, 0x400000, CRC(074dd407) SHA1(83f4c80ab88d506152b375480b2fabb0e4ed2eaa) ) + ROM_LOAD16_BYTE( "425.c8", 0x1800001, 0x400000, CRC(5ddb7db5) SHA1(29cf08e39d7454fdeb7ab4a13afff1d422c7c859) ) +ROM_END + + +// 426 : Darkwing Duck intro from Raregame +ROM_START( dwi ) /* you must use unibios to select Japan Console */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "426.p1", 0x000000, 0x800000, CRC(8e3f2ea8) SHA1(80efd45770938b2dc3ac8c67d823bae4369a68aa) ) + + NEO_SFIX_64K( "426.s1", CRC(3dc5c1ef) SHA1(fa194481524cd95ec7188fef0857ef4d2435d7eb) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "426.m1", 0x0000, 0x2000, CRC(2249e065) SHA1(3dc737888846acfbe693452b03ee2b5c09ff9408) ) + ROM_RELOAD( 0x10000, 0x2000 ) + + ROM_REGION( 0x09b000, "ymsnd", 0 ) + ROM_LOAD( "426.v1", 0x000000, 0x09b000, CRC(13bb4ce4) SHA1(0762db7991a5958ae7d8fd5cad2a850f1803a372) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "426.c1", 0x0000000, 0x400000, CRC(2b8bda94) SHA1(68a8239a620dba52762fec548b44c7d0e703fca3) ) + ROM_LOAD16_BYTE( "426.c2", 0x0000001, 0x400000, CRC(5345e4de) SHA1(eee16fc63c901184b1b59dc3edcea260e82b5bf5) ) + ROM_LOAD16_BYTE( "426.c3", 0x0800000, 0x400000, CRC(c6185f14) SHA1(46539c90a2c3e59b7736925cdd59700ca99ac1e1) ) + ROM_LOAD16_BYTE( "426.c4", 0x0800001, 0x400000, CRC(c9e59701) SHA1(67b5c396591e00ca6d58d35b7d95465d6a65d3eb) ) + ROM_LOAD16_BYTE( "426.c5", 0x1000000, 0x400000, CRC(42dd1c90) SHA1(1ca19d11a7d0f9f8dbedf5c8fe2eadfc28337ad9) ) + ROM_LOAD16_BYTE( "426.c6", 0x1000001, 0x400000, CRC(9fa6d651) SHA1(653592013a44b804b713302f17b4109b316662ce) ) + ROM_LOAD16_BYTE( "426.c7", 0x1800000, 0x400000, CRC(5cfa6886) SHA1(e550e898f64a2ad9992aaa4ff7a64d6881294ce8) ) + ROM_LOAD16_BYTE( "426.c8", 0x1800001, 0x400000, CRC(59c37871) SHA1(7413282800d4461ea151d10b91fa24fef1df94a0) ) +ROM_END + + +// 427 : Ghostbusters intro from Raregame +ROM_START( gbi ) /* you must use unibios to select Japan Console */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "427.p1", 0x000000, 0x100000, CRC(af69ef5f) SHA1(e218d1c99e491afcf1887ef9f5bed3e7a5e53fe4) ) + ROM_LOAD16_WORD_SWAP( "427.p2", 0x100000, 0x400000, CRC(f57e393f) SHA1(4e4ac08db6cc28bcc47808854b1ceb407a486fe5) ) + + NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "427.m1", 0x0000, 0x2000, CRC(6624e642) SHA1(03a723c477905425ced965a63fb6d006abd045e9) ) + ROM_RELOAD( 0x10000, 0x2000 ) + + ROM_REGION( 0x094a00, "ymsnd", 0 ) + ROM_LOAD( "427.v1", 0x000000, 0x094a00, CRC(44864761) SHA1(35334b93c65b3e27338290c2ba1f73aa902aa893) ) + + ROM_REGION( 0x1800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "427.c1", 0x0000000, 0x400000, CRC(4281fecd) SHA1(a4f4c278b28740cde042f81769c8c10e5d274fcf) ) + ROM_LOAD16_BYTE( "427.c2", 0x0000001, 0x400000, CRC(0f07018c) SHA1(eccd998c8fe4c4e3039f104dbdc89713cd9e10cb) ) + ROM_LOAD16_BYTE( "427.c3", 0x0800000, 0x400000, CRC(a4589b2a) SHA1(ff3784921b093f61c3f620c26f296b8f4f798028) ) + ROM_LOAD16_BYTE( "427.c4", 0x0800001, 0x400000, CRC(2a72bd04) SHA1(8d30b1851ca706b669d8d02b1d17a2b40a424b8d) ) + ROM_LOAD16_BYTE( "427.c5", 0x1000000, 0x400000, CRC(ad3b72f9) SHA1(0274f7b85cb1a53a5f98399ac1952418803ab765) ) + ROM_LOAD16_BYTE( "427.c6", 0x1000001, 0x400000, CRC(963e0941) SHA1(04ae20247e74f27721a2a87f0acd41a733c6f753) ) +ROM_END + + +// 428 : Robocop intro from Raregame +ROM_START( rci ) /* you must use unibios to select Japan Console */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "428.p1", 0x000000, 0x800000, CRC(adcb4fe0) SHA1(596242e344d1e171eed7ef242c10aec1a0090acf) ) + + NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "428.m1", 0x0000, 0x2000, CRC(c4d35e83) SHA1(0f2bb58e6e545090a11f7fbf471dcd46768a313b) ) + ROM_RELOAD( 0x10000, 0x2000 ) + + ROM_REGION( 0x096000, "ymsnd", 0 ) + ROM_LOAD( "428.v1", 0x000000, 0x096000, CRC(ecb284a9) SHA1(1ff34e6f3091ddf0da7b8afb06b903ab39d0b629) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "428.c1", 0x0000000, 0x400000, CRC(8cf565a0) SHA1(c8d383d96b03be9e96fcea94b355c5c33717b4e1) ) + ROM_LOAD16_BYTE( "428.c2", 0x0000001, 0x400000, CRC(76ef561d) SHA1(3dfd4d923b7381e8f1ec4512915a05efa299e255) ) + ROM_LOAD16_BYTE( "428.c3", 0x0800000, 0x400000, CRC(7166790c) SHA1(778db868373c4fa00899f224339c0d171519002a) ) + ROM_LOAD16_BYTE( "428.c4", 0x0800001, 0x400000, CRC(c0cdcbfc) SHA1(d2bf8c0560e593820f2a556779602cabb3272b8d) ) + ROM_LOAD16_BYTE( "428.c5", 0x1000000, 0x400000, CRC(a5ddc363) SHA1(d2bee74072c2e1b5cac0fc422472aa5d53bc7358) ) + ROM_LOAD16_BYTE( "428.c6", 0x1000001, 0x400000, CRC(1fcc8fce) SHA1(3a7ecfc3a37b315a0a5c7a0127c9412f8214fd81) ) + ROM_LOAD16_BYTE( "428.c7", 0x1800000, 0x400000, CRC(be9f9da2) SHA1(9d619074b368db463182be999c2350b815ee2779) ) + ROM_LOAD16_BYTE( "428.c8", 0x1800001, 0x400000, CRC(7cff633a) SHA1(4d02abcb21dd20ffe7dfc94579fc6cbfaf1bf14e) ) +ROM_END + + +// 429 : Spiderman intro from Raregame +ROM_START( smi ) /* you must use unibios to select Japan Console */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "429.p1", 0x000000, 0x100000, CRC(66b5cfe8) SHA1(65754292a085fce07a04fbe8b91a62c42a9695b1) ) + ROM_LOAD16_WORD_SWAP( "429.p2", 0x100000, 0x400000, CRC(72082aea) SHA1(a56a8d9196c7d6cc5d66204623cce964e1feda05) ) + + NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "429.m1", 0x0000, 0x2000, CRC(6a02cb1d) SHA1(fffd39708bfb121496c78d01e53f07aa9a539c47) ) + ROM_RELOAD( 0x10000, 0x2000 ) + + ROM_REGION( 0x096100, "ymsnd", 0 ) + ROM_LOAD( "429.v1", 0x000000, 0x096100, CRC(95c138da) SHA1(7bfcd525ecf01737ec85db88355323d676f1f03b) ) + + ROM_REGION( 0x1800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "429.c1", 0x0000000, 0x400000, CRC(8e5ccfdd) SHA1(a26a3cadf67f864ded64daca3af13a8db8a73b62) ) + ROM_LOAD16_BYTE( "429.c2", 0x0000001, 0x400000, CRC(a6406f5b) SHA1(fe63d5aba68bc51861d44ad3ec385e05fd3198c5) ) + ROM_LOAD16_BYTE( "429.c3", 0x0800000, 0x400000, CRC(adfff926) SHA1(39a1c634168803181b43843dbd562405ed7a8fe6) ) + ROM_LOAD16_BYTE( "429.c4", 0x0800001, 0x400000, CRC(068c307f) SHA1(47d52fa960a2451f20d6b45c87aef7f5b78e00a5) ) + ROM_LOAD16_BYTE( "429.c5", 0x1000000, 0x400000, CRC(9a5cf7a6) SHA1(2c6a0fd9139152a85f936323f9e8a26b13819fc2) ) + ROM_LOAD16_BYTE( "429.c6", 0x1000001, 0x400000, CRC(934f03c0) SHA1(2a54f8fb1be63dcfef2756b9fa5904af3a2ca874) ) +ROM_END + + +// 430 : Teenage Mutant Ninja Turtles intro from Raregame +ROM_START( tmnti ) /* you must use unibios to select Japan Console */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "430.p1", 0x000000, 0x800000, CRC(2d5066ff) SHA1(e1109c1e7532fa167ba5c9c90648d019740efd8e) ) + + NEO_SFIX_64K( "426.s1", CRC(3dc5c1ef) SHA1(fa194481524cd95ec7188fef0857ef4d2435d7eb) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "430.m1", 0x0000, 0x2000, CRC(953542ef) SHA1(95e93833b938b8d374d29f925777cf296468ae9e) ) + ROM_RELOAD( 0x10000, 0x2000 ) + + ROM_REGION( 0x094900, "ymsnd", 0 ) + ROM_LOAD( "430.v1", 0x000000, 0x094900, CRC(273640c3) SHA1(6d445e728fa9c4af00de4f454a73651de7a69ec9) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "430.c1", 0x0000000, 0x400000, CRC(ae1735c1) SHA1(a7a943fb088bccbd5e2c0fa34766bab8169000fa) ) + ROM_LOAD16_BYTE( "430.c2", 0x0000001, 0x400000, CRC(344281b5) SHA1(a7de77ce07bcd87ba6348278e9c2a61e0f96a499) ) + ROM_LOAD16_BYTE( "430.c3", 0x0800000, 0x400000, CRC(1058a648) SHA1(878384e1bb8e7666723935a6270d61d3015fe475) ) + ROM_LOAD16_BYTE( "430.c4", 0x0800001, 0x400000, CRC(1c6ba1b0) SHA1(065f059ef412c69c1a6e7d96e0d41d4151802c95) ) + ROM_LOAD16_BYTE( "430.c5", 0x1000000, 0x400000, CRC(73a89fb0) SHA1(6b17c878cf6e33f98f3d0779e908264a95a186ba) ) + ROM_LOAD16_BYTE( "430.c6", 0x1000001, 0x400000, CRC(a139246a) SHA1(facc1caa4f5e4f8476df75c3f68802184072a8ee) ) + ROM_LOAD16_BYTE( "430.c7", 0x1800000, 0x400000, CRC(ed957842) SHA1(0066baf544b87f7d99334401a93c239ce151df50) ) + ROM_LOAD16_BYTE( "430.c8", 0x1800001, 0x400000, CRC(8c15d91b) SHA1(4b4d4fd2302c43a5c82bb849803d13d43947a695) ) +ROM_END + + +// 431 : Duck Tales intro from Raregame +ROM_START( dti ) /* you must use unibios to select Japan Console */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "431.p1", 0x000000, 0x800000, CRC(f975711c) SHA1(0bce8bf92536dd18920cdc1ab66a9c42b0a96df3) ) + + NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) ) + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) + ROM_LOAD( "431.m1", 0x0000, 0x2000, CRC(7761d993) SHA1(b269e9878ca28faa1d36c7fa3dd8e9939714a5f4) ) + ROM_RELOAD( 0x10000, 0x2000 ) + + ROM_REGION( 0x090200, "ymsnd", 0 ) + ROM_LOAD( "431.v1", 0x000000, 0x090200, CRC(b40c3a5a) SHA1(fda5e4bf3af75aa70df32b21f132c41670212c52) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "431.c1", 0x0000000, 0x400000, CRC(02adabba) SHA1(7b1eafebed09dbfc1b8d9612f0ed477e25ab152d) ) + ROM_LOAD16_BYTE( "431.c2", 0x0000001, 0x400000, CRC(00bd87ac) SHA1(cb3c02c799109fa7083110825dacf19c89372c55) ) + ROM_LOAD16_BYTE( "431.c3", 0x0800000, 0x400000, CRC(263307c8) SHA1(5dabc76b18c02c6955abfbc5010b8fbac7d15753) ) + ROM_LOAD16_BYTE( "431.c4", 0x0800001, 0x400000, CRC(b8330c1e) SHA1(e3ab645eb1101e561bc581e6b2cf696a0ca1e673) ) + ROM_LOAD16_BYTE( "431.c5", 0x1000000, 0x400000, CRC(ce99fcb8) SHA1(f6222f1b0dc31e5ae5e6c7e3223aa7129b38b772) ) + ROM_LOAD16_BYTE( "431.c6", 0x1000001, 0x400000, CRC(a6d30781) SHA1(a29e6b39169f9354a64cf64b302b9e91e0671c82) ) + ROM_LOAD16_BYTE( "431.c7", 0x1800000, 0x400000, CRC(eda15323) SHA1(ef7291870fd30e7b04cb63e59ff45a3c0acab714) ) + ROM_LOAD16_BYTE( "431.c8", 0x1800001, 0x400000, CRC(400fd4cd) SHA1(20cc401de5d429deb7d076535a0b42fc62c48c52) ) +ROM_END + + +// 435 : Neo Rom Jukebox by CeL +ROM_START( neoromjb ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "435.p1", 0x000000, 0x080000, CRC(fc301f3d) SHA1(e7e02963167a612e29e14cfaa53a8eb441961885) ) + + NEO_SFIX_64K( "435.s1", CRC(d78bd9a0) SHA1(17a237166aede98bee27d5b52654414c8a1b071a) ) + + NEO_BIOS_AUDIO_128K( "435.m1", CRC(60bf52f5) SHA1(86fcb7693ce0c3ee97f3fd2715d3bcb575511cd7) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "435.v1", 0x000000, 0x080000, CRC(68a2a556) SHA1(8343465cca82db43c0decea74c314f641e4bbb7a) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "435.c1", 0x000000, 0x100000, CRC(40098266) SHA1(d5bacfff0fc3470b8af4b7675daa816b1e2eb775) ) + ROM_LOAD16_BYTE( "435.c2", 0x000001, 0x100000, CRC(40098266) SHA1(d5bacfff0fc3470b8af4b7675daa816b1e2eb775) ) +ROM_END + + +// 437 : Crouching Pony Hidden Dragon demo by Le Cortex +// If the game doesn't work, read the FAQ. +ROM_START( cphd ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "437.p1", 0x000000, 0x100000, CRC(de032a95) SHA1(5566ddbb17c8cc4016e25de1afb0ea5c281844ae) ) + ROM_LOAD16_WORD_SWAP( "437.p2", 0x100000, 0x800000, CRC(7a3a2e41) SHA1(a1bd9e20f29f283f892ed3d937b3a79a63d9a04b) ) + + NEO_SFIX_128K( "437.s1", CRC(1736099a) SHA1(486bb9b5abd43d1739c717f0dd3aff0d6ed37ec0) ) + + NEO_BIOS_AUDIO_64K( "437.m1", CRC(535a7397) SHA1(3752017175030b05a91078bdf0709af91dee5fc3) ) + + ROM_REGION( 0x4000000, "ymsnd", 0 ) + ROM_LOAD( "437.v1", 0x0000000, 0x2000000, CRC(04eb9c07) SHA1(226f6d6e0365613fb66671775a1f8e5ca62d0549) ) + ROM_LOAD( "437.v2", 0x2000000, 0x2000000, CRC(9c9aec7f) SHA1(dc54b4ea34724da5dc9e5b498a2b16d7f1ffc1b4) ) + + ROM_REGION( 0x8000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "437.c1", 0x0000000, 0x2000000, CRC(f3a4b475) SHA1(07a5e8c3a0a8e29f952e448d8eac772ccef6586e) ) + ROM_LOAD16_BYTE( "437.c2", 0x0000001, 0x2000000, CRC(05ce93a9) SHA1(a29f7ca6d0b3c53a0b2889e716b34fe921da432c) ) + ROM_LOAD16_BYTE( "437.c3", 0x4000000, 0x2000000, CRC(59450445) SHA1(57b587e1bf2d09335bdac6db18902d43dfe76449) ) + ROM_LOAD16_BYTE( "437.c4", 0x4000001, 0x2000000, CRC(59450445) SHA1(57b587e1bf2d09335bdac6db18902d43dfe76449) ) +ROM_END + + +// 439 : Primo demo by BEY +// No sound. +ROM_START( iocero ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "439.p1", 0x000000, 0x100000, CRC(a315fb81) SHA1(c958d78de5d83ff31c9545d54c6429c85cdbdb64) ) + + NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "439.c1", 0x000000, 0x100000, CRC(d68941e1) SHA1(20b70416b9b284bae576b385ddc63fe9a47cf976) ) + ROM_LOAD16_BYTE( "439.c2", 0x000001, 0x100000, CRC(df7e359f) SHA1(08d45350047ad9bcad17739d8b00b911b47417ee) ) +ROM_END + + +// 440 : Galaga demo by BEY +// No sound. +ROM_START( neogal1 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "440_1.p1", 0x000000, 0x100000, CRC(7226db5c) SHA1(d598096265286b5d32a3c6abbea8c281ee94458c) ) + + NEO_SFIX_2K( "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) ) + ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) ) +ROM_END + +// No sound. +ROM_START( neogal1t ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "440_1t.p1", 0x000000, 0x100000, CRC(01dc85fd) SHA1(7fed5c859901066e27bac777d3846e69185648e6) ) + + NEO_SFIX_2K( "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "440_1t.c1", 0x000000, 0x100000, CRC(f8221e34) SHA1(c8bb90c03213dc493bdaa36d94c713508303a275) ) + ROM_LOAD16_BYTE( "440_1t.c2", 0x000001, 0x100000, CRC(c30cf1fc) SHA1(774a1896fc15cdf9fddf1e1a874ea43fe4136bd6) ) +ROM_END + +// No sound. +ROM_START( neogal1d ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "440_1d.p1", 0x000000, 0x100000, CRC(2c49e6ec) SHA1(69602bce2a119f644385b1cfda5ee38dbc081679) ) + + NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) ) + ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) ) +ROM_END + +ROM_START( neogal2 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "440_2.p1", 0x000000, 0x100000, CRC(a6321942) SHA1(e2085c677e124708770846c2b9f1d3ba9e6a4323) ) + + NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) ) + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) ) + ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) ) +ROM_END + + +// 441 : Neo Geo Sound Test by BEY +// Bugs: Insert Coin causes reboot +ROM_START( neotest ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "441.p1", 0x000000, 0x80000, CRC(2ee900b2) SHA1(4b083f4e1e502ac17e3e396d8655870dbac7fba7) ) + + NEO_SFIX_2K( "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) ) + + NEO_BIOS_AUDIO_128K( "441.m1", CRC(ad14cc39) SHA1(852f71ebb54c2c26795e8a2771d1638e42e0c634) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "441.v1", 0x000000, 0x100000, CRC(c1c07bd5) SHA1(79a25211590dc1192913a7655d7f2d1682acdc97) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) ) + ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) ) +ROM_END + + +// 444 : Santaball by M.Priewe. +// Press 1 to play a game of Pong. +// If the game misbehaves, read the FAQ. +ROM_START( santabll ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "444.p1", 0x000000, 0x100000, CRC(2af7a77c) SHA1(ff79d4695e8060f5a7b981524303336a0ad99c0c) ) + + NEO_SFIX_128K( "444.s1", CRC(ac031928) SHA1(7516593efc70e6effed8f5423e9736d6555b3baf) ) + + NEO_BIOS_AUDIO_64K( "444.m1", CRC(37a8d679) SHA1(957de2aa1775502a51b4e2d5cb6268cee00f6c2a) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "444.v1", 0x000000, 0x100000, CRC(d0150804) SHA1(b3d4cdb6d0f426de3801eb04d56f867bec8fe611) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "444.c1", 0x000000, 0x100000, CRC(1e271a9b) SHA1(5cae43aa094d5ee34983bc70aeab06652a6b0e7f) ) + ROM_LOAD16_BYTE( "444.c2", 0x000001, 0x100000, CRC(1c7fd396) SHA1(aa2e2fff1ad1804631f3058b9666b970a368a847) ) +ROM_END + + +// 446 : Monitor Test by M.Priewe. +// No sound. +ROM_START( ngmontst ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "446.p1", 0x000000, 0x100000, CRC(17a4ad61) SHA1(38c0f2022947043f30a27ccda06cc709fe980fed) ) + + NEO_SFIX_128K( "sfix.sfix", CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "446.c1", 0x000000, 0x100000, CRC(715df715) SHA1(74534eb9bb48a04f25d0044b1f2b57e59f49b06f) ) + ROM_LOAD16_BYTE( "446.c2", 0x000001, 0x100000, CRC(d8ee3c9b) SHA1(c731eaffae34b4394e290e68ca8c3700e1c6dc2b) ) +ROM_END + + +// 457 : MVS Test 01 by Furrtek. +ROM_START( test01 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "457.p1", 0x000000, 0x080000, CRC(dd059433) SHA1(17cc7c48464d2d2a3d104f47e70a5f7cf3e19a5e) ) + + NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) ) + + NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) ) + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "052-c1.c1", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) ) + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "052-c2.c2", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) ) + ROM_CONTINUE( 0x400001, 0x100000 ) +ROM_END + + +// 458 : KnackiBalls by Furrtek. Patched by Robbbert. +// Bad address alignment causes it to continually reboot, so I have patched it. +// Instruction 5019 inserted to align A1 to the next word. So, some instructions are pushed upward. +// Not sure if the result is totally correct, but at least it runs now. +// No sound. +ROM_START( knacki ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "458.p1", 0x000000, 0x080000, CRC(56c0d270) SHA1(aebb3223e519f76e2abfa59f48626aa5e970ce4c) ) + ROM_COPY("maincpu",0x3e2, 0x3e4, 16) // move code so we can insert 5019 + ROM_FILL(0x12d, 1, 0xf4) // jump to another rts as we are overwriting this one's destination + ROM_FILL(0x3e2, 1, 0x50) // insert 50 + ROM_FILL(0x3e3, 1, 0x19) // insert 19 + ROM_FILL(0x3e7, 1, 0xc4) // fix jump + + NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) ) + + NEO_BIOS_AUDIO_128K( "458.m1", CRC(183c234a) SHA1(366c875703ced09c460d1810aadb3cd2f2fcd067) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "458.v1", 0x000000, 0x200000, CRC(ad1d1925) SHA1(4fa973bd8d2793ef553ea4e536193d3b89027828) ) + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "458.c1", 0x000000, 0x100000, CRC(71dd4d25) SHA1(682671b55375dea8f86b25031320611a8c60326e) ) + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "458.c2", 0x000001, 0x100000, CRC(0deccb3d) SHA1(ee9d1e5d3efcea0545a6dae8cd28b913e6f106b6) ) + ROM_CONTINUE( 0x400001, 0x100000 ) +ROM_END + + +// 467 : Sprite Experimenter by Furrtek. +// Bugs: Insert Coin freezes HBMAME +ROM_START( spriteex ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "467.p1", 0x000000, 0x080000, CRC(9bce0611) SHA1(5fcb0fa6a434baf20972819484430faf44ffa21d) ) + + NEO_SFIX_128K( "sfix.sfix", CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "467.m1", CRC(78bd1a39) SHA1(11963ee5d01a54e5f7e1b8973adb10960308a091) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "467.v1", 0x000000, 0x10000, CRC(48077f32) SHA1(97784ee122aec09f72b62387796726c3f3e9be5e) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "467.c1", 0x000000, 0x200000, CRC(dcda2ca8) SHA1(b37714532d36608eb7b819396a6796d0d49dbf92) ) + ROM_CONTINUE( 0x400000, 0x200000 ) + ROM_LOAD16_BYTE( "467.c2", 0x000001, 0x200000, CRC(c8a4d037) SHA1(6541074be8493bf2c7b869e8dbdb39f3309dcaf7) ) + ROM_CONTINUE( 0x400001, 0x200000 ) +ROM_END + + +// 470 : ADPCM-B Playback Demo by freem. +// Note that these 2 old roms are buggy and should be discarded: (use only the 'v3' set) +// CRC(6d719183) SHA1(e1e064bb785823a1f20f4a931bd7961515de2a98) ) +// CRC(7b8abba4) SHA1(c492c468b34f0a7d57e2abd54d6057f3e470ee27) ) +ROM_START( pcmbdemo ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "470.p1", 0x000000, 0x080000, CRC(904e90ad) SHA1(1e13a81a2e0b1926d1745288e81dc51cd1ade5ac) ) + + NEO_SFIX_128K( "470.s1", CRC(9647ff8a) SHA1(ecfaa4649d490fae1697e34cc5bbbc386ffa5ef6) ) + + NEO_BIOS_AUDIO_128K( "470.m1", CRC(df4acc0c) SHA1(9c2999312ede7a1a415fa151a9acc6c98e510bf0) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "470.v1", 0x000000, 0x80000, CRC(baffec3e) SHA1(58ec4b684220ea558ed7dea99dfed1d24c57e662) ) + + ROM_REGION( 0x200000, "sprites", ROMREGION_ERASEFF ) + // no sprites +ROM_END + + +// 472 : ADPCM-A Playback Demo by freem. +ROM_START( pcmademo ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "472.p1", 0x000000, 0x080000, CRC(a198ce30) SHA1(17b9ad5fe5136c0425823f49a65d428c544170c5) ) + + NEO_SFIX_128K( "472.s1", CRC(c3dddf6e) SHA1(cce290e869ecbd52b7a7ed1e35c2c825450cc24c) ) + + NEO_BIOS_AUDIO_128K( "472.m1", CRC(1c667c87) SHA1(3bc2cb708aa9c4618d901da1f627ae719dee445d) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "472.v1", 0x000000, 0x80000, CRC(e7ef9bd8) SHA1(d5de1f63189b3a18382da81f02b20af68996ad7e) ) + + ROM_REGION( 0x200000, "sprites", ROMREGION_ERASEFF ) + // no sprites +ROM_END + + +// 473 : Twister in a mirror intro by Blastar. +ROM_START( twister ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "473.p1", 0x000000, 0x080000, CRC(514bf0fd) SHA1(d7d084b83ae5ae776d6cc7b7d183bd79b2ab114a) ) + + NEO_SFIX_128K( "473.s1", CRC(111ea86c) SHA1(1251d7ef30493b76b15ddc8975a0278ad4a48434) ) + + NEO_BIOS_AUDIO_128K( "473.m1", CRC(c1c27b33) SHA1(655c1b01deacacbdbfe3a89196d4b0d9d3aae1eb) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "473.v1", 0x000000, 0x80000, CRC(0c5e044c) SHA1(e5717ea0e6daaf7c529f1e8cf5e4e73ee4a3f26f) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD16_BYTE( "473.c1", 0x000000, 0x100000, CRC(72ceed51) SHA1(aa5ead993db739cf34917287988aeb43afa7f7d5) ) + ROM_LOAD16_BYTE( "473.c2", 0x000001, 0x100000, CRC(27da57ee) SHA1(323fcd0893aec82cc3c78687834920e2eeedb67b) ) +ROM_END + + +// 474 : Sound-Loop Demo by freem. +// Bugs: The first time 5 is pressed, the game resets. After that it has no effect. +ROM_START( snddemo ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "474.p1", 0x000000, 0x080000, CRC(fbb26284) SHA1(80837fb870e36360f2c8c4576d1b43f3feef3ff5) ) + + NEO_SFIX_128K( "474.s1", CRC(a7a76e2a) SHA1(894194f43b0bb884cb6f392bb0c9d1284639e577) ) + + NEO_BIOS_AUDIO_64K( "474.m1", CRC(ba37ca7d) SHA1(4bb0897b74eadd7eb2782fcf2ae0a9897b9e8c8f) ) + + ROM_REGION( 0x10000, "ymsnd", 0 ) + ROM_LOAD( "474.v1", 0x000000, 0x10000, CRC(95101457) SHA1(81ca771f441edc01019b8c629709eccc746059ba) ) + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_BYTE( "474.c1", 0x000000, 0x080000, CRC(cad47785) SHA1(538c072417d849f33d1da3f61f98be4674c10762) ) + ROM_LOAD16_BYTE( "474.c2", 0x000001, 0x080000, CRC(c43d0953) SHA1(1ceb394b495f8a082452d50f78d2d7d8d1ec9a56) ) +ROM_END + + +// 475 : Sprite demo by Kannagi (26-3-2016) +// Arrows to move fighter around. A = kick; B = punch; C & D slide background left & right. No sound. +ROM_START( ennemi ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "475.p1", 0x000000, 0x080000, CRC(caaf0da5) SHA1(089a89c787d4955fcb11141b50d587caa785c30a) ) + + NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) ) + + NEO_BIOS_AUDIO_128K( "475.m1", CRC(ffcbeb27) SHA1(101fee624083f33aac88e73afc69907df0b41de3) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "475.v1", 0x000000, 0x1e3300, CRC(da4f84c0) SHA1(7e9c039a47445ef805adf68c65e20063d93ba601) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "475.c1", 0x000000, 0x200000, CRC(4c2ec7e3) SHA1(572f087d2adb4900dbab39fa9bc517237ddba54e) ) + ROM_LOAD16_BYTE( "475.c2", 0x000001, 0x200000, CRC(319b0d51) SHA1(f57b4b3c96d94a6887f9e02e53af8eaef59d617a) ) +ROM_END + + +// 802 : Last Hope CD Beta by NG:DEV.Team +// Bugs: Insert Coin causes reboot; purple boxes instead of graphics; some corrupt graphics +ROM_START( lhcdb ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "802cd.p1", 0x000000, 0x100000, CRC(83e7b181) SHA1(eb13909c0b062d56d20cbdfe75abf6139eae9ee0) ) + + NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) ) + + NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) ) + + ROM_REGION( 0xbc3500, "ymsnd", 0 ) + ROM_LOAD( "802cd.v1", 0x000000, 0x400000, CRC(de563ec3) SHA1(cd0f1a436cdac679792fc78906e718c78369b15a) ) + ROM_LOAD( "802cd.v2", 0x400000, 0x400000, CRC(93478033) SHA1(a03e0fcb7f51c66ec0bc5d164744db00b96973c2) ) + ROM_LOAD( "802cd.v3", 0x800000, 0x3c3500, CRC(f0ad87b8) SHA1(f992e84c6cbbc3cab79747a2ca4d646d18bebcbd) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "802cd.c1", 0x000000, 0x400000, CRC(554e6b73) SHA1(3637a8a4474e33eb75ac4a4ce0815f6a514fe337) ) + ROM_LOAD16_BYTE( "802cd.c2", 0x000001, 0x400000, CRC(7c84b0fc) SHA1(cbd7a7865113e4f21f2b1f990a077fa5c2eae894) ) + ROM_LOAD16_BYTE( "802cd.c3", 0x800000, 0x400000, CRC(28ec7555) SHA1(f094739272e6017a7193fa96cde3c1ed573a66b6) ) + ROM_LOAD16_BYTE( "802cd.c4", 0x800001, 0x400000, CRC(8b7c236b) SHA1(1cb3fe81f433a2180c85be935e340da3c55aafdb) ) +ROM_END +ROM_START( lhcdba ) // v3 rom is different + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "802cd.p1", 0x000000, 0x100000, CRC(83e7b181) SHA1(eb13909c0b062d56d20cbdfe75abf6139eae9ee0) ) + + NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) ) + + NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "802cd.v1", 0x000000, 0x400000, CRC(de563ec3) SHA1(cd0f1a436cdac679792fc78906e718c78369b15a) ) + ROM_LOAD( "802cd.v2", 0x400000, 0x400000, CRC(93478033) SHA1(a03e0fcb7f51c66ec0bc5d164744db00b96973c2) ) + ROM_LOAD( "802cda.v3", 0x800000, 0x400000, CRC(e0fc99ca) SHA1(6de935b54bf5adc4394fe824b001b38eca0291ad) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "802cd.c1", 0x000000, 0x400000, CRC(554e6b73) SHA1(3637a8a4474e33eb75ac4a4ce0815f6a514fe337) ) + ROM_LOAD16_BYTE( "802cd.c2", 0x000001, 0x400000, CRC(7c84b0fc) SHA1(cbd7a7865113e4f21f2b1f990a077fa5c2eae894) ) + ROM_LOAD16_BYTE( "802cd.c3", 0x800000, 0x400000, CRC(28ec7555) SHA1(f094739272e6017a7193fa96cde3c1ed573a66b6) ) + ROM_LOAD16_BYTE( "802cd.c4", 0x800001, 0x400000, CRC(8b7c236b) SHA1(1cb3fe81f433a2180c85be935e340da3c55aafdb) ) +ROM_END +ROM_START( lhopecd ) // These roms were extracted from the Japanese ISO, not working at all. + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD( "802cdb.p1", 0x000000, 0x100000, CRC(cd108282) SHA1(bb9b3c8bb94c05b46ea24173e62245611dbc29ce) ) + + NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) ) + + NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "802cdb.v1", 0x000000, 0x80000, CRC(bc65aee1) SHA1(2090133dcbb4f5b73696aab71ed5ea5b25b09b55) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "802cdb.c1", 0x000000, 0x200000, CRC(c5741cc8) SHA1(8593b320c140456ede6a7e355fcde978e74a0ffd) ) + ROM_LOAD16_BYTE( "802cdb.c2", 0x000001, 0x200000, CRC(a93eba1f) SHA1(da313b0ac97480cc451ba4678a819a4fab0bd5b3) ) +ROM_END +ROM_START( lhopecdh ) // hack of the above, does not work + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "802cdc.p1", 0x000000, 0x100000, CRC(a957c41c) SHA1(63fef6c72619f0e8ec7d711f18043a5f1d8f17c2) ) + + NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) ) + + NEO_BIOS_AUDIO_64K( "802cdc.m1", CRC(698372df) SHA1(1eae816223c3d0c5b501e6fdc5a62388450991a5) ) + + ROM_REGION( 0x80000, "ymsnd", 0 ) + ROM_LOAD( "802cdb.v1", 0x000000, 0x80000, CRC(bc65aee1) SHA1(2090133dcbb4f5b73696aab71ed5ea5b25b09b55) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "802cdb.c1", 0x000000, 0x200000, CRC(c5741cc8) SHA1(8593b320c140456ede6a7e355fcde978e74a0ffd) ) + ROM_LOAD16_BYTE( "802cdb.c2", 0x000001, 0x200000, CRC(a93eba1f) SHA1(da313b0ac97480cc451ba4678a819a4fab0bd5b3) ) +ROM_END + + + +GAME( 1996, crswd2bl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "Crossed Swords 2 (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, csw2, crswd2bl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Crossed Swords 2", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fr2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fr2cd, fr2, neogeo_noslot, neogeo, neogeo_hbmame,fr2ch, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2 (CD Bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fr2ch, fr2, neogeo_noslot, neogeo, neogeo_hbmame,fr2ch, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2 (CD to MVS conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, zintrckbh, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "ZinTricK (ExChar hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, zintrkcd, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "ZinTricK (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, zintrkm, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayseur", "ZinTricK (Music test)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, zintrkcd1, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "ZinTricK (CD test)", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, totc, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face / NCI", "Treasure of the Caribbean", MACHINE_SUPPORTS_SAVE ) + +GAME( 2002, beast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Shadow of the Beast (Neo Demo)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2006, cnbe, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Codename: Blut Engel", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, cndi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Chip n Dale Intro", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, cphd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Le Cortex", "Crouching Pony Hidden Dragon Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, columnsn, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Columns", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, columnsncd, columnsn, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Columns (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, dti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Duck Tales Intro", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, dwi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "DarkWing Duck Intro", MACHINE_SUPPORTS_SAVE ) +GAME( 2016, ennemi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kannagi", "Neogeo Sprite Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, ffeast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "Frog Feast (NeoGeo)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, ffeastd, ffeast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "Frog Feast Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, gbi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "GhostBusters Intro", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, iocero, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Primo Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, lhcdb, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:Dev.Team", "Last Hope CD Beta", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2007, lhcdba, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:Dev.Team", "Last Hope (NGCD Conversion)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2007, lhopecd, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope JAP NGCD (Beta 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2007, lhopecdh, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope JAP NGCD (Beta 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2005, ltorb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Jonas Indiana and The Lost Temple of RA (beta - 20050717)", MACHINE_SUPPORTS_SAVE ) +GAME( 20??, knacki, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "KnackiBalls", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, neo2500, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo 2500 Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, neo3d, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Oxygene", "Neo 3D Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, neocstlv, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BarfHappy", "Neo Castlevania Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, neodemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Charles Doty", "Demo - NeoGeo", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, neogal1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, neogal1d, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001 (debug)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, neogal1t, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001 (text)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, neogal2, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R002", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, neonopon, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon V.0.2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, neonopon_d1, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, neonopon_d2, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, neonopon_d3, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, neopong, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neodev", "Neo Pong (v1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, neoponga, neopong, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "Neodev", "Neo Pong (v1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, neoromjb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CeL", "Neo Rom Jukebox", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, neotest, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Sound Test", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, neothund, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sebastian Mihai", "Neo Thunder", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, ngem2k, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "NGEM2K", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, ngftdemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGF", "NGF Transparency Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, ngmontst, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "M.Priewe", "NeoGeo Monitor Test", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, ngtetris, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Crim", "NeoGeo 2-Player Tetris", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, nyan, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "Nyan Cat demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, pcmademo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "ADPCM-A Playback Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, pcmbdemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "ADPCM-B Playback Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, poknight, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, poknightcd, poknight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night (CD)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, poknightfr, poknight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, rci, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Robocop Intro", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, santabll, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "M.Priewe", "Santaball", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, smi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Spiderman Intro", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, snddemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "Sound-Loop Demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2011, spriteex, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "Sprite Experimenter", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, syscheck, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo System Check (ver 1.0b)", MACHINE_SUPPORTS_SAVE ) +GAME( 20??, test01, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "MVS Test 01", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, timesupd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGF", "Time's Up! (Demo)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, tmnti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Teenage Mutant Ninja Turtles Intro", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, twister, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Twister in a mirror intro", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, ww2demo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "WW2demo", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/ngdoubledr.cpp b/docs/release/src/hbmame/drivers/ngdoubledr.cpp new file mode 100644 index 00000000000..94064757496 --- /dev/null +++ b/docs/release/src/hbmame/drivers/ngdoubledr.cpp @@ -0,0 +1,283 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// Double Dragon + + + +ROM_START( dbdeh ) /* Double Dragon (Neo-Geo) - Enhance by Creamymami and Ydmis - (Based on dbdehy - can select Shuko and Duke - after hitting ultra kill is max 20030420) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082eh.p1", 0x100000, 0x100000, CRC(046e279e) SHA1(B7CDAAD32094EB3D12EE25621E7B9A9EB97AA13D) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( dbdeh1 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082eh1.p1", 0x100000, 0x100000, CRC(37223431) SHA1(b9369b8140213afd8efccb849ee7b4df81b01d20) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( dbdehy ) /* Double Dragon (Neo-Geo) - Enhance by Ydmis - (Can select Shuko and Duke) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082ehy.p1", 0x100000, 0x100000, CRC(37223431) SHA1(B9369B8140213AFD8EFCCB849EE7B4DF81B01D20) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( dbdq ) /* Double Dragon (Neo-Geo) - Hack by Creamymami - (The character is the Q - version) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082q.p1", 0x100000, 0x100000, CRC(869862ec) SHA1(92D1B712A25070035DD45B4F4BB4719B75768F92) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( dbdqb ) /* Double Dragon (Neo-Geo) - Hack by Creamymami and Ydmis - (The character is the Q - version - can select Shuko and Duke) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082qb.p1", 0x100000, 0x100000, CRC(8511d5f7) SHA1(29F161F990947C0D83262134B8ADC4B1CCC69924) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( dbdqeh ) /* Double Dragon (Neo-Geo) - Enhance by Creamymami and Ydmis - (The character is the Q - version - after hitting ultra kill is max - can select Shuko and Duke) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082qeh.p1", 0x100000, 0x100000, CRC(b65dc658) SHA1(38D81BEFBCA4A95B157289966E866BDC3BF21DE3) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( dbdqp ) /* Double Dragon (Neo-Geo) - Hack by Creamymami - (The character is the Q - version - after hitting ultra kill is max) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082qp.p1", 0x100000, 0x100000, CRC(b5d47143) SHA1(B9C211E0883C59C039954CC98E693D1245137C2F) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( dbdy ) /* Double Dragon (Neo-Geo) - Hack by Ydmis - (Can select Shuko and Duke - game is always in AES mode) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082y.p1", 0x100000, 0x100000, CRC(2ab6a95a) SHA1(F2FEC024DAB20A3B5A444BC431377531598D27FA) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( doubledre2 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082e2.p1", 0x100000, 0x100000, CRC(dd7f0c5f) SHA1(2f38ec25031407ba81a37ca6360c83a9c57e9cc0) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( doubledres ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082es.p1", 0x100000, 0x100000, CRC(6f4ced99) SHA1(fc272ceeda3d2e43f58fff302ea8df62533e3bd0) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + +ROM_START( doubledrhp ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "082hp.p1", 0x100000, 0x100000, CRC(1ca0941f) SHA1(40de27c5019059ed97b3bd7d8178e64709513114) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) + + ROM_REGION( 0xe00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) +ROM_END + + + +GAME( 1995, dbdeh, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Neo-Geo) (Add Char - Max ultra kill after hit (2003-04-20))", MACHINE_SUPPORTS_SAVE ) //Based on dbdehy +GAME( 1995, dbdeh1, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Double Dragon Enhance Hack (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dbdehy, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Double Dragon (Neo-Geo) (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dbdq, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Double Dragon (Neo-Geo) (Q-ver Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dbdqb, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Neo-Geo) (Q-ver Char - Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dbdqeh, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Neo-Geo) (Q-ver Char - Max ultra kill after hit - Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dbdqp, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Double Dragon (Neo-Geo) (Q-ver Char - Max ultra kill after hit)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dbdy, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Double Dragon (Neo-Geo) (Add Char - Always in AES mode)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, doubledre2, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Double Dragon Q (Boss hack Easy Special Attacks)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, doubledres, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Double Dragon (Boss hack Easy Special Attacks)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, doubledrhp, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Double Dragon (Boss Hack Perfect Edition hack by Blackheart 2009-09-19)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/nggaroup.cpp b/docs/release/src/hbmame/drivers/nggaroup.cpp new file mode 100644 index 00000000000..06b8f9e1953 --- /dev/null +++ b/docs/release/src/hbmame/drivers/nggaroup.cpp @@ -0,0 +1,295 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// Garou Mark of the Wolves: mostly hacks of the prototype + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, garoud ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_sma_prot->garou_decrypt_68k(cpuregion); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_sma_prot->garou_install_protection(m_maincpu, m_banked_cart); +} + + + +ROM_START( garoub ) // hack of garou + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) ) + ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) ) + ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) ) + ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) ) + ROM_LOAD16_WORD_SWAP( "253b.p4", 0x700000, 0x200000, CRC(c1fb6ff4) SHA1(5a907c2c0e8d1fe40f3eecd3b79d97ac8e393940) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) + ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) + ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) + ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) + ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) + ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) + ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) + ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) + ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) + ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) + ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) +ROM_END + +ROM_START( garoud ) + ROM_REGION( 0x900000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) ) + ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) ) + ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) ) + ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) ) + ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) + ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) + ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) + ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "253d.c1", 0x0000000, 0x800000, CRC(497be3f2) SHA1(3b4e524ff185db326cdefe115851ce282272fb58) ) + ROM_LOAD16_BYTE( "253d.c2", 0x0000001, 0x800000, CRC(6a9e95ca) SHA1(d9730d2db58edfa660edab5bf0f7fc3ed058bccf) ) + ROM_LOAD16_BYTE( "253d.c3", 0x1000000, 0x800000, CRC(39373d2f) SHA1(8c0307150bc31001605efbe0e38ae74e1e466d5d) ) + ROM_LOAD16_BYTE( "253d.c4", 0x1000001, 0x800000, CRC(4de23f6c) SHA1(b40bce471fb1815037e4c3705f8238e659a13a82) ) + ROM_LOAD16_BYTE( "253d.c5", 0x2000000, 0x800000, CRC(16634ba5) SHA1(e51649efd039270139aa7292a28925e547b2be59) ) + ROM_LOAD16_BYTE( "253d.c6", 0x2000001, 0x800000, CRC(95671ffd) SHA1(803ebeb74fefe88b9aba53cbca103c0e9145abcb) ) + ROM_LOAD16_BYTE( "253d.c7", 0x3000000, 0x800000, CRC(e36ce77f) SHA1(71931559293182749ded13c52d8bac988a3a062f) ) + ROM_LOAD16_BYTE( "253d.c8", 0x3000001, 0x800000, CRC(ddbd1096) SHA1(634cfb61398b3f1b983f7f3966b53f4cc3a78671) ) +ROM_END + +ROM_START( garoupamu ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by MU - (Approach to Arcade by MU Version 5.0a) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "253pamu.p1", 0x000000, 0x100000, CRC(d5c54453) SHA1(A7FE7AB68161583E10397B1B1B30299BE93AE90C) ) + ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) +ROM_END + +ROM_START( garoupeh ) /* Garou: Mark of the Wolves PROTOTYPE - Enhance by Ydmis - (In MVS mode can choose Kain and Grant) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "253peh.p1", 0x000000, 0x100000, CRC(61c65b05) SHA1(0159D181EEC3346C53C411BCFB9A3F17781FD7BC) ) + ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) +ROM_END + +ROM_START( garoupehc ) /* Garou: Mark of the Wolves PROTOTYPE - Enhance by Creamymami and Ydmis - (In MVS mode can choose Kain and Grant - power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "253pehc.p1", 0x000000, 0x100000, CRC(46b087b7) SHA1(236C8EC295A7380101BE27C5ED472617380A87A6) ) + ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) +ROM_END + +ROM_START( garoupf ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by UNKNOWN - (Fixed winning message, sprites and some bugs for prototype - from Mame32+ IPS collection) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "253pf.p1", 0x000000, 0x100000, CRC(124bdbf7) SHA1(81F4BC87AA6B7D34ECF4BEDF0BAA8AEB5B2E179A) ) + ROM_LOAD16_WORD_SWAP( "253pf.p2", 0x100000, 0x400000, CRC(19eb641b) SHA1(114BE5C20142223CF6BB0938AA3B07B61E3243E1) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) +ROM_END + +ROM_START( garoupfp ) /* Garou: Mark of the Wolves PROTOTYPE - (garoupfp) - Fix by UNKNOWN (Rom fix - FIXPLUS) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "253pfp.p1", 0x000000, 0x100000, CRC(0b23e2cb) SHA1(B61730457EFEBFFC4A1F5A31FEFBAF2E4CC8F49E) ) + ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) +ROM_END + +ROM_START( garoupfu ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by UNKNOWN - (Unknown Prototype Hack/Fix) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "253pfu.p1", 0x000000, 0x100000, CRC(3f41581e) SHA1(F62C64529A79C8867B789BC655182D702824464C) ) + ROM_LOAD16_WORD_SWAP( "253pfu.p2", 0x100000, 0x400000, CRC(cf4b3903) SHA1(CFC00DC3EB0F6D566C3F5DD8EC0D6B4440E17AAE) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) +ROM_END + +ROM_START( garoupy ) /* Garou: Mark of the Wolves PROTOTYPE - Hack by Ydmis - (In MVS mode P1 can choose Kain and Grant) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "253py.p1", 0x000000, 0x100000, CRC(5b010d7a) SHA1(5DC416E634456B2403ADF0668D18FC5FF60FAFDC) ) + ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) +ROM_END + +ROM_START( garoupy1 ) /* Prototype Version, seems genuine */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "253py1.p1", 0x000000, 0x100000, CRC(b4a28ce4) SHA1(bab447230b6bc91a327a2622a55e125ce3aef781) ) + ROM_LOAD16_WORD_SWAP( "253pf.p2", 0x100000, 0x400000, CRC(19eb641b) SHA1(114BE5C20142223CF6BB0938AA3B07B61E3243E1) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) +ROM_END + + + +GAME( 1999, garoub, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garou, ROT0, "Ydmis", "Garou - Mark of the Wolves (Boss hack by Ydmis)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoud, garou, neogeo_noslot, neogeo, neogeo_hbmame, garoud, ROT0, "hack","Garou - Mark of the Wolves (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoupamu, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MU", "Garou - Mark of the Wolves (proto) (Approach to Arcade by MU v5.0a)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoupeh, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Garou - Mark of the Wolves (proto) (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoupehc, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Garou - Mark of the Wolves (proto) (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoupf, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Fixed winning message, sprites and some bugs)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoupfu, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Unk Hack/Fix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoupfp, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Rom Fix - FixPlus)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoupy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Garou - Mark of the Wolves (proto) (P1 Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoupy1, garou, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Garou: Mark of the Wolves (Prototype) [Boss Hack by Ydmis]", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/ngkofmisc.cpp b/docs/release/src/hbmame/drivers/ngkofmisc.cpp new file mode 100644 index 00000000000..1f9976a406b --- /dev/null +++ b/docs/release/src/hbmame/drivers/ngkofmisc.cpp @@ -0,0 +1,689 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// Miscellaneous King of Fighters games +// kog, cthd, kof2k4, kof10th etc +// Nudity warning in Kof Special Edition 2004, stage with boats in the background: +// There's a nude woman at the right side. +// Sometimes the 6 women in the centre can also be nude. + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, cthd2k3a ) +{ + DRIVER_INIT_CALL(neogeo); + m_bootleg_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size); +} + +// This fixes the Cart Jumper in KOGD +static MACHINE_CONFIG_DERIVED_CLASS( hbmame_kog, neogeo_arcade, neogeo_hbmame ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(main_map_noslot) + MCFG_KOG_PROT_ADD("kog_prot") +MACHINE_CONFIG_END + +DRIVER_INIT_MEMBER( neogeo_hbmame, kogd ) +{ + DRIVER_INIT_CALL(neogeo); + m_kog_prot->kog_install_protection(m_maincpu); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, kof10thu ) +{ + UINT32 tsize = m_region_maincpu->bytes(); + UINT8 *rom = m_region_maincpu->base(); + UINT32 i, ofst; + dynamic_buffer trom( tsize ); + memcpy( &trom[ 0 ], &rom[ 0 ], tsize ); + // We unscramble the lower 6 address lines of the program rom. + for( i = 0; i < tsize / 2; i++ ) + { + ofst = BITSWAP8( (i & 0x0000ff), 7, 6, 2, 3, 4, 5, 0, 1 ) | (i & 0xffff00); + memcpy( &rom[ ofst * 2 ], &trom[ i * 2 ], 2 ); + } + + DRIVER_INIT_CALL(neogeo); +} + + + +ROM_START( cthd2k3a ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "360a.p1", 0x0c0000, 0x020000, CRC(1185fe39) SHA1(f7ce0878180858c359f125990fd750ec846f42dd) ) + ROM_CONTINUE( 0x040000, 0x020000 ) + ROM_CONTINUE( 0x020000, 0x020000 ) + ROM_CONTINUE( 0x0a0000, 0x020000 ) + ROM_CONTINUE( 0x080000, 0x020000 ) + ROM_CONTINUE( 0x060000, 0x020000 ) + ROM_CONTINUE( 0x000000, 0x020000 ) + ROM_CONTINUE( 0x0e0000, 0x020000 ) + ROM_FILL( 0xed00e, 1, 0x4e) + ROM_FILL( 0xed00f, 1, 0x71) + ROM_FILL( 0xed394, 1, 0x4e) + ROM_FILL( 0xed395, 1, 0x71) + ROM_FILL( 0xa2b7e, 1, 0x4e) + ROM_FILL( 0xa2b7f, 1, 0x71) + ROM_LOAD16_WORD_SWAP( "360a.p2", 0x4E0000, 0x020000, CRC(ea71faf7) SHA1(5d1bb12d04a5e2db6f48b59cae5f9b02acaeb976) ) + ROM_CONTINUE( 0x1c0000, 0x020000 ) + ROM_CONTINUE( 0x380000, 0x020000 ) + ROM_CONTINUE( 0x2a0000, 0x020000 ) + ROM_CONTINUE( 0x360000, 0x020000 ) + ROM_CONTINUE( 0x2e0000, 0x020000 ) + ROM_CONTINUE( 0x140000, 0x020000 ) + ROM_CONTINUE( 0x1e0000, 0x020000 ) + ROM_CONTINUE( 0x2c0000, 0x020000 ) + ROM_CONTINUE( 0x280000, 0x020000 ) + ROM_CONTINUE( 0x460000, 0x020000 ) + ROM_CONTINUE( 0x160000, 0x020000 ) + ROM_CONTINUE( 0x440000, 0x020000 ) + ROM_CONTINUE( 0x4c0000, 0x020000 ) + ROM_CONTINUE( 0x100000, 0x020000 ) + ROM_CONTINUE( 0x480000, 0x020000 ) + ROM_CONTINUE( 0x420000, 0x020000 ) + ROM_CONTINUE( 0x260000, 0x020000 ) + ROM_CONTINUE( 0x340000, 0x020000 ) + ROM_CONTINUE( 0x180000, 0x020000 ) + ROM_CONTINUE( 0x320000, 0x020000 ) + ROM_CONTINUE( 0x3a0000, 0x020000 ) + ROM_CONTINUE( 0x4a0000, 0x020000 ) + ROM_CONTINUE( 0x200000, 0x020000 ) + ROM_CONTINUE( 0x120000, 0x020000 ) + ROM_CONTINUE( 0x400000, 0x020000 ) + ROM_CONTINUE( 0x300000, 0x020000 ) + ROM_CONTINUE( 0x3e0000, 0x020000 ) + ROM_CONTINUE( 0x3c0000, 0x020000 ) + ROM_CONTINUE( 0x240000, 0x020000 ) + ROM_CONTINUE( 0x1a0000, 0x020000 ) + ROM_CONTINUE( 0x220000, 0x020000 ) + + NEO_SFIX_128K( "360a.s1", CRC(174ccffd) SHA1(8067e4d79ac91f5c18855793840f41c30825cbb4) ) + + NEO_BIOS_AUDIO_128K( "360a.m1", CRC(a37cc447) SHA1(969375ca70cf9140afaf833378716cc43e25c5c6) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "360a.v2", 0x400000, 0x400000, CRC(2b498449) SHA1(8e2b01dd17dbf4498a197bda8ce3e08cdf785f12) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "360a.c1", 0x0000000, 0x800000, CRC(dc90c563) SHA1(a79f54f754a1bd0d603f70af6b335e839b5e20d1) ) + ROM_LOAD16_BYTE( "360a.c2", 0x0000001, 0x800000, CRC(7b08d331) SHA1(40e259cbc888184aa0f8102d00098f37f3005ce3) ) + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) + ROM_LOAD16_BYTE( "360a.c7", 0x3000000, 0x800000, CRC(ad2d72b3) SHA1(6396ba51f863019059ce3e37dab20a60d3a8c549) ) + ROM_LOAD16_BYTE( "360a.c8", 0x3000001, 0x800000, CRC(8c3fc1b5) SHA1(81b6df7c937915c5b971bde20786aece02404a05) ) +ROM_END + +ROM_START( cthd2k3b ) /* Crouching Tiger Hidden Dragon 2003 - Hack by HunterX Hacker - (Can choose Zero and Igniz) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "360b.p1", 0x000000, 0x100000, CRC(f403c9b3) SHA1(35D52B9388D4715BACBE958ACCD133C19E769E30) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) +ROM_END + +ROM_START( ct2k3eh ) /* Crouching Tiger Hidden Dragon 2003 - Enhance by Fighters Kim and HunterX Hacker - (Can choose Zero and Igniz - power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "360eh.p1", 0x000000, 0x100000, CRC(eac4773b) SHA1(7E8AF18D5A18B3FE0B9130C66D8F4EF6297B8C7F) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) +ROM_END + +ROM_START( ct2k3ifz ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) ) + ROM_LOAD16_WORD_SWAP( "360ifz.p2", 0x100000, 0x400000, CRC(f3e7ca3a) SHA1(80b22608a90bc2b643751621200ef42a0e41557d) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) +ROM_END + +ROM_START( ct2k3k3 ) /* Crouching Tiger Hidden Dragon 2003 - Remix by Jason/K3 - (Character move change - V1.2 20030823) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "360k3.p1", 0x000000, 0x100000, CRC(f5f1cfb2) SHA1(F0E19AE063E771567B30B52710C143B5E72CBF5A) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) +ROM_END + +ROM_START( ct2k3k3o ) /* [OLD] Crouching Tiger Hidden Dragon 2003 - Remix by Jason/K3 - (Character move change 20030818) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "360k3o.p1", 0x000000, 0x100000, CRC(93b2cb2b) SHA1(dc6bacae8851ab74eaf45c4392fdab0d679a266f) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) +ROM_END + +ROM_START( ct2k3xx ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) ) + ROM_LOAD16_WORD_SWAP( "360xx.p2", 0x100000, 0x400000, CRC(7931c60b) SHA1(d9a6f90b0c40cbc0d9ba82412a418abf714b36dd) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) +ROM_END + +ROM_START( ct2k3ys ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) ) + ROM_LOAD16_WORD_SWAP( "360ys.p2", 0x100000, 0x400000, CRC(d6872ee8) SHA1(23e0c9461c9fea2f5cbb1c05f45b10b5612e2ffd) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) +ROM_END + + +ROM_START( kof2k4mp ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "365mp.p1", 0x000000, 0x100000, CRC(499d739d) SHA1(b6344f49acc68405261592115a3c6c6e298309f5)) + ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe)) + + NEO_SFIX_128K( "365mp.s1", CRC(f5f10e6f) SHA1(ab9d390785e03561f6b32f6c66fad2b2e9a5d996)) + + NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "365mp.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) ) + ROM_LOAD( "365mp.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) ) + ROM_LOAD( "365mp.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) ) + ROM_LOAD( "365mp.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + + ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) + ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) + ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) +ROM_END + +ROM_START( kof2k4ru ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "365ru.p1", 0x000000, 0x100000, CRC(69100ad2) SHA1(36a818fb6fbe8433df89187dcf171058128f4f22) ) + ROM_LOAD16_WORD_SWAP( "365ru.p2", 0x100000, 0x400000, CRC(c6b895e0) SHA1(e0080f4bb268253f0605a48c361b6c8088e173b7) ) + + NEO_SFIX_128K( "365ru.s1", CRC(fbfa1079) SHA1(af6d779cf0b74c765812d0ca1aab31412adb0136) ) + + NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "365mp.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) ) + ROM_LOAD( "365mp.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) ) + ROM_LOAD( "365mp.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) ) + ROM_LOAD( "365mp.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "365ru.c1", 0x0000000, 0x800000, CRC(c55d7733) SHA1(3837f178788c78dcf7b0a4fbab3d62bfe0b41f9a) ) + ROM_LOAD16_BYTE( "365ru.c2", 0x0000001, 0x800000, CRC(d89b45c9) SHA1(31d7ad16534839821f68db07b28dd564fe5c13c3) ) + ROM_LOAD16_BYTE( "365ru.c3", 0x1000000, 0x800000, CRC(e5074eea) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) ) + ROM_LOAD16_BYTE( "365ru.c4", 0x1000001, 0x800000, CRC(f6eb1ff2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) ) + ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) ) + ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) ) + ROM_LOAD16_BYTE( "365ru.c7", 0x3000000, 0x800000, CRC(750a7a2b) SHA1(3ef7688eedc3fcb9cef55306055b838f60a96285) ) + ROM_LOAD16_BYTE( "365ru.c8", 0x3000001, 0x800000, CRC(aa21b917) SHA1(12f256f2a54246b1ed604ae4dcaa1af6e48a7b1f) ) +ROM_END + +ROM_START( kof2k4se1 ) // also known as kofse2k4 + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "365se1.p2", 0x000000, 0x100000, CRC(5f482757) SHA1(0c2cba7fc6256e62eb7464306036784703c35a70) ) + ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) ) + + NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) ) + + NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "365mp.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) ) + ROM_LOAD( "365mp.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) ) + ROM_LOAD( "365mp.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) ) + ROM_LOAD( "365mp.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) + ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) ) + ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) + ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) +ROM_END + +ROM_START( kof2k4se2 ) // also known as kof2004, same as kof2k4se1 except for 2nd program rom + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "365se1.p2", 0x000000, 0x100000, CRC(5f482757) SHA1(0c2cba7fc6256e62eb7464306036784703c35a70) ) + ROM_LOAD16_WORD_SWAP( "365se2.p1", 0x100000, 0x400000, CRC(698679a7) SHA1(2bf3a7a7423141685ecd36c266139a97bac0a69c) ) + + NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) ) + + NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "365mp.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) ) + ROM_LOAD( "365mp.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) ) + ROM_LOAD( "365mp.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) ) + ROM_LOAD( "365mp.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) + ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) ) + ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) + ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) +ROM_END + +ROM_START( kof2k4seb ) /* Portuguese edition */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "365seb.p1", 0x000000, 0x100000, CRC(3dda9add) SHA1(de75ab82ecdd9612b47051a502bfbe4b80c20688) ) + ROM_LOAD16_WORD_SWAP( "365seb.p2", 0x100000, 0x400000, CRC(ed63d10b) SHA1(0991adc15d9335ce429ab0f4e1c20f198c6c0a94) ) + + NEO_SFIX_128K( "365seb.s1", CRC(f1b5d31a) SHA1(d111dd7b68fc4a921c0ab19bec40338dd3a88092) ) + + NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) ) + ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) + ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) + ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) +ROM_END + +ROM_START( kof2k4spl ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "365spl.p1", 0x000000, 0x100000, CRC(388c5cba) SHA1(a9dbb3cbe622f8d7c28079883d54665da522dea9)) + ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe)) + + NEO_SFIX_128K( "365spl.s1", CRC(348686dd) SHA1(676d83b98cc0b923ef4997c04cecaf74b4ef1687)) + + NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "365mp.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) ) + ROM_LOAD( "365mp.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) ) + ROM_LOAD( "365mp.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) ) + ROM_LOAD( "365mp.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) + ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) + ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) +ROM_END + + +ROM_START( kof2k8uni ) // hack of kof10th + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "366.p1", 0x000000, 0x400000, CRC(966210bf) SHA1(9f86f29dbfe7ac951485908a20a6ce120ebdeb5f) ) + ROM_LOAD16_WORD_SWAP( "366.p2", 0x400000, 0x400000, CRC(ae5f00f7) SHA1(807cbd02cdba320c7cf32c915a663338d7a89252) ) + + NEO_SFIX_128K( "366.s1", CRC(e57b5757) SHA1(d3dbb83c3d8b9860361b36496bfdc95220b8b75f) ) + + NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "366.c1", 0x0000000, 0x400000, CRC(ea774fb8) SHA1(01ce6330716046b591c606b5d016dd5e57fa007b) ) + ROM_LOAD16_BYTE( "366.c2", 0x0000001, 0x400000, CRC(6f497789) SHA1(8c8573ea191d29f0d250901ebf0116a41e184c78) ) + ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) + ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) + ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) + ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) + ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) + ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) + ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) + ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) + ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) + ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) + ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) + ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) + ROM_LOAD16_BYTE( "366.c7", 0x3800000, 0x400000, CRC(1b6f3bde) SHA1(5e1222197f5a09837930cc34713667dc1644c02a) ) + ROM_LOAD16_BYTE( "366.c8", 0x3800001, 0x400000, CRC(113555e3) SHA1(52b48e182d23422492d95c95de4c86b1d30864e0) ) +ROM_END + + +ROM_START( kof10thu ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "363u.p1", 0x600000, 0x100000, CRC(dd135fb6) SHA1(4e85814a44ee9fee9760048dd6d6fd2b66521bb1) ) + ROM_CONTINUE( 0x100000, 0x500000 ) + ROM_CONTINUE( 0x000000, 0x100000 ) + ROM_CONTINUE( 0x700000, 0x100000 ) + + NEO_SFIX_128K( "363u.s1", CRC(b22ba74f) SHA1(3ba9e9d4b95fef9bf35f76e9d4fb6e1a36aeee5a) ) + + NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) + ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) + ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) + ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) + ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) + ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) + ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) + ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) + ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) + ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) + ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) + ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) + ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) + ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) + ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) + ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) +ROM_END + +ROM_START( kof10thub ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "363ub.p1", 0x000000, 0x800000, CRC(814eb1b2) SHA1(529825948f17fffa6d3a55a0d9e7ba6c06b79649) ) + + NEO_SFIX_128K( "363ub.s1", CRC(f5f91fc8) SHA1(f64516d7b500bdeddbe64962330cb612c11b8b84) ) + + NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "363ud.c1", 0x0000000, 0x800000, CRC(2491af91) SHA1(e3e237e50395dc985c564867046ad202bc744d37) ) + ROM_LOAD16_BYTE( "363ud.c2", 0x0000001, 0x800000, CRC(47ff1d91) SHA1(7d6ade9409af2c64114ed5836ccf9f50c7ebac69) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + +ROM_START( kof10thud ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "363ud.p1", 0x000000, 0x800000, CRC(acbe077a) SHA1(7d3b1ce4e06021f26dd1a7d97b03975f4ed17c24) ) + + NEO_SFIX_128K( "363u.s1", CRC(b22ba74f) SHA1(3ba9e9d4b95fef9bf35f76e9d4fb6e1a36aeee5a) ) + + NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "363ud.c1", 0x0000000, 0x800000, CRC(2491af91) SHA1(e3e237e50395dc985c564867046ad202bc744d37) ) + ROM_LOAD16_BYTE( "363ud.c2", 0x0000001, 0x800000, CRC(47ff1d91) SHA1(7d6ade9409af2c64114ed5836ccf9f50c7ebac69) ) + ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) + ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) ) + ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) + ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) + ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) + ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) +ROM_END + + +ROM_START( kogd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "361d.p1", 0x000000, 0x100000, CRC(58F20940) SHA1(693819ff606b7c7b27400586f34073625445c412) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "361d.s1", CRC(EC690592) SHA1(a5af2880778a1904dd6c6006be769ea36b15dae3) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) ) + ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) ) + ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) ) +ROM_END + +ROM_START( kogf ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "361f.p1", 0x000000, 0x200000, CRC(65dc181d) SHA1(663e1296fd808b3fc14fc94c3b82f9097db455e3) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) + + NEO_SFIX_128K( "361f.s1", CRC(a5a76377) SHA1(e35f195dcd0a4ab156d6d52e8cc8fddddc602fc1) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) ) + ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) ) + ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) ) + ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) ) + ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) ) + ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) ) +ROM_END + +ROM_START( kogplus ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "361plus.p1", 0x000000, 0x200000, CRC(0338f453) SHA1(01ea5ca6cc632d732a539542dc163bbafb071b88) ) + ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x200000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) ) + + NEO_SFIX_128K( "361plus.s1", CRC(6271e9ba) SHA1(5bc94426e916d0ad16b6660bfc2b9e21f717fa32) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) ) + ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) ) + ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) ) + ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) ) + ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) ) + ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) ) +ROM_END + +ROM_START( kogplusf ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "361plusf.p1", 0x000000, 0x100000, CRC(24d0684b) SHA1(e2bf117e8dcad6e058cc0d2702f9e373e9aebb29) ) + ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) ) + + NEO_SFIX_128K( "361plusf.s1", CRC(3e6d76ec) SHA1(f16912d6d199f1c917efa3caece52e5730dfeb5f) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) ) + ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) ) + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) + ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) ) + ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) ) +ROM_END + + + +GAME( 2003, cthd2k3b, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "HunterX Hacker", "Crouching Tiger Hidden Dragon 2003 (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, cthd2k3a, cthd2k3b, neogeo_noslot, neogeo, neogeo_hbmame, cthd2k3a, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ct2k3eh, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Fighters Kim and HunterX Hacker", "Crouching Tiger Hidden Dragon 2003 (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ct2k3ifz, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Ice FZ Remix)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ct2k3k3, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Jason/K3", "Crouching Tiger Hidden Dragon 2003 Remix v1.2 (Diff Move - 030823)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ct2k3k3o, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Jason/K3", "Crouching Tiger Hidden Dragon 2003 Remix (Diff Move - 030818)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ct2k3xx, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Blood Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, ct2k3ys, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Red Fire Remix)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof2k4mp, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 Magic PLUS", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, kof2k4ru, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MVS Hacks PSP", "Kof Special Edition 2004 REMIX ULTRA V2.6F", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof2k4se1, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 (hack 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof2k4se2, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 (hack 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof2k4seb, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dragon Co.", "Kof Special Edition 2004 (portuguese)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, kof2k4spl, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, kof2k8uni, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary 2008 Unique", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, kof10thu, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof10thu, ROT0, "hack", "Kof 10th Anniversary UNIQUE (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, kof10thub, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary UNIQUE (portuguese edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, kof10thud, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary UNIQUE (decrypted, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, kogd, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "hack", "King of Gladiator (fully decrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kogf, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "Zxbdragon / Ryu", "King of Gladiator (Fixed Edition by Zxbdragon & Ryu)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kogplus, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "hack", "King of Gladiator PLUS", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kogplusf, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "Zxbdragon / Ryu", "King of Gladiator PLUS (Fixed Edition by Zxbdragon & Ryu)", MACHINE_SUPPORTS_SAVE ) +///GAME( 2004, kf2k4pls, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k4pls, ROT0, "hack", "Kof2004 Special Edition Plus", MACHINE_SUPPORTS_SAVE ) +///GAME( 2004, kof10thd, kof2002, neogeo_noslot, neogeo, neogeo_state, kof10thd, ROT0, "hack", "Kof 10th Anniversary (Fully Decrypted)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/nglastblade.cpp b/docs/release/src/hbmame/drivers/nglastblade.cpp new file mode 100644 index 00000000000..1d1053f43c1 --- /dev/null +++ b/docs/release/src/hbmame/drivers/nglastblade.cpp @@ -0,0 +1,612 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// The Last Blade + + + +ROM_START( lba ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234a.p1", 0x000000, 0x080000, CRC(3893d38b) SHA1(204d3f61dbeb82b1c942cda7089f24f997925adb) ) + ROM_LOAD16_WORD_SWAP( "234a.p2", 0x080000, 0x080000, CRC(9470c788) SHA1(41671491cef3020b895e42935208e92abec09ed9) ) + ROM_LOAD16_WORD_SWAP( "234a.p3", 0x100000, 0x200000, CRC(b45e631c) SHA1(5c88e6f6c1e343df24f2acf8bb4aed77954f7b36) ) + ROM_LOAD16_WORD_SWAP( "234a.p4", 0x300000, 0x200000, CRC(aa34e149) SHA1(113930343f8efa603823a619964e90f1b06df2ab) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lbb ) /* The Last Blade - Hack by Kurouri and Wesker - (Can choose 'fair' Kaede, Musashi and Kagami - Wesker mod.) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234b.p1", 0x000000, 0x100000, CRC(bdbc598e) SHA1(2fc8937cf07c0a402a36859a6a5231e37d092e91) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lbboss ) /* The Last Blade - Hack by Kurouri - (Can choose 'fair' Kaede, Musashi and Kagami) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234j.p1", 0x000000, 0x100000, CRC(84fb4bc9) SHA1(bf5dec15a6c2e1557b7436c48ea58193c6ad83bb) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lbe ) /* The Last Blade - Super Enhance Hack by Creamymami, Kurouri, wesker and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max - ultra power hack - Wesker mod.) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234e.p1", 0x000000, 0x100000, CRC(0b06430e) SHA1(813cb410b993b032d96e7f34db0a1ee1a57c52f2) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lbeh ) /* The Last Blade - Enhance by Kurouri and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234eh.p1", 0x000000, 0x100000, CRC(d3a5d3dc) SHA1(004fe19505d08a314e208508078001425da6560d) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lbeh2 ) /* The Last Blade - Hack by Ydmis - (Can choose Musashi and Kagami) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234eh2.p1", 0x000000, 0x100000, CRC(12d80904) SHA1(cf7be0aab4f26b38cf2ea09dca8db1e0a4b90629) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lbeho ) /* The Last Blade - Enhance by Ydmis - (Can choose Musashi and Kagami - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234eho.p1", 0x000000, 0x100000, CRC(c09d3ff3) SHA1(311a5f98d78c8fe7d551a92ac08c47b52271fb7b) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lbha ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234ha.p1", 0x000000, 0x100000, CRC(b8d24c55) SHA1(d954f5b6a35877369ebc9cbcfcb2f26bc72a653a) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lbseh ) /* The Last Blade - Super Enhance Hack by Creamymami, Kurouri and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234seh.p1", 0x000000, 0x100000, CRC(32415149) SHA1(944a77e4e0e06763332549cf8255632921348933) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + +ROM_START( lby ) /* The Last Blade - Hack by Ydmis - (Can choose Musashi) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "234y.p1", 0x000000, 0x100000, CRC(481a6e8f) SHA1(cad1207b8ed93ba118e822767f0c32cd4030823a) ) + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) + + ROM_REGION( 0x2800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) +ROM_END + + +ROM_START( lb2a ) /* The Last Blade 2 - Hack by Alphax2 - (Can choose Kouryu) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243a.p1", 0x000000, 0x100000, CRC(9b53279c) SHA1(d2424f057ad834e76603cbbe4febf97d93fcd2a9) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2b ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243b.p1", 0x000000, 0x100000, CRC(6e512568) SHA1(9bdd136d3a8b2a361b2659066f10fe6e7d3b6c52) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243b.s1", CRC(357e4638) SHA1(92bfc78749c00662225ada98eecc562fd2984e3e) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2bhd ) /* The Last Blade 2 - Super Enhance Hack by Dodowang - (Can choose bosses -> icons in menu - after character selection choose "SPEED" -> press c -> EX - mode enabled) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243bhd.p1", 0x000000, 0x100000, CRC(f4e141cf) SHA1(515a101c1fc7b038603afc56121d240738e68090) ) + ROM_LOAD16_WORD_SWAP( "243-sp2.pg2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243b.s1", CRC(357e4638) SHA1(92bfc78749c00662225ada98eecc562fd2984e3e) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2easy ) /* The Last Blade 2 - Hack by Raymonose - (character move optimization in view of keyboard) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243ea.p1", 0x000000, 0x100000, CRC(220F7860) SHA1(DA292FD2AE80A11676AA2B7F884C733535B5CE9E) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2ebd ) /* The Last Blade 2 - Enhance by Dodowang - (Can choose bosses - after character selection choose "SPEED" -> press c -> EX - mode enabled) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243ebd.p1", 0x000000, 0x100000, CRC(9fa23fd3) SHA1(76f858e3c293f53770be6a0037d39797b4624002) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2ed ) /* The Last Blade 2 - Enhance by Dodowang - (After character selection choose "SPEED" -> press c -> EX - mode enabled) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243ed.p1", 0x000000, 0x100000, CRC(35ae01f3) SHA1(dbf24eb2732c72e8d8f06bdebcd30d93f9c3ae1a) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2eh ) /* The Last Blade 2 - Enhance by Ydmis and Zhangshee - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243eh.p1", 0x000000, 0x100000, CRC(57064bc6) SHA1(e7c1669356606bf134a02217fabc00ffd74d91f2) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2eh2 ) /* The Last Blade 2 - Hack by Ydmis - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243eh2.p1", 0x000000, 0x100000, CRC(10e0ffa5) SHA1(d26f3807426a18914801b18dc01fd01e96c9fd78) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2eho ) /* The Last Blade 2 - Enhance by Ydmis - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243eho.p1", 0x000000, 0x100000, CRC(f31ab9fe) SHA1(92614220d2e7ea2100a7258e3479db1d42431dfd) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2ehu ) /* The Last Blade 2 - Enhance by UNKNOWN - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243ehu.p1", 0x000000, 0x100000, CRC(494aef40) SHA1(7c6af3a463c1a6acae10ee3fd9fb5e07e553fa18) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2pl ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243pl.p1", 0x000000, 0x100000, CRC(8AF4B6E2) SHA1(2ea9a364bd7614eb93c5cbb3f571765c7af3af71) ) + ROM_LOAD16_WORD_SWAP( "243pl.p2", 0x100000, 0x400000, CRC(EEF07572) SHA1(ba20c498dbdc2a1d664e5a3aeb3ffcd128c2a248) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2te ) // unknown hack + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243te.p1", 0x000000, 0x100000, CRC(8f9a24bf) SHA1(f7005ed9ab77d9991babfa72a68a2f535ac01064) ) + ROM_LOAD16_WORD_SWAP( "243te.p2", 0x100000, 0x400000, CRC(37aaffa0) SHA1(4f16686956d2435d6c4339a5c49b352d0a98ecb7) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2wh ) /* The Last Blade 2 - Hack by Wesker - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu 20031017) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243wh.p1", 0x000000, 0x100000, CRC(6ddcebf5) SHA1(4a93c0cb594e12cafea3b1137889187a524c5d79) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + +ROM_START( lb2yd ) /* The Last Blade 2 - Hack by Ydmis - (Ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "243yd.p1", 0x000000, 0x100000, CRC(095f3790) SHA1(d1de61b9019afd52042d5bc06aaca97db805dd45) ) + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) +ROM_END + + + +GAME( 1997, lba, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Blade (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lbb, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri and Wesker", "Last Blade (3 Add Char - Wesker mod.)", MACHINE_SUPPORTS_SAVE ) // 'fair' Kaede, Musashi and Kagami +GAME( 1997, lbboss, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri", "Last Blade (3 Add Char)", MACHINE_SUPPORTS_SAVE ) // 'fair' Kaede, Musashi and Kagami +GAME( 1997, lbe, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Kurouri, Wesker and Ydmis", "Last Blade (3 Add Char - Ultra kill start max - Ultra pow hack - Wesker mod.)", MACHINE_SUPPORTS_SAVE ) // 'fair' Kaede, Musashi and Kagami +GAME( 1997, lbeh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri and Ydmis", "Last Blade (3 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) // 'fair' Kaede, Musashi and Kagami +GAME( 1997, lbeh2, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (2 Add Char)", MACHINE_SUPPORTS_SAVE ) // Musashi and Kagami +GAME( 1997, lbseh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Kurouri and Ydmis", "Last Blade (3 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) // 'fair' Kaede, Musashi and Kagami +GAME( 1997, lbeho, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (2 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) // Musashi and Kagami +GAME( 1997, lbha, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Last Blade (Boss hack, Alternate Set)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lby, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (Add Musashi)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1998, lb2a, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alphax2", "Last Blade 2 (Add Kouryu)", MACHINE_SUPPORTS_SAVE ) // Bosses +GAME( 1998, lb2b, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lb2bhd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Add Char with icons - EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lb2easy, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FGCH / Raymonose", "Last Blade 2 (Moves optimized for keyboard)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lb2ed, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lb2ebd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Add Char - EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE ) // Bosses +GAME( 1998, lb2eh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis and Zhangshee", "Last Blade 2 (4 Add Char - Ultra kill start max set 1)", MACHINE_SUPPORTS_SAVE ) // Kaede black haired, Kouryu, Hagure and Kotetsu +GAME( 1998, lb2eh2, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (4 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) // Kaede black haired, Kouryu, Hagure and Kotetsu +GAME( 1998, lb2eho, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (4 Add Char)", MACHINE_SUPPORTS_SAVE ) // Kaede black haired, Kouryu, Hagure and Kotetsu +GAME( 1998, lb2ehu, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Last Blade 2 (4 Add Char - Ultra kill start max set 2)", MACHINE_SUPPORTS_SAVE ) // Kaede black haired, Kouryu, Hagure and Kotetsu +GAME( 1998, lb2pl, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Last Blade 2 (Plus)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lb2te, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Last Blade 2 (Unknown hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lb2wh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Last Blade 2 (4 Add Char - 031017)", MACHINE_SUPPORTS_SAVE ) // Kaede black haired, Kouryu, Hagure and Kotetsu +GAME( 1998, lb2yd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/ngrbff.cpp b/docs/release/src/hbmame/drivers/ngrbff.cpp new file mode 100644 index 00000000000..9b5147128dd --- /dev/null +++ b/docs/release/src/hbmame/drivers/ngrbff.cpp @@ -0,0 +1,667 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// Fatal Fury 1,2,3,special ; Real Bout Fatal Fury 1,2,special + + + +ROM_START( fatfurspb ) + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "058b.p1", 0x000000, 0x100000, CRC(1222cf0a) SHA1(dab98ef9464e8759433958663f2625912295822b) ) + ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) + + NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) + + NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) + ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) + ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) + ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) + ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) + ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) + ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) + ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) +ROM_END + +ROM_START( fatfurspbs ) + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "058bs.p1", 0x000000, 0x100000, CRC(8cd18f7f) SHA1(1f7a550bb5c71495bd52c66ff289f64dfa778ee4) ) + ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) + + NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) + + NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) + ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) + ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) + ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) + ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) + ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) + ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) + ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) +ROM_END + +ROM_START( fatfurspbt ) + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "058bt.p1", 0x000000, 0x100000, CRC(67354471) SHA1(e189eeef14be9ec02668f51151434f0ec481ea65) ) + ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) + + NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) + + NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) + ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) + ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) + ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) + ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) + ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) + ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) + ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) +ROM_END + +ROM_START( fatfurspeh ) /* Fatal Fury Special - (fatfspeh) - Enhance by Dodowang - (Can choose Ryo Sakazaki - works in AES/MVS mode) */ + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "058eh.p1", 0x000000, 0x100000, CRC(5da7db92) SHA1(755C90B1A722A844C0E518CA188D915317C5ABB0) ) + ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) + + NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) + + NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) + + ROM_REGION( 0x500000, "ymsnd", 0 ) + ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) + ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) + ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) + ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) + ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) + ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) + ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) + ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) +ROM_END + + +ROM_START( fatfury2b ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "047b.p1", 0x000000, 0x080000, CRC(a94a8fa5) SHA1(313e40c50d761f509c9826f064a588738a1b64ec) ) + ROM_LOAD16_WORD_SWAP( "047b.p2", 0x080000, 0x080000, CRC(2a9beac5) SHA1(61378f89d64fef4c172825694f83229c2ab1a7af) ) + + NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) + + NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) + ROM_LOAD( "047-v2.v2", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) ) + + ROM_REGION( 0x800000, "sprites", 0 ) + ROM_LOAD16_BYTE( "047-c1.c1", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "047-c2.c2", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "047-c3.c3", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) + ROM_CONTINUE( 0x600000, 0x100000 ) + ROM_LOAD16_BYTE( "047-c4.c4", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) + ROM_CONTINUE( 0x600001, 0x100000 ) +ROM_END + + +ROM_START( fatfury3b ) /* Fatal Fury 3 - Hack by Creamymami - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "069b.p1", 0x000000, 0x100000, CRC(743ad8a1) SHA1(962D11224B14BA9D5BE554E45B4ACA9E3A818610) ) + ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) + + NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) + + NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) + ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) + + ROM_REGION( 0x1400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) + ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) + ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) +ROM_END + +ROM_START( fatfury3bd ) /* Fatal Fury 3 - Hack by Creamymami and Dodowang - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "069bd.p1", 0x000000, 0x100000, CRC(532c2930) SHA1(A65A39A79820138F275F75563F548240DD53F371) ) + ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) + + NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) + + NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) + ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) + + ROM_REGION( 0x1400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) + ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) + ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) +ROM_END + +ROM_START( fatfury3bh ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "069bh.p1", 0x000000, 0x100000, CRC(b8362f59) SHA1(9ae1cd259d9667fefcba0452ea658cf72aba189e) ) + ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) + + NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) + + NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) + ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) + + ROM_REGION( 0x1400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) + ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) + ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) +ROM_END + +ROM_START( fatfury3eh ) /* Fatal Fury 3 - Enhance by Creamymami and Dodowang - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei - all characters ultra kill style change) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "069eh.p1", 0x000000, 0x100000, CRC(e07140da) SHA1(205D7E2C7BE66959430A8ECFA20A368C8BF90F62) ) + ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) + + NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) + + NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) + ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) + + ROM_REGION( 0x1400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) + ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) + ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) +ROM_END + + +ROM_START( rbff1ud ) /* Real Bout Fatal Fury - Enhance by Dodowang - (All characters ultra kill style change) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "095ud.p1", 0x000000, 0x100000, CRC(fa5e3c0f) SHA1(6391ad22eabf0246aa3b9f6d9f821cd58d2e5c71) ) + ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) + + NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) + + NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) + ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) + ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) + ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) + ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) + ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) +ROM_END + +ROM_START( rbffsb ) /* Real Bout Fatal Fury Special - Hack by Creamymami - (Can choose Geese Howard) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223b.p1", 0x000000, 0x100000, CRC(bb52545f) SHA1(1d082b3f2d71f8510d63a779cbcf5861a066ca26) ) + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) +ROM_END + +ROM_START( rbffseh ) /* Real Bout Fatal Fury Special - Enhance by Creamymami - (Can choose Geese Howard - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223eh.p1", 0x000000, 0x100000, CRC(6fe86622) SHA1(7cb68f4928c3fa9a07f7f806795628d70a24e693) ) + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) +ROM_END + +ROM_START( rbffsehd ) /* Real Bout Fatal Fury Special - Enhance by Dodowang - (All charcaters ultra kill style change - can choose Geese Howard - can choose 4 EX characters) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223ehd.p1", 0x000000, 0x100000, CRC(db89d64b) SHA1(6018ab688865c2c51e73daf0a33ec8ef5c65de77) ) + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) +ROM_END + +ROM_START( rbffspbd ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223bd.p1", 0x000000, 0x100000, CRC(04cb6d40) SHA1(97427ce56aeb3eaa851297a7beae125a34ca82c4) ) + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) +ROM_END + +ROM_START( rbffspecbs ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223bs.p1", 0x000000, 0x100000, CRC(abf2a6e7) SHA1(59c5d253c66aad2b352ccf752d2a90f3ea229897) ) + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) +ROM_END + +ROM_START( rbffspy ) /* Real Bout Fatal Fury Special - Enhance by Ydmis - (Ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223py.p1", 0x000000, 0x100000, CRC(2cf01f60) SHA1(fcaf1f9b91af5a035b8ee28cff6e3a72e73766fd) ) + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) +ROM_END + +ROM_START( rbffsud ) /* Real Bout Fatal Fury Special - Enhance by Dodowang - (All charcaters ultra kill style change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "223ud.p1", 0x000000, 0x100000, CRC(b173df6b) SHA1(2c03eeee842b6a583a352c5414633ffc9a430fbf) ) + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) + + ROM_REGION( 0xc00000, "ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) +ROM_END + + +ROM_START( rbff2b ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Can choose Alfred) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240b.p1", 0x000000, 0x100000, CRC(94429c9f) SHA1(3c7df75eb6dec674a309f7e1e19557f78d8157a2) ) + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) +ROM_END + +ROM_START( rbff2bh ) /* Real Bout Fatal Fury 2 - Hack by Dodowang - (Can choose Alfred - icon in character select menue added) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240bh.p1", 0x000000, 0x100000, CRC(a5652c51) SHA1(0a736bb5c817752aef5b559c0355329667203073) ) + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) + + NEO_SFIX_128K( "240bh.s1", CRC(141a8492) SHA1(e3b27771c78ac1df96f9daf951511897652b1a0f) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) +ROM_END + +ROM_START( rbff2eh ) /* Real Bout Fatal Fury 2 - Enhance by Ydmis - (Can choose Alfred - ultra kill start is max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240eh.p1", 0x000000, 0x100000, CRC(270943a8) SHA1(959d0c30d3bae5011109247d50350970cb0a3e5d) ) + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) +ROM_END + +ROM_START( rbff2eh2 ) /* Real Bout Fatal Fury 2 - Enhance by Creamymami and Ydmis - (Can choose Alfred - ultra kill start is max - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240eh2.p1", 0x000000, 0x100000, CRC(e25bd43c) SHA1(08071840f296204e8178e53ffc0e571ee88c3724) ) + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) +ROM_END + +ROM_START( rbff2ehc ) /* Real Bout Fatal Fury 2 - Enhance by Creamymami - (Ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240ehc.p1", 0x000000, 0x100000, CRC(73c40014) SHA1(5ed2ee938cf8213a0d6ea85b40e07370e472d59c) ) + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) +ROM_END + +ROM_START( rbff2eho ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Can choose Alfred) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240eho.p1", 0x000000, 0x100000, CRC(6bf11562) SHA1(4d92a96e89b4726733fd7aeeaa5eaad6e80ce7a3) ) + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) +ROM_END + +ROM_START( rbff2fc ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240fc.p1", 0x000000, 0x100000, CRC(D01854FA) SHA1(1a4230404df76c111c76348a04d86976cd68df93) ) + ROM_LOAD16_WORD_SWAP( "240fc.p2", 0x100000, 0x400000, CRC(C063193D) SHA1(3321d90f93b1f7bf423a20b780b453a756e041be) ) + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240fc.c5", 0x2000000, 0x800000, CRC(21831787) SHA1(928620e9efb849c591d75a645969c24b15e5c337) ) + ROM_LOAD16_BYTE( "240fc.c6", 0x2000001, 0x800000, CRC(06B2D1DA) SHA1(d39da350a9017a68704ea99bff7f48163b0866fb) ) +ROM_END + +ROM_START( rbff2ud ) /* Real Bout Fatal Fury 2 - Enhance by Dodowang - (P1 and P2 go to Terry, hold down B+C and press A - can choose then Alfread - all characters ultra kill style change) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240ud.p1", 0x000000, 0x100000, CRC(d3cc7f24) SHA1(f6c831ce358afbad457c75fcdf89f9abf9a21ec8) ) + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) +ROM_END + +ROM_START( rbff2y ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Player 2 goes to Terry, holds down B+C and presses A - can choose then Alfred) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "240y.p1", 0x000000, 0x100000, CRC(621387e2) SHA1(3492845dcb34d2be4268f270025045c4c6cba0ad) ) + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) + ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) + ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) + + ROM_REGION( 0x3000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) +ROM_END + + + +GAME( 1993, fatfurspb, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fatal Fury Special / Garou Densetsu Special (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfurspbs, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fatal Fury Special (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfurspbt, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "PPX team", "Fatal Fury Special (BT Version PPX Team hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfurspeh, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Fatal Fury Special (Add Ryo)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, fatfury2b, fatfury2, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "Yumeji", "Fatal Fury 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, fatfury3b, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Fatal Fury 3 (Add Char set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fatfury3bd, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "Fatal Fury 3 (Add Char set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fatfury3bh, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fatal Fury 3 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fatfury3eh, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "Fatal Fury 3 (Add Char - Ultra kill style changed)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, rbff1ud, rbff1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury (Ultra kill style changed)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1996, rbffsb, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury Special (Add Geese Howard)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffseh, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury Special (Add Geese Howard - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffsehd, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury Special (Ultra kill style changed - 5 Add Char)", MACHINE_SUPPORTS_SAVE ) // Geese Howard, Andy B. EX, Blue Mary EX, Billy K. EX and Tung Fu Rue EX +GAME( 1996, rbffspbd, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffspecbs, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Real Bout Fatal Fury Special (Boss hack Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffspy, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury Special (Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffsud, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury Special (Ultra kill style changed)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1998, rbff2b, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2bh, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury 2 (Add Alfred with Icon)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2eh, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred - Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2ehc, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury 2 (Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2eh2, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Real Bout Fatal Fury 2 (Add Alfred - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2eho, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred) (Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2fc, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids - FCHT", "Real Bout Fatal Fury 2 (Enable Alfred v3 & Color Fix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2ud, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury 2 (P1 and P2 Add Alfred [Terry, hold B+C and press A] - Ultra kill style change)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2y, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (P1 only Add Alfred [Terry, hold B+C and press A])", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/ngrotd.cpp b/docs/release/src/hbmame/drivers/ngrotd.cpp new file mode 100644 index 00000000000..84248af9a25 --- /dev/null +++ b/docs/release/src/hbmame/drivers/ngrotd.cpp @@ -0,0 +1,547 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, rotdb ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, ROTD_GFX_KEY); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, rotdd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, rotdnd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + + + +ROM_START( rotdb ) /* Rage of the Dragons - Hack by Ydmis - (Console mode enabled - can choose Abubo and Johann) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264b.p1", 0x000000, 0x800000, CRC(66d05f5b) SHA1(8114262695229ec8af22001569481007a30dc977) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdb1 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264b1.p1", 0x000000, 0x800000, CRC(8bf2d91e) SHA1(5b0e92934bb672761320eb7377962b977b39c0e5) ) + + NEO_SFIX_128K( "264b1.s1", CRC(b530292a) SHA1(8479cbdb377e7ed324aa777e3f6d094f4d1b80b5) ) + + NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) ) + ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) ) + ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) ) + ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) ) + ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) ) + ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) ) + ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) ) + ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) ) + ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) ) + ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) ) + ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) ) +ROM_END + +ROM_START( rotdbr ) /* Rage of the Dragons - Translation Hack by UNKNOWN - (Portuguese translation) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264br.p1", 0x000000, 0x800000, CRC(8f5d7188) SHA1(a29209a05a22e18d6baa78830d6bbc763d23dcac) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdbr1 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264br1.p1", 0x000000, 0x800000, CRC(59395cb3) SHA1(3f723a4b9bbc8c587eab449ecdb2be666ca59992) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdbr2 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264br2.p1", 0x000000, 0x800000, CRC(8a973ecf) SHA1(5c472fca9091fb88f49ea72ce49b17fae3bbdaa9) ) + + NEO_SFIX_128K( "264br2.s1", CRC(28b387d6) SHA1(eb50e74b66ce9e14765fa0841e928b8be3035c73) ) + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdbr2d ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264br2.p1", 0x000000, 0x800000, CRC(8a973ecf) SHA1(5c472fca9091fb88f49ea72ce49b17fae3bbdaa9) ) + + NEO_SFIX_128K( "264br2.s1", CRC(28b387d6) SHA1(eb50e74b66ce9e14765fa0841e928b8be3035c73) ) + + NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) ) + ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) ) + ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) ) + ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) ) + ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) ) + ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) ) + ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) ) + ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) ) + ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) ) + ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) ) + ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) ) +ROM_END + +ROM_START( rotdcre ) /* Rage of the Dragons - Hack by Creamymami and UNKNOWN - (Console mode enabled - always power max - no change wait) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264cre.p1", 0x000000, 0x800000, CRC(c3f5a8ea) SHA1(4a7beeb4269846f743bafb118256c1106fd7d529) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdcreb ) /* Rage of the Dragons - Hack by Creamymami, UNKNOWN and Ydmis - (Console mode enabled - can choose Abubo and Johann - always power max - no change wait) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264creb.p1", 0x000000, 0x800000, CRC(c058f365) SHA1(84731cf354693141cc06f90a73bbd597eb6a594f) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) ) + ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) ) + ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) ) + ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) ) + ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) ) + ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) ) + ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) ) + ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) ) +ROM_END + +ROM_START( rotdeh ) /* Rage of the Dragons - Hack by Ydmis - (Can choose Abubo and Johann) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264eh.p1", 0x000000, 0x800000, CRC(b8db28bc) SHA1(9fd6cd7a13bde0854243dca4b0d7d9601cde4996) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdehc ) /* Rage of the Dragons - Enhance by Creamymami, FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann - always power max - no change wait) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264ehc.p1", 0x000000, 0x800000, CRC(2135864c) SHA1(5abd3ffbaf60ebbf7bd15afa0666b959d820c4aa) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdfw ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264fw.p1", 0x000000, 0x800000, CRC(7b89da35) SHA1(0edc3421f764deac1fefc499ffe469ad30956ebc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdfy ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264fy.p1", 0x000000, 0x800000, CRC(4ab52bcd) SHA1(7fcc074fb7c048f824fd5ef9a370c9a908299727) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdh2b ) /* Rage of the Dragons - Hack by UNKNOWN and Ydmis - (Console mode enabled - can choose Abubo and Johann) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264h2b.p1", 0x000000, 0x800000, CRC(87bd2a72) SHA1(5f7ae41b7813fa7058c00cfa1c0d1a8c06395f8a) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdhab ) /* Rage of the Dragons - Hack by HappyAsr - (Console mode enabled - character menue changed - can choose Abubo and Johann - characters choose twice) */ + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) // needed + ROM_LOAD16_WORD_SWAP( "264hab.p1", 0x000000, 0x300000, CRC(44f5312a) SHA1(9a5356dbde209c9e5ebd04ff025c7c129a0ea4da) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdhab1 ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264hab.p1", 0x000000, 0x300000, CRC(44f5312a) SHA1(9a5356dbde209c9e5ebd04ff025c7c129a0ea4da) ) + + NEO_SFIX_128K( "264-s1.bin", CRC(c155d4ff) SHA1(cc20d4e30004ca82da2ba075c084d294c94651d0) ) + + NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) ) + ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) ) + ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) ) + ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) ) + ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) ) + ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) ) + ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) ) + ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) ) + ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) ) + ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) ) + ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) ) +ROM_END + +ROM_START( rotdhar ) /* Rage of the Dragons - Hack by HappyAsr - (Console mode enabled) */ + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "264har.p1", 0x000000, 0x300000, CRC(ca979b31) SHA1(03ff383db6b33ffbd7736bc87888f7c645dda62d) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdhfw ) /* Rage of the Dragons - Hack by FWNL - (Console mode enabled) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264hfw.p1", 0x000000, 0x800000, CRC(49187042) SHA1(f7609bc4fa236304bbf7383ea49e2a4a5cf44682) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdhfwb ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264hfwb.p1", 0x000000, 0x800000, CRC(ed25cd79) SHA1(db73cf2e907fefc7d52cbbda2f36bc5edfa86ccb) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + +ROM_START( rotdnd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) ) + ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) ) + ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) ) + ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) ) + ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) ) + ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) ) + ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) ) + ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) ) + ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) ) + ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) ) + ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) ) +ROM_END + +ROM_START( rotdyc ) /* Rage of the Dragons - Hack by Creamymami and Ydmis - (Console mode enabled - can choose Abubo and Johann - power hack) */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "264yc.p1", 0x000000, 0x800000, CRC(ff3ef1ab) SHA1(bad86a1c5cdedc2589b7f668e64e10e630574fef) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) +ROM_END + + + +GAME( 2002, rotdb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 4)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdbr, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdbr1, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese) (Alt Set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdbr2, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese) (Alt Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdcre, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami and Unk","Rage of the Dragons (Console mode enabled - Always pow max - No change wait)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdcreb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami, Unk and Ydmis","Rage of the Dragons (Add Char - Console mode enabled - Always pow max - No change wait set 2)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdd, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdd, ROT0, "Evoga / Playmore","Rage of the Dragons (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdeh, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Ydmis", "Rage of the Dragons (Add Char)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdehc, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami, FWNL and Ydmis","Rage of the Dragons (Add Char - Console mode enabled - Always pow max - No change wait set 1)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdfw, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 2)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdfy, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 3)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdh2b, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Unk and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 5)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdhab, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "HappyAsr", "Rage of the Dragons (Add Char - Console mode enabled - Char menu changed - Char choose twice)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdhar, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "HappyAsr", "Rage of the Dragons (Console mode enabled set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdhfw, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL", "Rage of the Dragons (Console mode enabled set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdhfwb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 1)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann +GAME( 2002, rotdyc, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled - Pow hack)", MACHINE_SUPPORTS_SAVE ) // Abubo and Johann + + + +GAME( 2002, rotdbr2d, rotd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Rage of the Dragons - Portuguese/Brazilian Hack ver 2.0", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdb1, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdnd, ROT0, "hack", "Rage of the Dragons (Boss Hack)2", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdhab1, rotd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Rage of the Dragons (Hack, Hero AES) [EGCG]", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdnd, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdnd, ROT0, "Evoga / Playmore Corporation", "Rage of the Dragons (decrypted V,decrypted C)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/ngsamsho.cpp b/docs/release/src/hbmame/drivers/ngsamsho.cpp new file mode 100644 index 00000000000..ebc770745ab --- /dev/null +++ b/docs/release/src/hbmame/drivers/ngsamsho.cpp @@ -0,0 +1,1143 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// Samurai Shodown / Samurai Spirits + + +DRIVER_INIT_MEMBER( neogeo_hbmame, samsh5sd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, samsho5d ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, samsh5hd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, samsho5hd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 1; + m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, samsh5spd ) +{ + DRIVER_INIT_CALL(neogeo); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); +} + + + +ROM_START( samshob ) /* Samurai Shodown - Hack by Ydmis - (Can choose Amakusa) */ + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "045b.p1", 0x000000, 0x080000, CRC(bc16e98b) SHA1(097611c6b0f1f0f09460d49b67c09f1611ce68bc) ) + ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) ) + ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) ) + + NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) + + NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) + ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) + + ROM_REGION( 0x900000, "sprites", 0 ) + ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) + ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) + ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) + ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) + ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) + ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) +ROM_END + +ROM_START( samshoeh ) /* Samurai Shodown - Enhance by Ydmis - (Can choose Amakusa - ultra kill start is max) */ + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "045eh.p1", 0x000000, 0x080000, CRC(ba5277df) SHA1(255f467e0b9b2ee2210028829d68efd060a1480d) ) + ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) ) + ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) ) + + NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) + + NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) + ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) + + ROM_REGION( 0x900000, "sprites", 0 ) + ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) + ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) + ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) + ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) + ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) + ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) +ROM_END + +ROM_START( samshoeh2 ) /* Enhance by Creamymami and Ydmis - (Can choose Amakusa - ultra kill start is max - ultra kill is always max) */ + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "045eh2.p1", 0x000000, 0x080000, CRC(54e85e0d) SHA1(701807af8e1181992cca5a31a8727e24cf4a0d9c) ) + ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) ) + ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) ) + + NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) + + NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) + ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) + + ROM_REGION( 0x900000, "sprites", 0 ) + ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) + ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) + ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) + ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) + ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) + ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) +ROM_END + + +ROM_START( samsho2b ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "063b.p1", 0x100000, 0x100000, CRC(2682710f) SHA1(56b521673651c1b218d7a4382e6766a239f39826) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) +ROM_END + +ROM_START( samsho2eh ) /* Samurai Shodown II - Enhance by Ydmis - (Can choose Mizuki and Kuroko) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "063eh.p1", 0x100000, 0x100000, CRC(2682710f) SHA1(56b521673651c1b218d7a4382e6766a239f39826) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) +ROM_END + +ROM_START( samsho2sq ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "063sq.p1", 0x100000, 0x100000, CRC(beeeeed1) SHA1(2d0639eee365308647f04db9423e93b9044d307a) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) +ROM_END + +ROM_START( samsho2ss ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "063ss.p1", 0x100000, 0x100000, CRC(e300e5fa) SHA1(5e6793a69cc6996f5be4dba8f1bb2e95b2e36db6) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) +ROM_END + +ROM_START( samsho2yc ) /* Samurai Shodown II - Enhance by Creamymami and Ydmis - (Can choose Mizuki and Kuroko - power hack) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "063yc.p1", 0x100000, 0x100000, CRC(ff64d433) SHA1(6d3140413614fe4f5dda17f623c734c6e2ab0940) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) + + ROM_REGION( 0x700000, "ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) +ROM_END + + +ROM_START( samsho3eh ) /* Samurai Shodown III - Hack by Ydmis - (Can choose Zankuro and Kuroko) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "087eh.p1", 0x000000, 0x100000, CRC(251d9b3f) SHA1(6ea015bbc528ac9a5d0eeb746ed8fcca689c2be6) ) + ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) +ROM_END + +ROM_START( samsho3hb ) + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "087hb.p1", 0x000000, 0x100000, CRC(15e021ca) SHA1(78aba32741d2e4b5bc4c641a4166f4405ab240e2) ) + ROM_LOAD16_WORD_SWAP( "087hb.p2", 0x100000, 0x200000, CRC(1cc2c370) SHA1(01fba8d315d684652fb506aa833fa0e8e3e350df) ) + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) +ROM_END + +ROM_START( samsho3se ) /* Samurai Shodown III - (samsho3ehc) - Super Enhance Hack by Creamymami and Ydmis - (Can choose Zankuro and Kuroko - power hack ABC - ultra power hack) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "087se.p1", 0x000000, 0x100000, CRC(8deb9f12) SHA1(5fc437f41020f8619b23e37a864e2ba19fec2727) ) + ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) +ROM_END + +ROM_START( samsho3yc ) /* Samurai Shodown III - Enhance by Creamymami and Ydmis - (Can choose Zankuro and Kuroko - power hack ABC) */ + ROM_REGION( 0x300000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "087yc.p1", 0x000000, 0x100000, CRC(f111c831) SHA1(eff62f96172af895605201860a8d18ed847d08a0) ) + ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) + + ROM_REGION( 0x1a00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) +ROM_END + + +ROM_START( samsho4bh ) /* Samurai Shodown IV - Hack by Dodowang - (Can choose Zankuro Minazuki - has icon in character select menue) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222bh.p1", 0x000000, 0x100000, CRC(59dd746f) SHA1(2afecebd57f978fe0764c23a0bbf1d73421c60ca) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4cz ) /* Samurai Shodown IV - Enhance by Creamymami and Zhangshee - (Can choose Zankuro Minazuki - ultra kill start is max - ultra kill is always max) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222cz.p1", 0x000000, 0x100000, CRC(fdfb86a3) SHA1(ed91d0273dec277ce9ee4b4bdf7e88b524b3ed3b) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4eh ) /* Samurai Shodown IV - Enhance by Zhangshee - (Can choose Zankuro Minazuki) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222eh.p1", 0x000000, 0x100000, CRC(10390464) SHA1(029a2d22819b8440b1ce3bafb6005841665b0b27) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4es ) /* Samurai Shodown IV - Enhance by SNK2003/PPX Hack Team - (Move revision - v3.8) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222es.p1", 0x000000, 0x100000, CRC(36D58438) SHA1(0E957E6815121C8005A560E1F17BD1D4675C2BDB) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4ev ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222ev.p1", 0x000000, 0x100000, CRC(84539b07) SHA1(710827bcf969e913b0b1702295f4808fa68e59ca) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4ew ) /* Samurai Shodown IV - Colour fix / Hack by Eddids and Wesker - (Can choose Zankuro Minazuki - colour correction P2/P3/P4 for Zankuro Minazuki) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222ew.p1", 0x000000, 0x100000, CRC(E76CDD8F) SHA1(025E574C0160EAF9A2754B8DA549DDE6A03EF98D) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4fc ) /* Samurai Shodown IV - Boss hack by FCHT */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222fc.p1", 0x000000, 0x100000, CRC(7d7c973c) SHA1(bef2d2795ae536d3d16ebcd3cc6a33a7b737b74b) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4kw ) /* Samurai Shodown IV - Enhance by Fighters Kim and Wesker - (Can choose Zankuro Minazuki - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222kw.p1", 0x000000, 0x100000, CRC(dae6844a) SHA1(4e4641e13d836919013f9a156553f8a2c6af05e6) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4kz ) /* Samurai Shodown IV - Enhance by Fighters Kim and Zhangshee - (Can choose Zankuro Minazuki - ultra power hack) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222kz.p1", 0x000000, 0x100000, CRC(41503ba4) SHA1(c741e6f341baee8bbf1fdf64b7b144f9e4f120cc) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + +ROM_START( samsho4ps ) + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222ps.p1", 0x000000, 0x100000, CRC(70dd94fe) SHA1(611b84be241eb81a39a29d41779b7dfec6262c8c) ) + ROM_LOAD16_WORD_SWAP( "222ps.p2", 0x100000, 0x400000, CRC(2c9c64db) SHA1(2a9825bc7577cb1f3128b6a9f41b72bb1228e037) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222ps.c7", 0x1800000, 0x400000, CRC(ecb13c24) SHA1(5f7a62e04a7c2bed52cc4d6377f41d1dbe55f6ee) ) + ROM_LOAD16_BYTE( "222ps.c8", 0x1800001, 0x400000, CRC(0f9a0bda) SHA1(6093f607dbcc9e1475bb1bb8e713b23fcd99c486) ) +ROM_END + +ROM_START( samsho4wh ) /* Samurai Shodown IV - Hack by Wesker - (Can choose Zankuro Minazuki - final edition) */ + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "222wh.p1", 0x000000, 0x100000, CRC(8b8fbb8a) SHA1(75dff66982c4b4e2137fb3058516be516d2c6a73) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) + + ROM_REGION( 0xa00000, "ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) +ROM_END + + +ROM_START( samsho5bd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270bd.p1", 0x000000, 0x800000, CRC(611a6687) SHA1(55ff9122d64efd276e22a66fa443e0bebd079928) ) + + NEO_SFIX_128K( "270bd.s1", CRC(33227d62) SHA1(5f4b7ab642175657af212304783a1df98415ed44) ) + + NEO_BIOS_AUDIO_128K( "270bd.m1", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "270bd.v1", 0x000000, 0x400000, CRC(6849136c) SHA1(5f8e7cc33b8d994165dd577a0d7e0eb2df16f07e) ) + ROM_LOAD( "270bd.v2", 0x400000, 0x400000, CRC(222e1774) SHA1(3c1b2f37d4f2fa2cd7d6a6f04b3aedf6b2f4b089) ) + ROM_LOAD( "270bd.v3", 0x800000, 0x400000, CRC(cd9e7adc) SHA1(941ae992c004594885f635fdea3ac1c51bb5d469) ) + ROM_LOAD( "270bd.v4", 0xc00000, 0x400000, CRC(8b305cac) SHA1(938e2600c0c2b3d4a0a362ef6e91850c32217f18) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "270bd.c1", 0x0000000, 0x800000, CRC(4e7bdea1) SHA1(2376386e0e82820c0853cf39e27167f8c181980c) ) + ROM_LOAD16_BYTE( "270bd.c2", 0x0000001, 0x800000, CRC(7b444985) SHA1(1f2941f6a1bee6391002b88277edcfa7554f10f3) ) + ROM_LOAD16_BYTE( "270bd.c3", 0x1000000, 0x800000, CRC(8c709a9b) SHA1(92a03ccf08d301955b06f3323417b4f20d773428) ) + ROM_LOAD16_BYTE( "270bd.c4", 0x1000001, 0x800000, CRC(cfd53f5c) SHA1(773b03fb6faa958eddee6b001ebb619f8a8d5b30) ) + ROM_LOAD16_BYTE( "270bd.c5", 0x2000000, 0x800000, CRC(c026d318) SHA1(fec9a9309afe94f21e0f35ec992a39ce51deefc2) ) + ROM_LOAD16_BYTE( "270bd.c6", 0x2000001, 0x800000, CRC(b3d9d204) SHA1(9dbcf6c179ea3a04c8ed26416e4e91324fd1cf11) ) + ROM_LOAD16_BYTE( "270bd.c7", 0x3000000, 0x800000, CRC(fe03a025) SHA1(3a052869f6b46cffc5d1ea497b0d5f1f4d1874c2) ) + ROM_LOAD16_BYTE( "270bd.c8", 0x3000001, 0x800000, CRC(89db2d34) SHA1(cd3f1e4ef631704c1078c915135a4510891bd429) ) +ROM_END + +ROM_START( samsho5bs ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270bs.p1", 0x000000, 0x400000, CRC(a00cceba) SHA1(de91db34e0068dd40e9b151f0d0a7f609e880d77) ) + ROM_LOAD16_WORD_SWAP( "270bs.p2", 0x400000, 0x400000, CRC(91979dee) SHA1(0e03a2a2e3aa493bd839f3754260ddd3935ba25b) ) + + NEO_SFIX_128K( "270bs.s1", CRC(2ad6048b) SHA1(173c8561f0633e0d6e4a9750e632f2e46766e674) ) + + NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) ) /* not a 100% match for encrypted version */ + + ROM_REGION( 0X1000000, "ymsnd", 0 ) + ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) ) + ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) ) + ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) ) + ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) ) + ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) ) + ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) ) + ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) ) + ROM_LOAD16_BYTE( "270bs.c7", 0x3000000, 0x800000, CRC(02914b0b) SHA1(eef388cf6ceaca07f807943a0d63ea29727dd086) ) + ROM_LOAD16_BYTE( "270bs.c8", 0x3000001, 0x800000, CRC(e874ac8b) SHA1(45c65154df10c26aa138c7973075c3327e5f908e) ) +ROM_END + +ROM_START( samsho5ch ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270ch.p1", 0x000000, 0x800000, CRC(22b374ea) SHA1(dab8e0589210488feb374e80712ab511f5117066) ) + + NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) ) + + NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) ) + + ROM_REGION( 0X1000000, "ymsnd", 0 ) + ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) ) + ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) ) + ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) ) + ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) ) + ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) ) + ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) ) + ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) ) + ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) ) + ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) ) +ROM_END + +ROM_START( samsho5d ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644DE02CDAB8CCC605488A7C76B8C9CD1D5BCB9) ) + ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) + ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "270d.c1", 0x0000000, 0x800000, CRC(726abb40) SHA1(86A08C1266FB057D9A30A3AC259D526EC10D2FFA) ) + ROM_LOAD16_BYTE( "270d.c2", 0x0000001, 0x800000, CRC(76806188) SHA1(B448C06D7311791BAD09F0828FD3E56326DD7737) ) + ROM_LOAD16_BYTE( "270d.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206E1CC2C5F0FBBC074A93ADD5A44F645951D0C) ) + ROM_LOAD16_BYTE( "270d.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705C725AFF949E668C24B23E2E4CDB4ECF78AE) ) + ROM_LOAD16_BYTE( "270d.c5", 0x2000000, 0x800000, CRC(2219186a) SHA1(ACE6D04DA578F2A5E7B7A405E0CBB31073070185) ) + ROM_LOAD16_BYTE( "270d.c6", 0x2000001, 0x800000, CRC(d225120d) SHA1(AE28664486135949DD16BB91E8F35936BDA725A0) ) + ROM_LOAD16_BYTE( "270d.c7", 0x3000000, 0x800000, CRC(d245d493) SHA1(C0E89F863B9B592FF5F0F813D9B127CEE31132D1) ) + ROM_LOAD16_BYTE( "270d.c8", 0x3000001, 0x800000, CRC(eb06c9cc) SHA1(1DFD45407586DC7F574189BBC0D8AE1967D0A089) ) +ROM_END + +ROM_START( samsho5d1 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) ) + ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) + ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) ) + ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) ) + ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) ) + ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) ) + ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) ) + ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) ) + ROM_LOAD16_BYTE( "270hd.c7", 0x3000000, 0x800000, CRC(707d56a0) SHA1(303ecc621305c8fbeece8d599f9382fe82d191ee) ) + ROM_LOAD16_BYTE( "270hd.c8", 0x3000001, 0x800000, CRC(f5903adc) SHA1(64f867a4e9d23302aa1e884f8fad7872ee347a86) ) +ROM_END + +ROM_START( samsho5hd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270hd.p1", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) ) + ROM_LOAD16_WORD_SWAP( "270hd.p2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) + ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) ) + ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) ) + ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) ) + ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) ) + ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) ) + ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) ) + ROM_LOAD16_BYTE( "270hd.c7", 0x3000000, 0x800000, CRC(707d56a0) SHA1(303ecc621305c8fbeece8d599f9382fe82d191ee) ) + ROM_LOAD16_BYTE( "270hd.c8", 0x3000001, 0x800000, CRC(f5903adc) SHA1(64f867a4e9d23302aa1e884f8fad7872ee347a86) ) +ROM_END + +ROM_START( samsho5x ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "270x.p1", 0x000000, 0x800000, CRC(16983af9) SHA1(8b1ab272200bede14ad66d7e98474ac3fb7564d3) ) + + NEO_SFIX_128K( "270bs.s1", CRC(2ad6048b) SHA1(173c8561f0633e0d6e4a9750e632f2e46766e674) ) + + NEO_BIOS_AUDIO_512K( "270x.m1", CRC(5218a10a) SHA1(da4968e55d4a56249d85d6742a6acffcff4ad65d) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) ) + ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "270x.c1", 0x0000000, 0x800000, CRC(25272e50) SHA1(cc2aa5e5de2483539398f27f317ab2dda7b5c49e) ) + ROM_LOAD16_BYTE( "270x.c2", 0x0000001, 0x800000, CRC(ba68f2e7) SHA1(77b9b5ddc3b313df0dd328c75eac0e8bdfcebad8) ) + ROM_LOAD16_BYTE( "270x.c3", 0x1000000, 0x800000, CRC(75883cde) SHA1(2f9d72a07f8f14b52150cfb70bbc33d171a3d515) ) + ROM_LOAD16_BYTE( "270x.c4", 0x1000001, 0x800000, CRC(348540e6) SHA1(4c6eec8948fbb67ae57eaa4a98525deed6cd2859) ) + ROM_LOAD16_BYTE( "270x.c5", 0x2000000, 0x800000, CRC(1fee8dc8) SHA1(c7f1016ad711ec248218627c92dd5af68cba0206) ) + ROM_LOAD16_BYTE( "270x.c6", 0x2000001, 0x800000, CRC(c300b50d) SHA1(8c8fbb81dbc6c283b55380d577944c6b9cdd6cf4) ) + ROM_LOAD16_BYTE( "270x.c7", 0x3000000, 0x800000, CRC(5e722b0b) SHA1(7015dac7cc234473949912216a1b82ca640b52b6) ) + ROM_LOAD16_BYTE( "270x.c8", 0x3000001, 0x800000, CRC(e2a2c546) SHA1(c870acb090606ae185fa9d7b4932949abacb0705) ) +ROM_END + + +ROM_START( samsh5spd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) ) + ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_512K( "272d.m1", CRC(203d744e) SHA1(24fc73943009effa14eed0f7a29955f349ca8e8f) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5spd1 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) ) + ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5spd2 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272d2.p1", 0x000000, 0x400000, CRC(D190102F) SHA1(A853395575E135C2113FCCA942651A2A6193B504) ) + ROM_LOAD16_WORD_SWAP( "272d2.p2", 0x400000, 0x400000, CRC(DA770F06) SHA1(F23DE7385AE5C6A27D70B1140654192F0ED2DF84) ) + + NEO_SFIX_128K( "272-s1.bin", CRC(C297F973) SHA1(B31AF6B51E7536B538CD7EB3542C631C6327E826) ) + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5sph1 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272h.p1", 0x000000, 0x800000, CRC(15f53d87) SHA1(9e53deceef727757eb0ec3889f628b838cf1316a) ) + //ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) ) // not needed + + NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) ) + + NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) ) + ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) ) + ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) ) + ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5spha ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272ha.p1", 0x000000, 0x100000, CRC(24f2a6ab) SHA1(cd7cea2ed5fafb6328dc8c35224071d96e83da9b) ) + ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) ) + + NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) ) + + NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) ) + ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) ) + ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) ) + ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5sphb ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272hb.p1", 0x000000, 0x100000, CRC(b07fa849) SHA1(26a8e795ee4bbd25c88104a1ee9459991b65c774) ) + ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) ) + + NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) ) + + NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) ) + ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) ) + ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) ) + ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5sphc ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272nh3.p1", 0x000000, 0x400000, CRC(01e4b860) SHA1(de25b51a944a9e9757d8baa27d65601e96b4b718) ) + ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) ) + + NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) ) + + NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) ) + ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) ) + ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) ) + ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5sphd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272hd.p1", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) ) + ROM_LOAD16_WORD_SWAP( "272hd.p2", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5spn ) // fully decrypted + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272n.p1", 0x000000, 0x800000, CRC(339f5081) SHA1(3e120481a5aee6a978d87a0f600a7323657d1c51) ) + + NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) ) + + NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) ) + ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) ) + ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) ) + ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5spnd ) /* 2nd bugfix release */ + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272nd.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) ) + ROM_LOAD16_WORD_SWAP( "272nd.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5spnh3 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272nh3.p1", 0x000000, 0x100000, CRC(4cc4bcae) SHA1(487a6dd8d42e6f80cf43898fc2debeb1007e8be7) ) + ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) ) + + NEO_SFIX_128K( "272nh3.s1", CRC(36f02588) SHA1(114ed5d6bd396b5c88b463a816035ea4b9e0efc7) ) + + NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) ) + ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) ) + ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) ) + ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + +ROM_START( samsh5spnzk ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "272nzk.p1", 0x000000, 0x800000, CRC(17be33bf) SHA1(2350b306d6f2a57f0792b9a518c6ed9d55613b83) ) + + NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) ) + + NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) ) + ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) ) + ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) ) + ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) ) + ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) ) + ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) ) + ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) ) + ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) ) + ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) ) + ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) ) + ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) ) +ROM_END + + + +GAME( 1993, samshob, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, samshoeh, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, samshoeh2, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown (Add Char - Ultra kill start max - Ultra kill always max)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1994, samsho2b, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru jigokuhen (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2eh, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown II (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2sq, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru jigokuhen (Soul Q version v2.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2ss, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Samurai Shodown II Special / Shin Samurai Spirits - Haohmaru jigokuhen Special (Hack by Yashional)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2yc, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown II (Char - Pow hack)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, samsho3eh, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown III (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 2010, samsho3hb, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (bootleg/hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, samsho3se, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown III (Add Char - Pow hack ABC - Ultra pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, samsho3yc, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown III (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1996, samsho4bh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Samurai Shodown IV (Add Char with Icon)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4cz, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Zhangshee", "Samurai Shodown IV (Add Char - Ultra kill start max - Ultra kill always max)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4eh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zhangshee", "Samurai Shodown IV (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4es, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003/PPX Hack Team", "Samurai Shodown IV (Moves rev - v3.8)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4ev, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Samurai Shodown IV Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (Evil Amakusa - Hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4ew, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids and Wesker", "Samurai Shodown IV (Add Char with Color corrections P2/P3/P4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, samsho4fc, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Samurai Shodown IV (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4kw, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim and Wesker", "Samurai Shodown IV (Add Char - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4kz, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim and Zhangshee", "Samurai Shodown IV (Add Char - Ultra pow hack set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4ps, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown IV Amakusa's Revenge (Boss Fix Ver 1.00 [EGHT])", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4wh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown IV (Add Char - final edition)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2003, samsho5bd, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg, fully decrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5bs, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Spirits Zero / Samurai Showdown V (Enable Hidden Characters v3.5)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5ch, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang and Wesker", "Samurai Spirits Zero / Samurai Showdown V (Chinese Language and Boss Hack by Dodowang & Wesker)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5d, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, samsho5d, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (decrypted C)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5d1, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, samsho5hd,ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700)(decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5hd, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, samsho5hd,ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)(decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5x, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V / Samurai Spirits Zero (XBOX version, hack)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, samsh5spd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, samsh5sd, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spd1, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, samsh5hd, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)(decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spd2, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, samsh5spd,ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Spirits Zero Special / Samurai Showdown V Special (no encrypted P, decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5sph1, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V Special / Samurai Spirits Zero Special (Bloodlust hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spha, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 1 hack by Wesker)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5sphb, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 2 hack by Wesker)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5sphc, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 3 hack by Wesker)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5sphd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, samsh5hd, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720)(1st release, censored)(decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spn, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V Special / Samurai Spirits Zero Special (fully decrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spnd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, samsh5hd, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720)(2nd release, less censored)(decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spnh3,samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids / Snk2003", "Samurai Shodown V Special / Samurai Spirits Zero Special (Enhanced Blood v3.0 hack by Eddids, Snk2003)", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, samsh5spnzk,samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie / Kof1996", "Samurai Shodown V Special / Samurai Spirits Zero Special (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/ngsengoku.cpp b/docs/release/src/hbmame/drivers/ngsengoku.cpp new file mode 100644 index 00000000000..2aa01c24008 --- /dev/null +++ b/docs/release/src/hbmame/drivers/ngsengoku.cpp @@ -0,0 +1,264 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, sengo3d ) +{ + DRIVER_INIT_CALL(neogeo); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + + + +ROM_START( sengokucd ) + ROM_REGION( 0x120000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "017cd.p1", 0x000000, 0x100000, CRC(89290fa2) SHA1(c546aaf74e823d76e5a9ac592edd098a7cf531ed) ) + ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x100000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) + + NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) + + NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) + + ROM_REGION( 0x200000, "ymsnd", 0 ) + ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) + ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) + ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) + ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) + ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) +ROM_END + + +ROM_START( sengoku3b ) /* Sengoku 3 - Hack by Ydmis - (Can choose Byakki and Okuni) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261b.p1", 0x100000, 0x100000, CRC(66553650) SHA1(f235681d394c6526e9c61f5321a80287240ef61f) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261k.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) +ROM_END + +ROM_START( sengoku3c ) /* Sengoku 3 - Colour fix by UNKNOWN - (Character colour change - can choose Byakki and Okuni) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261c.p1", 0x000000, 0x200000, CRC(62abbf93) SHA1(f990263265f6dd742d3bd20587affbb056e222a9) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261k.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) +ROM_END + +ROM_START( sengoku3d ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261-ph1.p1", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0xE00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) ) + ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) ) + ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) ) + ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) ) +ROM_END + +ROM_START( sengoku3ha ) /* Sengoku 3 - Hack by HappyAse - (Can choose Byakki and Okuni - can directly choose USA and Brazil stage) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261ha.p1", 0x000000, 0x200000, CRC(ff392440) SHA1(01184f9edc786d0b83a3afe83e53b9834d54a98d) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) +ROM_END + +ROM_START( sengoku3k ) /* Sengoku 3 - Enhance by KrysoFun - (Can choose Byakki and Okuni - power hack) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261k.p1", 0x100000, 0x100000, CRC(ff0ab4f5) SHA1(581184174074333d7e94cbda1f5d6b3f4aec452c) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) +ROM_END + +ROM_START( sengoku3kc ) /* Sengoku 3 - Colour fix by Fighters Kim - (Character colour change - 80%) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261kc.p1", 0x100000, 0x100000, CRC(78a02b04) SHA1(d3634471cc12dd77a53d97405bb972ebc46ef513) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) +ROM_END + +ROM_START( sengoku3p ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261p.p1", 0x000000, 0x200000, CRC(2997b5ef) SHA1(86b9509eba939528aa0744ad8742cedfaf66b02e) ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) ) + ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) ) + ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) ) + ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) ) +ROM_END + +ROM_START( sengoku3pl ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261pl.p1", 0x100000, 0x100000, CRC(87a65e84) SHA1(0475d81c1fb4e4df7a3773522aa2958fd550e8ad) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) ) + ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) ) + ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) ) + ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) ) +ROM_END + +ROM_START( sengoku3ya ) /* Sengoku 3 - Enhance by KrysFun and Ydmis - (Can choose Byakki and Okuni - power hack)? */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261yka.p1", 0x100000, 0x100000, CRC(dea384f6) SHA1(2adf0f2aa1605710e37f13eb8e4588645ae7f8c2) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) +ROM_END + +ROM_START( sengoku3yk ) /* Sengoku 3 - Enhance by KrysFun and Ydmis - (Can choose Byakki and Okuni - power hack) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "261yk.p1", 0x100000, 0x100000, CRC(51bf63b9) SHA1(36aa9f86e7cd08286983f3a1139c642714fd049e) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_MT_128K + + NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) + + ROM_REGION( 0x0e00000, "ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) +ROM_END + + + +GAME( 2007, sengokucd, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku (CD conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, sengoku3b, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Ydmis", "Sengoku 3 (Add Char)", MACHINE_SUPPORTS_SAVE ) // Byakki and Okuni +GAME( 2001, sengoku3c, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Unk", "Sengoku 3 (Add Char - Char color changed)", MACHINE_SUPPORTS_SAVE ) // Byakki and Okuni +GAME( 2001, sengoku3d, sengoku3, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "SNK", "Sengoku 3 (decrypted C)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, sengoku3ha, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "HappyAsr","Sengoku 3 (Add Char - Select USA and Brazil)", MACHINE_SUPPORTS_SAVE ) // Byakki and Okuni +GAME( 2001, sengoku3k, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun", "Sengoku 3 (Add Char - Pow hack set 3)", MACHINE_SUPPORTS_SAVE ) // Byakki and Okuni +GAME( 2001, sengoku3kc, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Fighters Kim", "Sengoku 3 (Char color changed - 80%)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, sengoku3p, sengoku3, neogeo_noslot, neogeo, neogeo_hbmame, sengo3d, ROT0, "Krysofun", "Sengoku 3/Sengoku legends 2001 EX Super Version", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, sengoku3pl, sengoku3, neogeo_noslot, neogeo, neogeo_hbmame, sengo3d, ROT0, "hack", "Sengoku 3 / Sengoku Densho 2001 Plus (Hack by Player-X)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, sengoku3ya, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun and Ydmis","Sengoku 3 (Add Char - Pow hack set 2)", MACHINE_SUPPORTS_SAVE ) // Byakki and Okuni +GAME( 2001, sengoku3yk, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun and Ydmis","Sengoku 3 (Add Char - Pow hack set 1)", MACHINE_SUPPORTS_SAVE ) // Byakki and Okuni diff --git a/docs/release/src/hbmame/drivers/ngsvc.cpp b/docs/release/src/hbmame/drivers/ngsvc.cpp new file mode 100644 index 00000000000..313c2bb7741 --- /dev/null +++ b/docs/release/src/hbmame/drivers/ngsvc.cpp @@ -0,0 +1,337 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// SVCCHAOS SNK vs Capcom + + + +DRIVER_INIT_MEMBER( neogeo_hbmame, svcd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + svcpcb_s1data_decrypt(); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, svcd1 ) // decrypted C +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); + m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, svcplusb ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, svcplusd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); +} + +DRIVER_INIT_MEMBER( neogeo_hbmame, svcpcd ) +{ + DRIVER_INIT_CALL(neogeo); + m_sprgen->m_fixed_layer_bank_type = 2; + m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size); + m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); + m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart); + install_banked_bios(); + m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); + svcpcb_s1data_decrypt(); +} + + + + +ROM_START( svcd ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) ) + ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_128K( "269d.m1", CRC(447b3123) SHA1(a09adc2c0ee2ee0f01287ceb97474a1a58093bd2) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) + ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) ) + ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) ) + ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) ) + ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) ) + ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) ) + ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) ) + ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) ) + ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) ) +ROM_END + +ROM_START( svcd1 ) + ROM_REGION( 0x800000, "maincpu", 0 ) + ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) ) + ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) ) + + NEO_SFIX_MT_512K + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) + ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) ) + ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) ) + ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) ) + ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) ) + ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) ) + ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) ) + ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) ) + ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) ) +ROM_END + +ROM_START( svch ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269h.p1", 0x000000, 0x600000, CRC(06435efb) SHA1(115d8dbad06565cfdd6b607cc2359ec3ae5db6e0) ) + + //NEO_SFIX_128K( "269-s1h.bin", CRC(61ef88e5) ) rom not exist + NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) ) + + NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) ) + ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) ) + ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) ) + ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) ) + ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) ) + ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) ) + ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) ) + ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) ) + ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) ) + ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) ) + ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) ) +ROM_END + +ROM_START( svcnd ) // only p1,vx,s1 confirmed + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269nd.p1", 0x000000, 0x600000, CRC(93855c0b) SHA1(03dd06ff5a11a37990bd0a9531beb44c63de2d91) ) + + NEO_SFIX_MT_512K + ROM_LOAD( "269nd.s1", 0x60000, 0x20000, CRC(ad184232) SHA1(6645d323d641004fa7a17e3b1e65613f398c95dd) ) + ROM_CONTINUE( 0x40000, 0x20000 ) + ROM_CONTINUE( 0x20000, 0x20000 ) + ROM_CONTINUE( 0x00000, 0x20000 ) + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) ) + ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) ) + ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) ) +ROM_END + +ROM_START( svcpcbd ) // JAMMA + ROM_REGION( 0x2000000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269pcb.p1", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) ) + + NEO_SFIX_MT_512K + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */ + ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) ) + + ROM_REGION( 0x80000, "audiocrypt", 0 ) + ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) ) + ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) ) + ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) ) +ROM_END + +ROM_START( svcplusb ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269plusb.p1", 0x000000, 0x600000, CRC(5D738F9A) SHA1(10AD161D6DE285659DCAEBBEA4AA2B384341E14D) ) + + NEO_SFIX_MT_512K + ROM_LOAD( "269plusb.s1", 0x60000, 0x20000, CRC(06125f98) SHA1(69ba2625c90bb09abf64f6d49d88d2ac2f1ee9ca) ) + ROM_CONTINUE( 0x40000, 0x20000 ) + ROM_CONTINUE( 0x20000, 0x20000 ) + ROM_CONTINUE( 0x00000, 0x20000 ) + + NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) ) + ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) ) + ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) ) + ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) ) + ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) ) + ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) ) + ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) ) + ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) ) + ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) ) + ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) ) + ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) ) +ROM_END + +ROM_START( svcplusd ) // only p1,vx,cx confirmed + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269plusd.p1", 0x000000, 0x600000, CRC(2a57e4d4) SHA1(09fec6b376adfb2b051cd281f66b483e2deffa60) ) + + NEO_SFIX_MT_512K // This one contains PLUS logo + ROM_LOAD( "269plusb.s1", 0x60000, 0x20000, CRC(06125f98) SHA1(69ba2625c90bb09abf64f6d49d88d2ac2f1ee9ca) ) + ROM_CONTINUE( 0x40000, 0x20000 ) + ROM_CONTINUE( 0x20000, 0x20000 ) + ROM_CONTINUE( 0x00000, 0x20000 ) + + NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) ) + ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) ) + ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) ) +ROM_END + +ROM_START( svcpryu ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269pryu.p1", 0x000000, 0x600000, CRC(2088fa5c) SHA1(a60c01aef8532825dfde4a6ccc7c97692dd70e64) ) + + NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) ) + + NEO_BIOS_AUDIO_128K( "269pryu.m1", CRC(dcc67f10) SHA1(acdd75144f90d2b135181a4fd2c6c72c240c66b0) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) ) + ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) ) + ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) ) + ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) ) + ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) ) + ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) ) + ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) ) + ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) ) + ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) ) + ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) ) + ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) ) +ROM_END + +ROM_START( svcps2 ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269ps2.p1", 0x000000, 0x600000, CRC(aa15036f) SHA1(e57df12f02d2a7fa2b5eda99c90ae49c3ced44b0) ) + + NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) ) + + NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) ) + ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) ) + ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) ) + ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) ) + ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) ) + ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) ) + ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) ) + ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) ) + ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) ) + ROM_LOAD16_BYTE( "svcps2_c7.rom", 0x3000000, 0x800000, CRC(361c97ab) SHA1(3b3672630c54ddbee38932f7d27d27d71e9fe19c) ) + ROM_LOAD16_BYTE( "svcps2_c8.rom", 0x3000001, 0x800000, CRC(1a16e266) SHA1(3d6a07716b79b62c8f2240c8be83d662b35f615a) ) +ROM_END + +ROM_START( svcrm ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269rm.p1", 0x000000, 0x600000, CRC(9d39234f) SHA1(a28ba0b53a9f7dc2d0b3dfd22025ebddbd8c99af) ) + + NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) ) + + NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) ) + ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) ) + ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) ) + ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) ) + ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) ) + ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) ) + ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) ) + ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) ) + ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) ) + ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) ) + ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) ) +ROM_END + +ROM_START( svcspryu ) + ROM_REGION( 0x600000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "269spryu.p1", 0x000000, 0x600000, CRC(4f15b6b3) SHA1(651e5340b5442ff6cd9b6a325ea6ad8abc116cfb) ) + + NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) ) + + NEO_BIOS_AUDIO_128K( "269pryu.m1", CRC(dcc67f10) SHA1(acdd75144f90d2b135181a4fd2c6c72c240c66b0) ) + + ROM_REGION( 0x1000000, "ymsnd", 0 ) + ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) ) + ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) ) + ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) ) + ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) ) + + ROM_REGION( 0x4000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) ) + ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) ) + ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) ) + ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) ) + ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) ) + ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) ) + ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) ) + ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) ) +ROM_END + + + +GAME( 2003, svcd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svcd, ROT0, "hack", "SvC Chaos (decrypted C set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcd1, svc, neogeo_noslot, neogeo, neogeo_hbmame, svcd1, ROT0, "hack", "SvC Chaos (decrypted C set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svch, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "chbandy", "SvC Chaos (Remix Ver 1.0 by chbandy)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcnd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svcplusd, ROT0, "hack", "SvC Chaos (unknown nd)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcpcbd, svcpcb, neogeo_noslot, dualbios, neogeo_hbmame, svcpcd, ROT0, "bootleg", "SVC Chaos (JAMMA PCB, decrypted C & V)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcplusb, svc, neogeo_noslot, neogeo, neogeo_hbmame, svcplusb, ROT0, "bootleg", "SvC Chaos PLUS (Bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcplusd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svcplusd, ROT0, "hack", "SvC Chaos PLUS (unknown plusd)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcpryu, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Plus (Koryu)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcps2, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "SvC Playstation2 Hack Final 1.02 (EGHT)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcrm, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "SVC REMIX ULTRA (Ver 1.2 by Jason)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcspryu, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Plus (Super Koryu)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/ngwh.cpp b/docs/release/src/hbmame/drivers/ngwh.cpp new file mode 100644 index 00000000000..11370b28f9a --- /dev/null +++ b/docs/release/src/hbmame/drivers/ngwh.cpp @@ -0,0 +1,413 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +// World Heroes hacks + + + +ROM_START( whpb ) /* World Heroes Perfect - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090b.p1", 0x100000, 0x100000, CRC(c31f9562) SHA1(81a7dade46c0fc7241964d957322f768a256e8da) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whpb2 ) /* World Heroes Perfect - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - Gokuu and Neo-Dio have icons) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090b2.p1", 0x100000, 0x100000, CRC(fe3836e4) SHA1(0bca5e144b7de919f693fb32e977e81d5497f752) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whpbh ) /* World Heroes Perfect - Hack by Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - all boss characters have icons) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090bh.p1", 0x100000, 0x100000, CRC(9bd000f2) SHA1(3f3b2cc47a0ef33f2b8e7ba6e6e81ebdff39a54b) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whpbho ) /* [OLD] World Heroes Perfect - (whpbo) - Hack by Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - has bug) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090bho.p1", 0x100000, 0x100000, CRC(341f360f) SHA1(8a52866a5751021d20b8400dfa840e589024a7e9) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whpbho2 ) /* [OLD] World Heroes Perfect - (whpbo2) - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - bug fix) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090bho2.p1", 0x100000, 0x100000, CRC(cbfa58ef) SHA1(87941fbb79c82a4639103cbaec6fd013d180b3e9) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whpeh ) /* World Heroes Perfect - Enhance by Creamymami, Dodowang and Fighters Kim - (Can choose Gokuu, Neo-Dio and Zeus - power hack) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090eh.p1", 0x100000, 0x100000, CRC(8bde8cb8) SHA1(35941fe642ed0e57812788f1f46790a67b4c676c) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whpeho ) /* [OLD] World Heroes Perfect - (whpeho) - Hack by Creamymami, Dodowang and Fighters Kim - (Can choose Gokuu, Neo-Dio and Zeus - power hack) */ + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090eho.p1", 0x100000, 0x100000, CRC(92134471) SHA1(52dc270118e9b3d5ec42b320c8bb778743cf88f5) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whph ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090h.p1", 0x100000, 0x100000, CRC(9bd000f2) SHA1(3f3b2cc47a0ef33f2b8e7ba6e6e81ebdff39a54b) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whphez ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090hez.p1", 0x100000, 0x100000, CRC(d1b90868) SHA1(344fdcac65adafbf086f6ecef0fcda5a8dc03169) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whpsp ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090sp.p1", 0x100000, 0x100000, CRC(e7ea5216) SHA1(7383ecb99249ad3e56faecd033cfeeee498c2f9b) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + +ROM_START( whpss ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "090ss.p1", 0x100000, 0x100000, CRC(9c1a79d5) SHA1(13f924cf08d17205e10c282a9555d03a9e355112) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) + + ROM_REGION( 0x600000, "ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) + + ROM_REGION( 0x1c00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "090ss.c1", 0x0000000, 0x400000, CRC(a56ebf84) SHA1(664bda43b529934a4594a205e578044acface2be) ) + ROM_LOAD16_BYTE( "090ss.c2", 0x0000001, 0x400000, CRC(6d589146) SHA1(d24687310611ce4d61dd2e2743258d9ca8855c03) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + + +ROM_START( wh1bs ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "053bs.p1", 0x000000, 0x080000, CRC(222ef9ea) SHA1(81bdded4fc61b321afc8ec050d192e4384d129cf) ) + ROM_LOAD16_WORD_SWAP( "053-p2.p2", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) ) + + NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) + + NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) + + ROM_REGION( 0x300000, "ymsnd", 0 ) + ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) + ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) + + ROM_REGION( 0x600000, "sprites", 0 ) + ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) + ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) +ROM_END + + +ROM_START( wh2bs ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "057bs.p1", 0x100000, 0x100000, CRC(6e6a0077) SHA1(a0a0eca1aff5dec55f863b1cb1f67bbe4ac3530a) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) ) + + NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) ) + ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) ) + ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) ) + ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) ) + ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) ) + ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) ) + ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) ) +ROM_END + +ROM_START( wh2ey ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "057ey.p1", 0x100000, 0x100000, CRC(07389ed9) SHA1(8c51b9f069a8de49bf313ec9222dddd09c520bfe) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) ) + + NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) ) + ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) ) + + ROM_REGION( 0xc00000, "sprites", 0 ) + ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) ) + ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) ) + ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) ) + ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) ) + ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) ) + ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) ) +ROM_END + +ROM_START( wh2ja ) // World Heroes 2 Jet old set that was in MAME + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "064-p1.p1", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) ) + + NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "064a-c13.c1", 0x000000, 0x400000, CRC(771a6365) SHA1(646bdf3a79819fbca98f513c172b9e9500c073be) ) + ROM_LOAD16_BYTE( "064a-c24.c2", 0x000001, 0x400000, CRC(e7863a05) SHA1(39d34119137216f914b8b8b7b3e622a6c210f130) ) + ROM_LOAD16_BYTE( "064a-c57.c3", 0x800000, 0x400000, CRC(64594ed4) SHA1(982dbb932c0cb2eb9292bf19c463fd618c8180f3) ) + ROM_LOAD16_BYTE( "064a-c68.c4", 0x800001, 0x400000, CRC(6e385398) SHA1(e74a0e72876bff8766152b76e5d94f2958b03cf2) ) +ROM_END + +ROM_START( wh2jb ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "064b.p1", 0x100000, 0x100000, CRC(80ce9674) SHA1(ca081af472a114a3ac0c54b1fd21fe565a45ff22) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) ) + + NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) ) + + ROM_REGION( 0x400000, "ymsnd", 0 ) + ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) ) + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) + + ROM_REGION( 0x1000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "064-c1.c1", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) ) + ROM_LOAD16_BYTE( "064-c2.c2", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) ) + ROM_LOAD16_BYTE( "064-c3.c3", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) + ROM_LOAD16_BYTE( "064-c4.c4", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) + ROM_LOAD16_BYTE( "064-c5.c5", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) + ROM_LOAD16_BYTE( "064-c6.c6", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) + ROM_LOAD16_BYTE( "064-c7.c7", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) + ROM_LOAD16_BYTE( "064-c8.c8", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) +ROM_END + + + +GAME( 1995, whpb, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "World Heroes Perfect (Add Char)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whpb2, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "World Heroes Perfect (Add Char - 2 with Icons)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whpbh, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "World Heroes Perfect (Add Char - All with Icons)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whpbho, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "World Heroes Perfect (Add Char - Older - Has bug)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whpbho2, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "World Heroes Perfect (Add Char - Old - BugFix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whpeh, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang and Fighters Kim", "World Heroes Perfect (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whpeho, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang and Fighters Kim", "World Heroes Perfect (Add Char - Pow hack - Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whph, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "World Heroes Perfect (Boss Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whphez, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zeng_K", "World Heroes Perfect (Boss hack by Zeng_K)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whpsp, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "World Heroes Perfect (Special Boss hack by Yashional)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, whpss, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "World Heroes Perfect (SS v1.0 hack by Eddids (EGHT) 2007-12-25)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, wh1bs, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "World Heroes (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1993, wh2bs, wh2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "World Heroes 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, wh2ey, wh2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "World Heroes 2 (Boss, PPX hack, remixed by ZKW)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wh2ja, wh2j, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007)(ADH-007)(old set)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wh2jb, wh2j, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "0days", "World Heroes 2 Jet (Boss hack by 0days (EGCG))", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/nmk16.cpp b/docs/release/src/hbmame/drivers/nmk16.cpp new file mode 100644 index 00000000000..3fda100e558 --- /dev/null +++ b/docs/release/src/hbmame/drivers/nmk16.cpp @@ -0,0 +1,66 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/nmk16.cpp" + +ROM_START( tdragonp ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code -bitswapped- */ + ROM_LOAD16_BYTE( "91070_68k.8p", 0x00000, 0x20000, CRC(6930fffc) SHA1(571cc735dca654b77cd759b6cc52a74c24d88865) ) + ROM_LOAD16_BYTE( "91070_68k.7p", 0x00001, 0x20000, CRC(c2d90c90) SHA1(d6c3dd955e516e9dc5efbb7aebc6dee9c49a8c98) ) + + ROM_REGION( 0x020000, "fgtile", 0 ) + ROM_LOAD( "91070.6", 0x000000, 0x20000, CRC(fe365920) SHA1(7581931cb95cd5a8ed40e4f5385b533e3d19af22) ) /* 8x8 tiles */ + + ROM_REGION( 0x100000, "bgtile", 0 ) + ROM_LOAD( "91070.5", 0x000000, 0x100000, CRC(d0bde826) SHA1(3b74d5fc88a4a9329e101ee72f393608d327d816) ) /* 16x16 tiles */ + + ROM_REGION( 0x100000, "sprites", 0 ) + ROM_LOAD16_WORD_SWAP( "91070.4", 0x000000, 0x100000, CRC(3eedc2fe) SHA1(9f48986c231a8fbc07f2b39b2017d1e967b2ed3c) ) /* Sprites */ + + ROM_REGION( 0x010000, "audiocpu", 0 ) /* Code for (unknown?) CPU */ + ROM_LOAD( "91070.1", 0x00000, 0x10000, CRC(bf493d74) SHA1(6f8f5eff4b71fb6cabda10075cfa88a3f607859e) ) + + ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */ + ROM_LOAD( "91070.3", 0x00000, 0x20000, CRC(ae6875a8) SHA1(bfdb350b3d3fce2bead1ac60875beafe427765ed) ) + ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ + + ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */ + ROM_LOAD( "91070.2", 0x00000, 0x20000, CRC(ecfea43e) SHA1(d664dfa6698fec8e602523bdae16068f1ff6547b) ) + ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "91070.9", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ + ROM_LOAD( "91070.10", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ +ROM_END + + +ROM_START( tdragon2p ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_WORD_SWAP( "6p.rom", 0x00000, 0x80000, CRC(f99f4bf8) SHA1(34dfc188d94b89efdaa61cfc40af88868d7f22db) ) + + ROM_REGION( 0x30000, "audiocpu", 0 ) /* Z80 code */ + ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) ) + ROM_RELOAD( 0x10000, 0x20000 ) /* banked */ + + ROM_REGION( 0x020000, "fgtile", 0 ) + ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) ) /* 8x8 tiles */ + + ROM_REGION( 0x200000, "bgtile", 0 ) + ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) ) /* 16x16 tiles */ + + ROM_REGION( 0x400000, "sprites", 0 ) + ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */ + ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) ) + + ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */ + ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */ + + ROM_REGION( 0x240000, "oki2", 0 ) /* OKIM6295 samples */ + ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) ) /* all banked */ + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ + ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ +ROM_END + +GAME( 1991, tdragonp, tdragon, tdragon, tdragon, driver_device, 0, ROT270, "Trap15", "Thunder Dragon Practice Mode (9th Jan. 1992 - v1.01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, tdragon2p,tdragon2, tdragon2, tdragon2, driver_device, 0, ROT270, "Trap15", "Thunder Dragon 2 Practice Mode (9th Nov. 1993 - v1.0)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/docs/release/src/hbmame/drivers/pacland.cpp b/docs/release/src/hbmame/drivers/pacland.cpp new file mode 100644 index 00000000000..8107b459342 --- /dev/null +++ b/docs/release/src/hbmame/drivers/pacland.cpp @@ -0,0 +1,109 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/pacland.cpp" + +ROM_START( mariopac ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 128k for code */ + ROM_LOAD( "pl5_01b.bin", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) ) + ROM_LOAD( "pl5_02.bin", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) ) + /* all the following are banked at 0x4000-0x5fff */ + ROM_LOAD( "pl1-3", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) ) + ROM_LOAD( "pl1-4", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) ) + ROM_LOAD( "pl1-5", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) ) + ROM_LOAD( "pl3_06.bin", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) ) + + ROM_REGION( 0x10000, "mcu", 0 ) /* 64k for code */ + ROM_LOAD( "pl1-7", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) ) /* sub program for the mcu */ + ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) ) /* microcontroller */ + + ROM_REGION( 0x02000, "gfx1", 0 ) + ROM_LOAD( "mp_pl2_12.bin",0x00000, 0x2000, CRC(abba0923) SHA1(2286b0d162e5502160895940d0c9637abe5d6d2f) ) /* chars */ + + ROM_REGION( 0x02000, "gfx2", 0 ) + ROM_LOAD( "pl4_13.bin", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "mp_pl1-9", 0x00000, 0x4000, CRC(98439154) SHA1(7bad68705ae3d9fa6e03ad7dc9421cf6063e1669) ) /* sprites */ + ROM_LOAD( "mp_pl1-8", 0x04000, 0x4000, CRC(d0c1f225) SHA1(bcaa68922e49b7257959471641d3c91e505a8d53) ) + ROM_LOAD( "mp_pl1-10", 0x08000, 0x4000, CRC(6005b277) SHA1(acacffe38edfc2d325dc286d182253ee5bb62489) ) + ROM_LOAD( "mp_pl1-11", 0x0c000, 0x4000, CRC(eeed9880) SHA1(e037dd299895db22a88c1d32dda157833b1e8a09) ) + + ROM_REGION( 0x1400, "proms", 0 ) + ROM_LOAD( "pl1-2.bin", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) ) /* red and green component */ + ROM_LOAD( "pl1-1.bin", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) ) /* blue component */ + ROM_LOAD( "pl1-5.bin", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) ) /* foreground lookup table */ + ROM_LOAD( "pl1-4.bin", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) ) /* background lookup table */ + ROM_LOAD( "pl1-3.bin", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) ) /* sprites lookup table */ +ROM_END + +ROM_START( paclandb ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 128k for code */ + ROM_LOAD( "pl5_01b.bin", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) ) + ROM_LOAD( "pl5_02.bin", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) ) + /* all the following are banked at 0x4000-0x5fff */ + ROM_LOAD( "pl1-3", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) ) + ROM_LOAD( "pl1-4", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) ) + ROM_LOAD( "pl1-5", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) ) + ROM_LOAD( "pl3_06.bin", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) ) + + ROM_REGION( 0x10000, "mcu", 0 ) /* 64k for code */ + ROM_LOAD( "pl1-7", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) ) /* sub program for the mcu */ + ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) ) /* microcontroller */ + + ROM_REGION( 0x02000, "gfx1", 0 ) + ROM_LOAD( "pl2_12.bin", 0x00000, 0x2000, CRC(a63c8726) SHA1(b15903fa2267375280af03af0a7157e1b0bcb86d) ) /* chars */ + + ROM_REGION( 0x02000, "gfx2", 0 ) + ROM_LOAD( "pl4_13.bin", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "pl1-9", 0x00000, 0x4000, CRC(f5d5962b) SHA1(8d008a9bc06dc562c241955d9c551647b5c1f4e9) ) /* sprites */ + ROM_LOAD( "pl1-8", 0x04000, 0x4000, CRC(a2ebfa4a) SHA1(4a2a2b43a23a7a46266751415d1bde118143429c) ) + ROM_LOAD( "pl1-10", 0x08000, 0x4000, CRC(c7cf1904) SHA1(7ca8ed20ee32eb8609ac96b4e4fcb3b6027b598a) ) + ROM_LOAD( "pl1-11", 0x0c000, 0x4000, CRC(6621361a) SHA1(4efa40adba803006e86d5e12514983d4132b5efb) ) + + ROM_REGION( 0x1400, "proms", 0 ) + ROM_LOAD( "pl1-2.bin", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) ) /* red and green component */ + ROM_LOAD( "pl1-1.bin", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) ) /* blue component */ + ROM_LOAD( "pl1-5.bin", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) ) /* foreground lookup table */ + ROM_LOAD( "pl1-4.bin", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) ) /* background lookup table */ + ROM_LOAD( "pl1-3.bin", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) ) /* sprites lookup table */ +ROM_END + +ROM_START( paclandd ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 128k for code */ + ROM_LOAD( "pl5_01b.bin", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) ) + ROM_LOAD( "pl5_02.bin", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) ) + /* all the following are banked at 0x4000-0x5fff */ + ROM_LOAD( "pl1-3", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) ) + ROM_LOAD( "pl1-4", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) ) + ROM_LOAD( "pl1-5", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) ) + ROM_LOAD( "pl3_06.bin", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) ) + + ROM_REGION( 0x10000, "mcu", 0 ) /* 64k for code */ + ROM_LOAD( "pl1-7", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) ) /* sub program for the mcu */ + ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) ) /* microcontroller */ + + ROM_REGION( 0x02000, "gfx1", 0 ) + ROM_LOAD( "pl2_12.bin", 0x00000, 0x2000, CRC(a63c8726) SHA1(b15903fa2267375280af03af0a7157e1b0bcb86d) ) /* chars */ + + ROM_REGION( 0x02000, "gfx2", 0 ) + ROM_LOAD( "pl4_13.bin", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "pldd1-9", 0x00000, 0x4000, CRC(3dba9085) SHA1(3ade36e6c04ef40d4dcdf53cc374c600de9dbb75) ) /* sprites */ + ROM_LOAD( "pldd1-8", 0x04000, 0x4000, CRC(7f089223) SHA1(129344647ae4898c6d70f15e96c13eca12a5f6ca) ) + ROM_LOAD( "pldd1-10", 0x08000, 0x4000, CRC(3f4b4d81) SHA1(e6acf8164a9d9fc31a12722e466c4dfded3022fe) ) + ROM_LOAD( "pldd1-11", 0x0c000, 0x4000, CRC(52c2cb37) SHA1(47833d98ccbee1098910778ea1a26f58b485a76a) ) + + ROM_REGION( 0x1400, "proms", 0 ) + ROM_LOAD( "pl1-2.bin", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) ) /* red and green component */ + ROM_LOAD( "pl1-1.bin", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) ) /* blue component */ + ROM_LOAD( "pl1-5.bin", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) ) /* foreground lookup table */ + ROM_LOAD( "pl1-4.bin", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) ) /* background lookup table */ + ROM_LOAD( "pl1-3.bin", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) ) /* sprites lookup table */ +ROM_END + +GAME( 2001, mariopac, pacland, pacland, pacland, driver_device, 0, ROT0, "Mark", "Mario in Pac-Land", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, paclandb, pacland, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (Benelux Edition)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, paclandd, pacland, pacland, pacland, driver_device, 0, ROT0, "Blue Justice", "Pac-Land", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/pacman.cpp b/docs/release/src/hbmame/drivers/pacman.cpp new file mode 100644 index 00000000000..8f170ebd0a3 --- /dev/null +++ b/docs/release/src/hbmame/drivers/pacman.cpp @@ -0,0 +1,3677 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/******************************************************* + Puckman and Pacman + + Puckman is made by Namco and has these ghost names: + * Normal: + ** Oikake - Akabei + ** Machibuse - Pinky + ** Kimagure - Aosuke + ** Otoboke - Guzuta + * Alternate: + ** Urchin - Macky + ** Romp - Micky + ** Stylist - Mucky + ** Crybaby - Mocky + + Clones include Hangly Man, and Newpuck-X + + Pac-Man is made by Midway and has these ghost names: + * Normal: + ** Shadow - Blinky + ** Speedy - Pinky + ** Bashful - Inky + ** Pokey - Clyde + * Alternate: + ** AAAAAAAA - BBBBBBB + ** CCCCCCCC - DDDDDDD + ** EEEEEEEE - FFFFFFF + ** GGGGGGGG - HHHHHHH + + Clones include most hacks + + See the MAME source code for hardware information. +********************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "pacman.h" +#include "sound/namco.h" +#include "machine/nvram.h" + + + +/************************************* + * + * Constants + * + *************************************/ + +#define MASTER_CLOCK (XTAL_18_432MHz) + +#define PIXEL_CLOCK (MASTER_CLOCK/3) + +/* H counts from 128->511, HBLANK starts at 144 and ends at 240 */ +#define HTOTAL (384) +#define HBEND (0) /*(96+16)*/ +#define HBSTART (288) /*(16)*/ + +#define VTOTAL (264) +#define VBEND (0) /*(16)*/ +#define VBSTART (224) /*(224+16)*/ + + + +/************************************* + * + * Machine init + * + *************************************/ + + +/************************************* + * + * Interrupts + * + *************************************/ + +WRITE8_MEMBER(pacman_state::irq_mask_w) +{ + m_irq_mask = data & 1; +} + +WRITE8_MEMBER(pacman_state::pacman_interrupt_vector_w) +{ + m_maincpu->set_input_line_vector(0, data); + m_maincpu->set_input_line(0, CLEAR_LINE); +} + +/* bit0 flags if memory poke already done */ + +INTERRUPT_GEN_MEMBER( pacman_state::vblank_irq ) +{ + UINT8 cheat_exist = read_safe(ioport("FAKE"),120); + + /* always signal a normal VBLANK */ + if(m_irq_mask) + device.execute().set_input_line(0, HOLD_LINE); + + if (cheat_exist != 120) + { + UINT8 cheating = ((cheat_exist & 7) > 2); /* are we cheating? */ + + if (cheating != (m_speedcheat & 1)) /* if status just changed, alter program bytes */ + { + UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); + m_speedcheat = (m_speedcheat & 2) | cheating; + + if (cheating) /* activate the cheat */ + { + if (RAM[0x180b] == 0xbe) RAM[0x180b] = 1; /* pacman */ + else + if (RAM[0x182d] == 0xbe) RAM[0x182d] = 1; /* pacplus */ + } + else /* remove the cheat */ + { + if (RAM[0x180b] == 1) RAM[0x180b] = 0xbe; /* pacman */ + else + if (RAM[0x182d] == 1) RAM[0x182d] = 0xbe; /* pacplus */ + } + } + } +} + + +/************************************* + * + * LEDs/coin counters + * + *************************************/ + +WRITE8_MEMBER(pacman_state::pacman_leds_w) +{ + output().set_led_value(offset, BIT(data, 0)); +} + + +WRITE8_MEMBER(pacman_state::pacman_coin_counter_w) +{ + machine().bookkeeping().coin_counter_w(offset, BIT(data, 0)); +} + + +WRITE8_MEMBER(pacman_state::pacman_coin_lockout_global_w) +{ + machine().bookkeeping().coin_lockout_global_w(~data & 1); +} + + +READ8_MEMBER( pacman_state::pacman_read_nop ) +{ + return 0xbf; +} + +/************************************* + * + * Main CPU memory handlers + * + *************************************/ + +static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8, pacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected at the CPU */ + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x2000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x2000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x2000) AM_READ(pacman_read_nop) + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x2000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x2000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x5080) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") +ADDRESS_MAP_END + +static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) + AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5002, 0x5002) AM_MIRROR(0x8000) AM_WRITENOP + AM_RANGE(0x5003, 0x5003) AM_MIRROR(0x8000) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5004, 0x5005) AM_MIRROR(0x8000) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_MIRROR(0x8000) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) + AM_RANGE(0x5007, 0x5007) AM_MIRROR(0x8000) AM_WRITE(pacman_coin_counter_w) + AM_RANGE(0x5040, 0x505f) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0x8000) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x5080) AM_MIRROR(0x8000) AM_WRITENOP + AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0") + AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1") + AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1") + AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2") + AM_RANGE(0x8000, 0xbfff) AM_ROM + AM_RANGE(0xff00, 0xffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( patched_opcodes_map, AS_DECRYPTED_OPCODES, 8, pacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM AM_SHARE("patched_opcodes") +ADDRESS_MAP_END +/************************************* + * + * Main CPU port handlers + * + *************************************/ + +static ADDRESS_MAP_START( writeport, AS_IO, 8, pacman_state ) + AM_RANGE(0x0000, 0xffff) AM_WRITE(pacman_interrupt_vector_w) +ADDRESS_MAP_END + +/************************************* + * + * Port definitions + * + *************************************/ + +/* No alternate ghost names, no fake input port - for mspacman and mspacatk */ +INPUT_PORTS_START( mspacpls ) + PORT_START ("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + /* Press this while playing pacman to instantly finish the level - HBMAME */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) + + PORT_START ("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* Also invincibility when playing */ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) /* Also speed-up when playing */ + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1") + PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + + PORT_START ("DSW1") + PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3") + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:4,5") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x04, "2" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPSETTING( 0x0c, "5" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:6,7") + PORT_DIPSETTING( 0x00, "10000" ) + PORT_DIPSETTING( 0x10, "15000" ) + PORT_DIPSETTING( 0x20, "20000" ) + PORT_DIPSETTING( 0x30, DEF_STR( None ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:8") + PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START ("DSW2") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) +INPUT_PORTS_END + +/* No alternate ghost names */ +INPUT_PORTS_START( mspacman ) + PORT_INCLUDE( mspacpls ) + + PORT_START ("FAKE") + /* This fake input port is used to get the status of the fire button */ + /* and activate the speedup cheat if it is. */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) + PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" ) + PORT_DIPSETTING( 0x00, "Disabled" ) + PORT_DIPSETTING( 0x02, "Enabled with Button" ) + PORT_DIPSETTING( 0x04, "Enabled Always" ) +INPUT_PORTS_END + + +/* No fake dip */ +INPUT_PORTS_START( pacman0 ) + PORT_INCLUDE( mspacpls ) + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) PORT_DIPLOCATION("SW1:9") + PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) ) +INPUT_PORTS_END + + +/* for newpuc2, pheartsb - no alternate ghost names, and the bonuses are 10k higher */ +INPUT_PORTS_START( newpuc2 ) + PORT_INCLUDE( mspacman ) + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:6,7") + PORT_DIPSETTING( 0x00, "20000" ) + PORT_DIPSETTING( 0x10, "25000" ) + PORT_DIPSETTING( 0x20, "30000" ) + PORT_DIPSETTING( 0x30, DEF_STR( None ) ) +INPUT_PORTS_END + + +/* for newpuc2b, nwpuc2b - no alternate ghost names, and the bonuses are a lot higher */ +INPUT_PORTS_START( newpuc2b ) + PORT_INCLUDE( mspacman ) + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:6,7") + PORT_DIPSETTING( 0x00, "30000" ) + PORT_DIPSETTING( 0x10, "60000" ) + PORT_DIPSETTING( 0x20, "90000" ) + PORT_DIPSETTING( 0x30, DEF_STR( None ) ) +INPUT_PORTS_END + +/* for spuckman - alternate ghost names, and the bonuses are 10k higher */ +INPUT_PORTS_START( spuckman ) + PORT_INCLUDE( newpuc2 ) + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) PORT_DIPLOCATION("SW1:9") + PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) ) +INPUT_PORTS_END + +/* All options available */ +INPUT_PORTS_START( pacman ) + PORT_INCLUDE( pacman0 ) + + PORT_START ("FAKE") + /* This fake input port is used to get the status of the fire button */ + /* and activate the speedup cheat if it is. */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) + PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" ) + PORT_DIPSETTING( 0x00, "Disabled" ) + PORT_DIPSETTING( 0x02, "Enabled with Button" ) + PORT_DIPSETTING( 0x04, "Enabled Always" ) +INPUT_PORTS_END + + +/************************************* + * + * Graphics layouts + * + *************************************/ + +static const gfx_layout tilelayout = +{ + 8,8, /* 8*8 characters */ + RGN_FRAC(1,2), /* 256 characters */ + 2, /* 2 bits per pixel */ + { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */ + { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, /* bits are packed in groups of four */ + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, + 16*8 /* every char takes 16 bytes */ +}; + + +static const gfx_layout spritelayout = +{ + 16,16, /* 16*16 sprites */ + RGN_FRAC(1,2), /* 64 sprites */ + 2, /* 2 bits per pixel */ + { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */ + { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 }, + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, + 64*8 /* every sprite takes 64 bytes */ +}; + + +static gfx_layout xtilelayout = +{ + 16,16, /* 16*16 characters */ + RGN_FRAC(1,2), /* 256 characters */ + 2, /* 2 bits per pixel */ + { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */ + { 0, 1, 2, 3, 128, 129, 130, 131, 256, 257, 258, 259, 384, 385, 386, 387 }, + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, + 64*8 /* every char takes 64 bytes */ +}; + + +static gfx_layout xspritelayout = +{ + 32,32, /* 32*32 sprites */ + RGN_FRAC(1,2), /* 64 sprites */ + 2, /* 2 bits per pixel */ + { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */ + { 0, 1, 2, 3, 256, 257, 258, 259, 512, 513, 514, 515, 768, 769, 770, 771, + 1024+0, 1024+1, 1024+2, 1024+3, 1024+256, 1024+257, 1024+258, 1024+259, + 1024+512, 1024+513, 1024+514, 1024+515, 1024+768, 1024+769, 1024+770, 1024+771 }, + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8, + 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8, 24*8, 25*8, 26*8, 27*8, 28*8, 29*8, 30*8, 31*8 }, + 256*8 /* every sprite takes 256 bytes */ +}; + + +static GFXDECODE_START( pacman ) + GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 32 ) + GFXDECODE_ENTRY( "gfx1", 0x1000, spritelayout, 0, 32 ) +GFXDECODE_END + +static GFXDECODE_START( pacmanx ) + GFXDECODE_ENTRY( "gfx1", 0x0000, xtilelayout, 0, 32 ) + GFXDECODE_ENTRY( "gfx1", 0x4000, xspritelayout, 0, 32 ) +GFXDECODE_END + + + +/************************************* + * + * Machine drivers + * + *************************************/ + +static MACHINE_CONFIG_START( pacman, pacman_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) + MCFG_CPU_PROGRAM_MAP(pacman_map) + MCFG_CPU_IO_MAP(writeport) + MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq) + MCFG_WATCHDOG_ADD("watchdog") + MCFG_WATCHDOG_VBLANK_INIT("screen", 16) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) + MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman) + MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman) + MCFG_SCREEN_PALETTE("palette") + MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*4) + MCFG_PALETTE_INDIRECT_ENTRIES(32) + MCFG_PALETTE_INIT_OWNER(pacman_state,pacman) + MCFG_GFXDECODE_ADD("gfxdecode", "palette", pacman) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("namco", NAMCO, MASTER_CLOCK/6/32) + MCFG_NAMCO_AUDIO_VOICES(3) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( pacmanx, pacman ) + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK<<2, HTOTAL<<1, HBEND<<1, HBSTART<<1, VTOTAL<<1, VBEND<<1, VBSTART<<1) + MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacmanx) + MCFG_VIDEO_START_OVERRIDE(pacman_state,pacmanx) + MCFG_GFXDECODE_MODIFY("gfxdecode", pacmanx) +MACHINE_CONFIG_END + + +static MACHINE_CONFIG_DERIVED( woodpek, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(woodpek_map) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( pacmanp, pacman ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_DECRYPTED_OPCODES_MAP(patched_opcodes_map) +MACHINE_CONFIG_END + +/************************************* + * + * Driver initialization + * + *************************************/ + +static UINT8 hbmame_pacplus_decode(offs_t addr, UINT8 e) +{ + static const unsigned char swap_xor_table[6][9] = + { + { 7,6,5,4,3,2,1,0, 0x00 }, + { 7,6,5,4,3,2,1,0, 0x28 }, + { 6,1,3,2,5,7,0,4, 0x96 }, + { 6,1,5,2,3,7,0,4, 0xbe }, + { 0,3,7,6,4,2,1,5, 0xd5 }, + { 0,3,4,6,7,2,1,5, 0xdd } + }; + + static const int picktable[32] = + { + 0,2,4,2,4,0,4,2,2,0,2,2,4,0,4,2, + 2,2,4,0,4,2,4,0,0,4,0,4,4,2,4,2 + }; + + unsigned int method = 0; + const unsigned char *tbl; + + + /* pick method from bits 0 2 5 7 9 of the address */ + method = picktable[ + (addr & 0x001) | + ((addr & 0x004) >> 1) | + ((addr & 0x020) >> 3) | + ((addr & 0x080) >> 4) | + ((addr & 0x200) >> 5)]; + + /* switch method if bit 11 of the address is set */ + if ((addr & 0x800) == 0x800) + method ^= 1; + + tbl = swap_xor_table[method]; + return BITSWAP8(e,tbl[0],tbl[1],tbl[2],tbl[3],tbl[4],tbl[5],tbl[6],tbl[7]) ^ tbl[8]; +} + +DRIVER_INIT_MEMBER(pacman_state,pacplus) +{ + offs_t i; + + /* CPU ROMs */ + UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); + + for (i = 0; i < 0x4000; i++) + RAM[i] = hbmame_pacplus_decode(i,RAM[i]); +} + +void pacman_state::eyes_decode(UINT8 *data) +{ + int j; + UINT8 swapbuffer[8]; + + for (j = 0; j < 8; j++) + swapbuffer[j] = data[BITSWAP16(j,15,14,13,12,11,10,9,8,7,6,5,4,3,0,1,2)]; + + for (j = 0; j < 8; j++) + data[j] = BITSWAP8(swapbuffer[j],7,4,5,6,3,2,1,0); +} + +DRIVER_INIT_MEMBER(pacman_state,eyes) +{ + int i; + + /* CPU ROMs */ + + /* Data lines D3 and D5 swapped */ + UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); + for (i = 0; i < 0x4000; i++) + RAM[i] = BITSWAP8(RAM[i],7,6,3,4,5,2,1,0); + + + /* Graphics ROMs */ + + /* Data lines D4 and D6 and address lines A0 and A2 are swapped */ + RAM = machine().root_device().memregion("gfx1")->base(); + for (i = 0;i < machine().root_device().memregion("gfx1")->bytes();i += 8) + eyes_decode(&RAM[i]); +} + + +/************************************* + * + * ROM definitions + * + *************************************/ + +#define PACMAN_SOUND_PROMS \ + ROM_REGION( 0x0200, "namco", 0 ) \ + ROM_LOAD( "82s126.1m", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) \ + ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) \ + +#define PACMAN_PROMS \ + ROM_REGION( 0x0120, "proms", 0 ) \ + ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) \ + ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) ) \ + PACMAN_SOUND_PROMS \ + +#define PACPLUS_PROMS \ + ROM_REGION( 0x0120, "proms", 0 ) \ + ROM_LOAD( "pacplus.7f", 0x0000, 0x0020, CRC(063dd53a) SHA1(2e43b46ec3b101d1babab87cdaddfa944116ec06) ) \ + ROM_LOAD( "pacplus.4a", 0x0020, 0x0100, CRC(e271a166) SHA1(cf006536215a7a1d488eebc1d8a2e2a8134ce1a6) ) \ + PACMAN_SOUND_PROMS \ + +ROM_START( abortman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "abortman.5e", 0x0000, 0x1000, CRC(1c4ef687) SHA1(0adea2380f8fd43ea90a4460eea9be2a17e7a825) ) + ROM_LOAD( "abortman.5f", 0x1000, 0x1000, CRC(38a22ac4) SHA1(5503132e4d1ece4a3d71ad3635a60ec151bc0417) ) + + PACMAN_PROMS +ROM_END + +ROM_START( baby2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "baby2.6j", 0x3000, 0x1000, CRC(260b87b8) SHA1(cf4ace417b7b640678f809c92f690cebc977dd68) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "baby2.5e", 0x0000, 0x1000, CRC(6f7d8d57) SHA1(2e786c5a61168455d31b7c45c97891f65243a40b) ) + ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) ) + + PACMAN_PROMS +ROM_END + +ROM_START( baby3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "baby3.6j", 0x3000, 0x1000, CRC(6c0e22c8) SHA1(bcc684d7f5fb7fe73d3dcfdd80999242789dc9c9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "baby3.5e", 0x0000, 0x1000, CRC(22174b65) SHA1(ed90d2c515e2446b369861e20ed34987f10a3dc8) ) + ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) ) + + PACMAN_PROMS +ROM_END + +ROM_START( baby4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "baby4.6j", 0x3000, 0x1000, CRC(f8cd7ebb) SHA1(c7b8e690e96f9b863d31caddc81076d556058671) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "baby3.5e", 0x0000, 0x1000, CRC(22174b65) SHA1(ed90d2c515e2446b369861e20ed34987f10a3dc8) ) + ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) ) + + PACMAN_PROMS +ROM_END + +ROM_START( brakman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "brakman.6j", 0x3000, 0x1000, CRC(2d2af2e5) SHA1(8355f30b106e53499d3c1e1174aee6572869b428) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "brakman.5e", 0x0000, 0x1000, CRC(a004abe7) SHA1(c2c8d871b17c9a1f8902f8ec3e46e0991e747f45) ) + ROM_LOAD( "brakman.5f", 0x1000, 0x1000, CRC(30ed6264) SHA1(5bc2753aa6f2e49f6c1ce5810cf561d27ecb38e6) ) + + PACMAN_PROMS +ROM_END + +ROM_START( bucaneer ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) ) + ROM_LOAD( "bucaneer.6k", 0x3000, 0x1000, CRC(c4d9169a) SHA1(f34a51d9fa90739214ab9e837b2602c992a73576) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "bucaneer.5e", 0x0000, 0x0800, CRC(4060c077) SHA1(78d4aa5243246f73533fc0886438dc1fa6f7ebe5) ) + ROM_LOAD( "bucaneer.5h", 0x0800, 0x0800, CRC(e3861283) SHA1(61cf8ed24902910e98438d9e2e2745f226ad2a13) ) + ROM_LOAD( "bucaneer.5f", 0x1000, 0x0800, CRC(09f66dec) SHA1(2d3649341fed19bac15ec274f7d747de46a3edb2) ) + ROM_LOAD( "bucaneer.5j", 0x1800, 0x0800, CRC(653314e7) SHA1(c466a421917b3502e9115ebda1b2d11f7f586de8) ) + /* cannot do the "mario" trick here because bucco does odd things when going up */ + + PACMAN_PROMS +ROM_END + +ROM_START( caterpil ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "caterpil.6e", 0x0000, 0x1000, CRC(b53c5650) SHA1(54f1fee2494cfc0452051a6f134c5c3b691b4ffb) ) + ROM_LOAD( "caterpil.6f", 0x1000, 0x1000, CRC(53845efb) SHA1(e6db734a7a806aead30422de4073511da55a17f1) ) + ROM_LOAD( "caterpil.6h", 0x2000, 0x1000, CRC(a474357e) SHA1(0fb93ca3364b5955428bc59e2f6d9f186182a280) ) + ROM_LOAD( "caterpil.6j", 0x3000, 0x1000, CRC(5df0ea3b) SHA1(dce379bb4cf5fa7c253cc16702360cbc3b637f37) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "caterpil.5e", 0x0000, 0x1000, CRC(0387907d) SHA1(014745c480ee4b81c161cfa7a011df673059a1a8) ) + ROM_LOAD( "caterpil.5f", 0x1000, 0x1000, CRC(aa450714) SHA1(8a888ce6573623d15913ff297a027d4056eb2875) ) + + PACMAN_PROMS +ROM_END + +ROM_START( chthang ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( chtpac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( chtpac3d ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "chtpac3d.6f", 0x1000, 0x1000, CRC(fe975805) SHA1(a213628c19d8998960c45f756d865dfce404ab57) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman3d.6j", 0x3000, 0x1000, CRC(959e930e) SHA1(0ef24017be05ddf85248c4d00f0e21cbf658f78c) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman3d.5e", 0x0000, 0x1000, CRC(aa203d45) SHA1(7d2fb9bc8718601efc33d2469452a08018167e60) ) + ROM_LOAD( "pacman3d.5f", 0x1000, 0x1000, CRC(d1830540) SHA1(5d276774997e3be8fc9c21d55562288acd1cffcc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( chtpman2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) ) + ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) ) + ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( chtpop ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) ) + + PACMAN_PROMS +ROM_END + +ROM_START( chtpuck ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) ) + ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) ) + ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( crazypac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "crazypac.6j", 0x3000, 0x1000, CRC(9f754a51) SHA1(447d95f90c6481911189173f95dbd5ea23467f67) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ctrpllrp ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) ) + ROM_LOAD( "ctrpllrp.6k", 0x0800, 0x0800, CRC(f39846d3) SHA1(bc1137a45898210523cf8da1e6a2425e7c322884) ) + ROM_LOAD( "ctrpllrp.6f", 0x1000, 0x0800, CRC(afa149a8) SHA1(207b842854ac9e015e12a2dae41105438cda1df9) ) + ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) ) + ROM_LOAD( "ctrpllrp.6h", 0x2000, 0x0800, CRC(6bb282a1) SHA1(a96f25dc0f49ebe7e528e3297a112d778c6c3030) ) + ROM_LOAD( "ctrpllrp.6n", 0x2800, 0x0800, CRC(fa2140f5) SHA1(123d31e653e8af78c6153702eca2e136c427ed64) ) + ROM_LOAD( "ctrpllrp.6j", 0x3000, 0x0800, CRC(86c91e0e) SHA1(52af6a3af5b1363859f790470ca5860ef2a08566) ) + ROM_LOAD( "ctrpllrp.6p", 0x3800, 0x0800, CRC(3d28134e) SHA1(45a257a0aca74e2ab36dd70097220d8be29cc87b) ) + + ROM_REGION( 0x2000, "gfx1" , 0) + ROM_LOAD( "ctrpllrp.5e", 0x0000, 0x0800, CRC(1c4617be) SHA1(2b2b10f1256b4612e3e01ed1c8e2d7ccb6989f5d) ) + ROM_LOAD( "ctrpllrp.5h", 0x0800, 0x0800, CRC(46f72fef) SHA1(daf334c78fdb73d43d524b733b763b290c602ae2) ) + ROM_LOAD( "ctrpllrp.5f", 0x1000, 0x0800, CRC(ba9ec199) SHA1(626ab2eedf4c8d307dfad3b8863a67f8c34dda97) ) + ROM_LOAD( "ctrpllrp.5j", 0x1800, 0x0800, CRC(41c09655) SHA1(cc639e660443b9dcb33f9aefe9af5d332591c466) ) + + PACMAN_PROMS +ROM_END + +ROM_START( dizzy ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "dizzy.6j", 0x3000, 0x1000, CRC(bf05bf15) SHA1(9a440a7a67731553269ad72dc2340de1fb9a89a8) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "dizzy.5e", 0x0000, 0x1000, CRC(f999a8d9) SHA1(4feecc8f06ea9149751f0f97828babca1bdf3fd4) ) + ROM_LOAD( "dizzy.5f", 0x1000, 0x1000, CRC(7cb7b9b1) SHA1(3bd09964a2d49c65a3619ddfc3635066a7097328) ) + + PACMAN_PROMS +ROM_END + +ROM_START( eltonpac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "eltonpac.5e", 0x0000, 0x1000, CRC(9c093e5b) SHA1(bfdd082a6f1e0819aeda2601f06dff90cb8e8f3f) ) + ROM_LOAD( "eltonpac.5f", 0x1000, 0x1000, CRC(c2825641) SHA1(4ea373b18ec1fc7325f33dbe9f44ee93ad6f6cb4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( europac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "europac.6j", 0x3000, 0x1000, CRC(a4e82007) SHA1(577b44661de47dcffac7c06e7f9fa1e5d4e085ed) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "europac.5e", 0x0000, 0x1000, CRC(00208da4) SHA1(a7ef38f2c133681344d67634f8a7362f6f0712b3) ) + ROM_LOAD( "europac.5f", 0x1000, 0x1000, CRC(0d36dabf) SHA1(50572528e230a37a413cdc9e2bd7f2ea76fffa09) ) + + PACMAN_PROMS +ROM_END + +ROM_START( fasthang ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "fasthang.6f", 0x1000, 0x1000, CRC(1b1014bc) SHA1(c7ff86832ccd207ce8505291ae309ee0240d0586) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( fastpop ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) ) + + PACMAN_PROMS +ROM_END + +ROM_START( fastpuck ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) ) + ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) ) + ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( fpnleash ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "punleash.1", 0x0000, 0x1000, CRC(eddb20e7) SHA1(07f6cabac3c59c2e3f522da877e845b3ceb2cffb) ) + ROM_LOAD( "punleash.2", 0x1000, 0x1000, CRC(57fe8b4d) SHA1(629800fe793b53c27ee8c84a2e49caf7fe056f28) ) + ROM_LOAD( "punleash.3", 0x2000, 0x1000, CRC(94c63bb1) SHA1(872dbca70b45285dccfd0e24cb50225a5c3ac005) ) + ROM_LOAD( "punleash.4", 0x3000, 0x1000, CRC(fe7734d5) SHA1(f246baab82ea8e9b3cfd3dc5911445ab08223c1f) ) + ROM_LOAD( "punleash.5", 0x8000, 0x1000, CRC(ef155ffb) SHA1(c5bcd57c2a336fa8a018b192b8542954271f1bac) ) + ROM_LOAD( "punleash.6", 0x9000, 0x1000, CRC(70d15899) SHA1(9a7cff5811b591211eb23cee125fd77263f8d4fe) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "fpnleash.5e", 0x0000, 0x1000, CRC(1f69d1d0) SHA1(8f3834358a074d0cb6c1d56e3b0e623193f8b9ec) ) + ROM_LOAD( "punleash.5f", 0x1000, 0x1000, CRC(98d3d364) SHA1(f8023d1772d377d090a9bfebf194bbbce8643f1d) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "punleash.7f", 0x0000, 0x0020, CRC(357c2523) SHA1(f0c4cea06b17932cc15f6db2971406eaba3558b2) ) + ROM_LOAD( "punleash.4a", 0x0020, 0x0100, CRC(5ff3b85a) SHA1(6b01b9c9302ab41fe83c140c3ff217d1d66773dd) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( fstpman2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) ) + ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) ) + ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) ) + + ROM_REGION( 0x2000, "gfx1" , 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hangly ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hangly2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) ) + ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly2.6j", 0x3000, 0x0800, CRC(51305374) SHA1(6197b606a0eedb11135d9f4f7a89aecc23fb2d33) ) + ROM_LOAD( "hangly2.6p", 0x3800, 0x0800, CRC(427c9d4d) SHA1(917bc3d571cbdd24d88327ecabfb5b3f6d39af0a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmanh.5e", 0x0000, 0x1000, CRC(299fb17a) SHA1(ad97adc2122482a9018bacd137df9d8f409ddf85) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hangly3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) ) + ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) ) + ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) ) + ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) ) + ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) ) + ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) ) + ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) ) + ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "hangly3.5e", 0x0000, 0x0800, CRC(5f4be3cc) SHA1(eeb0e1e44549b99eab481d9ac016b4359e19fe30) ) + ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) ) + ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) ) + ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hanglyad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "hanglyad.5e", 0x0000, 0x1000, CRC(93fd3682) SHA1(792ddb541aeab304b5facfcf929c3bba18150346) ) + ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hanglyx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hangly2x ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) ) + ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly2.6j", 0x3000, 0x0800, CRC(51305374) SHA1(6197b606a0eedb11135d9f4f7a89aecc23fb2d33) ) + ROM_LOAD( "hangly2.6p", 0x3800, 0x0800, CRC(427c9d4d) SHA1(917bc3d571cbdd24d88327ecabfb5b3f6d39af0a) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hangly3x ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) ) + ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) ) + ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) ) + ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) ) + ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) ) + ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) ) + ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) ) + ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "hangly3x.5e", 0x0000, 0x4000, CRC(54abb087) SHA1(a57b59325172902c3fae57c5a23e588d5ac7b8ca) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hearts ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "hearts.5e", 0x0000, 0x1000, CRC(5be0a4e4) SHA1(7314e670c81debe4ae19bb5ff4da5718a63ef084) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hellowp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hellowp.6e", 0x0000, 0x00f3, CRC(699152c6) SHA1(cf8ec6a969177146ccc6155d896b693afbb70dd8) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hm1000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) ) + ROM_LOAD( "pm1000.5f", 0x1000, 0x1000, CRC(fd06d923) SHA1(a9d61bdcb6841bf07ce8ad08e1be2cf5ef349129) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hm2000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) ) + ROM_LOAD( "pm2000.5f", 0x1000, 0x1000, CRC(a2b31528) SHA1(69f1c4b34e581c0e6d75b9726cbefa08f8a97fdb) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hmba5000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) ) + ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hmba7000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) ) + ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( hmbabymz ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmbamaz.5e", 0x0000, 0x1000, CRC(9a8cd8a1) SHA1(653d3c900b0be5e7ffe424207419bf86229b8c48) ) + ROM_LOAD( "hmbabymz.5f", 0x1000, 0x1000, CRC(f0bd55bd) SHA1(310a375e3b3ec2766399418ce30233cc2263961e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hmbluep ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) ) + ROM_LOAD( "hmbluep.5f", 0x1000, 0x1000, CRC(ceb721be) SHA1(7eb60764bb7f9aa63a9f2a9a3052c2b988f5a530) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hmgrenp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmgrenp.5e", 0x0000, 0x1000, CRC(5807a438) SHA1(8f4160627948747e92c3c5dc386068e4561fd9aa) ) + ROM_LOAD( "hmgrenp.5f", 0x1000, 0x1000, CRC(1fcc0cf2) SHA1(8920525a7fccdc3fea2ee52687b4881ca84ebaad) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( hmhearts ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) ) + ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) ) + ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) ) + ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) ) + ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) ) + ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) ) + ROM_LOAD( "hmhearts.6j", 0x3000, 0x0800, CRC(603b70b7) SHA1(a8e408e33fb16f0879793d416c3074dc48c875db) ) + ROM_LOAD( "hmhearts.6p", 0x3800, 0x0800, CRC(71293b1f) SHA1(b507a74866d34ecf0e6d32c91f9b5655817f6c3f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) ) + ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) ) + ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) ) + ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hmpopey ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) ) + + PACMAN_PROMS +ROM_END + +ROM_START( hmplus ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) ) + ROM_LOAD( "hmplus.5f", 0x1000, 0x1000, CRC(7a444bda) SHA1(71f93790843482d9389c6d66a7ee5196119185fb) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( homercid ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "homercid.6e", 0x0000, 0x1041, CRC(2768e80e) SHA1(aaf78f4a1bea4aba3e44275ccfbc2ee641a3b8ff) ) + ROM_LOAD( "homercid.6f", 0x1000, 0x1000, CRC(3858d8b7) SHA1(44560196ca888a82669d94687c964373fd0ffc4d) ) + ROM_LOAD( "homercid.6h", 0x2000, 0x1003, CRC(d61413d0) SHA1(a5ea1fdc50e2d185440e38a01837a6c5a5b89484) ) + ROM_LOAD( "homercid.6j", 0x3000, 0x1003, CRC(e8b53076) SHA1(c8fe2c2c637a87356a95176bc333ca28f63ae00a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "homercid.5e", 0x0000, 0x1000, CRC(4879edc5) SHA1(abde239a818a7025e629e59490479da700d70538) ) + ROM_LOAD( "homercid.5f", 0x1000, 0x1000, CRC(475e51c9) SHA1(478d1907f448f40f50b1b2ca1ddabc5b818e7003) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "homercid.7f", 0x0000, 0x0020, CRC(2b7e868a) SHA1(28976b3b7a2ea112da1d7af0366090f8a172dbb6) ) + ROM_LOAD( "homercid.4a", 0x0020, 0x0100, CRC(9717a6be) SHA1(00497d00c45d48570de0ab6ca8fea42cdb38eb85) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( jacman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "jacman.6j", 0x3000, 0x1000, CRC(1f52ef8b) SHA1(0a803352a964de9567bc314f8ace1c612082e3d0) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "jacman.5e", 0x0000, 0x1000, CRC(809bd73e) SHA1(81989a21d089eb76297926905729efcd69abeb87) ) + ROM_LOAD( "jacman.5f", 0x1000, 0x1000, CRC(0509d3e6) SHA1(e589543b9a2f1c81115c03b4b88096ac84826e62) ) + + PACMAN_PROMS +ROM_END + +ROM_START( joyman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) ) + ROM_LOAD( "joyman.6k", 0x0800, 0x0800, CRC(ab9c8f29) SHA1(3753b8609c30d85d89acf745cf9303b77be440fd) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "joyman.6m", 0x1800, 0x0800, CRC(b3c8d32e) SHA1(8b336fca1300820308cd5c4efc60bf2ba4199302) ) + ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) ) + ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) ) + ROM_LOAD( "joyman.6j", 0x3000, 0x0800, CRC(00b553f8) SHA1(57f2e4a6da9f00935fead447b2123a8b95e5d672) ) + ROM_LOAD( "joyman.6p", 0x3800, 0x0800, CRC(5d5ce992) SHA1(ced7ed39cfc7ec7b2c0459e275577976109ee82f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "joyman.5e", 0x0000, 0x0800, CRC(39b557bc) SHA1(0f602ec84cb25fced89699e430b95b5ae93c83bd) ) + ROM_LOAD( "joyman.5h", 0x0800, 0x0800, CRC(33e0289e) SHA1(c1b910bdc61e560a8c34298deb11401f718e7330) ) + ROM_LOAD( "joyman.5f", 0x1000, 0x0800, CRC(338771a6) SHA1(7cd68cc428986255d0de29aae894900519e7fda5) ) + ROM_LOAD( "joyman.5j", 0x1800, 0x0800, CRC(f4f0add5) SHA1(d71c54ef55a755ec1316623d183b4f615ef7c055) ) + + PACMAN_PROMS +ROM_END + +/* No gfx roms and no proms included. Using puckman ones. Dumped by Andy Welburn. */ +ROM_START( jpmmunch ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) ) + ROM_LOAD( "jpmmunch.6k", 0x0800, 0x0800, CRC(afeca2f1) SHA1(1e6d6c75eeb3a354ce2dc88da62caf9e7d53d0cb) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "puckman.6m", 0x1800, 0x0800, CRC(d3e8914c) SHA1(c2f00e1773c6864435f29c8b7f44f2ef85d227d3) ) + ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) ) + ROM_LOAD( "jpmmunch.6n", 0x2800, 0x0800, CRC(93f344c5) SHA1(987c7fa18a774a47c045fa1dc7dff37457cb8983) ) + ROM_LOAD( "jpmmunch.6j", 0x3000, 0x0800, CRC(258580a2) SHA1(c594329963215971dba7cd857dfde5323f610dba) ) + ROM_LOAD( "jpmmunch.6p", 0x3800, 0x0800, CRC(b4d7ee8c) SHA1(38dfea4443f13c15ed17e0eb8f7ca24ce14d6ca8) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) ) + ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) ) + ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) ) + ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) ) + + PACMAN_PROMS +ROM_END + +ROM_START( mazeman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "mazeman.6f", 0x1000, 0x1000, CRC(77e44852) SHA1(01c2e54cf9adc3bd92ab02eaa471638d8f17754d) ) + ROM_LOAD( "mazeman.6h", 0x2000, 0x1000, CRC(6d16a528) SHA1(3ef42b46564bf3b8347f6bddb1940368a23fa515) ) + ROM_LOAD( "mazeman.6j", 0x3000, 0x1000, CRC(3c3ff208) SHA1(2c6a8f9e3f130c3c0a9fa535b1ff76ac26a07f9f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "mazeman.5e", 0x0000, 0x1000, CRC(38870a32) SHA1(2b65a6309b204b89dcb6329e43f55301ecf69227) ) + ROM_LOAD( "mazeman.5f", 0x1000, 0x1000, CRC(1fd18b80) SHA1(2b10b572840e5977adda490d5fbddef98b65575e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( namcosil ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "namcosil.6f", 0x1000, 0x1000, CRC(c5ec2352) SHA1(86178b16dabb90005b132febc1a261651a73018d) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "namcosil.6j", 0x3000, 0x1000, CRC(57a07f6e) SHA1(8a7a1d4662e4fc5c5374ad1cad09fd4da1f8398a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( newpuc2 ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) ) + ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) ) + ROM_LOAD( "newpuc2.6h", 0x2000, 0x0800, CRC(81719de8) SHA1(e886d04ac0e20562a4bd2df7676bdf9aa98665d7) ) + ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) ) + ROM_LOAD( "newpuc2.6j", 0x3000, 0x0800, CRC(e6675736) SHA1(85d0bb79bc96acbc67fcb70ff4d453c870a6c8ea) ) + ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) ) + + ROM_REGION( 0x2000, "gfx1" , 0) + ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) ) + ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) ) + ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) ) + ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( newpuc2b ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) ) + ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) ) + ROM_LOAD( "newpuc2b.6h", 0x2000, 0x0800, CRC(f5e4b2b1) SHA1(68464f61cc50931f6cd4bb493dd703c139500825) ) + ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) ) + ROM_LOAD( "newpuc2b.6j", 0x3000, 0x0800, CRC(f068e009) SHA1(a30763935e116559d535654827230bb21a5734bb) ) + ROM_LOAD( "newpuc2b.6p", 0x3800, 0x0800, CRC(1fadcc2f) SHA1(2d636cfc2b52b671ac5a26a03b1195e2cf8d4718) ) + + ROM_REGION( 0x2000, "gfx1" , 0) + ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) ) + ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) ) + ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) ) + ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) ) + + PACMAN_PROMS +ROM_END + +/* This was from the Italian dumping team, called "puckmanbootleg.zip". They did not dump the 2nd, 4th, 6th, 8th + program roms, so I have used the ones from pacheart for now. Also, it has the standard maze instead of the + newpuck one - but this could be correct? */ +ROM_START( newpuc1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) ) + ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) ) + ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) ) + ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) ) + ROM_LOAD( "newpuck1.6j", 0x3000, 0x0800, CRC(565687c6) SHA1(9ee8e8197e87e468669279e738fe518e5480363c) ) + ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "newpuck1.5e", 0x0000, 0x0800, CRC(3ed40275) SHA1(bf56f9a21bc1dacee438d88eb5bc59f20906b00c) ) + ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) ) + ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) ) + ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) ) + + PACMAN_PROMS +ROM_END + +ROM_START( newpuck2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) ) + ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( newpuc2x ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) ) + ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) ) + ROM_LOAD( "newpuc2.6h", 0x2000, 0x0800, CRC(81719de8) SHA1(e886d04ac0e20562a4bd2df7676bdf9aa98665d7) ) + ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) ) + ROM_LOAD( "newpuc2.6j", 0x3000, 0x0800, CRC(e6675736) SHA1(85d0bb79bc96acbc67fcb70ff4d453c870a6c8ea) ) + ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "newpuc2x.5e", 0x0000, 0x4000, CRC(0a64f4c8) SHA1(1f3456b14b2b847869db6eeb3c115e3042b24672) ) + ROM_LOAD( "newpuc2x.5f", 0x4000, 0x4000, CRC(4ba7164c) SHA1(902e6f0bfeed8f40b83cf0eb7de6440d91ee811d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( newpuck3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "newpuck3.6h", 0x2000, 0x1000, CRC(ee3c8685) SHA1(17d80ea2766370dcec04070de67cde69d2c3b04b) ) + ROM_LOAD( "newpuck3.6j", 0x3000, 0x1000, CRC(6ee64463) SHA1(5b692313dbe448b6b016f9dd2403757e16578049) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "newpuck3.5e", 0x0000, 0x1000, CRC(6209b614) SHA1(23434b89f25d6164dca619192a282c60a63418e1) ) + ROM_LOAD( "newpuck3.5f", 0x1000, 0x1000, CRC(923515bc) SHA1(a3605a632f4b47616e0c6e4e1cdf1ef9c71bb0e0) ) + + PACMAN_PROMS +ROM_END + +ROM_START( newpuckx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) ) + ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( nwpuc2b ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "nwpuc2b.6e", 0x0000, 0x1000, CRC(532bd09f) SHA1(ed362ae0b38a00747128046a14d68d2a676953ae) ) + ROM_LOAD( "nwpuc2b.6f", 0x1000, 0x1000, CRC(b9062f57) SHA1(cdfb2264fc5874cd18848fde936ea1314ce74cba) ) + ROM_LOAD( "nwpuc2b.6h", 0x2000, 0x1000, CRC(519b3c57) SHA1(cc03d67035f9d590fadef899d9a2d978a4978b39) ) + ROM_LOAD( "nwpuc2b.6j", 0x3000, 0x1000, CRC(154cc118) SHA1(e5bd6033653edcfadac467573613e1b7dbf9eb44) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "nwpuc2b.5e", 0x0000, 0x1000, CRC(58357313) SHA1(a1778318e07510eeb5b23a5d650f5a5f9fc0fb5a) ) + ROM_LOAD( "nwpuc2b.5f", 0x1000, 0x1000, CRC(4b044c87) SHA1(3e1a497563918d1ddd730efb9622abe650a258a1) ) + + PACMAN_PROMS +ROM_END + +ROM_START( nwpuc2bx ) + ROM_REGION( 0x10000, "maincpu",0 ) + ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) ) + ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) ) + ROM_LOAD( "nwepuc2b.6h", 0x2000, 0x0800, CRC(f5e4b2b1) SHA1(68464f61cc50931f6cd4bb493dd703c139500825) ) + ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) ) + ROM_LOAD( "newpuc2b.6j", 0x3000, 0x0800, CRC(f068e009) SHA1(a30763935e116559d535654827230bb21a5734bb) ) + ROM_LOAD( "newpuc2b.6p", 0x3800, 0x0800, CRC(1fadcc2f) SHA1(2d636cfc2b52b671ac5a26a03b1195e2cf8d4718) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "newpuc2x.5e", 0x0000, 0x4000, CRC(0a64f4c8) SHA1(1f3456b14b2b847869db6eeb3c115e3042b24672) ) + ROM_LOAD( "newpuc2x.5f", 0x4000, 0x4000, CRC(4ba7164c) SHA1(902e6f0bfeed8f40b83cf0eb7de6440d91ee811d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( nwpuckxx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) ) + ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pac2600 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pac2600.6f", 0x1000, 0x1000, CRC(0a27d11d) SHA1(b7b8da84b3a472974ed2f53a82d56bc8e81cef5c) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pac2600.6j", 0x3000, 0x1000, CRC(ab23fe0c) SHA1(1ae9882ee1c33ea18cf40c2ef5563cc3b546dcd5) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pac2600.5e", 0x0000, 0x1000, CRC(87d8f5ce) SHA1(fe421ee0f5ef70b56f0760473b003a886bed3d72) ) + ROM_LOAD( "pac2600.5f", 0x1000, 0x1000, CRC(91bd671f) SHA1(ae1745a03090a747baf78f8554ea8620fa2b9d81) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pac2600a ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pac2600a.6j", 0x3000, 0x1000, CRC(d168bdfa) SHA1(0edc9c435385f9bce1939ad5ea41225ddf1db16f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pac2600a.5e", 0x0000, 0x1000, CRC(20e327e3) SHA1(857e4d67ae9f2f9b9b60fd4f9c1327b5056e3705) ) + ROM_LOAD( "pac2600a.5f", 0x1000, 0x1000, CRC(feb98199) SHA1(66a84d5813de4441e6dd70e91fbdb482f999da8f) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacbaby ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacbaby.6j", 0x3000, 0x1000, CRC(4e4ac798) SHA1(deab2d93a678abee576c891bdfb7ab93d5718792) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacbaby2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacbaby2.6j", 0x3000, 0x1000, CRC(742453ba) SHA1(21707992ea3489c8bc95b14db33f62b6aaa24eb4) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacbaby3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacbaby3.6j", 0x3000, 0x1000, CRC(b82f2b73) SHA1(63619220b9ed4dfeb4f462b41d9685870716590a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacbell ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacbell.6j", 0x3000, 0x1000, CRC(4b428215) SHA1(acdcc4d7ccfc58c6c0473e8ee548b5e02dcafcfd) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacelec ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacelec.6j", 0x3000, 0x1000, CRC(9e5c763d) SHA1(df56eb705c7dfaf00b084aa6744d7fd5fa4f47d3) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacfnt ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacfnt.5e", 0x0000, 0x1000, CRC(f2561d07) SHA1(1b971c2a907673dac0bf676f599a8a20fcb4a01b) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacheart ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) ) + ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) ) + ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) ) + ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) ) + ROM_LOAD( "pacheart.6j", 0x3000, 0x0800, CRC(f5265c10) SHA1(9a320790d7a03fd6192a92d30b3e9c754bbc6a9d) ) + ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) ) + ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) ) + ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) ) + ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacinvis ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacinvis.6j", 0x3000, 0x1000, CRC(1b4e96dc) SHA1(f26207c9b8277078a7c428f35938164ea6326f21) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacjail ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacjail.6j", 0x3000, 0x1000, CRC(cc31f185) SHA1(cd184a55f775bc9a70d0bfa932d2993b8987135b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacjr1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacjr1.6j", 0x3000, 0x1000, CRC(fcfb21a3) SHA1(74c103f78cb75cb01ec4b611e341ed3d37fb0b94) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) ) + ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacjr2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacjr2.6j", 0x3000, 0x1000, CRC(cc26c905) SHA1(213adaaa54cd084dbf73bd6d6ed9f9f4e4a03a5f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) ) + ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacjr3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacjr3.6j", 0x3000, 0x1000, CRC(d4d8cb9b) SHA1(06bcf32e5fe9af7161178bd6295a6ea48f791f37) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) ) + ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacjr4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacjr4.6j", 0x3000, 0x1000, CRC(42ca024b) SHA1(567331f4050fc0de5d1fda304fa27556c86968db) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) ) + ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacm255 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacman25 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "namcosil.6f", 0x1000, 0x1000, CRC(c5ec2352) SHA1(86178b16dabb90005b132febc1a261651a73018d) ) + ROM_LOAD( "pacman25.3", 0x2000, 0x1000, CRC(92cd89b9) SHA1(c3a0141480341c550a889b58692c8c90b322ee67) ) + ROM_LOAD( "pacman25.4", 0x3000, 0x1000, CRC(f7193845) SHA1(6d190cf6e76520b8b8c97e6e3a817c4a142003ba) ) + ROM_LOAD( "pacman25.5", 0x8000, 0x1000, CRC(19a22304) SHA1(6cc0e4921148b7a7eedf5d807bd63062b745e1c6) ) + ROM_LOAD( "pacman25.6", 0x9000, 0x1000, CRC(7cdbd912) SHA1(b19868bd5da3163e03320e6de0428b22b8e02d80) ) + ROM_LOAD( "pacman25.7", 0xa000, 0x1000, CRC(c626ea9c) SHA1(3cd3f20e002845937a43f323b685425c95881d9e) ) + ROM_LOAD( "pacman25.8", 0xb000, 0x1000, CRC(f5ba954d) SHA1(eba18f9a7f6d50f167ed37bff0adec43f52b49a0) ) + /* This colour table is configurable to whatever you want */ + ROM_FILL(0x8fc0, 1, 0x01) // level 1 + ROM_FILL(0x8fc1, 1, 0x11) // level 2 + ROM_FILL(0x8fc2, 1, 0x03) + ROM_FILL(0x8fc3, 1, 0x12) + ROM_FILL(0x8fc4, 1, 0x09) + ROM_FILL(0x8fc5, 1, 0x1f) + ROM_FILL(0x8fc6, 1, 0x0e) + ROM_FILL(0x8fc7, 1, 0x14) + ROM_FILL(0x8fc8, 1, 0x15) + ROM_FILL(0x8fc9, 1, 0x16) + ROM_FILL(0x8fca, 1, 0x17) + ROM_FILL(0x8fcb, 1, 0x18) + ROM_FILL(0x8fcc, 1, 0x10) + ROM_FILL(0x8fcd, 1, 0x1d) + ROM_FILL(0x8fce, 1, 0x1f) + ROM_FILL(0x8fcf, 1, 0x07) // level 16 + ROM_COPY( "maincpu", 0x8fc0, 0x8fd0, 0x10 ) /* copy the above to levels 17-32 */ + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman25.5e", 0x0000, 0x1000, CRC(11d47ae1) SHA1(fbd47432f258e56f1323766d5b2844f4a2e6e7ac) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacman3d ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman3d.6f", 0x1000, 0x1000, CRC(96364259) SHA1(ec2f36a44fd0c13dfd7dc571b9499bc9dbaa247d) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman3d.6j", 0x3000, 0x1000, CRC(959e930e) SHA1(0ef24017be05ddf85248c4d00f0e21cbf658f78c) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman3d.5e", 0x0000, 0x1000, CRC(aa203d45) SHA1(7d2fb9bc8718601efc33d2469452a08018167e60) ) + ROM_LOAD( "pacman3d.5f", 0x1000, 0x1000, CRC(d1830540) SHA1(5d276774997e3be8fc9c21d55562288acd1cffcc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacman6 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) ) + ROM_LOAD( "pacman6.map", 0x8000, 0x1000, CRC(de753fd9) SHA1(467cd6dd572a3e6f0b2e0120d520df919433655a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmanf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmanfx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +/* This set has the fixes proposed by Don Hodges at the pages: + http://donhodges.com/how_high_can_you_get2.htm + http://donhodges.com/pacman_pinky_explanation.htm + These are: AI fixes for Pinky and Inky; fix for the kill screen on level 256. + Patches invented by Don Hodges; coded into a ROM by Krick. */ +ROM_START( pacmanp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacmanp.6h", 0x2000, 0x1000, CRC(65625778) SHA1(8d29d46cff897a4d89367a3cc02627bcee1ef38e) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmanx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmar ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmar.6j", 0x3000, 0x1000, CRC(b208c7dc) SHA1(d2e199936ab0fc3de80f7c86def50c03da8c1684) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmar.5e", 0x0000, 0x1000, CRC(7ccdfa59) SHA1(ed8e7f2e7b496a6f3246e1cc3966382e748ab1c3) ) + ROM_LOAD( "pacmar.5f", 0x1000, 0x1000, CRC(51af9fc5) SHA1(0fe657bee3a811043663595f7f9e7e05cc71da84) ) + ROM_COPY( "gfx1", 0x1b00, 0x1c00, 0x40 ) /* show mario at start of level */ + + PACMAN_PROMS +ROM_END + +// extra keys: G = jump ; F = sound fx on/off ; R = music on/off +ROM_START( pacminer ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacminer.6e", 0x0000, 0x1000, CRC(11dee14e) SHA1(1aeb94299a33daa9b51fdab3c0abea98858cc7dd) ) + ROM_LOAD( "pacminer.6f", 0x1000, 0x1000, CRC(8c449bd7) SHA1(84233296683321f71fdef604ca19bfffd97e993c) ) + ROM_LOAD( "pacminer.6h", 0x2000, 0x1000, CRC(a0e62570) SHA1(654a71144eae3c78d7baaeb9119aad0ece500e60) ) + ROM_LOAD( "pacminer.6j", 0x3000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacminer.5e", 0x0000, 0x1000, CRC(9b3cc7cd) SHA1(9bfb71e71f7f61e26d23e6370d684cdc6c910899) ) + ROM_LOAD( "pacminer.5f", 0x1000, 0x1000, CRC(c1b2dc90) SHA1(3a089696bab9f3ff39e09c84117d22b861ddec40) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmini ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmini.6j", 0x3000, 0x1000, CRC(5e04f9c5) SHA1(1423a3698812fcfdb8537a528236278578864afb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmini.5e", 0x0000, 0x1000, CRC(5520b393) SHA1(5775a771b29efa5a8852310c36f1c8f68eec65a8) ) + ROM_LOAD( "pacmini.5f", 0x1000, 0x1000, CRC(30e6024c) SHA1(51c1f9074091c053437a25ef1c6e9ee63e9b5154) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmini2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmini2.6j", 0x3000, 0x1000, CRC(092dd5fa) SHA1(c016da8a22901fc4d441c94a3fecdd60d11f5c97) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmini2.5e", 0x0000, 0x1000, CRC(130eff7b) SHA1(ab29362b827591acb4204639c0e323dabf2bc767) ) + ROM_LOAD( "pacmini.5f", 0x1000, 0x1000, CRC(30e6024c) SHA1(51c1f9074091c053437a25ef1c6e9ee63e9b5154) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmn6m2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) ) + ROM_LOAD( "pacmn6m2.map", 0x8000, 0x1000, CRC(aadee235) SHA1(0f8e4c26c2804033409dcdb5032d10fa650edc75) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmn6m2.5e", 0x0000, 0x1000, CRC(60ada878) SHA1(5340d1cb8cf5f7f5fc2bc5e2df4ca0fe209b77e9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmod ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacmanh.6e", 0x0000, 0x1000, CRC(3b2ec270) SHA1(48fc607ad8d86249948aa377c677ae44bb8ad3da) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacmanh.6h", 0x2000, 0x1000, CRC(18811780) SHA1(ab34acaa3dbcafe8b20c2197f36641e471984487) ) + ROM_LOAD( "pacmanh.6j", 0x3000, 0x1000, CRC(5c96a733) SHA1(22ae15a6f088e7296f77c7487a350c4bd102f00e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmanh.5e", 0x0000, 0x1000, CRC(299fb17a) SHA1(ad97adc2122482a9018bacd137df9d8f409ddf85) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmodx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacmanh.6e", 0x0000, 0x1000, CRC(3b2ec270) SHA1(48fc607ad8d86249948aa377c677ae44bb8ad3da) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacmanh.6h", 0x2000, 0x1000, CRC(18811780) SHA1(ab34acaa3dbcafe8b20c2197f36641e471984487) ) + ROM_LOAD( "pacmanh.6j", 0x3000, 0x1000, CRC(5c96a733) SHA1(22ae15a6f088e7296f77c7487a350c4bd102f00e) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacms1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacms1.6j", 0x3000, 0x1000, CRC(c5da3887) SHA1(2a65b31891bc19fc0fbdace39e853fff6c4227eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) ) + ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacms2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacms2.6j", 0x3000, 0x1000, CRC(b0a107ea) SHA1(86b8b7cb7e90b0de95bc9b8e3b98bcc46992578e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) ) + ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacms3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacms3.6j", 0x3000, 0x1000, CRC(c7d8325a) SHA1(bf72a2d7b20d76e521cf45fbe1b0ab762daa8106) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) ) + ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacms4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacms4.6j", 0x3000, 0x1000, CRC(7b63ff9b) SHA1(84c167878ca4a1a1d79c397438defc8dcc6326f7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) ) + ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmsa1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmsa1.6j", 0x3000, 0x1000, CRC(07163b97) SHA1(fdfbca327a2c3f69b4478b1e3ca9c8ed71605582) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) ) + ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmsa2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmsa2.6j", 0x3000, 0x1000, CRC(15e83c24) SHA1(ebe4d476104bbd037a1b5fe5783c0b77229ca707) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) ) + ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmsa3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmsa3.6j", 0x3000, 0x1000, CRC(5762f9cf) SHA1(b570468372a9520929513425523fdae734d4acfc) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) ) + ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmsa4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmsa4.6j", 0x3000, 0x1000, CRC(d9c2a669) SHA1(2f82405d297f35cc13199e1671cfa835dd598e9c) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) ) + ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacmulti ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacmulti.6e", 0x0000, 0x1000, CRC(cfb721a8) SHA1(028e508a9c11eab508452ffc644730894adf388c) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacmulti.6h", 0x2000, 0x1000, CRC(e55d5230) SHA1(b764e85871cf8bb96a4ee7d0f3df204adfd4da5e) ) + ROM_LOAD( "pacmulti.6j", 0x3000, 0x1000, CRC(29ba4b53) SHA1(f907641bb583342fa19f02de23639ba730123792) ) + ROM_LOAD( "pacmulti.8", 0x8000, 0x1000, CRC(5a4b59dc) SHA1(09b21036cf40decf4ee00898eb44673599c65b05) ) + ROM_LOAD( "pacmulti.9", 0x9000, 0x1000, CRC(3b939b12) SHA1(40333555af024f505064018a9b76dd284ecbf9a6) ) + ROM_FILL(0x3f83, 3, 0) /* remove unneeeded subroutine call - this fixes a major bug */ + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacplus ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) ) + ROM_LOAD( "pacplus.5f", 0x1000, 0x1000, CRC(4de65cdd) SHA1(9c0699204484be819b77f0b212c792fe9e9fae5d) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( pacplusc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplusc.cpu", 0x0000, 0x4000, CRC(a0d25591) SHA1(0c7e1eb93762f9bb487df95c14ea986855529ce3) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) ) + ROM_LOAD( "pacplus.5f", 0x1000, 0x1000, CRC(4de65cdd) SHA1(9c0699204484be819b77f0b212c792fe9e9fae5d) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( pacplusx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacplusx.5e", 0x0000, 0x4000, CRC(06b08556) SHA1(982329d9568ee1a6edb8a1ed39686a33f65a1411) ) + ROM_LOAD( "pacplusx.5f", 0x4000, 0x4000, CRC(57e9f865) SHA1(e40f5a34b597e32bbc230ae3ad5f32cdbadf2438) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( pacpopey ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacrab ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacrab.1", 0x0000, 0x1000, CRC(bb14430f) SHA1(80c632cc611e6cf774cc594a833916296bbbfccc) ) + ROM_LOAD( "pacrab.2", 0x1000, 0x1000, CRC(f3f5a91b) SHA1(38d912661cf95c6234b0d3650c2b6be8df3003f0) ) + ROM_LOAD( "pacrab.3", 0x2000, 0x1000, CRC(44caab2a) SHA1(10aaa38a720266739add8d2c54a4785ed133af0d) ) + ROM_LOAD( "pacrab.4", 0x3000, 0x1000, CRC(25523534) SHA1(e0272e5a8717ef95fd2d593597af4e5011081eca) ) + ROM_LOAD( "pacrab.5", 0x8000, 0x1000, CRC(af3985c4) SHA1(fb2e472b23cea56bf49ba2691a6cdeee4629a1b7) ) + ROM_LOAD( "pacrab.6", 0x9000, 0x1000, CRC(3389fe5a) SHA1(394df6145614083c16cfe606adb0faca8c6a7a09) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacrab.5e", 0x0000, 0x1000, CRC(f33761a4) SHA1(401d752eacb60f2c26aae5cf6079e2bf54a8260a) ) + ROM_LOAD( "pacrab.5f", 0x1000, 0x1000, CRC(60e1a3b7) SHA1(962b307f9fa3f3abde68507914fda78d5560f15b) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacshuf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacshuf.6j", 0x3000, 0x1000, CRC(55cc4d87) SHA1(1a05670c4fd09b4155941aa1ea90a5719a3e7ebb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacsnoop ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacsnoop.6e", 0x0000, 0x1000, CRC(FA536307) SHA1(55742123DE6EF87E1DEEF31DC75744B98129AA9E) ) + ROM_LOAD( "pacsnoop.6f", 0x1000, 0x1000, CRC(30EA615C) SHA1(AFB953167AA8060DC60173F3DE065C07FD933CC1) ) + ROM_LOAD( "pacsnoop.6h", 0x2000, 0x1000, CRC(25DA6440) SHA1(93414E82442044324AC5475A45FB124DA70E5D6F) ) + ROM_LOAD( "pacsnoop.6j", 0x3000, 0x1000, CRC(A9594951) SHA1(5C4FA744FDCC3B0EAD7900B079A13297D16A996F) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0C944964) SHA1(06EF227747A440831C9A3A613B76693D52A2F0A9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacspeed ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacspeed.6j", 0x3000, 0x1000, CRC(0e7946d1) SHA1(cea3440a305ec05dab197dba7ac8428db0d5e2f7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacweird ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) ) + ROM_LOAD( "pacweird.map", 0x8000, 0x1000, CRC(92fac825) SHA1(05865bc5b84e0c100e358433c7d151c3918c5f19) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacweird.5e", 0x0000, 0x1000, CRC(11077f3e) SHA1(1f7a52a33abfc8650d5d6c685fd51039a467bf72) ) + ROM_LOAD( "pacweird.5f", 0x1000, 0x1000, CRC(7c213ab4) SHA1(fd76db379a32d5102cd2a6afff0bfe9a4afbc3b5) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pacwf ) // Weird Fruit + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacwf.6j", 0x3000, 0x1000, CRC(a13ce3ea) SHA1(6562ca3e337bd95edb2ebeb6b7fb7e219799e429) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacwf.5e", 0x0000, 0x1000, CRC(f524b277) SHA1(91242ead3d1852241d030975228533086bc3539e) ) + ROM_LOAD( "pacwf.5f", 0x1000, 0x1000, CRC(66ec2c6c) SHA1(b22e2f3ba5a603cea938533dd05fced84d42f8d9) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pcrunchy ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pcrunchy.6j", 0x3000, 0x1000, CRC(c21c6c52) SHA1(c63212f51c6bf49e76b3ca7553a29e3371c4fa83) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pengman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pengman.6j", 0x3000, 0x1000, CRC(37e7f3ba) SHA1(f9b476d9389fdd8171b443e177e05fae2052024b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pengman.5e", 0x0000, 0x1000, CRC(02f5f5e6) SHA1(029328f78f34330e90ad4407172b318a45017cac) ) + ROM_LOAD( "pengman.5f", 0x1000, 0x1000, CRC(5cd3db2e) SHA1(808655f543fa83762a68e13adcf4a7091d07173f) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pheartb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) ) + ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) ) + ROM_LOAD( "pheartb.6h", 0x2000, 0x0800, CRC(b42416d1) SHA1(3714efae24f35fe63dd89f0d7b82e4564c5405d3) ) + ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) ) + ROM_LOAD( "pheartb.6j", 0x3000, 0x0800, CRC(01d13602) SHA1(dfec0784d005f82a6b2ee55923b510d2daeb9965) ) + ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) ) + ROM_FILL( 0x3fd5, 1, 0xc9 ) /* allow protection check to work - 0x36 or 0xc9 is ok */ + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) ) + ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) ) + ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) ) + ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pheartx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) ) + ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) ) + ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) ) + ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) ) + ROM_LOAD( "pacheart.6j", 0x3000, 0x0800, CRC(f5265c10) SHA1(9a320790d7a03fd6192a92d30b3e9c754bbc6a9d) ) + ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pheartx.5e", 0x0000, 0x4000, CRC(868825e6) SHA1(0cbe23ad47ef77f4ddfc0d476704a79701c621f1) ) + ROM_LOAD( "pheartx.5f", 0x4000, 0x4000, CRC(b7d222ba) SHA1(83a6bceff705bc2f7d7766f417ba5a9aa2a9a28e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pm1000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) ) + ROM_LOAD( "pm1000.5f", 0x1000, 0x1000, CRC(fd06d923) SHA1(a9d61bdcb6841bf07ce8ad08e1be2cf5ef349129) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pm2000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) ) + ROM_LOAD( "pm2000.5f", 0x1000, 0x1000, CRC(a2b31528) SHA1(69f1c4b34e581c0e6d75b9726cbefa08f8a97fdb) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pm3000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm3000.5e", 0x0000, 0x1000, CRC(adb41be2) SHA1(7f2f4f3fc2d5f8d7bed9baddb1bb5787e4c5cd9e) ) + ROM_LOAD( "pm3000.5f", 0x1000, 0x1000, CRC(1fac6af1) SHA1(d9e62fb387ec1d02a78cc3b4ba2626f9044a1021) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pm4000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm3000.5e", 0x0000, 0x1000, CRC(adb41be2) SHA1(7f2f4f3fc2d5f8d7bed9baddb1bb5787e4c5cd9e) ) + ROM_LOAD( "pm4000p.5f", 0x1000, 0x1000, CRC(74f6f4d3) SHA1(c65b295881bc531e165996aa365ff23126eab9d1) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pm5000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm5000p.5e", 0x0000, 0x1000, CRC(5865ce98) SHA1(2ddaf119b1674a7c6af3e475ba2e43dcea09f1cd) ) + ROM_LOAD( "pm5000p.5f", 0x1000, 0x1000, CRC(81cf02e1) SHA1(cd1b3f1ac0265ed25e00eb1a2bfb831d5c7d7e8b) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( pm6000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm6000.5e", 0x0000, 0x1000, CRC(89945690) SHA1(2cee6236da8d20555e02cdebb2fb81c9e7d806ca) ) + ROM_LOAD( "pm6000.5f", 0x1000, 0x1000, CRC(9268eb5a) SHA1(8db0365beeb89f5cb73de212b810938d5cad7971) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pm7000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm7000.5e", 0x0000, 0x1000, CRC(c181ad5d) SHA1(74874eac512e445206303036e52d5e30e9ac57d0) ) + ROM_LOAD( "pm7000.5f", 0x1000, 0x1000, CRC(bd31be36) SHA1(fa879e1b0bc28d21478337fc799360d15541d763) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pm7000p ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm7000.5e", 0x0000, 0x1000, CRC(c181ad5d) SHA1(74874eac512e445206303036e52d5e30e9ac57d0) ) + ROM_LOAD( "pm7000p.5f", 0x1000, 0x1000, CRC(3d5861a5) SHA1(43f86248b2980d62bcd3f3ee71625c2c73e21a5a) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) ) + ROM_LOAD( "pmad.6j", 0x3000, 0x1000, CRC(ff3f4866) SHA1(1f55f6742ee08889ddc135cfdd3366c32c32510d) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmad.5e", 0x0000, 0x1000, CRC(5b794d59) SHA1(413488774cda263a477fe808bcacf76e9f60b542) ) + ROM_LOAD( "pmad.5f", 0x1000, 0x1000, CRC(59a9362c) SHA1(aa7dfa45cb529e7ca4493262090b149e8c523006) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmad00 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) ) + ROM_LOAD( "pmad00.6j", 0x3000, 0x1000, CRC(5f1aea94) SHA1(3122bd7e9e1c9123f6b1915b074491e9865d39a0) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmad00.5e", 0x0000, 0x1000, CRC(315f7131) SHA1(8182e3e177111aabad0058897b80cee8a3fd93c7) ) + ROM_LOAD( "pmad00.5f", 0x1000, 0x1000, CRC(157a6c0f) SHA1(93f66ad4595eb9fcc306398cb83abcacc60b1521) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmad6m ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) ) + ROM_LOAD( "pmad6m.map", 0x8000, 0x1000, CRC(d6a0d7f2) SHA1(7f3de6e13dd834a1495fb7faf2743fcc71b84747) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "hanglyad.5e", 0x0000, 0x1000, CRC(93fd3682) SHA1(792ddb541aeab304b5facfcf929c3bba18150346) ) + ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmada ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) ) + ROM_LOAD( "pmada.6j", 0x3000, 0x1000, CRC(24e43519) SHA1(83fe90767bd73b1f72a5a86da79122fd2d8bc282) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) ) + ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmba2000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pmba2000.6j", 0x3000, 0x1000, CRC(f7d647d8) SHA1(4edf34fc4a0da7367557392d55beac4a5eb5038a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmba2000.5e", 0x0000, 0x1000, CRC(ff6308bb) SHA1(93bc32cfb43d521e77179597141587a9866c5319) ) + ROM_LOAD( "pmba2000.5f", 0x1000, 0x1000, CRC(c8b456b5) SHA1(a9e435300171779a6c0e145a50284045b3996d91) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( pmba3000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pmba3000.6j", 0x3000, 0x1000, CRC(08f7a148) SHA1(288e04fb264e985fbb7ea2f57ab14edd72b97140) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) ) + ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmba4000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) ) + ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmba6000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pmba6000.6j", 0x3000, 0x1000, CRC(bdb3d11a) SHA1(d9920ad3b6c76ab9095956b960165477ed1e11f8) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) ) + ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( pmba8000 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) ) + ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( pmbamaz ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pmbamaz.6j", 0x3000, 0x1000, CRC(bf5e4b89) SHA1(ad16845b92e56a6fe33c7561a231dd54ad558481) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmbamaz.5e", 0x0000, 0x1000, CRC(9a8cd8a1) SHA1(653d3c900b0be5e7ffe424207419bf86229b8c48) ) + ROM_LOAD( "pmbamaz.5f", 0x1000, 0x1000, CRC(13aeaac4) SHA1(2abcc95559bc57a209d7216ddb6488032c4e34d6) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmbaplus ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmbaplus.5e", 0x0000, 0x1000, CRC(3e5a31c2) SHA1(82716be9be3a7012a4283c6e9e6be01b655a6526) ) + ROM_LOAD( "pmbaplus.5f", 0x1000, 0x1000, CRC(3c099bbd) SHA1(f589e34330d78de173dc42929b17e4763ed4f1a3) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmbluep ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) ) + ROM_LOAD( "pmbluep.5f", 0x1000, 0x1000, CRC(2da4dec7) SHA1(1a5c441dad8b3365ef728fe318c63d4e10de4731) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmdeluxe ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) ) + ROM_LOAD( "pmdeluxe.5f", 0x1000, 0x1000, CRC(ab172fc9) SHA1(8845c73b37bb117d222eeb01788ba5738aba755a) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmextra ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmextra.5e", 0x0000, 0x1000, CRC(3ee34b66) SHA1(2d7a7e9a59dd87be7bda4964471b0fa27e82a219) ) + ROM_LOAD( "pmextra.5f", 0x1000, 0x1000, CRC(edf92a4c) SHA1(63140c7100315edc8fd8a234822f0831e6d1799d) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmextrap ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmextra.5e", 0x0000, 0x1000, CRC(3ee34b66) SHA1(2d7a7e9a59dd87be7bda4964471b0fa27e82a219) ) + ROM_LOAD( "pmextrap.5f", 0x1000, 0x1000, CRC(34ff1749) SHA1(55eb0199fdc04a3331bcf1e31baf686310af2cc7) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmfever ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmfever.5e", 0x0000, 0x1000, CRC(f9b955e1) SHA1(d8565b6e0ccd37309fc7e1507603efb75eedb211) ) + ROM_LOAD( "pmfever.5f", 0x1000, 0x1000, CRC(8ddf8eb6) SHA1(72842687a8d957de22832b56cf1939864748cd6f) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pmgrenp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmgrenp.5e", 0x0000, 0x1000, CRC(5807a438) SHA1(8f4160627948747e92c3c5dc386068e4561fd9aa) ) + ROM_LOAD( "pmgrenp.5f", 0x1000, 0x1000, CRC(1545b3c8) SHA1(a60fe521380af755b2f47bd526d523c7f9b9a923) ) + + PACPLUS_PROMS +ROM_END + +/* Only the program roms were supplied with this dump. As it was listed as a bootleg of pacheart, I've added + the gfx roms and the proms from that game. */ +ROM_START( pmheart ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) ) + ROM_LOAD( "pmheart.6k", 0x0800, 0x0800, CRC(afeca2f1) SHA1(1e6d6c75eeb3a354ce2dc88da62caf9e7d53d0cb) ) + ROM_LOAD( "pmheart.6f", 0x1000, 0x0800, CRC(6b53ada9) SHA1(a905688b389bfbc6792965d8f3d5bb1b9f0f4ec6) ) + ROM_LOAD( "pmheart.6m", 0x1800, 0x0800, CRC(35f3ca84) SHA1(3da7336caa0742ea79f1e0e8f6b80f8560507a33) ) + ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) ) + ROM_LOAD( "pmheart.6n", 0x2800, 0x0800, CRC(93f344c5) SHA1(987c7fa18a774a47c045fa1dc7dff37457cb8983) ) + ROM_LOAD( "pmheart.6j", 0x3000, 0x0800, CRC(bed4a077) SHA1(39ac1d4d2acf4752ff7f9839f8f0d1974e023fab) ) + ROM_LOAD( "pmheart.6p", 0x3800, 0x0800, CRC(800be41e) SHA1(6f40e741d95c2cfe1b217f1061da3497b4c2a153) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) ) + ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) ) + ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) ) + ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) ) + + PACMAN_PROMS +ROM_END + +ROM_START( pplusad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pplusad.5e", 0x0000, 0x1000, CRC(ce684d85) SHA1(d7e40494631b3b1d73f9c07f15b6fa102286aa0d) ) + ROM_LOAD( "pplusad.5f", 0x1000, 0x1000, CRC(0b86d002) SHA1(77c74d8ff6e4bf3de8e87ee872b1a9b6cf10fece) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( puck255 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "pacn255.6h", 0x2000, 0x1000, CRC(6dac9e8f) SHA1(bbebc8d059755f329ce6c0e4d39c1cd999c60dfe) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckman.6e", 0x0000, 0x0800, CRC(f36e88ab) SHA1(813cecf44bf5464b1aed64b36f5047e4c79ba176) ) + ROM_LOAD( "puckman.6k", 0x0800, 0x0800, CRC(618bd9b3) SHA1(b9ca52b63a49ddece768378d331deebbe34fe177) ) + ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) ) + ROM_LOAD( "puckman.6m", 0x1800, 0x0800, CRC(d3e8914c) SHA1(c2f00e1773c6864435f29c8b7f44f2ef85d227d3) ) + ROM_LOAD( "puckman.6h", 0x2000, 0x0800, CRC(6bf4f625) SHA1(afe72fdfec66c145b53ed865f98734686b26e921) ) + ROM_LOAD( "puckman.6n", 0x2800, 0x0800, CRC(a948ce83) SHA1(08759833f7e0690b2ccae573c929e2a48e5bde7f) ) + ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) ) + ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) ) + ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) ) + ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) ) + ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmana ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) ) + ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) ) + ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmanb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmanf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanf.6f", 0x1000, 0x1000, CRC(51b38db9) SHA1(0a796f93462aec4758c2aa1c1f34cd05bb10a178) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmano ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "puckmano.5e", 0x0000, 0x1000, CRC(1f44f160) SHA1(d5ec84bf164eb549b80f8a6c25ec9246fc89d525) ) + ROM_LOAD( "puckmano.5f", 0x1000, 0x1000, CRC(c78395ca) SHA1(100507f230c348489b30386f8ff8130b956d2646) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmanx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmnax ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) ) + ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "puckmnax.5e", 0x0000, 0x4000, CRC(c8d9349e) SHA1(8ca4045fe888b78306017a5e17b180d13b37e436) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmnfx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanf.6f", 0x1000, 0x1000, CRC(51b38db9) SHA1(0a796f93462aec4758c2aa1c1f34cd05bb10a178) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmnhx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "puckmanh.6f", 0x1000, 0x1000, CRC(61d38c6c) SHA1(1406aacdc9c8a3776e5853d214380ad3124408f4) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "puckmanh.6j", 0x3000, 0x1000, CRC(8939ddd2) SHA1(cf769bb34f711cfd0ee75328cd5dc07442f88607) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmod ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmod.6j", 0x3000, 0x1000, CRC(7d98d5f5) SHA1(39939bcd6fb785d0d06fd29f0287158ab1267dfc) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmodx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmod.6j", 0x3000, 0x1000, CRC(7d98d5f5) SHA1(39939bcd6fb785d0d06fd29f0287158ab1267dfc) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) ) + ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmot1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "puckmot1.5e", 0x0000, 0x1000, CRC(79ad3ca1) SHA1(a84330e1a7ef1b8c201e35fe66f4480065e0804a) ) + ROM_LOAD( "puckmot1.5f", 0x1000, 0x1000, CRC(bd898502) SHA1(3bf87f82cc2fcaab17dec15f4ad7e780df66b48f) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckmoti ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) ) + ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) ) + ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) ) + ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "puckmoti.5e", 0x0000, 0x1000, CRC(e2a1f6b6) SHA1(798daee244fc4275f7ed0bd3a99b527531960807) ) + ROM_LOAD( "puckmoti.5f", 0x1000, 0x1000, CRC(31d24bb5) SHA1(ff26f2199e28f9bbbeca09acf3850b9e76c597da) ) + + PACMAN_PROMS +ROM_END + +ROM_START( puckren ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckren.6e", 0x0000, 0x1000, CRC(0f5ecf67) SHA1(1250eb19c721b007705c75cce9140365aeed3fad) ) + ROM_LOAD( "puckren.6f", 0x1000, 0x1000, CRC(70ea1149) SHA1(4c1f25e7e6fb7645b7a23419cd1c5b3e2cf90823) ) + ROM_LOAD( "puckren.6h", 0x2000, 0x1000, CRC(c6bb6ea6) SHA1(a33e23193c14d2418614ad7609fb3bc0856a4a1f) ) + ROM_LOAD( "puckren.6j", 0x3000, 0x1000, CRC(dc90f1dc) SHA1(af677ed5989abaebcbde5da9168e849135d5e96f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "puckren.5e", 0x0000, 0x1000, CRC(a502e25f) SHA1(9f02d3f1ec095910642fe0bb616d510be52b53d8) ) + ROM_LOAD( "puckren.5f", 0x1000, 0x1000, CRC(18d44098) SHA1(d07120b9ede3cfcbc69006381f4287bede04c6e3) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) ) + ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( puckrenc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "puckren.6e", 0x0000, 0x1000, CRC(0f5ecf67) SHA1(1250eb19c721b007705c75cce9140365aeed3fad) ) + ROM_LOAD( "puckrenc.6f", 0x1000, 0x1000, CRC(8a75a7e2) SHA1(79f787c8c55ce04c97baf465b64d89d2bdbf07c5) ) + ROM_LOAD( "puckren.6h", 0x2000, 0x1000, CRC(c6bb6ea6) SHA1(a33e23193c14d2418614ad7609fb3bc0856a4a1f) ) + ROM_LOAD( "puckren.6j", 0x3000, 0x1000, CRC(dc90f1dc) SHA1(af677ed5989abaebcbde5da9168e849135d5e96f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "puckren.5e", 0x0000, 0x1000, CRC(a502e25f) SHA1(9f02d3f1ec095910642fe0bb616d510be52b53d8) ) + ROM_LOAD( "puckren.5f", 0x1000, 0x1000, CRC(18d44098) SHA1(d07120b9ede3cfcbc69006381f4287bede04c6e3) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) ) + ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( punleash ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "punleash.1", 0x0000, 0x1000, CRC(eddb20e7) SHA1(07f6cabac3c59c2e3f522da877e845b3ceb2cffb) ) + ROM_LOAD( "punleash.2", 0x1000, 0x1000, CRC(57fe8b4d) SHA1(629800fe793b53c27ee8c84a2e49caf7fe056f28) ) + ROM_LOAD( "punleash.3", 0x2000, 0x1000, CRC(94c63bb1) SHA1(872dbca70b45285dccfd0e24cb50225a5c3ac005) ) + ROM_LOAD( "punleash.4", 0x3000, 0x1000, CRC(fe7734d5) SHA1(f246baab82ea8e9b3cfd3dc5911445ab08223c1f) ) + ROM_LOAD( "punleash.5", 0x8000, 0x1000, CRC(ef155ffb) SHA1(c5bcd57c2a336fa8a018b192b8542954271f1bac) ) + ROM_LOAD( "punleash.6", 0x9000, 0x1000, CRC(70d15899) SHA1(9a7cff5811b591211eb23cee125fd77263f8d4fe) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "punleash.5e", 0x0000, 0x1000, CRC(713a4ba4) SHA1(f6eaadf92dae3a687fb317f2806b4d7a88f7c385) ) + ROM_LOAD( "punleash.5f", 0x1000, 0x1000, CRC(98d3d364) SHA1(f8023d1772d377d090a9bfebf194bbbce8643f1d) ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "punleash.7f", 0x0000, 0x0020, CRC(357c2523) SHA1(f0c4cea06b17932cc15f6db2971406eaba3558b2) ) + ROM_LOAD( "punleash.4a", 0x0020, 0x0100, CRC(5ff3b85a) SHA1(6b01b9c9302ab41fe83c140c3ff217d1d66773dd) ) + + PACMAN_SOUND_PROMS +ROM_END + +ROM_START( roboman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "roboman.6j", 0x3000, 0x1000, CRC(a909673e) SHA1(991d0c50087f5d47f85f6c16c667dea3b3973f4f) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "roboman.5e", 0x0000, 0x1000, CRC(e386213e) SHA1(fbbc1d85cc61dc3a13cc5e26182d51b2bbdfcb63) ) + ROM_LOAD( "roboman.5f", 0x1000, 0x1000, CRC(d8db5788) SHA1(11698932aca1150ef00801fdcb35a5ee2cb3d3b8) ) + + PACMAN_PROMS +ROM_END + +ROM_START( snakeyes ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) ) + ROM_LOAD( "snakeyes.map", 0x8000, 0x1000, CRC(7e506e78) SHA1(a198158a69d79d1c46149c9f8878ba220a6bf82e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( snowpac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "snowpac.6j", 0x3000, 0x1000, CRC(4f9e1d02) SHA1(90f7ed914e1291248f6b3ba0630a7d67d4f07374) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "snowpac.5e", 0x0000, 0x1000, CRC(2cc60a94) SHA1(05b8725cc71273e2ee61303bc00057dc60f88bb6) ) + ROM_LOAD( "snowpac.5f", 0x1000, 0x1000, CRC(41ba87bd) SHA1(3a1473bd3753fc3a3ab6ee5285e4832b0f92d173) ) + + PACMAN_PROMS +ROM_END + +/* This is a bootleg of Hangly set 3. The proms were missing and the gfx didn't match up (has hearts and said + 8000 points for eating the last monster when you only get 1600). Therefore, using the hangly3 gfx roms. + Despite the name "Super Pacman", it is just another puckman clone. The first monster is named "Mario". */ +ROM_START( spuckman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) ) + ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) ) + ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) ) + ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) ) + ROM_LOAD( "pheartb.6h", 0x2000, 0x0800, CRC(b42416d1) SHA1(3714efae24f35fe63dd89f0d7b82e4564c5405d3) ) + ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) ) + ROM_LOAD( "spuckman.6j", 0x3000, 0x0800, CRC(bc33aa79) SHA1(b974755edebb19455efccd56412995e3fa9fbd8e) ) + ROM_LOAD( "spuckman.6p", 0x3800, 0x0800, CRC(e95eafca) SHA1(0a0080340a2beb6408fe79a19e7fa97f35de9619) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + /* gfx from hangly3 */ + ROM_LOAD( "hangly3.5e", 0x0000, 0x0800, CRC(5f4be3cc) SHA1(eeb0e1e44549b99eab481d9ac016b4359e19fe30) ) + ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) ) + ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) ) + ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) ) + + PACMAN_PROMS +ROM_END + +ROM_START( sumeltob ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "sumeltob.6j", 0x3000, 0x1000, CRC(03d59d0e) SHA1(354cfe283b34f40b913589df9bc415fff08bb796) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "sumelton.5e", 0x0000, 0x1000, CRC(10894f38) SHA1(83fac1d9e6d54697a93a0eadb4a66a813e4bd32a) ) + ROM_LOAD( "sumelton.5f", 0x1000, 0x1000, CRC(debef8a9) SHA1(503005bd563099094ad8815f8651cbdcd616571f) ) + + PACMAN_PROMS +ROM_END + +ROM_START( sumelton ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "sumelton.6j", 0x3000, 0x1000, CRC(c1fe2c7d) SHA1(8eabe4c30dfd1db9b38f8557f136894ee3865f15) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "sumelton.5e", 0x0000, 0x1000, CRC(10894f38) SHA1(83fac1d9e6d54697a93a0eadb4a66a813e4bd32a) ) + ROM_LOAD( "sumelton.5f", 0x1000, 0x1000, CRC(debef8a9) SHA1(503005bd563099094ad8815f8651cbdcd616571f) ) + + PACMAN_PROMS +ROM_END + +ROM_START( tbone ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) ) + ROM_LOAD( "tbone.map", 0x8000, 0x1000, CRC(e7377f2d) SHA1(3cffb221655b1c7240a97ec82132a4a1a76d383e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "tbone.5e", 0x0000, 0x1000, CRC(afd44c48) SHA1(36750fbaeb8db4143fdd90aec83189fc552b110e) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ultra2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "ultra2.6j", 0x3000, 0x1000, CRC(83da903e) SHA1(541cda1dad90cfbf5c9aa5dd3091337527236bc0) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( ultrapac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "ultrapac.6j", 0x3000, 0x1000, CRC(84c6c23b) SHA1(f207ce54d7ee31d61397f1587292ea6add56cb04) ) + ROM_LOAD( "ultrapac.map", 0x8000, 0x1000, CRC(be212894) SHA1(eaf4d33d1e2ebd14d2c9dd3445666c1319ba7807) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "ultrapac.5e", 0x0000, 0x1000, CRC(d46efbcf) SHA1(1d90cca40f5b0518cf39408e87d9faf42071e6f9) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vcrunchy ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pcrunchy.6j", 0x3000, 0x1000, CRC(c21c6c52) SHA1(c63212f51c6bf49e76b3ca7553a29e3371c4fa83) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vecbaby ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacbaby.6j", 0x3000, 0x1000, CRC(4e4ac798) SHA1(deab2d93a678abee576c891bdfb7ab93d5718792) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vecbaby2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacbaby2.6j", 0x3000, 0x1000, CRC(742453ba) SHA1(21707992ea3489c8bc95b14db33f62b6aaa24eb4) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vecbaby3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacbaby3.6j", 0x3000, 0x1000, CRC(b82f2b73) SHA1(63619220b9ed4dfeb4f462b41d9685870716590a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vecpac ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vectplus ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) ) + ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) ) + ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) ) + ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vectplus.5e", 0x0000, 0x1000, CRC(330abcc6) SHA1(421eb2efe402572189621e2fac49df80bd891f2c) ) + ROM_LOAD( "vectplus.5f", 0x1000, 0x1000, CRC(61da12cf) SHA1(03bc75e3344b863e460fe74aa3b9be36e17d1149) ) + + PACPLUS_PROMS +ROM_END + +ROM_START( vectr6m ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) ) + ROM_LOAD( "pacman6.map", 0x8000, 0x1000, CRC(de753fd9) SHA1(467cd6dd572a3e6f0b2e0120d520df919433655a) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vectr6m.5e", 0x0000, 0x1000, CRC(f7be09ba) SHA1(1ac6f67637831a39979866b684898228fb7a9761) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vectr6tb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) ) + ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) ) + ROM_LOAD( "vectr6tb.map", 0x8000, 0x1000, CRC(bdbbb207) SHA1(2beceac64d53f197b533375da255a4158e76d970) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vectr6m.5e", 0x0000, 0x1000, CRC(f7be09ba) SHA1(1ac6f67637831a39979866b684898228fb7a9761) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vectxens ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vhangly ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) ) + ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) ) + ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) ) + ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +/* This set came from Gatinho in October 2008. */ +ROM_START( vhangly3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) ) + ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) ) + ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) ) + ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) ) + ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) ) + ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) ) + ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) ) + ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vhangly3.5e", 0x0000, 0x0800, CRC(6e0f31d5) SHA1(edf4674f511a61827d928cff3ea996f67814b281) ) + ROM_LOAD( "vhangly3.5h", 0x0800, 0x0800, CRC(d602128c) SHA1(cff082f5911688767d3d7cc828bb13714daeb19a) ) + ROM_LOAD( "vhangly3.5f", 0x1000, 0x0800, CRC(bff9b303) SHA1(863d155a54fb67864be3f2a0fe339815036bccf3) ) + ROM_LOAD( "vhangly3.5j", 0x1800, 0x0800, CRC(b9724ce8) SHA1(ef4320a572d69f09821d180a249bdd06af38ca63) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacbell ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacbell.6j", 0x3000, 0x1000, CRC(4b428215) SHA1(acdcc4d7ccfc58c6c0473e8ee548b5e02dcafcfd) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacelec ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacelec.6j", 0x3000, 0x1000, CRC(9e5c763d) SHA1(df56eb705c7dfaf00b084aa6744d7fd5fa4f47d3) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacjail ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacjail.6j", 0x3000, 0x1000, CRC(cc31f185) SHA1(cd184a55f775bc9a70d0bfa932d2993b8987135b) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacms1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacms1.6j", 0x3000, 0x1000, CRC(c5da3887) SHA1(2a65b31891bc19fc0fbdace39e853fff6c4227eb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) ) + ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacms2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacms2.6j", 0x3000, 0x1000, CRC(b0a107ea) SHA1(86b8b7cb7e90b0de95bc9b8e3b98bcc46992578e) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) ) + ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacms3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacms3.6j", 0x3000, 0x1000, CRC(c7d8325a) SHA1(bf72a2d7b20d76e521cf45fbe1b0ab762daa8106) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) ) + ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacms4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacms4.6j", 0x3000, 0x1000, CRC(7b63ff9b) SHA1(84c167878ca4a1a1d79c397438defc8dcc6326f7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) ) + ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacmsa1 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmsa1.6j", 0x3000, 0x1000, CRC(07163b97) SHA1(fdfbca327a2c3f69b4478b1e3ca9c8ed71605582) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) ) + ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacmsa2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmsa2.6j", 0x3000, 0x1000, CRC(15e83c24) SHA1(ebe4d476104bbd037a1b5fe5783c0b77229ca707) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) ) + ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacmsa3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmsa3.6j", 0x3000, 0x1000, CRC(5762f9cf) SHA1(b570468372a9520929513425523fdae734d4acfc) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) ) + ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacmsa4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "pacmsa4.6j", 0x3000, 0x1000, CRC(d9c2a669) SHA1(2f82405d297f35cc13199e1671cfa835dd598e9c) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) ) + ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpacshuf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacshuf.6j", 0x3000, 0x1000, CRC(55cc4d87) SHA1(1a05670c4fd09b4155941aa1ea90a5719a3e7ebb) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( vpspeed ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) ) + ROM_LOAD( "pacspeed.6j", 0x3000, 0x1000, CRC(0e7946d1) SHA1(cea3440a305ec05dab197dba7ac8428db0d5e2f7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) ) + ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) ) + + PACMAN_PROMS +ROM_END + +ROM_START( xensad ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "pmad00.5e", 0x0000, 0x1000, CRC(315f7131) SHA1(8182e3e177111aabad0058897b80cee8a3fd93c7) ) + ROM_LOAD( "pmad00.5f", 0x1000, 0x1000, CRC(157a6c0f) SHA1(93f66ad4595eb9fcc306398cb83abcacc60b1521) ) + + PACMAN_PROMS +ROM_END + +ROM_START( xensrev ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ) + ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) ) + ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) ) + ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "xensrev.5e", 0x0000, 0x1000, CRC(40e3522d) SHA1(461d1895f82502538bf120a61a3950970f9f1b09) ) + ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) ) + + PACMAN_PROMS +ROM_END + +/************************************* + * + * Game drivers + * + *************************************/ + +/* in my opinion, the true original game */ +GAME( 1980, puckman, 0, pacman, pacman, driver_device, 0, ROT90, "Namco", "Puckman (original)", MACHINE_SUPPORTS_SAVE ) + +/* Official MAME */ + +/* rom parent machine inp init */ +GAME( 1982, ctrpllrp, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Caterpillar Pacman Hack", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hangly, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hangly2, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hangly3, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, joyman, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Joyman", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, newpuc2, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Newpuc2", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, newpuc2b, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, newpuckx, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "New Puck-X", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacheart, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Pacman (Hearts)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, pacman, puckman, pacman, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, pacmanf, puckman, pacman, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway, with speedup hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacmod, puckman, pacman, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pacplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Namco] (Midway license)", "Pacman Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, puckmod, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmanb, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 1, Probably Bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmana, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmanf, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 1 with speedup hack)", MACHINE_SUPPORTS_SAVE ) + +/* Blue Justice's Hacks */ + +GAME( 2001, hm1000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man 1000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hm2000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man 2000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hmba5000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Babies 5000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hmba7000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Babies 7000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hmbabymz, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man BabiesMaze", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hmbluep, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Blue Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hmgrenp, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Green Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hmplus, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pm1000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man 1000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pm2000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man 2000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pm3000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man 3000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pm4000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 4000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pm5000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 5000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pm6000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 6000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pm7000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 7000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pm7000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 7000 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmba2000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man Babies 2000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmba3000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man Babies 3000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmba4000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies 4000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmba6000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man Babies 6000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmba8000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies 8000", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmbamaz, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man Babies Maze", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmbaplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmbluep, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Blue Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmdeluxe, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Deluxe", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmextra, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Extra", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmextrap, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Extra Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmfever, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Fever", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pmgrenp, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Green Plus", MACHINE_SUPPORTS_SAVE ) + +/* T-Bone Hacks */ + +GAME( 2000, baby2, puckman, pacman, pacman, driver_device, 0, ROT90, "T-Bone", "Baby Pacman 2 (Alt)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, baby3, puckman, pacman, pacman, driver_device, 0, ROT90, "T-Bone", "Baby Pacman 3 (Alt)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, baby4, puckman, pacman, pacman, driver_device, 0, ROT90, "T-Bone", "Pacman (Baby Maze 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pmad6m, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Pacman 2000 After Dark", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, snakeyes, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Pacman 2000 (Snake Eyes Mazes)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, snowpac, puckman, pacman, pacman, driver_device, 0, ROT90, "T-Bone", "Snowy Day Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tbone, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Pacman 2000 (T-Bone Mazes)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vectr6m, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Vector Pacman 2000", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vectr6tb, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Vector Pacman 2000 (T-Bone Mazes)", MACHINE_SUPPORTS_SAVE ) + +/* Jerronimo's Progs - www.umlautllama.com */ + +GAME( 2000, brakman, puckman, pacman, pacman, driver_device, 0, ROT90, "Scott Lawrence", "Brakman", MACHINE_SUPPORTS_SAVE ) // http://www.csh.rit.edu/~jerry/arcade/age/ +GAME( 2004, pacman25, puckman, woodpek, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "25 MAP PAC [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, pacsnoop, puckman, pacman, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Pac Snoop v1.3 [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pengman, puckman, pacman, pacman, driver_device, 0, ROT90, "Scott Lawrence", "Pengo Man", MACHINE_SUPPORTS_SAVE ) // http://www.csh.rit.edu/~jerry/arcade/age/ + +/* Medragon's Hacks */ + +GAME( 2000, crazypac, puckman, pacman, pacman, driver_device, 0, ROT90, "Tim Appleton", "Crazy Pac", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, dizzy, puckman, pacman, pacman, driver_device, 0, ROT90, "Tim Appleton", "Dizzy Ghost - A Reversal of Roles", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacfnt, puckman, pacman, pacman, driver_device, 0, ROT90, "Tim Appleton", "Pacman with Pacman font", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacwf, puckman, pacman, pacman, driver_device, 0, ROT90, "Tim Appleton", "Pacman (Weird Fruit)", MACHINE_SUPPORTS_SAVE ) + +/* Sil's Hacks */ + +GAME( 1998, chtpac3d, puckman, pacman, pacman0, driver_device, 0, ROT90, "Marcel Silvius", "Pacman 3D [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, eltonpac, puckman, pacman, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Elton Pac", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mazeman, puckman, pacman, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Maze Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, namcosil, puckman, pacman, pacman0, driver_device, 0, ROT90, "Marcel Silvius", "Pacman (Namco) (Sil hack) [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, newpuck3, puckman, pacman, pacman, driver_device, 0, ROT90, "Marcel Silvius", "New Puck-3", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, pacman3d, puckman, pacman, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Pacman 3D", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacman6, puckman, woodpek, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Pacman 6", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacmn6m2, puckman, woodpek, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Pacman 2000 (Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacmulti, puckman, woodpek, pacman, driver_device, 0, ROT90, "Marcel Silvius", "PacMulti (Pacman)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacweird, puckman, woodpek, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Pacman (Six Map Weird)", MACHINE_SUPPORTS_SAVE ) + +/* Bobby Tribble's Hacks */ + +GAME( 2000, pac2600, puckman, pacman, pacman, driver_device, 0, ROT90, "Bobby Tribble", "Pac 2600", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, pac2600a, puckman, pacman, pacman, driver_device, 0, ROT90, "Bobby Tribble?","Pac 2600 (Older?)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacmini, puckman, pacman, pacman, driver_device, 0, ROT90, "Bobby Tribble", "Mini Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacmini2, puckman, pacman, pacman, driver_device, 0, ROT90, "Bobby Tribble", "Mini Pacman 2", MACHINE_SUPPORTS_SAVE ) + +/* Hires hacks */ + +GAME( 1981, hanglyx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 1) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hangly2x, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 2) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hangly3x, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 3) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, newpuc2x, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, nwpuc2bx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (set 2) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, nwpuckxx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "New Puck-X (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, pacmanx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, pacmanfx, puckmanx, pacmanx, pacman0, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway) (hires hack) [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacmodx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway, harder) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pacplusx, puckmanx, pacmanx, pacman, pacman_state, pacplus, ROT90, "[Namco] (Midway license)", "Pac-Man Plus (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pheartx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Pac-Man (Hearts) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmanx, 0, pacmanx, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 1, Probably Bootleg) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmnax, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 2) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmnfx, puckmanx, pacmanx, pacman0, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 1) (hires hack) [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmnhx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Puckman (Falcom?) (hires hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, puckmodx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 3) (hires hack)", MACHINE_SUPPORTS_SAVE ) + +/* Misc Pacman Hacks */ + +GAME( 2001, abortman, puckman, pacman, pacman, driver_device, 0, ROT90, "Paul Copeland", "Abortman", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, bucaneer, puckman, pacman, pacman, driver_device, 0, ROT90, "Bucco", "Bucaneer", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, caterpil, puckman, pacman, mspacman, driver_device, 0, ROT90, "Phi", "Caterpillar", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, chtpac, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Midway]", "Pacman [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, chtpman2, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Namco]", "New Puck2 [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, chtpop, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Midway]", "Pac-man (Popeye) [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, chtpuck, puckman, pacman, pacman0, driver_device, 0, ROT90, "Deluxe", "New Puck-X [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, europac, puckman, pacman, pacman, driver_device, 0, ROT90, "Stefano Priore", "Euro Pac", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, fasthang, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Nittoh]", "Hangly Man [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, fastpop, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Midway]", "Pacman (Popeye) [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, fastpuck, puckman, pacman, pacman0, driver_device, 0, ROT90, "Deluxe", "New Puck-X [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, fpnleash, puckman, woodpek, pacman, driver_device, 0, ROT90, "Peter Storey", "Pacman Unleashed (Flat)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, fstpman2, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Namco]", "New Puck2 [f]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hanglyad, puckman, pacman, pacman, driver_device, 0, ROT90, "[Nittoh]", "Hangly-Man (set 1) After Dark", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hearts, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Hearts)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, hellowp, puckman, pacman, pacman, driver_device, 0, ROT90, "cmonkey", "Hello World (Pacman HW)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hmhearts, puckman, pacman, pacman, driver_device, 0, ROT90, "[Nittoh]", "Hangly-Man (Hearts)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hmpopey, puckman, pacman, pacman, driver_device, 0, ROT90, "[Nittoh]", "Hangly-Man (Popeye)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, homercid, puckman, pacman, mspacpls, driver_device, 0, ROT90, "David Widel", "Homercide", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, jacman, puckman, pacman, pacman, driver_device, 0, ROT90, "Brent Cobb", "Jacman", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, jpmmunch, puckman, pacman, pacman, driver_device, 0, ROT90, "JPM", "Muncher", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, newpuc1, puckman, pacman, pacman, driver_device, 0, ROT90, "E.P.", "Newpuc1 (Italian dump)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, newpuck2, puckman, pacman, pacman, driver_device, 0, ROT90, "Sir Scotty", "New Puck-2", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, nwpuc2b, puckman, pacman, newpuc2b, driver_device, 0, ROT90, "Linear Elect", "New Puc2 (Set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacbaby, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Baby Maze 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacbaby2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Baby Maze 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacbaby3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Baby Maze 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacbell, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Bell)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacelec, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Electric Cowboy)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacinvis, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Original Inviso)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacjail, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Jail)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacjr1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacjr2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacjr3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacjr4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacm255, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Fixes 255th Maze)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, pacmanp, puckman, pacman, pacman, driver_device, 0, ROT90, "Don Hodges", "Pacman (Patched)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, pacmar, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Mario Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, pacminer, puckman, pacman, pacman, driver_device, 0, ROT90, "Jim Bagley", "Pac Manic Miner Man", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacms1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacms2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacms3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacms4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacmsa1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacmsa2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacmsa3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacmsa4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pacplusc, puckman, pacman, pacman0, driver_device, 0, ROT90, "Bally Midway", "Pacman Plus (Unencrypted) [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, pacpopey, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Popeye)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, pacrab, puckman, woodpek, pacman, driver_device, 0, ROT90, "[Midway]", "Pac Rabbit", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacshuf, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Shuffle)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pacspeed, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Speedy)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pcrunchy, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Crunchy)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pheartb, puckman, pacman, newpuc2, driver_device, 0, ROT90, "Kamiya", "Pacman Hearts 2", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pmad, puckman, pacman, pacman, driver_device, 0, ROT90, "Sir Scotty", "Pacman After Dark", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pmad00, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman After Dark 2000", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pmada, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman After Dark (Alternate)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, pmheart, puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg", "Puckman Hearts", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, pplusad, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Bally Midway]", "Pacman Plus After Dark", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, puck255, puckman, pacman, pacman, driver_device, 0, ROT90, "[Namco]", "Puckman (Fixes 255th Maze)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, puckmano, puckman, pacman, pacman, driver_device, 0, ROT90, "Hebus", "Puckman Opposite", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, puckmot1, puckman, pacman, pacman, driver_device, 0, ROT90, "Hebus", "Puckmotik (alt)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, puckmoti, puckman, pacman, pacman, driver_device, 0, ROT90, "Hebus", "Puckmotik", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, puckren, puckman, pacman, pacman, driver_device, 0, ROT90, "PacHack", "Puckman Renaissance", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, puckrenc, puckman, pacman, pacman0, driver_device, 0, ROT90, "PacHack", "Puckman Renaissance [c]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, punleash, puckman, woodpek, pacman, driver_device, 0, ROT90, "Peter Storey", "Pacman Unleashed", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, roboman, puckman, pacman, pacman, driver_device, 0, ROT90, "Runge Editing", "Robo Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, spuckman, puckman, pacman, spuckman, driver_device, 0, ROT90, "TV Tune / Miet!o!mat", "Super Puckman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, sumelton, puckman, pacman, pacman, driver_device, 0, ROT90, "Staizitto", "Summertime Elton", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, sumeltob, puckman, pacman, pacman, driver_device, 0, ROT90, "Staizitto", "Summertime Elton (old)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ultra2, puckman, pacman, pacman, driver_device, 0, ROT90, "TwoBit Score", "Ultra Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, ultrapac, puckman, woodpek, pacman, driver_device, 0, ROT90, "PacFan", "UltraPac", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vcrunchy, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Crunchy)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vecbaby, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vecbaby2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vecbaby3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vecpac, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vectplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Bally Midway]", "Vector Pacman Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vectxens, puckman, pacman, pacman, driver_device, 0, ROT90, "Jeff Morris", "Vector Xens Revenge", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vhangly, puckman, pacman, pacman, driver_device, 0, ROT90, "[Nittoh]", "Vector Hangly-Man", MACHINE_SUPPORTS_SAVE ) +GAME( 2008, vhangly3, puckman, pacman, pacman, driver_device, 0, ROT90, "Gatinho [Nittoh]", "Vector Hangly-Man3", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacbell, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Bell)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacelec, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Electric Cowboy)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacjail, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Jail)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacms1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacms2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacms3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacms4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacmsa1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacmsa2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacmsa3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacmsa4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpacshuf, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Shuffle)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vpspeed, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Speedy)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, xensad, puckman, pacman, pacman, driver_device, 0, ROT90, "Jeff Morris", "Xens Revenge After Dark", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, xensrev, puckman, pacman, pacman, driver_device, 0, ROT90, "Jeff Morris", "Xens Revenge", MACHINE_SUPPORTS_SAVE ) + + +#include "mspacman.cpp" +#include "multipac.cpp" +#include "maketrax.cpp" + diff --git a/docs/release/src/hbmame/drivers/pcktgal.cpp b/docs/release/src/hbmame/drivers/pcktgal.cpp new file mode 100644 index 00000000000..d394770ac6e --- /dev/null +++ b/docs/release/src/hbmame/drivers/pcktgal.cpp @@ -0,0 +1,53 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/pcktgal.cpp" + +ROM_START( pckgalgr ) + ROM_REGION( 0x14000, "maincpu", 0 ) /* 64k for code + 16k for banks */ + ROM_LOAD( "eb04gr.rom", 0x10000, 0x4000, CRC(9a7a826c) SHA1(f0c62a760cc05e31568723eaf354a735c28d20ab) ) + ROM_CONTINUE( 0x04000, 0xc000) + /* 4000-7fff is banked but code falls through from 7fff to 8000, so */ + /* I have to load the bank directly at 4000. */ + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 96k for code + 96k for decrypted opcodes */ + ROM_LOAD( "eb03.f2", 0x10000, 0x8000, CRC(cb029b02) SHA1(fbb3da08ed05ae73fbeeb13e0e2ff735aaf83db8) ) + ROM_CONTINUE( 0x08000, 0x8000 ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "eb01gr.rom", 0x00000, 0x10000, CRC(9e5e5743) SHA1(3379bcd36148c37bfc8d2eb2909104b367797856) ) + ROM_LOAD( "eb02gr.rom", 0x10000, 0x10000, CRC(be11227c) SHA1(c41b10f23ce60829a40851ad024e189bc7e5b07c) ) + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "eb00gr.rom", 0x00000, 0x10000, CRC(5eeb40e8) SHA1(703b2b87954032a383c6f34316df2b5ec6a59488) ) + + ROM_REGION( 0x0400, "proms", 0 ) + ROM_LOAD( "eb05.k14", 0x0000, 0x0200, CRC(3b6198cb) SHA1(d32b364cfce99637998ca83ad21783f80364dd65) ) /* 82s147.084 */ + ROM_LOAD( "eb06.k15", 0x0200, 0x0200, CRC(1fbd4b59) SHA1(84e20329003cf09b849b49e1d83edc330d49f404) ) /* 82s131.101 */ +ROM_END + +ROM_START( pcktgalk ) + ROM_REGION( 0x14000, "maincpu", 0 ) /* 64k for code + 16k for banks */ + ROM_LOAD( "eb04.j7", 0x10000, 0x4000, CRC(8215d60d) SHA1(ac26dfce7e215be21f2a17f864c5e966b8b8322e) ) + ROM_CONTINUE( 0x04000, 0xc000) + /* 4000-7fff is banked but code falls through from 7fff to 8000, so */ + /* I have to load the bank directly at 4000. */ + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 96k for code + 96k for decrypted opcodes */ + ROM_LOAD( "eb03.f2", 0x10000, 0x8000, CRC(cb029b02) SHA1(fbb3da08ed05ae73fbeeb13e0e2ff735aaf83db8) ) + ROM_CONTINUE( 0x08000, 0x8000 ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "eb01k.rom", 0x00000, 0x10000, CRC(3b9f8e29) SHA1(b7ae6d72b9fc1f4964b673346d76a9d24cd5606c) ) + ROM_LOAD( "eb02.d12", 0x10000, 0x10000, CRC(a9dcd339) SHA1(245824ab86cdfe4b842ce1be0af60f2ff4c6ae07) ) + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "eb00.a1", 0x00000, 0x10000, CRC(6c1a14a8) SHA1(03201197304c5f1d854b8c4f4a5c78336b51f872) ) + + ROM_REGION( 0x0400, "proms", 0 ) + ROM_LOAD( "eb05.k14", 0x0000, 0x0200, CRC(3b6198cb) SHA1(d32b364cfce99637998ca83ad21783f80364dd65) ) /* 82s147.084 */ + ROM_LOAD( "eb06.k15", 0x0200, 0x0200, CRC(1fbd4b59) SHA1(84e20329003cf09b849b49e1d83edc330d49f404) ) /* 82s131.101 */ +ROM_END + + +GAME( 1987, pckgalgr, pcktgal, pcktgal, pcktgal, pcktgal_state, pcktgal, ROT0, "GreekRoms", "Pocket Gal (Greek)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, pcktgalk, pcktgal, pcktgal, pcktgal, pcktgal_state, pcktgal, ROT0, "Hack", "Pocket Gal (Korean)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/pengo.cpp b/docs/release/src/hbmame/drivers/pengo.cpp new file mode 100644 index 00000000000..29b1193b267 --- /dev/null +++ b/docs/release/src/hbmame/drivers/pengo.cpp @@ -0,0 +1,148 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/pengo.cpp" + + + +// DSW1 needs to be here, coins/credits combinations to be found out +static INPUT_PORTS_START( pacpen ) + PORT_INCLUDE( pengo ) + PORT_MODIFY("DSW0") + PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:1,2") + PORT_DIPSETTING( 0x00, "10000" ) + PORT_DIPSETTING( 0x01, "15000" ) + PORT_DIPSETTING( 0x02, "20000" ) + PORT_DIPSETTING( 0x03, DEF_STR( None ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:3") + PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) + PORT_DIPNAME( 0x18, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:4,5") + PORT_DIPSETTING( 0x18, "5" ) + PORT_DIPSETTING( 0x10, "3" ) + PORT_DIPSETTING( 0x08, "2" ) + PORT_DIPSETTING( 0x00, "1" ) + PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) PORT_DIPLOCATION("SW1:6,7,8") +INPUT_PORTS_END + + + +/* The colours for alpacap7 and alpacap8 are completely wrong, but we are using the roms specified by + the original programmer. See http://umlautllama.com/projects/alpaca */ +ROM_START( alpacap7 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "alp7.u8", 0x0000, 0x1000, CRC(E70923E4) SHA1(86A96DC0DEE5F5B532121892528ED2B456D51174) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "alp7_ic92", 0x0000, 0x1000, CRC(693B1A96) SHA1(DED8AC0A4186458FDA6A241C027718742BA87973) ) + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_LOAD( "alp_ic105", 0x1000, 0x1000, CRC(BDA193F4) SHA1(A61B5E86809FEFF025C73DE78FC751EAD646125B) ) + ROM_CONTINUE( 0x3000, 0x1000 ) + + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) ) + ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) ) + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) ) + ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + +ROM_START( alpacap8 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "alp8.u8", 0x0000, 0x1000, CRC(ABD45FD7) SHA1(120276D1E9A3DA707DB4263A93418CA37F4F4C9F) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "alp8_ic92", 0x0000, 0x1000, CRC(4A45717F) SHA1(159A74C31FC5D4E5405BCD8D8843A1B381EA01A4) ) + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_LOAD( "alp_ic105", 0x1000, 0x1000, CRC(BDA193F4) SHA1(A61B5E86809FEFF025C73DE78FC751EAD646125B) ) + ROM_CONTINUE( 0x3000, 0x1000 ) + + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) ) + ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) ) + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) ) + ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + +ROM_START( pacpen ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pacpen.u8", 0x0000, 0x1000, CRC(59959af1) SHA1(c528a7895338806977f2d9c76da91f67b0f78aed) ) + ROM_LOAD( "pacpen.u7", 0x1000, 0x1000, CRC(3ed59df1) SHA1(561725f5970954cccf938330fd9f48ad0cb1829b) ) + ROM_LOAD( "pacpen.u15", 0x2000, 0x1000, CRC(d0c8dcc8) SHA1(3a6829d12d7ef6f09d5e1afa5e0e4ef9d0605aa1) ) + ROM_LOAD( "pacpen.u14", 0x3000, 0x1000, CRC(39066ad9) SHA1(9789a111b94a3c5aabf910c72c146f71df59f316) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "pacpen.u92", 0x0000, 0x1000, CRC(2f0b5176) SHA1(a6a51d4545329999a5f42ae790bfb3a894429fee) ) + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_LOAD( "pacpen.105", 0x1000, 0x1000, CRC(6ba0078e) SHA1(a6e14aa373ef22fe732c335fb1ad6c48fec92530) ) + ROM_CONTINUE( 0x3000, 0x1000 ) + + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) ) + ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) ) + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) ) + ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + +ROM_START( pengopop ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pengo.u8", 0x0000, 0x1000, CRC(3dfeb20e) SHA1(a387b72501da77bf38b58619d2099083a0463e1f) ) + ROM_LOAD( "pengo.u7", 0x1000, 0x1000, CRC(1db341bd) SHA1(d1c66bb9cf479e6960dbcd35c820097a81eaa555) ) + ROM_LOAD( "pengo.u15", 0x2000, 0x1000, CRC(7c2842d5) SHA1(a8a568da68babd0ccb9f2cee4182fc01c3138494) ) + ROM_LOAD( "pengo.u14", 0x3000, 0x1000, CRC(6e3c1f2f) SHA1(2ee821b0f6e0f3cfeae7f5ff25a6e9bd977efce0) ) + ROM_LOAD( "ep5124.21", 0x4000, 0x1000, CRC(95f354ff) SHA1(fdebc68a6d87f8ecdf52a57a34ae5ae844a13510) ) + ROM_LOAD( "pengo.u20", 0x5000, 0x1000, CRC(0fdb04b8) SHA1(ed814d58318c1055e475ff678609d189727bf9b4) ) + ROM_LOAD( "ep5126.32", 0x6000, 0x1000, CRC(e5920728) SHA1(0ac5ffdad7bdcb32e630b9582e1b1aaece5198c9) ) + ROM_LOAD( "pengopc.u31", 0x7000, 0x1000, CRC(1ede8569) SHA1(0d10a0896847a06185a91eb83c0ccb88c4307b33) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "ep1640.92", 0x0000, 0x1000, CRC(d7eec6cd) SHA1(e542bcc28f292be9a0a29d949de726e0b55e654a) ) + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_LOAD( "ep1695.105", 0x1000, 0x1000, CRC(5bfd26e9) SHA1(bdec535e486b43a8f5550334beff423eeace10b2) ) + ROM_CONTINUE( 0x3000, 0x1000 ) + + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) ) + ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) ) + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) ) + ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + +ROM_START( vecpengo ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ep1689c.8", 0x0000, 0x1000, CRC(f37066a8) SHA1(0930de17a763a527057f60783a92662b09554426) ) + ROM_LOAD( "ep1690b.7", 0x1000, 0x1000, CRC(baf48143) SHA1(4c97529e61eeca5d94938b1dfbeac41bf8cbaf7d) ) + ROM_LOAD( "ep1691b.15", 0x2000, 0x1000, CRC(adf0eba0) SHA1(c8949fbdbfe5023ee17a789ef60205e834a76c81) ) + ROM_LOAD( "ep1692b.14", 0x3000, 0x1000, CRC(a086d60f) SHA1(7079769d14dfe3873ffe29623ba0a93413706c6d) ) + ROM_LOAD( "ep1693b.21", 0x4000, 0x1000, CRC(b72084ec) SHA1(c0508951c2ad8dc31481be8b3bfee2063e3fb0d7) ) + ROM_LOAD( "ep1694b.20", 0x5000, 0x1000, CRC(94194a89) SHA1(7b47aec61593efd758e2a031f72a854bb0ba8af1) ) + ROM_LOAD( "ep5118b.32", 0x6000, 0x1000, CRC(af7b12c4) SHA1(207ed466546f40ca60a38031b83aef61446902e2) ) + ROM_LOAD( "ep5119c.31", 0x7000, 0x1000, CRC(933950fe) SHA1(fec7236b3dee2ea6e39c68440a6d2d9e3f72675a) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "vecp_ic92", 0x0000, 0x1000, CRC(57c5e53c) SHA1(4d1d4cdc352cb2fd14ebbd6678211093be73fb69) ) + ROM_CONTINUE( 0x2000, 0x1000 ) + ROM_LOAD( "vecp_ic105", 0x1000, 0x1000, CRC(b93588b0) SHA1(bbb779e538bdf7ebfcb0e12e11b57cabd5ddd29d) ) + ROM_CONTINUE( 0x3000, 0x1000 ) + + ROM_REGION( 0x0420, "proms", 0 ) + ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) ) + ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) ) + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) ) + ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) +ROM_END + + +GAME( 2003, alpacap7, alpaca8, pengou, pengo, driver_device, 0, ROT90, "Scott Lawrence", "Alpaca v0.7 (Pengo Hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS ) +GAME( 2003, alpacap8, alpaca8, pengou, pengo, driver_device, 0, ROT90, "Scott Lawrence", "Alpaca v0.8 (Pengo Hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS ) +GAME( 2016, pacpen, pengo, pengou, pacpen, driver_device, 0, ROT90, "Andrew Hannay", "Pacman on Pengo Hardware", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, pengopop, pengo, pengou, pengo, driver_device, 0, ROT90, "Sega", "Pengo (Popcorn Music)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, vecpengo, pengo, pengoe, pengo, driver_device, 0, ROT90, "T-Bone", "Pengo (Vector sim)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/pgm.cpp b/docs/release/src/hbmame/drivers/pgm.cpp new file mode 100644 index 00000000000..af04cee5348 --- /dev/null +++ b/docs/release/src/hbmame/drivers/pgm.cpp @@ -0,0 +1,2196 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/pgm.cpp" +/************************************************************************************** +Problem sets not included: + +KOV Zero 2000: only change is 2 gfx roms, and the result has bad gfx + +**************************************************************************************/ + +ROM_START( pgemeni ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "pgemeni.p103", 0x100000, 0x200000, CRC(6cafa56b) SHA1(0b3447357cf9dc10e9473102a109a2c9f63be66b) ) + + ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "pgemeni.t100", 0x180000, 0x400000, CRC(42b979dd) SHA1(38ae8a7e07f1169b876bd41e0a9bfe19ecb0256f) ) + + ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgemeni.a100", 0x0000000, 0x400000, CRC(105d7cee) SHA1(43b19032e9e3a1aeabd7ce11438c6658ac4b5dd0) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgemeni.b100", 0x0000000, 0x400000, CRC(b4127373) SHA1(fa731bedec8ff4c19ec68bd44e8ce0b80ec0c716) ) + + ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "pgmdemo.m100", 0x400000, 0x200000, CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) +ROM_END + +ROM_START( pgmdemo ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "pgmdemo.p103", 0x100000, 0x200000, CRC(d3f6ec45) SHA1(4c171ffff6a04b362f71c42de7bc1d7b57da2c0e) ) + + ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "pgmdemo.t100", 0x180000, 0x400000, CRC(0596a59a) SHA1(e48cb703e886a5b71ecc839136c642117aa529ef) ) + + ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgmdemo.a100", 0x0000000, 0x400000, CRC(5d0e8fa1) SHA1(95380456c8a6c9c48d4987951f689d5b9a7a397c) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgmdemo.b100", 0x0000000, 0x400000, CRC(15dd191f) SHA1(a90f63138c9a9bf9215b17a14635518aed7da8a9) ) + + ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "pgmdemo.m100", 0x400000, 0x200000, CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) +ROM_END + +ROM_START( pgmfrog ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "pgmfrog.p103", 0x100000, 0x200000, CRC(cdec9e8d) SHA1(183753b3f19e9b06c6059206aac85d865bf1dd66) ) + + ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "pgmfrog.t100", 0x180000, 0x400000, CRC(8f58b6d8) SHA1(79b3b503f29593170a7faa93d75707682d800c66) ) + + ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "pgmfrog.a100", 0x0000000, 0x400000, CRC(dc1eafe6) SHA1(11eb0d02c38df828ae0361bc7624c4658047df67) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "pgmfrog.b100", 0x0000000, 0x400000, CRC(3d44b66f) SHA1(04347002bd942d320c6b8240e4485aec626f2aaa) ) + + ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "pgmfrog.m100", 0x400000, 0x200000, CRC(05e2f761) SHA1(c93d94a8f11c41b019fcf9b6a90645416fd2c75b) ) +ROM_END + +ROM_START( ketarrb ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + /* doesn't use a separate BIOS rom */ + ROM_LOAD16_WORD_SWAP( "ketarrb_v100.u38", 0x000000, 0x200000, CRC(ec7a4f92) SHA1(6351fb386586956fbdb5f0730c481fb539cc267a) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // same as standard PGM text bios - surface scratched to remove details + ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) ) //text-1 + + ROM_REGION( 0x1000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) ) //image-1 + ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) ) //image-2 + + ROM_REGION( 0x0800000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) ) //bitmap-1 + + ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 ) /* Samples - (8 bit mono 11025Hz) - */ + /* there is a position for the PGM audio bios rom, but it's unpopulated, and the M of PGM has been scratched off the PCB */ + ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) ) //music-1 + + ROM_REGION( 0x20000, "sram", 0 ) /* default settings */ + ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) ) +ROM_END + +// This crashes in attract mode, but if you start a game before that happens, then it plays ok +ROM_START( orlegendcs ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0101.s160", 0x100000, 0x200000, CRC(d608ece9) SHA1(0a34bdcfcbb4fad4c499ee559791e29a432bff85) ) + + ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + + ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + + ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) +ROM_END + +// This crashes in attract mode, but if you start a game before that happens, then it plays ok +ROM_START( orlegendh ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0101h.s160", 0x100000, 0x200000, CRC(d608ece9) SHA1(0a34bdcfcbb4fad4c499ee559791e29a432bff85) ) + + ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) + + ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) + ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) + ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) + ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) ) + ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) ) + ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) ) + ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) ) + ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) ) + + ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) ) +ROM_END +#if 0 +ROM_START( kovassg ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.assg", 0x100000, 0x400000, CRC(b9885d5c) SHA1(be55e6b3639fbf30e4cbc1bb24e388fd2ad74382) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END +#endif +ROM_START( kovassg ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "assg_v315cn.rom", 0x100000, 0x400000, CRC(b9885d5c) SHA1(be55e6b3639fbf30e4cbc1bb24e388fd2ad74382) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "lsqh2_t01.rom",0x180000, 0x800000, CRC(d498d97f) SHA1(97a7b6d2ed1170449e7c2899448af7cbbca4c94f) ) + ROM_IGNORE( 0x800000 ) // second half identical + + ROM_REGION( 0x3000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "lsqh2_a01.rom", 0x0000000, 0x1000000, CRC(25ae3efd) SHA1(083d977602ddb5ad54fbdcba000cd4287de8d463) ) + ROM_LOAD( "lsqh2_a23.rom", 0x1000000, 0x1000000, CRC(7a779112) SHA1(0a7d36b3715063d8eac629b95a9bb3ecd8e54fca) ) + ROM_LOAD( "lsqh2_a45.rom", 0x2000000, 0x1000000, CRC(5d7de052) SHA1(7663b6cf09f65c4644661005a38f9aba84a32913) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "lsqh2_b01.rom", 0x0000000, 0x1000000, CRC(df7ca696) SHA1(7af3d27957a39de7e4873867c9972c05af7e7964) ) + + ROM_REGION( 0xc00000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "lsqh2_m01.rom",0x400000, 0x400000, CRC(01af1b65) SHA1(6cf523fa8f1e03f974771611bb9a4e08a4d4443f) ) + ROM_IGNORE( 0x400000 ) // 400000-7fffff empty + ROM_CONTINUE( 0x800000, 0x400000 ) + ROM_IGNORE( 0x400000 ) // c00000-ffffff empty +ROM_END + +ROM_START( kovdf ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.df", 0x100000, 0x400000, CRC(a4c3cfed) SHA1(09c7b51652a90cce21ec3977e522e4894b6f0e14) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kov2h1 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v204-32m.2h1", 0x100000, 0x400000, CRC(1f8cda84) SHA1(9220ef478edc2267c5d96083c2c4ecf465ab9685) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + // supplied rom freezes mame when attract mode starts, this one works + ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) + + ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ + ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + + ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) +ROM_END + +ROM_START( kov2h2 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v204-32m.2h2", 0x100000, 0x400000, CRC(7fcc1ab6) SHA1(47f9ab9f7f1b3d7941a70b383072d2d58e07637b) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) + + ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ + ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + + ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) +ROM_END + +ROM_START( kov2h3 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v204-32m.2h3", 0x100000, 0x400000, CRC(baa217ad) SHA1(f781d96870b7ac7043049ab08174bf2cc48979f5) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) + + ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ + ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + + ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) +ROM_END + +ROM_START( kov2h4 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v204-32m.2h4", 0x100000, 0x400000, CRC(ee8fb036) SHA1(bf1f3006a5e5026ff9bec8d8cb2e147ec2ee6716) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) + + ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ + ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + + ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) + ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) +ROM_END + +ROM_START( kov2h5 ) // was kov2psv + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "v204-32mv.rom", 0x100000, 0x400000, CRC(fa8d8e5b) SHA1(b7dc3853145bbc063a2953f5840eced1bbd9186e) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) ) + + ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ + ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) + + ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) ) + ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) // either this or a1201.rom in kov2 is probably bad + ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) ) + ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) ) + ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) // either this or a1204.rom in kov2 is probably bad + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) ) + ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) ) + + ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) ) +ROM_END + +ROM_START( kovph1 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.ph1", 0x100000, 0x400000, CRC(390ebbfc) SHA1(e051a7659a14316c35075cfd2a2f2baba7f18f1a) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph2 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600116.119", 0x100000, 0x400000, CRC(30157417) SHA1(6152b82aea174c4201f07e8ebc09f1750140f1ff) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph3 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600948.119", 0x100000, 0x400000, CRC(78aae711) SHA1(af4649201ca775db7c86e8027d9c2511f656fcb1) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph4 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p060006.119", 0x100000, 0x258000, CRC(b071cf49) SHA1(203b946d30640247b8ea5e8a56eeb2a5cb465b62) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph5 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600v93.119", 0x100000, 0x400000, CRC(1fa0e862) SHA1(beb83e1feb7c7bd133e6ad83eba50f381a25ab85) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph6 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600v97.119", 0x100000, 0x400000, CRC(00905e8d) SHA1(3695326f46d03bc2dc46588ee563df9d1ca14b97) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph7 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600lb.119", 0x100000, 0x400000, CRC(8da107cb) SHA1(f6bd684a0edd1f52110e6640bb4d824b789fbb4b) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600lb.rom", 0x0000000, 0x0800000, CRC(21e272ae) SHA1(71bee0d53a80c406c813e1c6ea99774df2e40f9c) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600lb.rom", 0x0000000, 0x0800000, CRC(b79355de) SHA1(4773a83fe646e27f6223897fea56eb438edc9809) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph8 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0602lw.119", 0x100000, 0x400000, CRC(77cfdb2e) SHA1(bf39922b38e8a7db898bb6cdc15f6ca9c2dc14b7) ) + ROM_LOAD16_WORD_SWAP( "p0601lw.119", 0x100000, 0x271000, CRC(04f76a4b) SHA1(7303956b589e175baa924077953f146b32868182) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600lw.rom", 0x0000000, 0x0800000, CRC(cca70135) SHA1(2d288df75907e50c7fc2beca5fb9fd895faece55) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602lw.rom", 0x1000000, 0x0800000, CRC(71c8a46c) SHA1(6391eb95e1f2933b0e02518232a4bbcf7c91b73f) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600lw.rom", 0x0000000, 0x0800000, CRC(a4155c55) SHA1(3146774f00dd4156b7423d9983dc6e678aca648d) ) + ROM_LOAD( "b0601lw.rom", 0x0800000, 0x0400000, CRC(a261d5bd) SHA1(19204c5ab9861f8ccfb0b168e2bb4137f9d14dfe) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph9 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600pj.119", 0x100000, 0x400000, CRC(2ca30916) SHA1(506a8b27cd9911348aa481d7276b2bda1b5758ef) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph10 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600qy.120", 0x100000, 0x400000, CRC(399c8cbc) SHA1(c9702db79ea56e6727577a5a9b8f42b700c67a4f) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph11 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.119", 0x100000, 0x400000, CRC(e4b0875d) SHA1(e8382e131b0e431406dc2a05cc1ef128302d987c) ) + // not working ROM_LOAD16_WORD_SWAP( "p0600s8.119", 0x100000, 0x2bc000, CRC(dc214ff5) SHA1(0a7448dbb18259e8e36e26b38b791bcd39e1d05e) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600s8.rom", 0x180000, 0x800000, CRC(e2528ac5) SHA1(f719c2fb80a9d645432bdba90ea15a2d59427cd2) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph12 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600x.119", 0x100000, 0x400000, CRC(3d5ad108) SHA1(f7129f69f16d1589c2b03c246f16518836f09ad7) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph13 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.119", 0x100000, 0x400000, CRC(910edfdf) SHA1(bb222e503fed23bbc9b4d244ba02b1dd756006f9) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph14 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.119", 0x100000, 0x400000, CRC(b5d87e6e) SHA1(98d3bc1327f209b19c159eb54652cabf2b61b434) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph15 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.119", 0x100000, 0x400000, CRC(c9326627) SHA1(a81a46325473be6b138cf76ee2fa9db655a11313) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph16 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600up.119", 0x100000, 0x400000, CRC(dfd96c08) SHA1(544463a734c50d45ce5549dba22aa7a3a3f75dc6) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600up.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph17 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.ph17", 0x100000, 0x400000, CRC(19032b59) SHA1(6462cfa55c6cd6d3668010e11463f1fb6a9641c8) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.ph17", 0x180000, 0x800000, CRC(84567fa4) SHA1(932fdd8095b499acbac69035c12929a2dc9a5564) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.ph17", 0x400000, 0x400000, CRC(75eaf52b) SHA1(4981992441b35343c8bf23e730bba070ddef3350) ) +ROM_END + +ROM_START( kovph18 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.ph18", 0x100000, 0x454f4e, CRC(5b2981c3) SHA1(8b64d86f76991960240126da13729b6cbc8f5513) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.ph18", 0x180000, 0x800000, CRC(d5b8327e) SHA1(5e00c0ff31e7258cc37e389c8bce0a1b8d39d49f) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x854f62, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.ph18", 0x400000, 0x454f62, CRC(24b06143) SHA1(3b712320ee9b4c8df2e0b2a3f05e3ccf11087c0a) ) +ROM_END + +ROM_START( kovph19 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.ph19", 0x100000, 0x400000, CRC(e4ec6880) SHA1(025d1dbc0f067d10d7e10567b9f1bc1bdfac481a) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph20 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.ph20", 0x100000, 0x400000, CRC(5c9acb7a) SHA1(a25c1813efa7151536971fce39cfb2e1e71c7f91) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph21 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.ph21", 0x100000, 0x400000, CRC(5e3bdea4) SHA1(5b20a0b9aa02f285425ac65c8df3c1a47e4e61f5) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph22 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.ph22", 0x100000, 0x400000, CRC(06d1f4d5) SHA1(69e2a580c66c45b0221335cc5eeb7ac0bb6e18b7) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph23 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.ph23", 0x100000, 0x2bc000, CRC(dc214ff5) SHA1(0a7448dbb18259e8e36e26b38b791bcd39e1d05e) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.ph23", 0x180000, 0x800000, CRC(e2528ac5) SHA1(f719c2fb80a9d645432bdba90ea15a2d59427cd2) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph24 ) // was kvplusjq + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600jq.119", 0x100000, 0x400000, CRC(a04866b9) SHA1(bae132ae93244e328a887728d4803c4593e8b01e) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovph25 ) // was kovplusq - crashes after 2nd attract cycle + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.120", 0x100000, 0x400000, CRC(6392a1c3) SHA1(ccbe2e736897a1c969e80fbee93ffcc6defb025a) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh1 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600hack.322", 0x100000, 0x400000, CRC(c48df7de) SHA1(d97e3603dcc09c5018f333f21d5069eef89289dd) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsharm.bin", 0x000000, 0x04000, CRC(9d8ecc0c) SHA1(51f288e8aa3dd1d4b7f24155fea9c6a7f4cd1144) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x400000, CRC(164b3c94) SHA1(f00ea66886ca6bff74bbeaa49e7f5c75c275d5d7) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh2 ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600re.322", 0x100000, 0x2a3000, CRC(4c38c199) SHA1(48876b6a9cd85d39c4b49b7a47e66d66f2bfd375) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600re.rom", 0x0000000, 0x0800000, CRC(2f5e017e) SHA1(83655f4c4d5f4155f0f8908870c0a97de9d52907) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600re.rom", 0x0000000, 0x0800000, CRC(c16d355b) SHA1(2f711376d489ba19cf466e3ee1d498c93313fcb5) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh3 ) // same as kovsh103 except for b0602 rom + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.103", 0x100000, 0x400000, CRC(f0b3da82) SHA1(4067beb69c049b51bce6154f4cf880600ca4de11) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.sh3", 0x0c00000, 0x0400000, CRC(c3e0b454) SHA1(7aaa9b1abf9f1e7fe9acbba757ff7fbfa46557d3) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh4 ) // p rom encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh4", 0x100000, 0x400000, CRC(739a92ca) SHA1(69387dfbc5015c3cb43283a189b49ae05f93f3fd) )//CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh5 ) // p rom encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh5", 0x100000, 0x400000, CRC(6c61f80f) SHA1(2797971c5a53c983284525603e2d41b2efd8f26d) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.sh5", 0x1800000, 0x0800000, CRC(eadc7955) SHA1(7ae5acded2a5c47ccbeb1726f93f14afdd1ede86) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.sh5", 0x0800000, 0x0800000, CRC(bf30ea67) SHA1(9d8049307c4084765eb1a1adb0530811347f2695) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.sh5", 0x400000, 0x400000, CRC(eae5bf80) SHA1(5052849cb1ea573ee98188c594b4a449c195e441) ) +ROM_END + +ROM_START( kovsh6 ) // p rom encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh6", 0x100000, 0x400000, CRC(8d02a952) SHA1(9af1d7193bba64631b8bd89f6de3a04c0bf7891f) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.sh6", 0x1800000, 0x0800000, CRC(cbc57bc1) SHA1(ae1ef43a5caaa1e1a0be6ba7a6598eeaeb284a1e) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.sh6", 0x0800000, 0x0800000, CRC(1885039b) SHA1(23f832ee7493d11f78ea06954da748ff1fa3c595) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.sh5", 0x400000, 0x400000, CRC(eae5bf80) SHA1(5052849cb1ea573ee98188c594b4a449c195e441) ) +ROM_END + +ROM_START( kovsh7 ) // set has 3 p roms (all encrypted, and 2 b601 roms, and 1 a603 rom, not coded atm + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600h.sh7", 0x100000, 0x400000, CRC(7c05aa5c) SHA1(85aa625187f79a4a7401386ffb6ea3c2492e1be3) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0540.rom", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0540.rom", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh8 ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh8", 0x100000, 0x400000, CRC(617e53fb) SHA1(5f8b05c11e08d1bef60cda563d15dc7537b5c8f0) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh9 ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh9", 0x100000, 0x400000, CRC(12463832) SHA1(7ace58653ab4e9b49556e0969596aeceb2c6dfae) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh10 ) // not set up yet, most likely to be encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.322", 0x100000, 0x400000, CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh11 ) // p rom same as kovsh8 + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.322", 0x100000, 0x400000, CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh12 ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh12", 0x100000, 0x400000, CRC(97330917) SHA1(99bff51d6d007d8f3f45dd36f43e4690ed5f4946) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(7ece721c) SHA1(3aa11f11803643f9aa4bdafa35421626d066c4e9) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh13 ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh13", 0x100000, 0x400000, CRC(d80651ec) SHA1(90ccb02b9e7c549ad0bd36379c72127cce4159cb) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh14 ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh14", 0x100000, 0x400000, CRC(bba16fe0) SHA1(ce9c42cde5d66913f73a34b66b9615a497103d3b) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh15 ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh15", 0x100000, 0x400000, CRC(54f6c5d9) SHA1(9abf1fed12261fdddd2e40d30d6ce536e91c1c55) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh16 ) // encrypted + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh15", 0x100000, 0x400000, CRC(54f6c5d9) SHA1(9abf1fed12261fdddd2e40d30d6ce536e91c1c55) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh17 ) // encrypted - was kovshq + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600q.322", 0x100000, 0x400000, CRC(f9e0bdc3) SHA1(fc7080d1255cae6b3a241fbbea24355530de0a8f) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh18 ) // Gem Fighter hack + ROM_REGION( 0x600000, "maincpu", 0 ) + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh18", 0x100000, 0x400000, CRC(24f9d4dc) SHA1(5e32c9faab39a735fa9c26aac09a7e87d84c252b) ) + + ROM_REGION( 0x4000, "prot", 0 ) + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) + ROM_LOAD( "a0600.sh18", 0x0000000, 0x0800000, CRC(7bd1a62d) SHA1(8dee71a336a21b8ba967066477f0285e310686e4) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) + ROM_LOAD( "b0600.sh18", 0x0000000, 0x0800000, CRC(52f5ba74) SHA1(05abef7cdfc9632601628bc2e8df142fc348b914) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + +ROM_START( kovsh19 ) // Rugal 98 hack + ROM_REGION( 0x600000, "maincpu", 0 ) + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "p0600.sh19", 0x100000, 0x400000, CRC(ed4a87a8) SHA1(70845ccd41eee2b31ffb93cd76fc53e2f6e4d5a8) ) + + ROM_REGION( 0x4000, "prot", 0 ) + ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) + + ROM_REGION( 0xc00000, "tiles", 0 ) + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x1e00000, "sprcol", 0 ) + ROM_LOAD( "a0600.sh19", 0x0000000, 0x0800000, CRC(ba94a9ac) SHA1(6bd779196cbcc89864b7f5aae6d363eacd93ed68) ) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) + ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) ) + ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) + ROM_LOAD( "b0600.sh19", 0x0000000, 0x0800000, CRC(3d90f533) SHA1(7026a2193ed16ec3097f024326fdae08bc639f50) ) + ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) ) + ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) ) + + ROM_REGION( 0x800000, "ics", 0 ) + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.sh19", 0x400000, 0x400000, CRC(4a6053b0) SHA1(64b37dc52f7924a727f549a4c2c2682851f9405e) ) +ROM_END + +// same problem as MAME kovsgqyza: it crashes after the 2nd attract cycle +ROM_START( kovsgqyzc ) + ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ + PGM_68K_BIOS + ROM_LOAD16_WORD_SWAP( "pgm_sgqyzc.rom", 0x100000, 0x400000, CRC(09774a3e) SHA1(f5131d07abb048cd3e3549bf0223c9cb485ce7f6) ) + + ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ + ROM_LOAD( "kovsgqyzc_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) // bootleg is probably a different device + + ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + PGM_VIDEO_BIOS + ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) + + ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */ + ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) + ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) ) + + ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */ + ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) ) + ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) ) + + ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ + PGM_AUDIO_BIOS + ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) ) +ROM_END + + + + +GAME( 2002, ketarrb, ket, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "trap15", "Ketsui: Kizuna Jigoku Tachi (2012/04/17 BACK. VER)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, orlegendh, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus / Xi You Shi E Zhuan Plus (ver. 2.0 by Enbrow)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, orlegendcs, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Kryso", "Oriental Legend / Xi Yo Gi Shi Re Zuang (Hack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2006, pgemeni, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Blastar", "P-Gemeni", MACHINE_SUPPORTS_SAVE ) // has no sound +GAME( 1997, pgmdemo, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Charles Doty", "Demo - PGM", MACHINE_SUPPORTS_SAVE ) // has no sound +GAME( 2006, pgmfrog, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Rastersoft", "Frog Feast (PGM)", MACHINE_SUPPORTS_SAVE ) +//GAME( 1999, kovassg, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour (hack set assg)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +//GAME( 2008, kovassg, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovassg, ROT0, "bootleg", "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 315CN)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ +GAME( 1999, kovdf, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour (hack set df)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsgqyzc, kovplus, pgm_arm_type1_sim, sango_ch, pgm_arm_type1_state, kovboot, ROT0, "bootleg", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 4)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kov2h1, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kov2h2, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kov2h3, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kov2h4, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kov2h5, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus (ver M204XX)(hack set 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 2007, kovph1, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus 2007 (hack set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph2, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph3, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus A948 (hack set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, kovph4, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "XM", "Knights of Valour Plus 2006 (hack set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph5, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph6, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph7, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 7)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph8, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Fangzhoo", "Knights of Valour Plus HACK (hack set 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph9, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 9)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph10, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph11, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 11)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph12, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 12)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph13, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 13)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph14, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 14)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // crashes in attract mode, but plays ok +GAME( 1999, kovph15, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 15)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph16, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 16)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kovph17, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hui Yi", "Knights of Valour Plus 2012 (hack set 17)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kovph18, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hui Yi", "Knights of Valour Plus 2012 (hack set 18)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kovph19, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 19)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kovph20, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 20)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 2012, kovph21, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 21)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph22, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 22)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph23, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 23)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph24, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Huangxu", "Knights of Valour Plus / Sangoku Senki Plus (hack set 24)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovph25, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 120)(hack set 25)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh1, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh2, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh3, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 3)", MACHINE_SUPPORTS_SAVE ) +// Note: kovsh4-17 all have encrypted p-rom, and most of the other altered roms haven't been coded in yet +GAME( 1999, kovsh4, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 4)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh5, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 5)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh6, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 6)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh7, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 7)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh8, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 8)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh9, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 9)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh10, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh11, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 11)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh12, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 12)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh13, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 13)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh14, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 14)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh15, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 15)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh16, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 16)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh17, kovsh, pgm_arm_type1_sim, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Sertsuna", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 320)(hack set 17)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh18, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (v104, Gem Fighters, hack set 18)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kovsh19, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (v104, Rugal 98, hack set 19)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) + + +#if 0 +// unused code from mame plus + +void pgm_arm_type1_state::kovplus_fix_patch() +{ + UINT8 *mem8 = (UINT8 *)(memregion("maincpu")->base()); + + mem8[0x1085D4] = 0x1B; + mem8[0x1085D5] = 0x3; + mem8[0x1085D6] = 0x1B; + mem8[0x1085D7] = 0xA4; + mem8[0x10EBEE] = 0x10; + mem8[0x10EBEF] = 0x15; + mem8[0x10EBF0] = 0x1A; + mem8[0x10EBF1] = 0x11; + mem8[0x11D3E4] = 0xC9; + mem8[0x11D3E5] = 0xF8; + mem8[0x11D3E6] = 0xB4; + mem8[0x11D3E7] = 0x9A; + mem8[0x11D492] = 0xA; + mem8[0x11D493] = 0x5A; + mem8[0x11D494] = 0xA; + mem8[0x11D495] = 0x6D; + mem8[0x11DAC6] = 0x18; + mem8[0x11DAC7] = 0x3B; + mem8[0x11DAC8] = 0xD1; + mem8[0x11DAC9] = 0xFE; + mem8[0x11DACA] = 0xE9; + mem8[0x11DACB] = 0xE; + mem8[0x11DACC] = 0x90; + mem8[0x11DACD] = 0x6B; + mem8[0x11DACE] = 0x90; + mem8[0x11DACF] = 0xF; + mem8[0x11DAD1] = 0x41; + mem8[0x11DE56] = 0x12; + mem8[0x11DE57] = 0x7F; + mem8[0x11DE58] = 0xD3; + mem8[0x11DE59] = 0x1C; + mem8[0x11DE5A] = 0xEB; + mem8[0x11DE5B] = 0xEA; + mem8[0x11DE5D] = 0x86; + mem8[0x11DE60] = 0x10; + mem8[0x11DE61] = 0x7F; + mem8[0x11DE62] = 0xD1; + mem8[0x11DE63] = 0x82; + mem8[0x11DE64] = 0xE9; + mem8[0x11DE65] = 0xB6; + mem8[0x11DF72] = 0x12; + mem8[0x11DF73] = 0x53; + mem8[0x11DF74] = 0xD3; + mem8[0x11DF75] = 0x84; + mem8[0x11DF76] = 0xEB; + mem8[0x11DF77] = 0xB8; + mem8[0x11DF79] = 0x2A; + mem8[0x11DF7C] = 0x12; + mem8[0x11DF7D] = 0x23; + mem8[0x11DF7E] = 0xD3; + mem8[0x11DF7F] = 0xDC; + mem8[0x11DF80] = 0x69; + mem8[0x11DF81] = 0x7C; + mem8[0x12E7A4] = 0x95; + mem8[0x12E7A5] = 0xCA; + mem8[0x12E7A6] = 0x54; + mem8[0x12E7A8] = 0x6C; + mem8[0x12E7A9] = 0x5; + mem8[0x13B25E] = 0xBA; + mem8[0x13B25F] = 0xBF; + mem8[0x1463A0] = 0x95; + mem8[0x1463A1] = 0x87; + mem8[0x1463A2] = 0x7F; + mem8[0x1463A3] = 0x95; + mem8[0x1463A4] = 0xB4; + mem8[0x1463A5] = 0x31; + mem8[0x1463A6] = 0x15; + mem8[0x1463A8] = 0x1D; + mem8[0x162408] = 0xB9; + mem8[0x162409] = 0x63; + mem8[0x1655E0] = 0x54; + mem8[0x1655E2] = 0x68; + mem8[0x1655E4] = 0x4D; + mem8[0x1655E5] = 0xBA; + mem8[0x1655E6] = 0xD1; + mem8[0x1655E7] = 0x23; + mem8[0x1655E8] = 0xE9; + mem8[0x1655EA] = 0x28; + mem8[0x1655EB] = 0x6A; + mem8[0x183476] = 0xDC; + mem8[0x183477] = 0xE7; + mem8[0x183DB6] = 0x3D; + mem8[0x32A00A] = 0x21; + mem8[0x32A00C] = 0x46; + mem8[0x32A00D] = 0x93; + mem8[0x32A01E] = 0x8B; + mem8[0x32A020] = 0x7E; + mem8[0x32A021] = 0xD0; + mem8[0x381000] = 0x50; + mem8[0x381001] = 0x45; + mem8[0x381002] = 0xE9; + mem8[0x381003] = 0x1C; + mem8[0x381004] = 0x87; + mem8[0x381005] = 0x3F; + mem8[0x381006] = 0x50; + mem8[0x381007] = 0xE; + mem8[0x381008] = 0x43; + mem8[0x381009] = 0x62; + mem8[0x38100A] = 0xC9; + mem8[0x38100B] = 0x59; + mem8[0x38100C] = 0xA7; + mem8[0x38100D] = 0x4B; + mem8[0x38100E] = 0xB0; + mem8[0x38100F] = 0x4; + mem8[0x381010] = 0x78; + mem8[0x381011] = 0x67; + mem8[0x381012] = 0xB9; + mem8[0x381013] = 0x97; + mem8[0x382000] = 0x50; + mem8[0x382001] = 0x1B; + mem8[0x382002] = 0x63; + mem8[0x382003] = 0x1C; + mem8[0x382004] = 0xE9; + mem8[0x382005] = 0xE3; + mem8[0x382006] = 0x87; + mem8[0x382007] = 0xDE; + mem8[0x382008] = 0xB0; + mem8[0x382009] = 0x2C; + mem8[0x38200A] = 0x58; + mem8[0x38200B] = 0x59; + mem8[0x38200C] = 0x15; + mem8[0x38200D] = 0x49; + mem8[0x383000] = 0x50; + mem8[0x383001] = 0x1B; + mem8[0x383002] = 0x60; + mem8[0x383003] = 0x1C; + mem8[0x383004] = 0xE9; + mem8[0x383005] = 0xE3; + mem8[0x383006] = 0x87; + mem8[0x383007] = 0xDE; + mem8[0x383008] = 0xB0; + mem8[0x383009] = 0x2C; + mem8[0x38300A] = 0x58; + mem8[0x38300B] = 0x59; + mem8[0x38300C] = 0x2F; + mem8[0x38300D] = 0x49; + mem8[0x384000] = 0x50; + mem8[0x384001] = 0x1B; + mem8[0x384002] = 0x63; + mem8[0x384003] = 0x1C; + mem8[0x384004] = 0xE9; + mem8[0x384005] = 0xE3; + mem8[0x384006] = 0x87; + mem8[0x384007] = 0xDE; + mem8[0x384008] = 0x90; + mem8[0x384009] = 0x2C; + mem8[0x38400A] = 0x78; + mem8[0x38400B] = 0x59; + mem8[0x38400C] = 0x11; + mem8[0x38400D] = 0x48; + mem8[0x385000] = 0x50; + mem8[0x385001] = 0x1B; + mem8[0x385002] = 0x60; + mem8[0x385003] = 0x1C; + mem8[0x385004] = 0xE9; + mem8[0x385005] = 0xE3; + mem8[0x385006] = 0x87; + mem8[0x385007] = 0xDE; + mem8[0x385008] = 0x90; + mem8[0x385009] = 0x2C; + mem8[0x38500A] = 0x78; + mem8[0x38500B] = 0x59; + mem8[0x38500C] = 0xEB; + mem8[0x38500D] = 0x48; + mem8[0x386000] = 0x5; + mem8[0x386001] = 0x5D; + mem8[0x386002] = 0x71; + mem8[0x386003] = 0x1C; + mem8[0x386004] = 0x6D; + mem8[0x386005] = 0x84; + mem8[0x386006] = 0x5; + mem8[0x386007] = 0x40; + mem8[0x386008] = 0x71; + mem8[0x386009] = 0x62; + mem8[0x38600A] = 0xC5; + mem8[0x38600B] = 0x51; + mem8[0x38600C] = 0x6C; + mem8[0x38600D] = 0x97; + mem8[0x38600E] = 0x79; + mem8[0x38600F] = 0x4B; + mem8[0x386010] = 0x90; + mem8[0x386011] = 0x29; + mem8[0x386012] = 0x7B; + mem8[0x386013] = 0x4D; + mem8[0x386014] = 0xC3; + mem8[0x386015] = 0xF8; +} + +void pgm_arm_type1_state::kovboot_fix_patch() +{ + UINT8 *mem8 = (UINT8 *)(memregion("maincpu")->base()); + + mem8[0x1085D4] = 0x71; + mem8[0x1085D5] = 0x4E; + mem8[0x1085D6] = 0x71; + mem8[0x1085D7] = 0x4E; + mem8[0x11D3E4] = 0x29; + mem8[0x11D3E5] = 0x42; + mem8[0x11D3E6] = 0x54; + mem8[0x11D3E7] = 0x29; + mem8[0x11D492] = 0x71; + mem8[0x11D493] = 0x4E; + mem8[0x11D494] = 0x71; + mem8[0x11D495] = 0x4E; + mem8[0x11DAC6] = 0xF9; + mem8[0x11DAC7] = 0x4E; + mem8[0x11DAC8] = 0x38; + mem8[0x11DAC9] = 0x0; + mem8[0x11DACA] = 0x0; + mem8[0x11DACB] = 0xF; + mem8[0x11DACC] = 0x71; + mem8[0x11DACD] = 0x4E; + mem8[0x11DACE] = 0x71; + mem8[0x11DACF] = 0x4E; + mem8[0x11DAD1] = 0x65; + mem8[0x11DE56] = 0xF9; + mem8[0x11DE57] = 0x4E; + mem8[0x11DE58] = 0x38; + mem8[0x11DE59] = 0x0; + mem8[0x11DE5A] = 0x20; + mem8[0x11DE5B] = 0xF; + mem8[0x11DE5D] = 0x64; + mem8[0x11DE60] = 0xF9; + mem8[0x11DE61] = 0x4E; + mem8[0x11DE62] = 0x38; + mem8[0x11DE63] = 0x0; + mem8[0x11DE64] = 0x30; + mem8[0x11DE65] = 0x0F; + mem8[0x11DF72] = 0xF9; + mem8[0x11DF73] = 0x4E; + mem8[0x11DF74] = 0x38; + mem8[0x11DF75] = 0x0; + mem8[0x11DF76] = 0x40; + mem8[0x11DF77] = 0x0F; + mem8[0x11DF79] = 0x64; + mem8[0x11DF7C] = 0xF9; + mem8[0x11DF7D] = 0x4E; + mem8[0x11DF7E] = 0x38; + mem8[0x11DF7F] = 0x0; + mem8[0x11DF80] = 0x50; + mem8[0x11DF81] = 0x0F; + mem8[0x12E7A4] = 0xF9; + mem8[0x12E7A5] = 0x4E; + mem8[0x12E7A6] = 0x38; + mem8[0x12E7A8] = 0x60; + mem8[0x12E7A9] = 0x0F; + mem8[0x13B25E] = 0x71; + mem8[0x13B25F] = 0x4E; + mem8[0x1463A0] = 0xF9; + mem8[0x1463A1] = 0x4E; + mem8[0x1463A2] = 0x13; + mem8[0x1463A3] = 0x0; + mem8[0x1463A4] = 0xD0; + mem8[0x1463A5] = 0xB5; + mem8[0x1463A6] = 0x71; + mem8[0x1463A8] = 0x71; + mem8[0x162408] = 0xD0; + mem8[0x162409] = 0x1; + mem8[0x1655E0] = 0x3C; + mem8[0x1655E2] = 0x0; + mem8[0x1655E4] = 0x25; + mem8[0x1655E5] = 0x0; + mem8[0x1655E6] = 0xB9; + mem8[0x1655E7] = 0x90; + mem8[0x1655E8] = 0x81; + mem8[0x1655EA] = 0x40; + mem8[0x1655EB] = 0xB2; + mem8[0x183476] = 0xB5; + mem8[0x183477] = 0x1; + mem8[0x183DB6] = 0x50; + mem8[0x32A00A] = 0x68; + mem8[0x32A00C] = 0xF; + mem8[0x32A00D] = 0x4; + mem8[0x32A01E] = 0xC0; + mem8[0x32A020] = 0x13; + mem8[0x32A021] = 0x2; + mem8[0x380F00] = 0x39; + mem8[0x380F01] = 0x52; + mem8[0x380F02] = 0x80; + mem8[0x380F03] = 0x0; + mem8[0x380F04] = 0xEE; + mem8[0x380F05] = 0xDC; + mem8[0x380F06] = 0x39; + mem8[0x380F07] = 0xC; + mem8[0x380F08] = 0xA; + mem8[0x380F09] = 0x0; + mem8[0x380F0A] = 0x80; + mem8[0x380F0B] = 0x0; + mem8[0x380F0C] = 0xEE; + mem8[0x380F0D] = 0xDC; + mem8[0x380F0E] = 0xF9; + mem8[0x380F0F] = 0x4E; + mem8[0x380F10] = 0x11; + mem8[0x380F11] = 0x0; + mem8[0x380F12] = 0xD0; + mem8[0x380F13] = 0xDA; + mem8[0x380F20] = 0x39; + mem8[0x380F21] = 0xC; + mem8[0x380F22] = 0xA; + mem8[0x380F23] = 0x0; + mem8[0x380F24] = 0x80; + mem8[0x380F25] = 0x0; + mem8[0x380F26] = 0xEE; + mem8[0x380F27] = 0xDC; + mem8[0x380F28] = 0xF9; + mem8[0x380F29] = 0x4E; + mem8[0x380F2A] = 0x11; + mem8[0x380F2B] = 0x0; + mem8[0x380F2C] = 0x5C; + mem8[0x380F2D] = 0xDE; + mem8[0x380F30] = 0x39; + mem8[0x380F31] = 0xC; + mem8[0x380F32] = 0x9; + mem8[0x380F33] = 0x0; + mem8[0x380F34] = 0x80; + mem8[0x380F35] = 0x0; + mem8[0x380F36] = 0xEE; + mem8[0x380F37] = 0xDC; + mem8[0x380F38] = 0xF9; + mem8[0x380F39] = 0x4E; + mem8[0x380F3A] = 0x11; + mem8[0x380F3B] = 0x0; + mem8[0x380F3C] = 0x66; + mem8[0x380F3D] = 0xDE; + mem8[0x380F40] = 0x39; + mem8[0x380F41] = 0xC; + mem8[0x380F42] = 0xA; + mem8[0x380F43] = 0x0; + mem8[0x380F44] = 0x80; + mem8[0x380F45] = 0x0; + mem8[0x380F46] = 0xEE; + mem8[0x380F47] = 0xDC; + mem8[0x380F48] = 0xF9; + mem8[0x380F49] = 0x4E; + mem8[0x380F4A] = 0x11; + mem8[0x380F4B] = 0x0; + mem8[0x380F4C] = 0x78; + mem8[0x380F4D] = 0xDF; + mem8[0x380F50] = 0x39; + mem8[0x380F51] = 0xC; + mem8[0x380F52] = 0x9; + mem8[0x380F53] = 0x0; + mem8[0x380F54] = 0x80; + mem8[0x380F55] = 0x0; + mem8[0x380F56] = 0xEE; + mem8[0x380F57] = 0xDC; + mem8[0x380F58] = 0xF9; + mem8[0x380F59] = 0x4E; + mem8[0x380F5A] = 0x11; + mem8[0x380F5B] = 0x0; + mem8[0x380F5C] = 0x82; + mem8[0x380F5D] = 0xDF; + mem8[0x380F60] = 0x6C; + mem8[0x380F61] = 0x4A; + mem8[0x380F62] = 0x18; + mem8[0x380F63] = 0x0; + mem8[0x380F64] = 0x4; + mem8[0x380F65] = 0x67; + mem8[0x380F66] = 0x6C; + mem8[0x380F67] = 0x42; + mem8[0x380F68] = 0x18; + mem8[0x380F69] = 0x0; + mem8[0x380F6A] = 0xAC; + mem8[0x380F6B] = 0x8; + mem8[0x380F6C] = 0x5; + mem8[0x380F6D] = 0x0; + mem8[0x380F6E] = 0x10; + mem8[0x380F6F] = 0x1; + mem8[0x380F70] = 0xF9; + mem8[0x380F71] = 0x4E; + mem8[0x380F72] = 0x12; + mem8[0x380F73] = 0x0; + mem8[0x380F74] = 0xAA; + mem8[0x380F75] = 0xE7; +} + +void pgm_arm_type1_state::kovshp_fix_patch() +{ + UINT8 *mem8 = (UINT8 *)(memregion("prot")->base()); + + mem8[0x2892] = 0x1; + mem8[0x2893] = 0x1; + mem8[0x289F] = 0x1; + mem8[0x28A5] = 0x1; + mem8[0x28A8] = 0x1; + mem8[0x28A9] = 0x1; + mem8[0x2BF3] = 0x48; + mem8[0x2BF5] = 0x80; + mem8[0x2C92] = 0xF; + mem8[0x2C93] = 0x40; + mem8[0x2CE1] = 0x6C; + mem8[0x2CE2] = 0x48; +} + +DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovshp) +{ + pgm_basic_init(); + kovshp_fix_patch(); // extra line here + pgm_kovshp_decrypt(machine()); + pgm_arm7_type1_latch_init(); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this)); +} + +DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovassga) +{ + pgm_basic_init(); + kovshp_fix_patch(); // extra line here +// pgm_kovshp_decrypt(machine()); + pgm_arm7_type1_latch_init(); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this)); +} + +void pgm_arm_type1_state::pgm_decode_kovassg_program() +{ + int i; + UINT16 *src = (UINT16 *)(memregion("maincpu")->base() + 0x100000); + std::vector<UINT16> dst(0x400000); + + for (i = 0; i < 0x400000 / 2; i++) + { + int j = (i & ~0xffff) | (BITSWAP16(i, 15, 14, 13, 12, 11, 10, 7, 3, 1, 9, 4, 8, 6, 0, 2, 5) ^ 0x019c); + + dst[j] = BITSWAP16(src[j], 13, 9, 10, 11, 2, 0, 12 ,5, 4, 1, 14, 8, 15, 6, 3, 7) ^ 0x9d05; + } + + memcpy( src, &dst[0], 0x400000 ); +} + +DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovassg) +{ + pgm_decode_kovassg_program(); + pgm_decode_kovlsqh2_tiles(); + + pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x0000000); + pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x0800000); + pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x1000000); + pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x1800000); + pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x2000000); + pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x2800000); + pgm_decode_kovlsqh2_sprites(memregion("sprmask")->base() + 0x0000000); + pgm_decode_kovlsqh2_sprites(memregion("sprmask")->base() + 0x0800000); + + pgm_decode_kovlsqh2_samples(); + pgm_basic_init(); + pgm_arm7_type1_latch_init(); + /* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this)); +} + +DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovplus) +{ + pgm_basic_init(); + kovplus_fix_patch(); // extra line here + pgm_kov_decrypt(machine()); + pgm_arm7_type1_latch_init(); + m_curslots = 0; + m_kov_c0_value = 0; + m_kov_cb_value = 0; + m_kov_fe_value = 0; + arm_sim_handler = &pgm_arm_type1_state::command_handler_kov; + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_w),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_protram_r),this)); +} + +DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovboot) +{ + pgm_basic_init(); +// pgm_kov_decrypt(machine()); + kovboot_fix_patch(); // extra line here + pgm_arm7_type1_latch_init(); + m_curslots = 0; + m_kov_c0_value = 0; + m_kov_cb_value = 0; + m_kov_fe_value = 0; + arm_sim_handler = &pgm_arm_type1_state::command_handler_kov; + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_w),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_protram_r),this)); + +} +#endif diff --git a/docs/release/src/hbmame/drivers/phoenix.cpp b/docs/release/src/hbmame/drivers/phoenix.cpp new file mode 100644 index 00000000000..4b0452c7785 --- /dev/null +++ b/docs/release/src/hbmame/drivers/phoenix.cpp @@ -0,0 +1,134 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/phoenix.cpp" + +ROM_START( phoenixr ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) + ROM_LOAD( "phoenix3.46", 0x0800, 0x0800, CRC(5748f486) SHA1(49e6fd836d26ec24105e95227b24cf668e8a470a) ) + ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) + ROM_LOAD( "phoenixr.48", 0x1800, 0x0800, CRC(9253e642) SHA1(9f72d7beb22ffc8dffc43765356e34def36efc12) ) + ROM_LOAD( "h5-ic49.5a", 0x2000, 0x0800, CRC(a105e4e7) SHA1(b35142a91b6b7fdf7535202671793393c9f4685f) ) + ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) + ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) + ROM_LOAD( "phoenix3.52", 0x3800, 0x0800, CRC(d2c5c984) SHA1(a9432f9aff8a2f5ca1d347443efc008a177d8ae0) ) + + ROM_REGION( 0x1000, "bgtiles", 0 ) + ROM_LOAD( "r_ic23", 0x0000, 0x0800, CRC(02bc87ea) SHA1(bd672a5c62339e18d627d5bb195a9da2a76fd239) ) + ROM_LOAD( "r_ic24", 0x0800, 0x0800, CRC(675388ee) SHA1(4bef2b7cd28b2311a5775f89ee8756caf405c182) ) + + ROM_REGION( 0x1000, "fgtiles", 0 ) + ROM_LOAD( "r_ic39", 0x0000, 0x0800, CRC(8b1653ba) SHA1(5677fd96d49165b4d71047771e4a0bd8d6fb2400) ) + ROM_LOAD( "r_ic40", 0x0800, 0x0800, CRC(3b811dfb) SHA1(e2a9fada30bdb096ddfd35abc4717e1cac38c943) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ + ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ +ROM_END + +ROM_START( phoenixg ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) + ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) + ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) + ROM_LOAD( "phoenixg.48", 0x1800, 0x0800, CRC(63d4c322) SHA1(96bac0950940f6a3a7972ed403431c6fb1941667) ) + ROM_LOAD( "phoenix.49", 0x2000, 0x0800, CRC(c8a5d6d6) SHA1(ef6ade323544e3edd4101609138ecf35e8cb9577) ) + ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) + ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) + ROM_LOAD( "phoenix.52", 0x3800, 0x0800, CRC(b9915263) SHA1(f61396077b23364b5b26f62c6923394d23a37eb3) ) + + ROM_REGION( 0x1000, "bgtiles", 0 ) + ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) + ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) + + ROM_REGION( 0x1000, "fgtiles", 0 ) + ROM_LOAD( "ic39g", 0x0000, 0x0800, CRC(0ed46d30) SHA1(dd21172c11ef60351921ed7067736682237a8db9) ) + ROM_LOAD( "b2-ic40.4b", 0x0800, 0x0800, CRC(0be2ba91) SHA1(af9243ee23377b632b9b7d0b84d341d06bf22480) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ + ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ +ROM_END + +/* E374 - Very similar to phoenixc, no year, some slight gfx differences, and the proms are different. */ +ROM_START( phoenixd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) + ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) + ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) + ROM_LOAD( "phoenixd.48", 0x1800, 0x0800, CRC(6e51f009) SHA1(f91ed67543a675be9337f2a73c179f3fbea2c33e) ) + ROM_LOAD( "phoenixc.49", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) ) + ROM_LOAD( "cond06c.bin", 0x2800, 0x0800, CRC(8c83bff7) SHA1(3dfb090d7e3a9ae8da882b06e166c48555eaf77c) ) + ROM_LOAD( "vautor07.1m", 0x3000, 0x0800, CRC(079ac364) SHA1(55b17c069b191cd1752e78068ef683b33c094e56) ) + ROM_LOAD( "phoenixc.52", 0x3800, 0x0800, CRC(8424d7c4) SHA1(1b5fa7d8be9e8750a4148dfefc17e96c86ed084d) ) + + ROM_REGION( 0x1000, "bgtiles", 0 ) + ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) + ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) + + ROM_REGION( 0x1000, "fgtiles", 0 ) + ROM_LOAD( "phoenixd.3b", 0x0000, 0x0800, CRC(31c06c22) SHA1(41e13e2e14f098ef0c6985dbcd2d85f83eb3b44f) ) + ROM_LOAD( "phoenixc.40", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) + ROM_RELOAD( 0x0000, 0x0100 ) /* the dump had 2 identical proms with different names */ +ROM_END + +/* E617 - rom 4 not dumped. 2nd rom in GFX2 not dumped. Proms not dumped. The only new one is rom 8. + Since rom 4 contains the manufacturer information, the maker is unknown. */ +ROM_START( phoenix4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) + ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) + ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) + ROM_LOAD( "phoenix4.48", 0x1800, 0x0800, NO_DUMP ) + ROM_LOAD( "phoenixc.49", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) ) + ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) + ROM_LOAD( "vautor07.1m", 0x3000, 0x0800, CRC(079ac364) SHA1(55b17c069b191cd1752e78068ef683b33c094e56) ) + ROM_LOAD( "falcon2.8a", 0x3800, 0x0800, CRC(d16d971b) SHA1(d8eb980cc23210ac29e4258b5f8a1a84f6f20e76) ) + + ROM_REGION( 0x1000, "bgtiles", 0 ) + ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) + ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) + + ROM_REGION( 0x1000, "fgtiles", 0 ) + ROM_LOAD( "phoenixc.39", 0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) ) + ROM_LOAD( "phoenixc.40", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) ) /* not dumped, this is a substitute */ + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ + ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ +ROM_END + +/* E189 - No proms were dumped. Using those from pleiads. */ +ROM_START( pleiads2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ic47.r1", 0x0000, 0x0800, CRC(fa98cb73) SHA1(d01138536e90a0a92d3e356fe354648e431a106c) ) + ROM_LOAD( "ic48.r2", 0x0800, 0x0800, CRC(b254217c) SHA1(312a33cca09d5d2d18992f28eb051230a90db6e3) ) + ROM_LOAD( "ic47.bin", 0x1000, 0x0800, CRC(0951829e) SHA1(03c0598dfe248ce14683ff18e59adb2e72731336) ) + ROM_LOAD( "ic48.bin", 0x1800, 0x0800, CRC(4972f5ce) SHA1(9175cc924c335d01ee47f3771276cdc90028fcc5) ) + ROM_LOAD( "ic51.r5", 0x2000, 0x0800, CRC(49c629bc) SHA1(fd7937d0c114c8d9c1efaa9918ae3df2af41f032) ) + ROM_LOAD( "ic50.bin", 0x2800, 0x0800, CRC(f1a8a00d) SHA1(5c183e3a73fa882ffec3cb9219fb5619e625591a) ) + ROM_LOAD( "ic53.r7", 0x3000, 0x0800, CRC(037b319c) SHA1(2ff7a7777a63326e2abca2d1881df33a8e3f8561) ) + ROM_LOAD( "ic52.bin", 0x3800, 0x0800, CRC(b3db08c2) SHA1(d5b1b77dcf2d76498f30d5f880635f5acfac7dfd) ) + + ROM_REGION( 0x1000, "bgtiles", 0 ) + ROM_LOAD( "ic23.bin", 0x0000, 0x0800, CRC(4e30f9e7) SHA1(da023a94725dc40107cd97e4decfd4dc0f9f00ee) ) + ROM_LOAD( "ic24.bin", 0x0800, 0x0800, CRC(5188fc29) SHA1(421dedc674c6dde7abf01412df035a8eb8e6db9b) ) + + ROM_REGION( 0x1000, "fgtiles", 0 ) + ROM_LOAD( "ic39.bin", 0x0000, 0x0800, CRC(85866607) SHA1(cd240bd056f761b2f9e2142049434f02cae3e315) ) + ROM_LOAD( "ic40.bin", 0x0800, 0x0800, CRC(a841d511) SHA1(8349008ab1d8ef08775b54170c37deb1d391fffc) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "7611-5.26", 0x0000, 0x0100, CRC(7a1bcb1e) SHA1(bdfab316ea26e2063879e7aa78b6ae2b55eb95c8) ) /* palette low bits */ + ROM_LOAD( "7611-5.33", 0x0100, 0x0100, CRC(e38eeb83) SHA1(252880d80425b2e697146e76efdc6cb9f3ba0378) ) /* palette high bits */ +ROM_END + + +GAME( 2000, phoenixr, phoenix, phoenix, phoenix , driver_device, 0, ROT90, "CYBERYOGI =CO= Windler", "PhoenixR (GDR hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixg, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "GreekRoms", "Phoenix (Greek)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixd, phoenix, phoenix, phoenix , driver_device, 0, ROT90, "G.G.I. Corporation", "Phoenix (GGI)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenix4, phoenix, phoenix, phoenix , driver_device, 0, ROT90, "unknown", "Phoenix", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pleiads2, 0, pleiads, pleiads, driver_device, 0, ROT90, "ESG", "Pleiads", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/playch10.cpp b/docs/release/src/hbmame/drivers/playch10.cpp new file mode 100644 index 00000000000..c8a712e1307 --- /dev/null +++ b/docs/release/src/hbmame/drivers/playch10.cpp @@ -0,0 +1,237 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/playch10.cpp" + +ROM_START( pc_ark ) /* Arkanoid (1942) */ + BIOS_CPU + ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "arkanoid-u1", 0x08000, 0x8000, CRC(95dbb274) SHA1(792420b622b59d40ec0a264bf0bcd5faf9b652dc) ) + + ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "arkanoid-u2", 0x00000, 0x2000, CRC(bb8dae70) SHA1(91bdab01839e2ad3d9aaa9041e0855ba26583a9f) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) ) +ROM_END + +ROM_START( pc_bb2 ) /* Bubble Bobble Part 2 (Power Blade) */ + BIOS_CPU + ROM_LOAD( "bb2-u3", 0x0c000, 0x2000, CRC(edcc21c6) SHA1(5d73c6a747cfe951dc7c6ddfbb29859e9548aded) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "bb2-u5", 0x10000, 0x20000, CRC(5f7c1d17) SHA1(48608c9ebd8c0feb9e1126eb4070f185c41d9a19) ) /* banked */ + ROM_RELOAD( 0x30000, 0x20000 ) + + ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "bb2-u1", 0x00000, 0x20000, CRC(5e59afae) SHA1(5ed7d7c1ed50dbdc01e0a80e6ed5a246349726aa) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "31a05a48.prm", 0x00000, 0x10, CRC(31a05a48) SHA1(8b340600feae03bb5cdab852a9879ecffcc8a2b9) ) +ROM_END + +ROM_START( pc_cch ) /* Circus Charlie (Golf) */ + BIOS_CPU + ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "circusch.u1", 0x0c000, 0x4000, CRC(2cb269d5) SHA1(28a700b4fa5c580adf3ef9891506585ef6a40725) ) + + ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "circusch.u2", 0x00000, 0x2000, CRC(f76c592a) SHA1(c8bc574c43d26d5072869922573edaaab7a37050) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) ) +ROM_END + +ROM_START( pc_ctfrc ) /* Contra Force (Power Blade) */ + BIOS_CPU + ROM_LOAD( "ctfrc-u3", 0x0c000, 0x2000, CRC(edcc21c6) SHA1(5d73c6a747cfe951dc7c6ddfbb29859e9548aded) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "ctfrc-u5", 0x10000, 0x20000, CRC(1ff7fc0d) SHA1(bbf1fb616c13795c9c8e447a72f009ee3746bd90) ) /* banked */ + ROM_RELOAD( 0x30000, 0x20000 ) + + ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "ctfrc-u1", 0x00000, 0x20000, CRC(7ff2a7f8) SHA1(234041d4c880ccd4acd295c9b2a3d6e37089beda) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "31a05a48.prm", 0x00000, 0x10, CRC(31a05a48) SHA1(8b340600feae03bb5cdab852a9879ecffcc8a2b9) ) +ROM_END + +ROM_START( pc_digdg ) /* Dig Dug (1942) */ + BIOS_CPU + ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "digdug.u1", 0x08000, 0x8000, CRC(a26ae22e) SHA1(0f95aa5f74ef2b192e355381987cf4624fce5653) ) + + ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "digdug.u2", 0x00000, 0x2000, CRC(2dabc198) SHA1(79f1e65eea2a2841dc47916cb86fbf992b936bd5) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) ) +ROM_END + +ROM_START( pc_dk ) /* Donkey Kong (Golf) */ + BIOS_CPU + ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "dk.u1", 0x0c000, 0x4000, CRC(f56a5b10) SHA1(2c4b1d653194df0996d54d9de9188b270d0337d9) ) + + ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "dk.u2", 0x00000, 0x2000, CRC(e472a17c) SHA1(3e3d5a2213c132fcb86a97089f03a7ebf8384d36) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) ) +ROM_END + +ROM_START( pc_dk3 ) /* Donkey Kong 3 (1942) */ + BIOS_CPU + ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "dk3.u1", 0x08000, 0x8000, CRC(01eb0432) SHA1(94546c80c0bd41acc85f6e73a1425125c967d5db) ) + + ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "dk3.u2", 0x00000, 0x2000, CRC(85d06c57) SHA1(803adef82721452704607fbf70027ff792636325) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) ) +ROM_END + +ROM_START( pc_galag ) /* Galaga (1942) */ + BIOS_CPU + ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "galaga.u1", 0x08000, 0x8000, CRC(b4c4c5fe) SHA1(16e53935fc998de1eb8a88f73217ef1e2005d026) ) + + ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "galaga.u2", 0x00000, 0x2000, CRC(e2d5964e) SHA1(62b2cd49a6a4c6f1e2b0742db3b7493e167e9a23) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) ) +ROM_END + +ROM_START( pc_gyrus ) /* Gyruss (Dr Mario) */ + BIOS_CPU + ROM_LOAD( "vu-u2", 0x0c000, 0x2000, CRC(4b7869ac) SHA1(37afb84d963233ad92cc424fcf992aa76ea0599f) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "gyruss-u4", 0x10000, 0x08000, CRC(48ecc48a) SHA1(0afdb50a07ae9610f5c62dc8cca661ca359352be) ) /* banked */ + ROM_RELOAD( 0x18000, 0x08000 ) + ROM_RELOAD( 0x20000, 0x08000 ) + ROM_RELOAD( 0x28000, 0x08000 ) + + ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "gyruss-u1", 0x00000, 0x08000, CRC(3eb77902) SHA1(2419437ad701f5e165778af02b888da268c9a74d) ) + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_RELOAD( 0x10000, 0x08000 ) + ROM_RELOAD( 0x18000, 0x08000 ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "1b26e58c.prm", 0x00000, 0x10, CRC(1b26e58c) SHA1(bd2d81d3cc54966ef154b3487d43ecbc316d6d22) ) +ROM_END + +ROM_START( pc_krsty ) /* Krusty's Funhouse (Power Blade) */ + BIOS_CPU + ROM_LOAD( "xu-u3", 0x0c000, 0x2000, CRC(c3984e09) SHA1(70d7e5d9cf9b1f358e1be84a0e8c5997b1aae2d9) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "xu-u4", 0x10000, 0x20000, CRC(1f4103e5) SHA1(0a45c9b140df98aac7936c84e732410d796a35d7) ) /* banked */ + ROM_LOAD( "xu-u5", 0x30000, 0x20000, CRC(778c4115) SHA1(beab60c8237ffba27f6730fe7f4c45173cf892e0) ) /* banked */ + + ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "xu-u1", 0x00000, 0x20000, CRC(fce8e0ea) SHA1(808f74e9124f273aab7adf5f31c2d5893b06323e) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "0fe6e900.prm", 0x00000, 0x10, CRC(0fe6e900) SHA1(544d8af1aa9186bf76d0a35e78b20e94d3afbcb5) ) +ROM_END + +ROM_START( pc_mman5 ) /* Megaman 5 (TMNT2) */ + BIOS_CPU + ROM_LOAD( "2n-u3", 0x0c000, 0x2000, CRC(65298370) SHA1(fd120f43e465a2622f2e2679ace2fb0fe7e709b1) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "2n-u5", 0x10000, 0x40000, CRC(f3c743aa) SHA1(ee907c7279dba52320e35906ab5b0a1bdbbf0bfb) ) /* banked */ + + ROM_REGION( 0x40000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "2n-u1", 0x00000, 0x40000, CRC(25e0ae72) SHA1(45d3ffbb5e399c891df6fcbd78b94b866be9b663) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "237e8519.prm", 0x00000, 0x10, CRC(237e8519) SHA1(81b368d0784e4172c5cf9f4f4b92e29e05d34ae7) ) +ROM_END + +ROM_START( pc_pacm ) /* Pacman (Golf) */ + BIOS_CPU + ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "pacman.u1", 0x0c000, 0x4000, CRC(de2070ab) SHA1(a9324a94fa3d5ae6396a90c3d6d8399de8f93bd1) ) + + ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "pacman.u2", 0x00000, 0x2000, CRC(db6c9324) SHA1(f0d0fa49fbccc3b005742fc72a8dd3dce63909d1) ) + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) ) +ROM_END + +ROM_START( pc_parsl ) /* Parasol Stars - The Story of Bubble Bobble 3 (Ninja Gaiden) */ + BIOS_CPU + ROM_LOAD( "parsl-u2", 0x0c000, 0x2000, CRC(7505de96) SHA1(a9cbe6d4d2d33aeecb3e041315fbb266c886ebf1) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "parsl-u4", 0x10000, 0x20000, CRC(15382139) SHA1(50991602680588a9e7b03e06d45ee607fc00db13) ) /* banked */ + + ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "parsl-u1", 0x00000, 0x20000, CRC(af5400dc) SHA1(68258fedf7e2ba3afcf20e8261ad93d282c10bd9) ) /* banked */ + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "ec5641d6.prm", 0x00000, 0x10, CRC(ec5641d6) SHA1(05f546aec5a9db167688a9abbac922f5ced7f7c5) ) +ROM_END + +ROM_START( pc_skykd ) /* Sky Kid (Ninja Gaiden) */ + BIOS_CPU + ROM_LOAD( "u2ng", 0x0c000, 0x2000, CRC(7505de96) SHA1(a9cbe6d4d2d33aeecb3e041315fbb266c886ebf1) ) /* extra bios code for this game */ + BIOS_GFX + + ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */ + ROM_LOAD( "skykid.u4", 0x10000, 0x20000, CRC(c1918ec3) SHA1(e34bd36d9a7df7197b06a0a537b9d786f2303a98) ) /* banked */ + + ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */ + ROM_LOAD( "skykid.u1", 0x00000, 0x20000, CRC(0f58923f) SHA1(805cc304ab0e20337c0b0dcd5ca7f2b7bf8e4656) ) /* banked */ + + ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */ + ROM_LOAD( "ec5641d6.prm", 0x00000, 0x10, CRC(ec5641d6) SHA1(05f546aec5a9db167688a9abbac922f5ced7f7c5) ) +ROM_END + +GAME( 2002, pc_ark, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Arkanoid (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_bb2, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Bubble Bobble 2 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_cch, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Circus Charlie (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_ctfrc, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Contra Force (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_digdg, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Dig Dug (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_dk, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Donkey Kong (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_dk3, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Donkey Kong 3 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_galag, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Galaga (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_gyrus, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Gyruss (PlayChoice-10)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2002, pc_krsty, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Krusty's Funhouse (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_mman5, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Megaman 5 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_pacm, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Pacman (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_parsl, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Parasol Stars-The Story of Bubble Bobble 3 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, pc_skykd, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Sky Kid (PlayChoice-10)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/powerins.cpp b/docs/release/src/hbmame/drivers/powerins.cpp new file mode 100644 index 00000000000..ed94f6213dc --- /dev/null +++ b/docs/release/src/hbmame/drivers/powerins.cpp @@ -0,0 +1,45 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/powerins.cpp" + +ROM_START( powernbr ) + ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */ + ROM_LOAD16_WORD_SWAP( "93095-3br.u108", 0x00000, 0x80000, CRC(522e776a) SHA1(4b3965a3388fdbb438d5cdbff7194cc3344a51e7) ) + ROM_LOAD16_WORD_SWAP( "93095-4.u109", 0x80000, 0x80000, CRC(d3d7a782) SHA1(7846de0ebb09bd9b2534cd451ff9aa5175e60647) ) + + ROM_REGION( 0x20000, "soundcpu", 0 ) /* Z80 Code */ + ROM_LOAD( "93095-2.u90", 0x00000, 0x20000, CRC(4b123cc6) SHA1(ed61d3a2ab20c86b91fd7bafa717be3ce26159be) ) + + ROM_REGION( 0x280000, "gfx1", 0 ) /* Layer 0 */ + ROM_LOAD( "93095-5.u16", 0x000000, 0x100000, CRC(b1371808) SHA1(15fca313314ff2e0caff35841a2fdda97f6235a8) ) + ROM_LOAD( "93095-6br.u17", 0x100000, 0x100000, CRC(4a7a6bd8) SHA1(953bba9606795ec32c9c0e4e0fd4e88da9708cf8) ) + ROM_LOAD( "93095-7.u18", 0x200000, 0x080000, CRC(2dd76149) SHA1(975e4d371fdfbbd9a568da4d4c91ffd3f0ae636e) ) + + ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */ + ROM_LOAD( "93095-1br.u15", 0x000000, 0x020000, CRC(7e73e1d8) SHA1(ff8d8ecbb01122291404f93a60d6e0c3fc56c3c7) ) + + ROM_REGION( 0x800000, "gfx3", 0 ) /* Sprites */ + ROM_LOAD( "93095-12.u116", 0x000000, 0x100000, CRC(35f3c2a3) SHA1(70efebfe248401ba3d766dc0e4bcc2846cd0d9a0) ) + ROM_LOAD( "93095-13.u117", 0x100000, 0x100000, CRC(1ebd45da) SHA1(99b0ac734890673064b2a4b4b57ff2694e338dea) ) + ROM_LOAD( "93095-14.u118", 0x200000, 0x100000, CRC(760d871b) SHA1(4887122ad0518c90f08c11a7a6b694f3fd218498) ) + ROM_LOAD( "93095-15.u119", 0x300000, 0x100000, CRC(d011be88) SHA1(837409a2584abdf22e022b0f06181a600a974cbe) ) + ROM_LOAD( "93095-16.u120", 0x400000, 0x100000, CRC(a9c16c9c) SHA1(a34e81324c875c2a57f778d1dbdda8da81850a29) ) + ROM_LOAD( "93095-17.u121", 0x500000, 0x100000, CRC(51b57288) SHA1(821473d51565bc0a8b9a979723ce1307b97e517e) ) + ROM_LOAD( "93095-18.u122", 0x600000, 0x100000, CRC(b135e3f2) SHA1(339fb4007ca0f379b7554a1c4f711f494a371fb2) ) + ROM_LOAD( "93095-19.u123", 0x700000, 0x100000, CRC(67695537) SHA1(4c78ce3e36f27d2a6a9e50e8bf896335d4d0958a) ) + + ROM_REGION( 0x240000, "oki1", 0 ) /* 8 bit adpcm (banked) */ + ROM_LOAD( "93095-10.u48", 0x040000, 0x100000, CRC(329ac6c5) SHA1(e809b94e2623141f5a48995cfa97fe1ead7ab40b) ) + ROM_LOAD( "93095-11.u49", 0x140000, 0x100000, CRC(75d6097c) SHA1(3c89a7c9b12087e2d969b822419d3e5f98f5cb1d) ) + + ROM_REGION( 0x240000, "oki2", 0 ) /* 8 bit adpcm (banked) */ + ROM_LOAD( "93095-8.u46", 0x040000, 0x100000, CRC(f019bedb) SHA1(4b6e10f85671c75b666e547887d403d6e607cec8) ) + ROM_LOAD( "93095-9.u47", 0x140000, 0x100000, CRC(adc83765) SHA1(9e760443f9de21c1bb7e33eaa1541023fcdc60ab) ) + + ROM_REGION( 0x0220, "proms", 0 ) /* unknown */ + ROM_LOAD( "22.u81", 0x000000, 0x0020, CRC(67d5ec4b) SHA1(87d32948a0c88277dcdd0eaa035bde40fc7db5fe) ) + ROM_LOAD( "21.u71", 0x000020, 0x0100, CRC(182cd81f) SHA1(3a76bea81b34ea7ccf56044206721058aa5b03e6) ) + ROM_LOAD( "20.u54", 0x000100, 0x0100, CRC(38bd0e2f) SHA1(20d311869642cd96bb831fdf4a458e0d872f03eb) ) +ROM_END + +GAME( 2006, powernbr, powerins, powerins, powerins, driver_device, 0, ROT0, "Neogeo BR team", "Power Instinct (Brasil)", MACHINE_SUPPORTS_SAVE ) // 06.04.25 date diff --git a/docs/release/src/hbmame/drivers/psikyosh.cpp b/docs/release/src/hbmame/drivers/psikyosh.cpp new file mode 100644 index 00000000000..7d5b19e2be6 --- /dev/null +++ b/docs/release/src/hbmame/drivers/psikyosh.cpp @@ -0,0 +1,30 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/psikyosh.cpp" + +ROM_START( s1945iiex ) + ROM_REGION( 0x200000, "maincpu", 0) /* Code */ + ROM_LOAD32_WORD_SWAP( "2_prog_l.u18-ex", 0x000002, 0x080000, CRC(56276eb7) SHA1(28530132058621382697c678426967d720741853) ) + ROM_LOAD32_WORD_SWAP( "1_prog_h.u17-ex", 0x000000, 0x080000, CRC(99658d0d) SHA1(f8b7a697819dc1e4993557d9e854aa53964eb4a3) ) + + ROM_REGION( 0x2000000, "gfx1", 0 ) /* Tiles */ + ROM_LOAD32_WORD( "0l.u4", 0x0000000, 0x400000, CRC(bfacf98d) SHA1(19954f12881e6e95e808bd1f2c2f5a425786727f) ) + ROM_LOAD32_WORD( "0h.u13", 0x0000002, 0x400000, CRC(1266f67c) SHA1(cf93423a827aa92aa54afbbecf8509d2590edc9b) ) + ROM_LOAD32_WORD( "1l.u3", 0x0800000, 0x400000, CRC(2d3332c9) SHA1(f2e54100a48061bfd589e8765f59ca051176a38b) ) + ROM_LOAD32_WORD( "1h.u12", 0x0800002, 0x400000, CRC(27b32c3e) SHA1(17a80b3c919d8a282169c019ede8a22d2079c018) ) + ROM_LOAD32_WORD( "2l.u2", 0x1000000, 0x400000, CRC(91ba6d23) SHA1(fd016a90204b2de43bb709971f7cd891f839de1a) ) + ROM_LOAD32_WORD( "2h.u20", 0x1000002, 0x400000, CRC(fabf4334) SHA1(f8ec43e083b674700f532575f0d067bd49c5aaf7) ) + ROM_LOAD32_WORD( "3l.u1", 0x1800000, 0x400000, CRC(a6c3704e) SHA1(cb9881e4235cc8e4bcca4c6ccbd8d8d8634e3624) ) + ROM_LOAD32_WORD( "3h.u19", 0x1800002, 0x400000, CRC(4cd3ca70) SHA1(5b0a6ea4fe0e821cebe6e840596f648e24dded51) ) + + ROM_REGION( 0x400000, "ymf", 0 ) /* Samples */ + ROM_LOAD( "sound.u32", 0x000000, 0x400000, CRC(ba680ca7) SHA1(b645896e297aad426784aa656bff738e1b33c2a2) ) + + ROM_REGION( 0x100, "eeprom", 0 ) + ROM_LOAD( "eeprom-s1945ii.bin", 0x0000, 0x0100, CRC(7ac38846) SHA1(c5f4b05a94211f3c96b8c472adbe634f2e77d753) ) +ROM_END + + + +/* YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY FULLNAME FLAGS */ +GAME( 2009, s1945iiex, s1945ii, psikyo3v1, s1945ii, psikyosh_state, ps3, ROT270, "Pipi899", "Strikers 1945 II (EX Super Version)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/rallyx.cpp b/docs/release/src/hbmame/drivers/rallyx.cpp new file mode 100644 index 00000000000..f4b31ef602c --- /dev/null +++ b/docs/release/src/hbmame/drivers/rallyx.cpp @@ -0,0 +1,99 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/rallyx.cpp" + +INPUT_PORTS_START( nrallyv ) + PORT_START("P1") /* IN0 */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) + + PORT_START("P2") /* IN1 */ + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) + + PORT_START("DSW") /* DSW0 */ + PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) + /* TODO: the bonus score depends on the number of lives */ + PORT_DIPNAME( 0x06, 0x02, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x02, "A" ) + PORT_DIPSETTING( 0x04, "B" ) + PORT_DIPSETTING( 0x06, "C" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + PORT_DIPNAME( 0x38, 0x00, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x10, "1 Car, Medium" ) + PORT_DIPSETTING( 0x28, "1 Car, Hard" ) + PORT_DIPSETTING( 0x18, "2 Cars, Medium" ) + PORT_DIPSETTING( 0x30, "2 Cars, Hard" ) + PORT_DIPSETTING( 0x00, "3 Cars, Easy" ) + PORT_DIPSETTING( 0x20, "3 Cars, Medium" ) + PORT_DIPSETTING( 0x38, "3 Cars, Hard" ) + PORT_DIPSETTING( 0x08, "4 Cars, Easy" ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) +INPUT_PORTS_END + +ROM_START( rxtron ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "1b", 0x0000, 0x1000, CRC(5882700d) SHA1(b6029e9730f1694894fe8b729ac0ba8d6712dea9) ) + ROM_LOAD( "rxt_1e", 0x1000, 0x1000, CRC(8d5b88e5) SHA1(95a8bde287325f88cfc7ce12ad900647831b861e) ) + ROM_LOAD( "rxt_1h", 0x2000, 0x1000, CRC(1ecfddc0) SHA1(e800a3bb0e2d35dbfba49c7724689d29ab1912fd) ) + ROM_LOAD( "rxt_1k", 0x3000, 0x1000, CRC(2729e00a) SHA1(1f3d17e8342d8a7db57d64fd890b70e64315752a) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "rxt_8e", 0x0000, 0x1000, CRC(91538868) SHA1(4ba04a56a6255895214bca1e0249e365b95f566d) ) + + ROM_REGION( 0x0100, "gfx2", 0 ) + ROM_LOAD( "im5623.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* dots */ + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "m3-7603.11n", 0x0000, 0x0020, CRC(c7865434) SHA1(70c1c9610ba6f1ead77f347e7132958958bccb31) ) /* palette */ + ROM_LOAD( "im5623.8p", 0x0020, 0x0100, CRC(834d4fda) SHA1(617864d3df0917a513e8255ad8d96ae7a04da5a1) ) /* lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */ + ROM_LOAD( "im5623.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) ) + ROM_LOAD( "im5623.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( nrallyv ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "nrallyx.1b", 0x0000, 0x1000, CRC(9404c8d6) SHA1(ee7e45c22a2fbf72d3ac5ac26ab1111a22623fc5) ) + ROM_LOAD( "nrallyx.1e", 0x1000, 0x1000, CRC(ac01bf3f) SHA1(8e1a7cce92ef709d18727db6ee7f89936f4b8df8) ) + ROM_LOAD( "nrallyx.1h", 0x2000, 0x1000, CRC(aeba29b5) SHA1(2a6e4568729b83c430bf70e43c4146ad6a556b1b) ) + ROM_LOAD( "nrallyx.1k", 0x3000, 0x1000, CRC(78f17da7) SHA1(1e035746a10f91e898166a58093d45bdb158ae47) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "nrallyv.8e", 0x0000, 0x1000, CRC(031acfc5) SHA1(7e0df966b7f2be416e22ec2c36bb86425138c203) ) + + ROM_REGION( 0x0100, "gfx2", 0 ) + ROM_LOAD( "im5623.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) ) /* dots */ + + ROM_REGION( 0x0160, "proms", 0 ) + ROM_LOAD( "nrallyx.pr1", 0x0000, 0x0020, CRC(a0a49017) SHA1(494c920a157e9f876d533c1b0146275a366c4989) ) /* palette */ + ROM_LOAD( "nrallyx.pr2", 0x0020, 0x0100, CRC(b2b7ca15) SHA1(e604d58f2f20ebf042f28b01e74eddeacf5baba9) ) /* lookup table */ + ROM_LOAD( "r-2.4n", 0x0120, 0x0020, CRC(8f574815) SHA1(4f84162db9d58b64742c67dc689eb665b9862fb3) ) /* video layout (not used) */ + ROM_LOAD( "r-3.7k", 0x0140, 0x0020, CRC(b8861096) SHA1(26fad384ed7a1a1e0ba719b5578e2dbb09334a25) ) /* video timing (not used) */ + + ROM_REGION( 0x0200, "namco", 0 ) /* sound proms */ + ROM_LOAD( "nrallyx.spr", 0x0000, 0x0100, CRC(b75c4e87) SHA1(450f79a5ae09e34f7624d37769815baf93c0028e) ) + ROM_LOAD( "im5623.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +GAME( 1998, rxtron, 0, rallyx, rallyx, driver_device, 0, ROT0, "Jerky and Sil", "Rally-X Tron", 0 ) +GAME( 1981, nrallyv, 0, rallyx, nrallyv, driver_device, 0, ROT90, "hack", "New Rally X (Vertical Screen)", 0 ) diff --git a/docs/release/src/hbmame/drivers/rastan.cpp b/docs/release/src/hbmame/drivers/rastan.cpp new file mode 100644 index 00000000000..5e511e43589 --- /dev/null +++ b/docs/release/src/hbmame/drivers/rastan.cpp @@ -0,0 +1,155 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/rastan.cpp" + +ROM_START( rastwack ) + ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ + ROM_LOAD16_BYTE( "rs19_38.bin", 0x00000, 0x10000, CRC(a38ac909) SHA1(66d792fee03c6bd87d15060b9d5cae74137c5ebd) ) + ROM_LOAD16_BYTE( "wk_rs07_37.bin", 0x00001, 0x10000, CRC(bad60872) SHA1(e020f79b3ac3d2abccfcd5d135d2dc49e1335c7d) ) + ROM_LOAD16_BYTE( "wk_rs20_40.bin", 0x20000, 0x10000, CRC(6bcf70dc) SHA1(3e369548ac01981c503150b44c2747e6c2cec12a) ) + ROM_LOAD16_BYTE( "wk_rs08_39.bin", 0x20001, 0x10000, CRC(8838ecc5) SHA1(42b43ab77969bbacdf178fbe73a0a27652ccb297) ) + ROM_LOAD16_BYTE( "wk_rs21_42.bin", 0x40000, 0x10000, CRC(b626c439) SHA1(976e820edc4ba107c5b579edaaee1e354e85fb67) ) + ROM_LOAD16_BYTE( "wk_rs09_43.bin", 0x40001, 0x10000, CRC(c928a516) SHA1(fe87fdf2d1b7ba93e1986460eb6af648b58f42e4) ) + + ROM_REGION( 0x1c000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) + ROM_CONTINUE( 0x10000, 0xc000 ) + + ROM_REGION( 0x080000, "gfx1", 0 ) + ROM_LOAD( "wk_ic40_01.bin", 0x00000, 0x20000, CRC(f2111c1f) SHA1(bfdb46aeffe3f08fd5095440a7fa439f52d93d92) ) /* 8x8 0 */ + ROM_LOAD( "wk_ic39_03.bin", 0x20000, 0x20000, CRC(a25b10c1) SHA1(6a163e12e00b599cf8430d73e39b5a47a94db41e) ) /* 8x8 0 */ + ROM_LOAD( "wk_ic67_02.bin", 0x40000, 0x20000, CRC(a465449c) SHA1(7cae41f4c64641fb6ed8115ae7b934c013b964b2) ) /* 8x8 1 */ + ROM_LOAD( "wk_ic66_04.bin", 0x60000, 0x20000, CRC(9d4f8e36) SHA1(4f6634a5c2eeb7be4582f0a2596bb7caa7fddac3) ) /* 8x8 1 */ + + ROM_REGION( 0x080000, "gfx2", 0 ) + ROM_LOAD( "wk_ic15_05.bin", 0x00000, 0x20000, CRC(edc6f1bb) SHA1(567e88a4e2bfc39e9f056a9c3aa735297363a376) ) /* sprites 1a */ + ROM_LOAD( "wk_ic14_07.bin", 0x20000, 0x20000, CRC(c672101c) SHA1(5759adc762f9cffb85175ee66c237a195dc2b656) ) /* sprites 3a */ + ROM_LOAD( "wk_ic28_06.bin", 0x40000, 0x20000, CRC(f6ada09a) SHA1(6ddc23f2499164d4a403d4c519e9b14492a1604b) ) /* sprites 1b */ + ROM_LOAD( "wk_ic27_08.bin", 0x60000, 0x20000, CRC(533d567e) SHA1(e61082c4c3e9d1422ff01646bb5fded9fda96f65) ) /* sprites 3b */ + + ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the samples */ + ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) /* samples are 4bit ADPCM */ +ROM_END + +ROM_START( rastandh ) + ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ + ROM_LOAD16_BYTE( "b04-35.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) ) + ROM_LOAD16_BYTE( "b04-37.07", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) ) + ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) ) + ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) ) + ROM_LOAD16_BYTE( "dh_ic21_42.bin", 0x40000, 0x10000, CRC(08dc89b1) SHA1(836d87bcf2a12586722867fdd7d0d65f823008b7) ) + ROM_LOAD16_BYTE( "dh_ic09_43.bin", 0x40001, 0x10000, CRC(a93fc337) SHA1(4117a31e3844cc981cae4323dd4c8878b1f77eb1) ) + + ROM_REGION( 0x1c000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) + ROM_CONTINUE( 0x10000, 0xc000 ) + + ROM_REGION( 0x080000, "gfx1", 0 ) + ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) ) + ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) ) + ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) ) + ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) ) + + ROM_REGION( 0x080000, "gfx2", 0 ) + ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) ) + ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) ) + ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) ) + ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) ) + + ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the samples */ + ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) /* samples are 4bit ADPCM */ +ROM_END + +ROM_START( rastand2 ) + ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ + ROM_LOAD16_BYTE( "b04-35.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) ) + ROM_LOAD16_BYTE( "b04-37.07", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) ) + ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) ) + ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) ) + ROM_LOAD16_BYTE( "b04-42.21", 0x40000, 0x10000, CRC(1857a7cb) SHA1(7d967d04ade648c6ddb19aad9e184b6e272856da) ) + ROM_LOAD16_BYTE( "d2_ic09_43.bin", 0x40001, 0x10000, CRC(e08d2b2d) SHA1(917017bdc64dc2d1ba15534baef80e581cacf7c1) ) + + ROM_REGION( 0x1c000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) + ROM_CONTINUE( 0x10000, 0xc000 ) + + ROM_REGION( 0x080000, "gfx1", 0 ) + ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) ) + ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) ) + ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) ) + ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) ) + + ROM_REGION( 0x080000, "gfx2", 0 ) + ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) ) + ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) ) + ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) ) + ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) ) + + ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the samples */ + ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) /* samples are 4bit ADPCM */ +ROM_END + +ROM_START( rastaneh ) + ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ + ROM_LOAD16_BYTE( "b04-35.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) ) + ROM_LOAD16_BYTE( "b04-37.07", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) ) + ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) ) + ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) ) + ROM_LOAD16_BYTE( "b04-42.21", 0x40000, 0x10000, CRC(1857a7cb) SHA1(7d967d04ade648c6ddb19aad9e184b6e272856da) ) + ROM_LOAD16_BYTE( "eh_ic09_43.bin", 0x40001, 0x10000, CRC(71037966) SHA1(f32d87a47535c6eae9016b7cc027d347236c217e) ) + + ROM_REGION( 0x1c000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) + ROM_CONTINUE( 0x10000, 0xc000 ) + + ROM_REGION( 0x080000, "gfx1", 0 ) + ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) ) + ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) ) + ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) ) + ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) ) + + ROM_REGION( 0x080000, "gfx2", 0 ) + ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) ) + ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) ) + ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) ) + ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) ) + + ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the samples */ + ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) /* samples are 4bit ADPCM */ +ROM_END + +ROM_START( rastane2 ) + ROM_REGION( 0x60000, "maincpu", 0 ) /* 6*64k for 68000 code */ + ROM_LOAD16_BYTE( "b04-35.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) ) + ROM_LOAD16_BYTE( "b04-37.07", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) ) + ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) ) + ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) ) + ROM_LOAD16_BYTE( "e2_ic21_42.bin", 0x40000, 0x10000, CRC(27845873) SHA1(b6197e15ee2655135d0fc8e72cc44fa3bcc73c10) ) + ROM_LOAD16_BYTE( "e2_ic09_43.bin", 0x40001, 0x10000, CRC(a38131f3) SHA1(f46cda36d698c688f1b1bfee9945915194a30ebd) ) + + ROM_REGION( 0x1c000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) + ROM_CONTINUE( 0x10000, 0xc000 ) + + ROM_REGION( 0x080000, "gfx1", 0 ) + ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) ) + ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) ) + ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) ) + ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) ) + + ROM_REGION( 0x080000, "gfx2", 0 ) + ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) ) + ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) ) + ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) ) + ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) ) + + ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the samples */ + ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) /* samples are 4bit ADPCM */ +ROM_END + + +GAME( 2000, rastwack, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Vogel", "Wacky Rastan", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, rastandh, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Neil Pearce", "Rastan Dragon Hack", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, rastand2, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Neil Pearce", "Rastan Dragon Hack (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, rastaneh, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Neil Pearce", "Rastan Enemy Hack", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, rastane2, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Neil Pearce", "Rastan Enemy Hack (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/retofinv.cpp b/docs/release/src/hbmame/drivers/retofinv.cpp new file mode 100644 index 00000000000..466491eac51 --- /dev/null +++ b/docs/release/src/hbmame/drivers/retofinv.cpp @@ -0,0 +1,41 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/retofinv.cpp" + +ROM_START( retofin4 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "a37-03.70", 0x0000, 0x2000, CRC(eae7459d) SHA1(c105f6adbd4c09decaad68ed13163d8f9b55e646) ) + ROM_LOAD( "a37-02.71", 0x2000, 0x2000, CRC(72895e37) SHA1(42fb904338e9f92a79d587eac401d456e7fb6e55) ) + ROM_LOAD( "a37-01.72", 0x4000, 0x2000, CRC(505dd20b) SHA1(3a34b1515bb834ff9e2d86b0b43a752d9619307b) ) + + ROM_REGION( 0x10000, "sub", 0 ) + ROM_LOAD( "a37-04.62", 0x0000, 0x2000, CRC(d2899cc1) SHA1(fdbec743b06f4cdcc134ef863e4e71337ad0b2c5) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "a37-05.17", 0x0000, 0x2000, CRC(9025abea) SHA1(2f03e8572f23624d7cd1215a55109e97fd66e271) ) + + ROM_REGION( 0x0800, "68705", 0 ) /* 8k for the microcontroller */ + /* the only available dump is from a bootleg board, and is not the real thing (see notes at top of driver) */ + ROM_LOAD( "a37-09.37", 0x00000, 0x0800, BAD_DUMP CRC(79bd6ded) SHA1(4967e95b4461c1bfb4e933d1804677799014f77b) ) + + ROM_REGION( 0x02000, "gfx1", 0 ) + ROM_LOAD( "a37-16.61", 0x0000, 0x2000, CRC(e0de0cc4) SHA1(a9a19ed25de26306a328cc158843f43ade6eede1) ) + + ROM_REGION( 0x08000, "gfx2", 0 ) + ROM_LOAD( "a37-10.8", 0x0000, 0x2000, CRC(c691fdbe) SHA1(b2f4c41cb0d059c9aa8045fc3e8e684bcc96b309) ) + ROM_LOAD( "a37-11.9", 0x2000, 0x2000, CRC(0ff8cf5b) SHA1(46a67a8d7d59cdbf1a4ce9e8b9361a5766880e96) ) + ROM_LOAD( "a37-12.10", 0x4000, 0x2000, CRC(90fd7496) SHA1(db2a98f4b07996d178c99a2653e1df1be4619644) ) + ROM_LOAD( "a37-13.11", 0x6000, 0x2000, CRC(a2526b5e) SHA1(a31999c86aff8977cbec4bd24056a097aaa738c7) ) + + ROM_REGION( 0x04000, "gfx3", 0 ) + ROM_LOAD( "a37-14.55", 0x0000, 0x2000, CRC(f233c421) SHA1(77da9750f88d032143968104e0b400ed1a07adca) ) + ROM_LOAD( "a37-15.56", 0x2000, 0x2000, CRC(58c3f1c9) SHA1(5e0c46a5cd6adfcccba5cf33271a51a23ff9752a) ) + + ROM_REGION( 0x0b00, "proms", 0 ) + ROM_LOAD( "a37-06.13", 0x0000, 0x0100, CRC(e9643b8b) SHA1(7bbb92a42e7c3effb701fc7b2c24f2470f31b063) ) /* palette red bits */ + ROM_LOAD( "a37-07.4", 0x0100, 0x0100, CRC(e8f34e11) SHA1(8f438561b8d46ffff00747ed8baf0ebb6a081615) ) /* palette green bits */ + ROM_LOAD( "a37-08.3", 0x0200, 0x0100, CRC(50030af0) SHA1(e748ae0b8702b7d20fb65c254dceee23246b3d13) ) /* palette blue bits */ + ROM_LOAD( "82s191n", 0x0300, 0x0800, CRC(93c891e3) SHA1(643a0107717b6a434432dda73a0102e6e8adbca7) ) /* lookup table */ +ROM_END + +GAME( 2011, retofin4, 0, retofinv, retofinv, driver_device, 0, ROT90, "Paul Smith", "Return of the Invaders (hack)", 0 ) diff --git a/docs/release/src/hbmame/drivers/schaser.cpp b/docs/release/src/hbmame/drivers/schaser.cpp new file mode 100644 index 00000000000..44e04eaf463 --- /dev/null +++ b/docs/release/src/hbmame/drivers/schaser.cpp @@ -0,0 +1,597 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/**************************************************************************************** + + Space Chaser (CV version) + + August, 2008 by Robbbert + + No diagram, therefore this is a Hack Job. + + + These cheats exist in this game: + 1. Hold down 2P DOWN (the F key) while it says INSERT COIN. Then insert a coin + and play. You will have 2 extra ships. + 2. In the Hard difficulty setting, you normally start at level 4. Hold down the + 1P START (the 1 key) while it says INSERT COIN. Then insert a coin and play. + You will start at level 5. + + + Changes: + 1. Used the existing Discrete System for all sounds + 2. Removed IN0 as it is never referenced + 3. Identified and documented input cheats + 4. Added watchdog + 5. Added coin lockout + +*******************************************************************************************/ + +#include "emu.h" +#include "cpu/i8085/i8085.h" +#include "machine/mb14241.h" +#include "sound/sn76477.h" +#include "sound/discrete.h" + +#define MW8080BW_MASTER_CLOCK (19968000.0) +#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10) +#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4) +#define MW8080BW_HTOTAL (0x140) +#define MW8080BW_HBEND (0x000) +#define MW8080BW_HBSTART (0x100) +#define MW8080BW_VTOTAL (0x106) +#define MW8080BW_VBEND (0x000) +#define MW8080BW_VBSTART (0x0e0) +#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020) +#define MW8080BW_VCOUNTER_START_VBLANK (0x0da) +#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080) +#define MW8080BW_INT_TRIGGER_VBLANK_1 (0) +#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK +#define MW8080BW_INT_TRIGGER_VBLANK_2 (1) +#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART - 7 + +class sc_state : public driver_device +{ +public: + sc_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this,"maincpu") + , m_p_ram(*this, "ram") + , m_p_colorram(*this, "colorram") + , m_sn(*this, "snsnd") + , m_discrete(*this, "discrete") + , m_555_timer(*this, "schaser_sh_555") + , m_screen(*this, "screen") + { } + + DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r); + DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r); + DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w); + DECLARE_READ8_MEMBER(schasercv_02_r); + DECLARE_WRITE8_MEMBER(schaser_03_w); + DECLARE_WRITE8_MEMBER(schaser_05_w); + DECLARE_MACHINE_START(sc); + DECLARE_MACHINE_RESET(sc); + TIMER_DEVICE_CALLBACK_MEMBER(schaser_effect_555_cb); + TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback); + UINT32 screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); +private: + + bool m_flip_screen; + bool m_screen_red; + bool m_sound_enabled; + bool m_explosion; + bool m_555_is_low; + attotime m_555_time_remain; + INT32 m_555_time_remain_savable; + UINT8 m_last_effect; + UINT8 m_sound_seq; + emu_timer *m_interrupt_timer; + UINT8 vpos_to_vysnc_chain_counter( int vpos ); + int vysnc_chain_counter_to_vpos( UINT8 counter, int vblank ); + void schaser_reinit_555_time_remain(); + void mw8080bw_create_interrupt_timer( ); + void mw8080bw_start_interrupt_timer( ); + required_device<cpu_device> m_maincpu; + required_shared_ptr<UINT8> m_p_ram; + required_shared_ptr<UINT8> m_p_colorram; + required_device<sn76477_device> m_sn; + required_device<discrete_device> m_discrete; + required_device<timer_device> m_555_timer; + required_device<screen_device> m_screen; +}; + +/* + * The dot sound is a square wave clocked by either the + * the 8V or 4V signals + * + * The frequencies are (for the 8V signal): + * + * 19.968 MHz crystal / 2 (Qa of 74160 #10) -> 9.984MHz + * / 2 (7474 #14) -> 4.992MHz + * / 256+16 (74161 #5 and #8) -> 18352.94Hz + * / 8 (8V) -> 2294.12 Hz + * / 2 the final freq. is 2 toggles -> 1147.06Hz + * + * for 4V, it's double at 2294.12Hz + */ +#define SCHASER_HSYNC 18352.94 +#define SCHASER_4V SCHASER_HSYNC /2 /4 +#define SCHASER_8V SCHASER_HSYNC /2 /8 + +/* Nodes - Inputs */ +#define SCHASER_DOT_EN NODE_01 +#define SCHASER_DOT_SEL NODE_02 +#define SCHASER_EXP_STREAM NODE_03 +#define SCHASER_MUSIC_BIT NODE_04 +#define SCHASER_SND_EN NODE_05 +/* Nodes - Adjusters */ +#define SCHASER_VR1 NODE_07 +#define SCHASER_VR2 NODE_08 +#define SCHASER_VR3 NODE_09 +/* Nodes - Sounds */ +#define SCHASER_DOT_SND NODE_10 +#define SCHASER_EXP_SND NODE_11 +#define SCHASER_MUSIC_SND NODE_12 + +DISCRETE_SOUND_START(schaser) + /************************************************/ + /* Input register mapping for schaser */ + /************************************************/ + DISCRETE_INPUT_LOGIC (SCHASER_DOT_EN) + DISCRETE_INPUT_LOGIC (SCHASER_DOT_SEL) + // scale to 0-3.5V + DISCRETE_INPUTX_STREAM(SCHASER_EXP_STREAM, 0, 1.0/14100, 2.323) + DISCRETE_INPUTX_LOGIC (SCHASER_MUSIC_BIT, DEFAULT_TTL_V_LOGIC_1, 0, 0.0) + DISCRETE_INPUT_LOGIC (SCHASER_SND_EN) + + /************************************************/ + /* Volume adjusters. */ + /* We will set them to adjust the realitive */ + /* gains. */ + /************************************************/ + DISCRETE_ADJUSTMENT(SCHASER_VR1, 0, RES_K(50)/(RES_K(50) + RES_K(470)), DISC_LINADJ, "VR1") + DISCRETE_ADJUSTMENT(SCHASER_VR2, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(2)), DISC_LINADJ, "VR2") + DISCRETE_ADJUSTMENT(SCHASER_VR3, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(10)), DISC_LINADJ, "VR3") + + /************************************************/ + /* Dot selection just selects between 4V and 8V */ + /************************************************/ + DISCRETE_SQUAREWFIX(NODE_20, 1, SCHASER_4V, DEFAULT_TTL_V_LOGIC_1, 50, 0, 0) + DISCRETE_SQUAREWFIX(NODE_21, 1, SCHASER_8V, DEFAULT_TTL_V_LOGIC_1, 50, 0, 0) + DISCRETE_SWITCH(NODE_22, SCHASER_DOT_EN, SCHASER_DOT_SEL, NODE_20, NODE_21) + DISCRETE_RCFILTER(NODE_23, NODE_22, 560, CAP_U(.1)) + DISCRETE_RCFILTER(NODE_24, NODE_23, RES_K(6.8) + 560, CAP_U(.1)) + DISCRETE_MULTIPLY(SCHASER_DOT_SND, NODE_24, SCHASER_VR3) + + /************************************************/ + /* Explosion/Effect filtering */ + /************************************************/ + DISCRETE_RCFILTER(NODE_30, SCHASER_EXP_STREAM, 560, CAP_U(.1)) + DISCRETE_RCFILTER(NODE_31, NODE_30, RES_K(6.8) + 560, CAP_U(.1)) + DISCRETE_CRFILTER(NODE_32, NODE_31, RES_K(6.8) + 560 + RES_K(2) + RES_K(50), CAP_U(1)) + DISCRETE_MULTIPLY(SCHASER_EXP_SND, NODE_32, SCHASER_VR2) + + /************************************************/ + /* Music is just a 1 bit DAC */ + /************************************************/ + DISCRETE_CRFILTER(NODE_40, SCHASER_MUSIC_BIT, RES_K(470) + RES_K(50), CAP_U(.01)) + DISCRETE_MULTIPLY(SCHASER_MUSIC_SND, NODE_40, SCHASER_VR1) + + /************************************************/ + /* Final mix with gain */ + /************************************************/ + DISCRETE_ADDER3(NODE_90, SCHASER_SND_EN, SCHASER_DOT_SND, SCHASER_EXP_SND, SCHASER_MUSIC_SND) + + DISCRETE_OUTPUT(NODE_90, 33080) +DISCRETE_SOUND_END + +static const double schaser_effect_rc[8] = +{ + 0, + (RES_K(15) + RES_K(20)) * CAP_U(1), + (RES_K(39) + RES_K(20)) * CAP_U(1), + (1.0/ (1.0/RES_K(15) + 1.0/RES_K(39)) + RES_K(20)) * CAP_U(1), + (RES_K(82) + RES_K(20)) * CAP_U(1), + (1.0/ (1.0/RES_K(15) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1), + (1.0/ (1.0/RES_K(15) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1), + (1.0/ (1.0/RES_K(15) + 1.0/RES_K(39) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1) +}; + +WRITE8_MEMBER(sc_state::schaser_03_w) +{ + /* bit 1 - Dot Sound Enable + bit 2 - Effect Sound A (a stream of pulses) + bit 3 - Effect Sound B (a stream of pulses) + bit 4 - Explosion (a stream of ff's with some fe's thrown in) + bit 5 - Goes high when first dot hit */ + + UINT8 effect = 0, byte = data & 0x2c; + + /* If you use fuel, the dot sound turns into a continuous beep. + + The effect sequence is really bizarre, however a pattern exists. */ + + m_explosion = BIT(data, 4); + if (!m_explosion) m_discrete->write(space, SCHASER_DOT_EN, BIT(data, 1)); /* prevents beep during explosion */ + + if (!m_sound_enabled) /* sound disabled */ + m_sound_seq=0; + else + if ((m_sound_seq == 0) && (m_sound_enabled)) /* normal play */ + m_sound_seq=1; + else + if ((m_sound_seq == 1) && (byte == 0x28)) /* going faster... */ + m_sound_seq=2; + else + if ((m_sound_seq == 2) && (byte == 0x24)) /* and faster... */ + m_sound_seq=3; + else + if ((m_sound_seq < 4) && (byte == 0x2c)) /* died */ + m_sound_seq=4; + else + if ((m_sound_seq > 2) && (byte == 0)) /* finished stage, and the pause before a stage starts */ + m_sound_seq=5; + + if (m_sound_seq == 1) effect=4; /* normal speed */ + else + if (m_sound_seq == 2) effect=2; /* going faster... */ + else + if (m_sound_seq == 3) effect=1; /* and faster... */ + /* effect = 0 when no missile on screen, or in attract mode */ + + + if (m_last_effect != effect) + { + if (effect) + { + if (m_555_time_remain != attotime::zero) + { + /* timer re-enabled, use up remaining 555 high time */ + m_555_timer->adjust(m_555_time_remain, effect); + } + else if (!m_555_is_low) + { + /* set 555 high time */ + attotime new_time = attotime(0, ATTOSECONDS_PER_SECOND * .8873 * schaser_effect_rc[effect]); + m_555_timer->adjust(new_time, effect); + } + } + else + { + /* disable effect - stops at end of low cycle */ + if (!m_555_is_low) + { + m_555_time_remain = attotime::zero; + m_555_time_remain_savable = m_555_time_remain.as_double(); + m_555_timer->adjust(attotime::never); + } + } + m_last_effect = effect; + } + + if (m_explosion) + m_sn->amplitude_res_w(1.0 / (1.0/RES_K(200) + 1.0/RES_K(68))); + else + m_sn->amplitude_res_w(RES_K(200)); + + m_sn->enable_w(!(m_555_is_low | m_explosion)); + m_sn->one_shot_cap_voltage_w(!(m_555_is_low | m_explosion) ? 0 : SN76477_EXTERNAL_VOLTAGE_DISCONNECT); + m_sn->mixer_b_w(m_explosion); +} + +WRITE8_MEMBER(sc_state::schaser_05_w) +{ + /* bit 0 - Music (DAC) + bit 2 - Coin Lockout + bit 4 - Sound Enable + bit 5 - Flip Screen + There are no field control bits. Therefore the green mask can never appear. + The sound is enabled early on the stages that should have the mask. */ + + m_discrete->write(space, SCHASER_MUSIC_BIT, BIT(data, 0)); + + m_sound_enabled = BIT(data, 4); + m_discrete->write(space, SCHASER_SND_EN, m_sound_enabled); + machine().sound().system_enable(m_sound_enabled); + + machine().bookkeeping().coin_lockout_global_w(BIT(data, 2)); + + m_flip_screen = BIT(data, 5) & ioport("CAB")->read(); +} + + +TIMER_DEVICE_CALLBACK_MEMBER(sc_state::schaser_effect_555_cb) +{ + UINT8 effect = param; + attotime new_time; + + /* Toggle 555 output */ + m_555_is_low ^= 1; + m_555_time_remain = attotime::zero; + m_555_time_remain_savable = m_555_time_remain.as_double(); + + if (m_555_is_low) + new_time = PERIOD_OF_555_ASTABLE(0, RES_K(20), CAP_U(1)) / 2; + else + { + if (effect) + new_time = attotime(0, ATTOSECONDS_PER_SECOND * .8873 * schaser_effect_rc[effect]); + else + new_time = attotime::never; + } + m_555_timer->adjust(new_time, effect); + m_sn->enable_w(!(m_555_is_low | m_explosion)); + m_sn->one_shot_cap_voltage_w(!(m_555_is_low | m_explosion) ? 0 : SN76477_EXTERNAL_VOLTAGE_DISCONNECT); +} + + +void sc_state::schaser_reinit_555_time_remain() +{ + m_555_time_remain = attotime::from_double(m_555_time_remain_savable); +} + + +MACHINE_START_MEMBER( sc_state, sc ) +{ + save_item(NAME(m_flip_screen)); + save_item(NAME(m_screen_red)); + save_item(NAME(m_sound_enabled)); + save_item(NAME(m_explosion)); + save_item(NAME(m_last_effect)); + save_item(NAME(m_sound_seq)); + save_item(NAME(m_555_is_low)); + save_item(NAME(m_555_time_remain_savable)); + machine().save().register_postload(save_prepost_delegate(FUNC(sc_state::schaser_reinit_555_time_remain), this)); + mw8080bw_create_interrupt_timer(); +} + + +MACHINE_RESET_MEMBER( sc_state, sc ) +{ + m_flip_screen = 0; + m_screen_red = 0; + m_sound_enabled = 0; + m_explosion = 0; + m_last_effect = 0xff; + m_sound_seq = 0; + m_555_is_low = 0; + m_555_time_remain = attotime::zero; + m_555_time_remain_savable = m_555_time_remain.as_double(); + m_555_timer->adjust(attotime::never); + + address_space &space = m_maincpu->space(AS_PROGRAM); + schaser_03_w(space, 0, 0); + schaser_05_w(space, 0, 0); + mw8080bw_start_interrupt_timer(); +} + +UINT8 sc_state::vpos_to_vysnc_chain_counter( int vpos ) +{ + /* convert from a vertical position to the actual values on the vertical sync counters */ + UINT8 counter; + int vblank = (vpos >= MW8080BW_VBSTART); + + if (vblank) + counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK; + else + counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK; + + return counter; +} + + +int sc_state::vysnc_chain_counter_to_vpos( UINT8 counter, int vblank ) +{ + /* convert from the vertical sync counters to an actual vertical position */ + int vpos; + + if (vblank) + vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART; + else + vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK; + + return vpos; +} + + +TIMER_CALLBACK_MEMBER(sc_state::mw8080bw_interrupt_callback) +{ + UINT8 next_counter; + int next_vpos; + int next_vblank; + + /* compute vector and set the interrupt line */ + int vpos = m_screen->vpos(); + UINT8 counter = vpos_to_vysnc_chain_counter(vpos); + UINT8 vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3); + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector); + + /* set up for next interrupt */ + if (counter == MW8080BW_INT_TRIGGER_COUNT_1) + { + next_counter = MW8080BW_INT_TRIGGER_COUNT_2; + next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2; + } + else + { + next_counter = MW8080BW_INT_TRIGGER_COUNT_1; + next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1; + } + + next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos)); +} + + +void sc_state::mw8080bw_create_interrupt_timer( ) +{ + m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sc_state::mw8080bw_interrupt_callback),this)); +} + + +void sc_state::mw8080bw_start_interrupt_timer( ) +{ + int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1); + m_interrupt_timer->adjust(m_screen->time_until_pos(vpos)); +} + + + +UINT32 sc_state::screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + pen_t pens[8]; + offs_t offs; + UINT8 i, x, y, data, fg, color; + + for (i = 0; i < 8; i++) + pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)); + + for (offs = 0; offs < m_p_ram.bytes(); offs++) + { + y = offs >> 5; + x = offs << 3; + + data = m_p_ram[offs]; + fg = m_p_colorram[offs & 0x1f9f] & 0x07; + + for (i = 0; i < 8; i++) + { + color = BIT(data, i) ? fg : 2; + + if (y >= MW8080BW_VCOUNTER_START_NO_VBLANK) + { + if (m_flip_screen) + bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pens[color]; + else + bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pens[color]; + } + + x++; + } + } + + return 0; +} + +READ8_MEMBER(sc_state::schasercv_02_r) +{ + UINT8 data = ioport("IN2")->read(); + if (m_flip_screen) return data; + UINT8 in1 = ioport("IN1")->read(); + return (data & 0x89) | (in1 & 0x70) | (BIT(in1, 3) << 1) | (BIT(in1, 7) << 2); +} + +static ADDRESS_MAP_START( schaser_map, AS_PROGRAM, 8, sc_state ) + AM_RANGE(0x0000, 0x1fff) AM_ROM + AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("ram") + AM_RANGE(0x4000, 0x5fff) AM_ROM + AM_RANGE(0xc000, 0xdfff) AM_MIRROR(0x0060) AM_RAM AM_SHARE("colorram") +ADDRESS_MAP_END + +static ADDRESS_MAP_START( schasercv_io_map, AS_IO, 8, sc_state ) + AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") + AM_RANGE(0x02, 0x02) AM_READ(schasercv_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w) + AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(schaser_03_w) + AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w) + AM_RANGE(0x05, 0x05) AM_WRITE(schaser_05_w) + //AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) +ADDRESS_MAP_END + + +static INPUT_PORTS_START( schasercv ) + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY + + PORT_START("IN2") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1") + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x01, "4" ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:2") + PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_DIPLOCATION("SW1:5") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) PORT_DIPLOCATION("SW1:6") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) PORT_DIPLOCATION("SW1:7") + PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x00, "SW1:3" ) /* doesn't do anything */ + + PORT_START("VR1") + PORT_ADJUSTER( 70, "VR1 - Music Volume" ) + + PORT_START("VR2") + PORT_ADJUSTER( 90, "VR2 - Explosion/Effect Volume" ) + + PORT_START("VR3") + PORT_ADJUSTER( 70, "VR3 - Dot Volume" ) + + PORT_START("CAB") + PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) + PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) + PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) +INPUT_PORTS_END + +static MACHINE_CONFIG_START( schasercv, sc_state ) + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK) + MCFG_CPU_PROGRAM_MAP(schaser_map) + MCFG_CPU_IO_MAP(schasercv_io_map) + MCFG_MACHINE_START_OVERRIDE(sc_state,sc) + MCFG_MACHINE_RESET_OVERRIDE(sc_state,sc) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART) + MCFG_SCREEN_UPDATE_DRIVER(sc_state, screen_update_schasercv) + + /* add shifter */ + MCFG_MB14241_ADD("mb14241") + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_SOUND_ADD("snsnd", SN76477, 0) + MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(470)) // noise + filter + MCFG_SN76477_DECAY_RES(RES_M(2.2)) // decay_res + MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(4.7)) // attack_decay_cap + attack_res + MCFG_SN76477_AMP_RES(0) // amplitude_res + MCFG_SN76477_FEEDBACK_RES(RES_K(33)) // feedback_res + MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(39)) // VCO volt + cap + res + MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage + MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res + MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(220)) // oneshot caps + res + MCFG_SN76477_VCO_MODE(1) // VCO mode + MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C + MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2 + MCFG_SN76477_ENABLE(1) // enable + MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0) + + MCFG_SOUND_ADD("discrete", DISCRETE, 0) + MCFG_DISCRETE_INTF(schaser) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + + MCFG_TIMER_DRIVER_ADD("schaser_sh_555", sc_state, schaser_effect_555_cb) +MACHINE_CONFIG_END + +ROM_START( schasrcv ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "1", 0x0000, 0x0400, CRC(bec2b16b) SHA1(c62210ecb64d7c38e5b63481d7fe04eb59bb1068) ) + ROM_LOAD( "2", 0x0400, 0x0400, CRC(9d25e608) SHA1(4cc52a93a3ab96a0ec1d07593e17832fa59b30a1) ) + ROM_LOAD( "3", 0x0800, 0x0400, CRC(113d0635) SHA1(ab5e98d0b5fc37d7d69bb5c541681a0f66460440) ) + ROM_LOAD( "4", 0x0c00, 0x0400, CRC(f3a43c8d) SHA1(29a7a8b7d1de763a255cfec79157fd95e7bff551) ) + ROM_LOAD( "5", 0x1000, 0x0400, CRC(47c84f23) SHA1(61b475fa92b8335f8edd3a128d8ac8561658e464) ) + ROM_LOAD( "6", 0x1400, 0x0400, CRC(02ff2199) SHA1(e12c235b2064cb4bb426145172e523256e3c6358) ) + ROM_LOAD( "7", 0x1800, 0x0400, CRC(87d06b88) SHA1(2d743161f85e47cb8ee2a600cbee790b1ad7ad99) ) + ROM_LOAD( "8", 0x1c00, 0x0400, CRC(6dfaad08) SHA1(2184c4e2f4b6bffdc4fe13e178134331fcd43253) ) + ROM_LOAD( "9", 0x4000, 0x0400, CRC(3d1a2ae3) SHA1(672ad6590aebdfebc2748455fa638107f3934c41) ) + ROM_LOAD( "10", 0x4400, 0x0400, CRC(037edb99) SHA1(f2fc5e61f962666e7f6bb81753ac24ea0b97e581) ) +ROM_END + +GAME( 1979, schasrcv, 0, schasercv, schasercv, driver_device, 0, ROT270, "Taito", "Space Chaser (CV version)(Extra Sounds)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS ) diff --git a/docs/release/src/hbmame/drivers/segac2.cpp b/docs/release/src/hbmame/drivers/segac2.cpp new file mode 100644 index 00000000000..346dbb2e597 --- /dev/null +++ b/docs/release/src/hbmame/drivers/segac2.cpp @@ -0,0 +1,15 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/segac2.cpp" + +/* http://frogfeast.rastersoft.net/SegaC2.html + It appears from the source that the sound is going through a Z80 - but the C2 hardware doesn't have one... + Also there are unmapped writes to A00000-A00100, A11100, A11200. */ + +ROM_START( c2frog ) + ROM_REGION( 0x1000000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "epr13114.32", 0x000000, 0x020000, CRC(d7039bd3) SHA1(82b9e3a760ebc845afe7bd78f22b897e1a530651) ) + ROM_LOAD16_BYTE( "epr13113.31", 0x000001, 0x020000, CRC(754b111a) SHA1(5542fc3b955df843e15e7c98aebc4f80c7d44b69) ) +ROM_END + +GAME( 2007, c2frog, 0, segac, columns, segac2_state, columns, ROT0, "Rastersoft", "Frog Feast (Sega C2 hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/segag80r.cpp b/docs/release/src/hbmame/drivers/segag80r.cpp new file mode 100644 index 00000000000..708fc9f60d0 --- /dev/null +++ b/docs/release/src/hbmame/drivers/segag80r.cpp @@ -0,0 +1,38 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/segag80r.cpp" + +ROM_START( astrob2h ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "829b", 0x0000, 0x0800, CRC(14ae953c) SHA1(eb63d1b95faa5193db7fa6ab245e99325d519b5e) ) /* U25 */ + ROM_LOAD( "888", 0x0800, 0x0800, CRC(42601744) SHA1(6bb58384c28b2105746a2f410f5e0979609db9bf) ) /* U1 */ + ROM_LOAD( "889bh", 0x1000, 0x0800, CRC(9fcdc62f) SHA1(6dbf7e1ad62548263ca5edaa81d38cbc7a9a281f) ) /* U2 */ + ROM_LOAD( "890", 0x1800, 0x0800, CRC(26f5b4cf) SHA1(be45e802f976b8847689ae8de7159843ac9100eb) ) /* U3 */ + ROM_LOAD( "891bh", 0x2000, 0x0800, CRC(74f906dc) SHA1(edf9efc0ec25f578214b26010d99385c0bace3ad) ) /* U4 */ + ROM_LOAD( "892", 0x2800, 0x0800, CRC(2d3c949b) SHA1(17e3c5300793f2345ff6e28e82cd7a22f1d6e41f) ) /* U5 */ + ROM_LOAD( "893", 0x3000, 0x0800, CRC(ccdb1a76) SHA1(1c8f0555e397c5558bbfca1fa1487cc32aca8592) ) /* U6 */ + ROM_LOAD( "894", 0x3800, 0x0800, CRC(66ae5ced) SHA1(81bb6e3adcc76ffbeafefecce5fe5541a7eefc37) ) /* U7 */ + ROM_LOAD( "895", 0x4000, 0x0800, CRC(202cf3a3) SHA1(26fcccfb3e94b2a01d38c14daa66713c223efb18) ) /* U8 */ + ROM_LOAD( "896", 0x4800, 0x0800, CRC(b603fe23) SHA1(3128877355a9c5bba5cd22e9addf4c8b79ee39d2) ) /* U9 */ + ROM_LOAD( "897", 0x5000, 0x0800, CRC(989198c6) SHA1(3344bf7272e388571026c4e68a2e4e5e0ebbc5e3) ) /* U10 */ + ROM_LOAD( "898", 0x5800, 0x0800, CRC(ef2bab04) SHA1(108a9812cb9d1ec4629b0306c45ba164f94ab426) ) /* U11 */ + ROM_LOAD( "899", 0x6000, 0x0800, CRC(e0d189ee) SHA1(dcab31d64e6b2d248a82cbae9e37afe031dfc6cd) ) /* U12 */ + ROM_LOAD( "900", 0x6800, 0x0800, CRC(682d4604) SHA1(6ac0d2d8ff407cc7e10b460736ae7fbc21148640) ) /* U13 */ + ROM_LOAD( "901", 0x7000, 0x0800, CRC(9ed11c61) SHA1(dd965c06d2013acdabd958e713109eeb049d5d5e) ) /* U14 */ + ROM_LOAD( "902", 0x7800, 0x0800, CRC(b4d6c330) SHA1(922a562b5f1a8a286e6777ba7d141bd0db6e2a92) ) /* U15 */ + ROM_LOAD( "903", 0x8000, 0x0800, CRC(84acc38c) SHA1(86bed143ac2d95116e50e77b5c262d67156c6a59) ) /* U16 */ + ROM_LOAD( "904", 0x8800, 0x0800, CRC(5eba3097) SHA1(e785d1c1cea50aa25e5eea5e58a0c48fd53208c6) ) /* U17 */ + ROM_LOAD( "905", 0x9000, 0x0800, CRC(4f08f9f4) SHA1(755a825b18ed50caa7bf274a0a5c3a1b00b1c070) ) /* U18 */ + ROM_LOAD( "906", 0x9800, 0x0800, CRC(58149df1) SHA1(2bba56576a225ca47ce31a5b6dcc491546dfffec) ) /* U19 */ + + ROM_REGION( 0x0800, "audiocpu", 0 ) + ROM_LOAD( "808b.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) + + ROM_REGION( 0x4000, "speech", 0 ) + ROM_LOAD( "809a.speech-u6", 0x0000, 0x0800, CRC(893f228d) SHA1(41c08210d322105f5446cfaa1258c194dd078a34) ) + ROM_LOAD( "810.speech-u5", 0x0800, 0x0800, CRC(ff0163c5) SHA1(158a12f9bf01d25c7e98f34fce56df51d49e5a85) ) + ROM_LOAD( "811.speech-u4", 0x1000, 0x0800, CRC(219f3978) SHA1(728edb9251f7cde237fa3b005971366a099c6342) ) + ROM_LOAD( "812a.speech-u3", 0x1800, 0x0800, CRC(410ad0d2) SHA1(9b5f05bb64a6ecfe3543025a10c6ec67de797333) ) +ROM_END + +GAME( 1981, astrob2h, 0, astrob, astrob2, segag80r_state, astrob, ROT270, "Clay Cowgill", "Astro Blaster (ver 2 Hack)", 0 ) diff --git a/docs/release/src/hbmame/drivers/segaorun.cpp b/docs/release/src/hbmame/drivers/segaorun.cpp new file mode 100644 index 00000000000..7fc789eb338 --- /dev/null +++ b/docs/release/src/hbmame/drivers/segaorun.cpp @@ -0,0 +1,224 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/segaorun.cpp" + +ROM_START( outrunen ) + ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "outrunen.133", 0x000000, 0x10000, CRC(90e6ecec) SHA1(a2dfb4934770c107504f358e0b0c1ed6b4dece40) ) + ROM_LOAD16_BYTE( "outrunen.118", 0x000001, 0x10000, CRC(e227af3c) SHA1(f5387d50b6c1cfa426b89aaaef521217e8c6530a) ) + ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) ) + ROM_LOAD16_BYTE( "outrunen.117", 0x020001, 0x10000, CRC(28a5e93e) SHA1(7dda2eef158783562b17fd57ad1a94f061e34d5d) ) + + ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU + ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) ) + ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) ) + ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) ) + ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) ) + + ROM_REGION( 0x30000, "gfx1", 0 ) // tiles + ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) ) + ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) ) + ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) ) + ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) ) + ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) ) + ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) ) + + ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites + // VIDEO BD 837-6064-02 uses mask roms four times the size of those used on VIDEO BD 837-6064-01, same data + ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) ) + ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) ) + ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) ) + ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) ) + ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) ) + ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) ) + ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) + ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road) + ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU + ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) ) + + ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data + ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) ) + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) ) + ROM_RELOAD( 0x18000, 0x08000 ) + ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) ) + ROM_RELOAD( 0x28000, 0x08000 ) + ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) ) + ROM_RELOAD( 0x38000, 0x08000 ) + ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) ) + ROM_RELOAD( 0x48000, 0x08000 ) + ROM_LOAD( "outrunen.71", 0x50000, 0x08000, CRC(37598616) SHA1(e7c8ae6c59742e1de7ec5a95c5aebfab5716d959) ) + ROM_RELOAD( 0x58000, 0x08000 ) +ROM_END + +ROM_START( outrunen0 ) + ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "outrunen0.133", 0x000000, 0x10000, CRC(f4d07c15) SHA1(7d1ba7683e2f8c1942281d5de1ce636eec1ea3a1) ) + ROM_LOAD16_BYTE( "outrunen0.118", 0x000001, 0x10000, CRC(8f97042f) SHA1(ff587eba8fa0c31c30266e6030aa7df3de90e98d) ) + ROM_LOAD16_BYTE( "outrunen0.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) ) + ROM_LOAD16_BYTE( "outrunen0.117", 0x020001, 0x10000, CRC(ffc9884b) SHA1(35409afaf32a68bcfca4af60a036e66b2defa7fe) ) + + ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU + ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) ) + ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) ) + ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) ) + ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) ) + + ROM_REGION( 0x30000, "gfx1", 0 ) // tiles + ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) ) + ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) ) + ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) ) + ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) ) + ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) ) + ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) ) + + ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites + // VIDEO BD 837-6064-02 uses mask roms four times the size of those used on VIDEO BD 837-6064-01, same data + ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) ) + ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) ) + ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) ) + ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) ) + ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) ) + ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) ) + ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) + ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road) + ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU + ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) ) + + ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data + ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) ) + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) ) + ROM_RELOAD( 0x18000, 0x08000 ) + ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) ) + ROM_RELOAD( 0x28000, 0x08000 ) + ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) ) + ROM_RELOAD( 0x38000, 0x08000 ) + ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) ) + ROM_RELOAD( 0x48000, 0x08000 ) + ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) ) + ROM_RELOAD( 0x58000, 0x08000 ) +ROM_END + +ROM_START( outrunen1 ) + ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "outrunen1.133", 0x000000, 0x10000, CRC(5ea17a9e) SHA1(accd6a4412542857e07239ceea72a7f6ec9fb2da) ) + ROM_LOAD16_BYTE( "outrunen1.118", 0x000001, 0x10000, CRC(455e67d8) SHA1(b3f3bcde8f5655ba3dc743573b6d91b8ca2faddc) ) + ROM_LOAD16_BYTE( "outrunen1.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) ) + ROM_LOAD16_BYTE( "outrunen1.117", 0x020001, 0x10000, CRC(ffc9884b) SHA1(35409afaf32a68bcfca4af60a036e66b2defa7fe) ) + + ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU + ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) ) + ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) ) + ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) ) + ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) ) + + ROM_REGION( 0x30000, "gfx1", 0 ) // tiles + ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) ) + ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) ) + ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) ) + ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) ) + ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) ) + ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) ) + + ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites + // VIDEO BD 837-6064-02 uses mask roms four times the size of those used on VIDEO BD 837-6064-01, same data + ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) ) + ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) ) + ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) ) + ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) ) + ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) ) + ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) ) + ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) + ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road) + ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU + ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) ) + + ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data + ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) ) + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) ) + ROM_RELOAD( 0x18000, 0x08000 ) + ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) ) + ROM_RELOAD( 0x28000, 0x08000 ) + ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) ) + ROM_RELOAD( 0x38000, 0x08000 ) + ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) ) + ROM_RELOAD( 0x48000, 0x08000 ) + ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) ) + ROM_RELOAD( 0x58000, 0x08000 ) +ROM_END + +ROM_START( outrunen2 ) + ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "outrunen2.133", 0x000000, 0x10000, CRC(c2db4cb7) SHA1(64c3f87f759204efe2a9014e8daee8cf7396ee76) ) + ROM_LOAD16_BYTE( "outrunen2.118", 0x000001, 0x10000, CRC(c330de11) SHA1(72cb40a0f60eae452619e64c70ae49d00857a039) ) + ROM_LOAD16_BYTE( "outrunen2.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) ) + ROM_LOAD16_BYTE( "outrunen2.117", 0x020001, 0x10000, CRC(28a5e93e) SHA1(7dda2eef158783562b17fd57ad1a94f061e34d5d) ) + + ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU + ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) ) + ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) ) + ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) ) + ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) ) + + ROM_REGION( 0x30000, "gfx1", 0 ) // tiles + ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) ) + ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) ) + ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) ) + ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) ) + ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) ) + ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) ) + + ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites + // VIDEO BD 837-6064-02 uses mask roms four times the size of those used on VIDEO BD 837-6064-01, same data + ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) ) + ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) ) + ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) ) + ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) ) + ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) ) + ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) ) + ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) + ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road) + ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU + ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) ) + + ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data + ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) ) + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) ) + ROM_RELOAD( 0x18000, 0x08000 ) + ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) ) + ROM_RELOAD( 0x28000, 0x08000 ) + ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) ) + ROM_RELOAD( 0x38000, 0x08000 ) + ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) ) + ROM_RELOAD( 0x48000, 0x08000 ) + ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) ) + ROM_RELOAD( 0x58000, 0x08000 ) +ROM_END + +GAMEL(2012, outrunen, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.3", 0, layout_outrun ) // Upright/Sitdown determined by dipswitch settings +GAMEL(2012, outrunen2, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.2", 0, layout_outrun ) // Upright/Sitdown determined by dipswitch settings +GAMEL(2012, outrunen1, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.1", 0, layout_outrun ) // Upright/Sitdown determined by dipswitch settings +GAMEL(2012, outrunen0, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.0", 0, layout_outrun ) // Upright/Sitdown determined by dipswitch settings diff --git a/docs/release/src/hbmame/drivers/segas16b.cpp b/docs/release/src/hbmame/drivers/segas16b.cpp new file mode 100644 index 00000000000..f5c706bf097 --- /dev/null +++ b/docs/release/src/hbmame/drivers/segas16b.cpp @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/segas16b.cpp" + +ROM_START( altbeastfr ) + ROM_REGION( 0x040000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "epr-11907.a7fr", 0x000000, 0x20000, CRC(309d3a0a) SHA1(646dcafe7ac2831e241eb0643a06f8c32bdba77a) ) + ROM_LOAD16_BYTE( "epr-11906.a5fr", 0x000001, 0x20000, CRC(39cd8368) SHA1(6b5890d44b549c3bbe18345ac86943c55f7b9d26) ) + + ROM_REGION( 0x60000, "gfx1", 0 ) /* tiles */ + ROM_LOAD( "opr-11674.a14", 0x00000, 0x20000, CRC(a57a66d5) SHA1(5103583d48997abad12a0c5fee26431c486ced52) ) + ROM_LOAD( "opr-11675.a15", 0x20000, 0x20000, CRC(2ef2f144) SHA1(38d22d609db2d9b6067b5d12f6499436de4605cb) ) + ROM_LOAD( "opr-11676.a16", 0x40000, 0x20000, CRC(0c04acac) SHA1(87fe2a0dd9913f9550e9b4cbc7e7465b61640e07) ) + + ROM_REGION16_BE( 0x100000, "gfx2", 0 ) /* sprites */ + ROM_LOAD16_BYTE( "epr-11677.b1", 0x00001, 0x20000, CRC(a01425cd) SHA1(72be5ec29e476601f9bf6aaedef9b73cedeb42f0) ) + ROM_LOAD16_BYTE( "epr-11681.b5", 0x00000, 0x20000, CRC(d9e03363) SHA1(995a7c6a8f0c61468b57a3bb407461a2a3ae8adc) ) + ROM_LOAD16_BYTE( "epr-11678.b2", 0x40001, 0x20000, CRC(17a9fc53) SHA1(85a9a605742ae5aab86db37189b9ee4d54c70e56) ) + ROM_LOAD16_BYTE( "epr-11682.b6", 0x40000, 0x20000, CRC(e3f77c5e) SHA1(6b3cb7918ab0c7c97a51cc5ea19ced3374ff3914) ) + ROM_LOAD16_BYTE( "epr-11679.b3", 0x80001, 0x20000, CRC(14dcc245) SHA1(1ca1b6e0f2b7bedad2a8ab70f52da8c54d40d3cf) ) + ROM_LOAD16_BYTE( "epr-11683.b7", 0x80000, 0x20000, CRC(f9a60f06) SHA1(0cffcfdb02733feaa869198b7e668c58b47c321a) ) + ROM_LOAD16_BYTE( "epr-11680.b4", 0xc0001, 0x20000, CRC(f43dcdec) SHA1(2941500cf33afca487f19f2329033d5d17aad826) ) + ROM_LOAD16_BYTE( "epr-11684.b8", 0xc0000, 0x20000, CRC(b20c0edb) SHA1(6c8694d05e3adac37c9015037ab800233371db36) ) + + ROM_REGION( 0x50000, "soundcpu", 0 ) /* sound CPU */ + ROM_LOAD( "epr-11671.a10", 0x00000, 0x08000, CRC(2b71343b) SHA1(8a657f787de2b9d5161ed2c109642a148348af09) ) + ROM_LOAD( "opr-11672.a11", 0x10000, 0x20000, CRC(bbd7f460) SHA1(bbc5c2219cb3a827d84062b19affd9780da2a3cf) ) + ROM_LOAD( "opr-11673.a12", 0x30000, 0x20000, CRC(400c4a36) SHA1(de4bdfa91734410e0a7f6a16bf8336db172f458a) ) + + ROM_REGION( 0x10000, "mcu", 0 ) /* Intel i8751 protection MCU */ + ROM_LOAD( "317-0078.c2", 0x00000, 0x1000, NO_DUMP ) +ROM_END + +GAME( 1988, altbeastfr, altbeast, system16b_i8751, altbeast, segas16b_state, altbeast_5521, ROT0, "Arkatrad", "Altered Beast (French)", MACHINE_NOT_WORKING ) diff --git a/docs/release/src/hbmame/drivers/shaolins.cpp b/docs/release/src/hbmame/drivers/shaolins.cpp new file mode 100644 index 00000000000..32f58be42c7 --- /dev/null +++ b/docs/release/src/hbmame/drivers/shaolins.cpp @@ -0,0 +1,27 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/shaolins.cpp" + +ROM_START( kfjohnny ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "kikrd8.bin", 0x6000, 0x2000, CRC(2598dfdd) SHA1(70a9d81b73bbd4ff6b627a3e4102d5328a946d20) ) + ROM_LOAD( "kikrd9.bin", 0x8000, 0x4000, CRC(0cf0351a) SHA1(a9da783b29a63a46912a29715e8d11dc4cd22265) ) + ROM_LOAD( "kikrd11.bin", 0xC000, 0x4000, CRC(654037f8) SHA1(52d098386fe87ae97d4dfefab0bd3a902f66d70b) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "kfjohnny.gf1", 0x0000, 0x2000, CRC(be0310d0) SHA1(e615aec557c656121761cf77d9ec4a6d1a6ddbea) ) + ROM_LOAD( "kfjohnny.gf2", 0x2000, 0x2000, CRC(fab8c880) SHA1(b90ae46ee72a000983ec68884f4ea0e406030ba3) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_LOAD( "kfjohnny.gf4", 0x0000, 0x4000, CRC(f7fbbb9c) SHA1(4b85c1b50a6232be2f6e7b2e497dca86dda387d8) ) + ROM_LOAD( "kfjohnny.gf3", 0x4000, 0x4000, CRC(84bc0cfd) SHA1(2140fe066262a5bdeb1e89d2d6cfa737f88de25d) ) + + ROM_REGION( 0x0500, "proms", 0 ) + ROM_LOAD( "kicker.a12", 0x0000, 0x0100, CRC(b09db4b4) SHA1(d21176cdc7def760da109083eb52e5b6a515021f) ) /* palette red component */ + ROM_LOAD( "kicker.a13", 0x0100, 0x0100, CRC(270a2bf3) SHA1(c0aec04bd3bceccddf5f5a814a560a893b29ef6b) ) /* palette green component */ + ROM_LOAD( "kicker.a14", 0x0200, 0x0100, CRC(83e95ea8) SHA1(e0bfa20600488f5c66233e13ea6ad857f62acb7c) ) /* palette blue component */ + ROM_LOAD( "kicker.b8", 0x0300, 0x0100, CRC(aa900724) SHA1(c5343273d0a7101b8ba6876c4f22e43d77610c75) ) /* character lookup table */ + ROM_LOAD( "kicker.f16", 0x0400, 0x0100, CRC(80009cf5) SHA1(a367f3f55d75a9d5bf4d43f9d77272eb910a1344) ) /* sprite lookup table */ +ROM_END + +GAME( 2002, kfjohnny, 0, shaolins, shaolins, driver_device, 0, ROT90, "Smitdogg", "Kung-Fu Johnny", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/simple_st0016.cpp b/docs/release/src/hbmame/drivers/simple_st0016.cpp new file mode 100644 index 00000000000..8b414e343c7 --- /dev/null +++ b/docs/release/src/hbmame/drivers/simple_st0016.cpp @@ -0,0 +1,11 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/simple_st0016.cpp" + +ROM_START( renjuk ) + ROM_REGION( 0x290000, "maincpu", 0 ) + ROM_LOAD( "renjyu-1.u31k",0x000000, 0x200000, CRC(2bd052c5) SHA1(724662d6d2ead1ef9dce1fa95d7c15d35fcb5a51) ) + ROM_LOAD( "rnj2.u32", 0x200000, 0x080000, CRC(2015289c) SHA1(5223b6d3dbe4657cd63cf5b527eaab84cf23587a) ) +ROM_END + +GAME( 1994, renjuk, 0, renju, renju, st0016_state, renju, ROT0, "Visco", "Renju Kizoku (Korean)", 0 ) diff --git a/docs/release/src/hbmame/drivers/snk6502.cpp b/docs/release/src/hbmame/drivers/snk6502.cpp new file mode 100644 index 00000000000..34856a26409 --- /dev/null +++ b/docs/release/src/hbmame/drivers/snk6502.cpp @@ -0,0 +1,36 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/snk6502.cpp" + +ROM_START( vantris ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) ) + ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) ) + ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) ) + ROM_LOAD( "sk4_ic10.bin", 0x7000, 0x1000, CRC(54603274) SHA1(31571a560dbe300417b3ed5b114fa1d9ef742da9) ) + ROM_LOAD( "vtr4_ic13.bin", 0x8000, 0x1000, CRC(f9f367a5 )) + ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ + ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) ) + ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) ) + ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "vtr5_ic50.bin", 0x0000, 0x0800, CRC(a7061526) SHA1(f5f5860a9dc468cb4177348e0b0592e5adda28f1) ) + ROM_LOAD( "vtr5_ic51.bin", 0x0800, 0x0800, CRC(67bd31ed) SHA1(24f03cf097e5382500a85483351f21913a98fdd5) ) + + ROM_REGION( 0x0040, "proms", 0 ) + ROM_LOAD( "vtr5_ic7.bin", 0x0000, 0x0020, CRC(90f17fc1) SHA1(fc92864178cbceccd6f7f2c75249b5c568bdbea8) ) /* foreground colors */ + ROM_RELOAD( 0x0020, 0x0020 ) /* background colors */ + + ROM_REGION( 0x1000, "snk6502", 0 ) /* sound ROMs */ + ROM_LOAD( "vtr4_ic51.bin", 0x0000, 0x0800, CRC(fd4d8bb0) SHA1(d59ec7569147263aed50041b15aed2ca4f395c23) ) /* sound ROM 1 */ + ROM_LOAD( "vtr4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* sound ROM 2 */ + + ROM_REGION( 0x5800, "speech", 0 ) /* space for the speech ROMs (not supported) */ + //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ + ROM_LOAD_OPTIONAL( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) ) + ROM_LOAD_OPTIONAL( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) ) + ROM_LOAD_OPTIONAL( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) ) +ROM_END + +GAME( 1998, vantris, 0, vanguard, vanguard, driver_device, 0, ROT90, "Norbert Kehrer", "Vantris 98", MACHINE_SUPPORTS_SAVE ) // http://web.utanet.at/nkehrer/vantris.html diff --git a/docs/release/src/hbmame/drivers/spacmiss.cpp b/docs/release/src/hbmame/drivers/spacmiss.cpp new file mode 100644 index 00000000000..a95055737fe --- /dev/null +++ b/docs/release/src/hbmame/drivers/spacmiss.cpp @@ -0,0 +1,484 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/**************************************************************************************** + +Space Missile + +Galaxian running on Space Invaders hardware + +2013-06-26 + +*******************************************************************************************/ + +#include "emu.h" +#include "cpu/i8085/i8085.h" +#include "machine/mb14241.h" +#include "sound/discrete.h" +#include "sound/samples.h" +#include "galactic.lh" + +#define MW8080BW_MASTER_CLOCK (19968000.0) +#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10) +#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4) +#define MW8080BW_HTOTAL (0x140) +#define MW8080BW_HBEND (0x000) +#define MW8080BW_HBSTART (0x100) +#define MW8080BW_VTOTAL (0x106) +#define MW8080BW_VBEND (0x000) +#define MW8080BW_VBSTART (0x0e0) +#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020) +#define MW8080BW_VCOUNTER_START_VBLANK (0x0da) +#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080) +#define MW8080BW_INT_TRIGGER_VBLANK_1 (0) +#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK +#define MW8080BW_INT_TRIGGER_VBLANK_2 (1) +#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART + 6 + +class sm_state : public driver_device +{ +public: + sm_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this,"maincpu") + , m_p_ram(*this, "ram") + , m_discrete(*this, "discrete") + , m_samples(*this, "samples") + , m_screen(*this, "screen") + { } + + /* device/memory pointers */ + required_device<cpu_device> m_maincpu; + required_shared_ptr<UINT8> m_p_ram; + required_device<discrete_device> m_discrete; + required_device<samples_device> m_samples; + required_device<screen_device> m_screen; + + bool m_flip_screen; + bool m_screen_red; + bool m_sound_enabled; + UINT8 m_port_1_last_extra; + UINT8 m_port_2_last_extra; + + /* timer */ + emu_timer *m_interrupt_timer; + + DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r); + DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r); + DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w); + DECLARE_READ8_MEMBER(spacmiss_02_r); + DECLARE_WRITE8_MEMBER(spacmiss_03_w); + DECLARE_WRITE8_MEMBER(spacmiss_05_w); + DECLARE_WRITE8_MEMBER(spacmiss_07_w); + DECLARE_MACHINE_START(sm); + DECLARE_MACHINE_RESET(sm); + UINT8 vpos_to_vysnc_chain_counter( int vpos ); + int vysnc_chain_counter_to_vpos( UINT8 counter, int vblank ); + UINT32 screen_update_spacmiss(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback); + void mw8080bw_create_interrupt_timer( ); + void mw8080bw_start_interrupt_timer( ); +}; + +static const discrete_dac_r1_ladder spacmiss_music_dac = + {3, {0, RES_K(47), RES_K(12)}, 0, 0, 0, CAP_U(0.1)}; + +static const discrete_comp_adder_table invaders_thump_resistors = +{ + DISC_COMP_P_RESISTOR, + 0, /* no cDefault */ + 4, /* length */ + { RES_K(20) + RES_K(20), /* R126 + R127 */ + RES_K(68), /* R128 */ + RES_K(82), /* R129 */ + RES_K(100) } /* R130 */ +}; + + +static const discrete_555_desc invaders_thump_555 = +{ + DISC_555_OUT_ENERGY | DISC_555_OUT_DC, + 5, + 5.0 - 0.6, /* 5V - diode drop */ + DEFAULT_TTL_V_LOGIC_1 /* Output of F3 7411 buffer */ +}; + +static const discrete_mixer_desc mix1 = +{ + DISC_MIXER_IS_RESISTOR, + {RES_K(22), RES_K(22)}, + {0}, + {CAP_U(.1), CAP_U(.1)}, + 0, RES_K(100), 0, CAP_U(.1), 0, 20 +}; + +#define SPACMISS_MUSIC_CLK (150000) + +/* Nodes - Inputs */ +/* Nodes - Sounds */ +/************************************************ + * Fleet movement + ************************************************/ + +DISCRETE_SOUND_START(spacmiss) +/****************************************************************************** + * + * Background Hum + * + ******************************************************************************/ + DISCRETE_INPUT_DATA(NODE_02) \ + DISCRETE_COMP_ADDER(NODE_30, \ + NODE_02, /* DATA */ \ + &invaders_thump_resistors) \ + DISCRETE_555_ASTABLE(NODE_31, /* IC F3, pin 6 */ \ + 1, /* RESET */ \ + NODE_30, /* R1 */ \ + RES_K(75), /* R131 */ \ + CAP_U(0.1), /* C29 */ \ + &invaders_thump_555) \ + DISCRETE_RCFILTER(NODE_32, \ + NODE_31, /* IN0 */ \ + 100, /* R132 */ \ + CAP_U(4.7) ) /* C31 */ \ + DISCRETE_RCFILTER(NODE_12, \ + NODE_32, /* IN0 */ \ + 100 + 100, /* R132 + R133 */ \ + CAP_U(10) ) /* C32 */ + + +/****************************************************************************** + * + * Music Generator + * + ******************************************************************************/ + DISCRETE_INPUT_DATA (NODE_01) + + DISCRETE_NOTE(NODE_20, 1, SPACMISS_MUSIC_CLK, NODE_01, 255, 5, DISC_CLK_IS_FREQ) + + // Convert count to 7492 output + DISCRETE_TRANSFORM2(NODE_21, NODE_20, 2, "01>0+") + + DISCRETE_DAC_R1(NODE_22, NODE_21, DEFAULT_TTL_V_LOGIC_1, &spacmiss_music_dac) + +/****************************************************************************** + * + * Final Mixing and Output + * + ******************************************************************************/ + DISCRETE_CRFILTER(NODE_80, NODE_22, RES_K(10), CAP_U(0.1)) + + DISCRETE_MIXER2(NODE_90, \ + 1, /* ENAB */ \ + NODE_80, \ + NODE_12, \ + &mix1) + + DISCRETE_OUTPUT(NODE_90, 2500) + +DISCRETE_SOUND_END + +WRITE8_MEMBER( sm_state::spacmiss_07_w ) +{ + m_discrete->write(space, NODE_01, data | 0xc0); +} + +WRITE8_MEMBER(sm_state::spacmiss_03_w) +{ + UINT8 rising_bits = data & ~m_port_1_last_extra; + + if BIT(rising_bits, 1) m_samples->start(2, 2); /* Killed an enemy */ + if BIT(rising_bits, 2) m_samples->start(1, 1); /* Lost a life */ + + m_port_1_last_extra = data; +} + +// bits 0-3 make a variable background tone +WRITE8_MEMBER(sm_state::spacmiss_05_w) +{ + if BIT(m_port_1_last_extra, 5) + m_discrete->write(space, NODE_02, data & 0x0f); + else + m_discrete->write(space, NODE_02, 0); + + UINT8 rising_bits = data & ~m_port_2_last_extra; + + if BIT(rising_bits, 4) m_samples->start(0, 0); /* Shoot */ + + m_flip_screen = BIT(data, 5) & ioport("CAB")->read(); + + m_port_2_last_extra = data; +} + +UINT8 sm_state::vpos_to_vysnc_chain_counter( int vpos ) +{ + /* convert from a vertical position to the actual values on the vertical sync counters */ + UINT8 counter; + int vblank = (vpos >= MW8080BW_VBSTART); + + if (vblank) + counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK; + else + counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK; + + return counter; +} + + +int sm_state::vysnc_chain_counter_to_vpos( UINT8 counter, int vblank ) +{ + /* convert from the vertical sync counters to an actual vertical position */ + int vpos; + + if (vblank) + vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART; + else + vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK; + + return vpos; +} + + +TIMER_CALLBACK_MEMBER(sm_state::mw8080bw_interrupt_callback) +{ + UINT8 next_counter; + int next_vpos; + int next_vblank; + + /* compute vector and set the interrupt line */ + int vpos = m_screen->vpos(); + UINT8 counter = vpos_to_vysnc_chain_counter(vpos); + UINT8 vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3); + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector); + + /* set up for next interrupt */ + if (counter == MW8080BW_INT_TRIGGER_COUNT_1) + { + next_counter = MW8080BW_INT_TRIGGER_COUNT_2; + next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2; + } + else + { + next_counter = MW8080BW_INT_TRIGGER_COUNT_1; + next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1; + } + + next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos)); +} + + +void sm_state::mw8080bw_create_interrupt_timer( ) +{ + m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sm_state::mw8080bw_interrupt_callback),this)); +} + + +void sm_state::mw8080bw_start_interrupt_timer( ) +{ + int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1); + m_interrupt_timer->adjust(m_screen->time_until_pos(vpos)); +} + +/************************************* + * + * Machine setup + * + *************************************/ + +MACHINE_START_MEMBER( sm_state, sm ) +{ + mw8080bw_create_interrupt_timer(); +} + + +/************************************* + * + * Machine reset + * + *************************************/ + +MACHINE_RESET_MEMBER( sm_state, sm ) +{ + mw8080bw_start_interrupt_timer(); +} + + + +UINT32 sm_state::screen_update_spacmiss(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + UINT8 x = 0; + UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK; + UINT8 video_data = 0; + UINT8 flip = m_flip_screen; + + while (1) + { + /* plot the current pixel */ + pen_t pen = (video_data & 0x01) ? rgb_t(255,255,255) : rgb_t(0,0,0); + + if (flip) + bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pen; + else + bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pen; + + /* next pixel */ + video_data = video_data >> 1; + x = x + 1; + + /* end of line? */ + if (x == 0) + { + /* yes, flush out the shift register */ + int i; + + for (i = 0; i < 4; i++) + { + pen = (video_data & 0x01) ? rgb_t(255,255,255) : rgb_t(0,0,0); + + if (flip) + bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - (256 + i)) = pen; + else + bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, 256 + i) = pen; + + video_data = video_data >> 1; + } + + /* next row, video_data is now 0, so the next line will start + with 4 blank pixels */ + y = y + 1; + + /* end of screen? */ + if (y == 0) + break; + } + /* the video RAM is read at every 8 pixels starting with pixel 4 */ + else if ((x & 0x07) == 0x04) + { + offs_t offs = ((offs_t)y << 5) | (x >> 3); + video_data = m_p_ram[offs]; + } + } + + return 0; +} + +READ8_MEMBER(sm_state::spacmiss_02_r) +{ + UINT8 data = ioport("IN2")->read(); + if (m_flip_screen) return data; + return (data & 0x8f) | (ioport("IN1")->read() & 0x70); +} + +static ADDRESS_MAP_START( spacmiss_map, AS_PROGRAM, 8, sm_state ) + ADDRESS_MAP_GLOBAL_MASK(0x7fff) + AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP + AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_SHARE("ram") + AM_RANGE(0x4000, 0x5fff) AM_ROM AM_WRITENOP +ADDRESS_MAP_END + +static ADDRESS_MAP_START( spacmiss_io_map, AS_IO, 8, sm_state ) + AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") + AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") + AM_RANGE(0x02, 0x02) AM_READ(spacmiss_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w) + AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(spacmiss_03_w) + AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w) + AM_RANGE(0x05, 0x05) AM_WRITE(spacmiss_05_w) + //AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) + AM_RANGE(0x07, 0x07) AM_WRITE(spacmiss_07_w) +ADDRESS_MAP_END + +static const char *const invaders_sample_names[] = +{ + "*invaders", + "1", /* shot/missle */ + "2", /* base hit/explosion */ + "3", /* invader hit */ + "4", /* fleet move 1 */ + "5", /* fleet move 2 */ + "6", /* fleet move 3 */ + "7", /* fleet move 4 */ + "8", /* UFO/saucer hit */ + "9", /* bonus base */ + 0 +}; + + +static MACHINE_CONFIG_START( spacmiss, sm_state ) + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK) + MCFG_CPU_PROGRAM_MAP(spacmiss_map) + MCFG_CPU_IO_MAP(spacmiss_io_map) + MCFG_MACHINE_START_OVERRIDE(sm_state,sm) + MCFG_MACHINE_RESET_OVERRIDE(sm_state,sm) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART) + MCFG_SCREEN_UPDATE_DRIVER(sm_state, screen_update_spacmiss) + + /* add shifter */ + MCFG_MB14241_ADD("mb14241") + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("samples", SAMPLES, 0) + MCFG_SAMPLES_CHANNELS(6) + MCFG_SAMPLES_NAMES(invaders_sample_names) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + MCFG_DISCRETE_ADD("discrete", 0, spacmiss) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) +MACHINE_CONFIG_END + + +static INPUT_PORTS_START( spacmiss ) + PORT_START("IN0") + PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // gets read into memory (0x2012) then never used + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + PORT_START("IN2") + PORT_DIPNAME( 0x03, 0x02, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, "4000" ) + PORT_DIPSETTING( 0x02, "5000" ) + PORT_DIPSETTING( 0x03, "7000" ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x08, "6" ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + /* Dummy port for cocktail mode */ + PORT_START("CAB") + PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) + PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) + PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) +INPUT_PORTS_END + +ROM_START( spacmiss ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "1", 0x0000, 0x0800, CRC(e212dc88) SHA1(bc56052bf43d18081f777b936b2be792e91ba842) ) + ROM_LOAD( "2", 0x0800, 0x0800, CRC(f97410ee) SHA1(47f1f296c905fa13f6c521edc12c10f1f0e42400) ) + ROM_LOAD( "3", 0x1000, 0x0800, CRC(c1175feb) SHA1(83bf955ed3a52e1ce8c688d89725d8dee1bcc866) ) + ROM_LOAD( "4", 0x1800, 0x0800, CRC(b4451d7c) SHA1(62a18e8e927ef00a7f6cb933cdc5aeae9f074dc0) ) + ROM_LOAD( "5", 0x4000, 0x0800, CRC(74c9da61) SHA1(cb98105729f0fa4343b71af3c658b378ade1ed46) ) + ROM_LOAD( "6", 0x4800, 0x0800, CRC(5e7c6c44) SHA1(be7eeef10462377909018cf40503766f38466022) ) + ROM_LOAD( "7", 0x5000, 0x0800, CRC(02619e18) SHA1(4c59f17fbc96ca08090f08c41ca9fc72c074e9c0) ) + + ROM_REGION( 0x0800, "user1", 0 ) + ROM_LOAD( "8", 0x0000, 0x0800, CRC(942e5261) SHA1(e8af51d644eab4e7b31c14dc66bb036ad8940c42) ) // ? +ROM_END + +GAMEL(1980?,spacmiss, 0, spacmiss, spacmiss, driver_device, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game (Extra Sounds)", MACHINE_SUPPORTS_SAVE, layout_galactic ) diff --git a/docs/release/src/hbmame/drivers/system1.cpp b/docs/release/src/hbmame/drivers/system1.cpp new file mode 100644 index 00000000000..a6e92e86281 --- /dev/null +++ b/docs/release/src/hbmame/drivers/system1.cpp @@ -0,0 +1,70 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/system1.cpp" + +ROM_START( wbmlbit ) + ROM_REGION( 0x40000, "maincpu", 0 ) /* 256k for code */ + ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) ) /* Unencrypted opcodes */ + ROM_CONTINUE( 0x00000, 0x8000 ) /* Now load the operands in RAM */ + ROM_LOAD( "wbml.02it", 0x30000, 0x8000, CRC(680f2186) SHA1(bb7b43a8d8438ec9dc55f219db284934a57ea81a) ) /* Unencrypted opcodes */ + ROM_CONTINUE( 0x10000, 0x8000 ) + ROM_LOAD( "wbml.03", 0x38000, 0x8000, CRC(d57ba8aa) SHA1(16f095cb78e31af5ce76d36c20fe4c3e0d027aea) ) /* Unencrypted opcodes */ + ROM_CONTINUE( 0x18000, 0x8000 ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound cpu */ + ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) + + ROM_REGION( 0x18000, "tiles", 0 ) + ROM_LOAD( "wbml.08it", 0x00000, 0x8000, CRC(bc2846d3) SHA1(6777ef6ca5b92600aa6038d773cdd8263639b1cb) ) + ROM_LOAD( "wbml.09it", 0x08000, 0x8000, CRC(c61fd58e) SHA1(f17dba3195e8b3c3d443d696cce63604cdc64a5e) ) + ROM_LOAD( "wbml.10it", 0x10000, 0x8000, CRC(e0386c02) SHA1(bdfa5fa2bbf641730865d74057203e41dcae80fa) ) + + ROM_REGION( 0x20000, "sprites", 0 ) /* 128k for sprites data */ + ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) + ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) + ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) + ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) + + ROM_REGION( 0x0300, "palette", 0 ) + ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) + ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) + ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END + +ROM_START( wbmlkb ) + ROM_REGION( 0x40000, "maincpu", 0 ) /* 256k for code */ + ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) ) /* Unencrypted opcodes */ + ROM_CONTINUE( 0x00000, 0x8000 ) /* Now load the operands in RAM */ + ROM_LOAD( "m-6k.bin", 0x30000, 0x8000, CRC(7dd0b45a) SHA1(ae715437c225013bade54cf021be708c5145a84f) ) /* Unencrypted opcodes */ + ROM_CONTINUE( 0x10000, 0x8000 ) + ROM_LOAD( "m-7.bin", 0x38000, 0x8000, CRC(11881703) SHA1(b5e4d477158e7653b0fef5a4806be7b4871e917d) ) /* Unencrypted opcodes */ + ROM_CONTINUE( 0x18000, 0x8000 ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound cpu */ + ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) + + ROM_REGION( 0x18000, "tiles", 0 ) + ROM_LOAD( "epr11034.4k", 0x00000, 0x8000, CRC(7e631c73) SHA1(ef7bc9c8b15083680f8169fa8d322cfbfa7d54ac) ) + ROM_LOAD( "epr11035.5k", 0x08000, 0x8000, CRC(4c67a9a6) SHA1(eac1f97aac3f5b0ce96dd082c7741033caa4b55b) ) + ROM_LOAD( "epr11036.6k", 0x10000, 0x8000, CRC(0440b0c7) SHA1(f0e321dc6c979807852c375c8a6905fd32336dde) ) + + ROM_REGION( 0x20000, "sprites", 0 ) /* 128k for sprites data */ + ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) + ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) + ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) + ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) + + ROM_REGION( 0x0300, "palette", 0 ) + ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) + ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) + ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END + +GAME( 1987, wbmlbit, wbml, sys2, wbml, system1_state, bootsys2, ROT0, "Michele", "Wonder Boy in Monster Land (Italian - v0.99)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmlkb, wbml, sys2, wbml, system1_state, bootsys2, ROT0, "hack", "Wonder Boy in Monster Land (Korean)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/system16.cpp b/docs/release/src/hbmame/drivers/system16.cpp new file mode 100644 index 00000000000..4e756d9f738 --- /dev/null +++ b/docs/release/src/hbmame/drivers/system16.cpp @@ -0,0 +1,28 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/system16.cpp" + +// Sprite processing has been disabled because the sprite processor (sega16sp.c) freezes +// the moment anything is written to sprite ram. + +ROM_START( sys16dem ) + ROM_REGION( 0x040000, "maincpu", ROMREGION_ERASEFF ) /* 68000 code */ + ROM_LOAD16_BYTE( "rom2dm.bin", 0x00000, 0x10000, CRC(671c5eac) SHA1(5fa7f8ba9d31a6c31a0b5a32c2cd869200032461) ) + ROM_LOAD16_BYTE( "rom1dm.bin", 0x00001, 0x10000, CRC(6461ebd9) SHA1(16dc373408342560eb48e3c037a8f42636796560) ) + ROM_FILL(0x686, 1, 0x4e) + ROM_FILL(0x687, 1, 0x71) // cancel writing to sprite ram + + ROM_REGION( 0x30000, "gfx1", 0 ) /* tiles */ + ROM_LOAD( "scr01dm.b9", 0x00000, 0x10000, CRC(2fdb9b09) SHA1(bec9ca842921695b06915825acfba076443a7e8b) ) + ROM_LOAD( "scr02dm.b10", 0x10000, 0x10000, CRC(0e880750) SHA1(d6b7c84c00dfb3c1fcf966587f700f3ea3313b94) ) + ROM_LOAD( "scr03dm.b11", 0x20000, 0x10000, CRC(3e76f2ba) SHA1(9177850b5d0b914a672af414e7e134e15d554fb8) ) + + ROM_REGION16_BE( 0x020000, "sprites", 0 ) /* sprites */ + ROM_LOAD16_BYTE( "dm-obj0-o.rom", 0x00001, 0x10000, CRC(82ec3f29) SHA1(0c0b28e98348f8981314f8d940ccd17d790bf335) ) + ROM_LOAD16_BYTE( "dm-obj0-e.rom", 0x00000, 0x10000, CRC(6eca3b5c) SHA1(f58ac53d24b167db4787d6fe91e4799f3c3256d6) ) + + ROM_REGION( 0x40000, "soundcpu", 0 ) /* sound CPU */ + ROM_LOAD( "epr12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) ) +ROM_END + +GAME( 1988, sys16dem, 0, tetrisbl, tetris, segas1x_bootleg_state, dduxbl, ROT0, "Charles Doty", "Demo - Sega System 16", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/docs/release/src/hbmame/drivers/taito_b.cpp b/docs/release/src/hbmame/drivers/taito_b.cpp new file mode 100644 index 00000000000..3827a7bf786 --- /dev/null +++ b/docs/release/src/hbmame/drivers/taito_b.cpp @@ -0,0 +1,21 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/taito_b.cpp" + +ROM_START( bubbleb ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ + ROM_LOAD16_BYTE( "pb-1c18.bin", 0x00000, 0x40000, CRC(5de14f49) SHA1(91d537748f26e19a5c32de4b8dad341750de39ef) ) + ROM_LOAD16_BYTE( "pb-ic2.usa", 0x00001, 0x40000, CRC(b3b7566b) SHA1(455342b6988741f8c83ed97ef1a2d3b885cbc9d1) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) /* 128k for Z80 code */ + ROM_LOAD( "pb-ic27.bin", 0x00000, 0x20000, CRC(26efa4c4) SHA1(795af8f6d23c2cbe2c811ec9ab1f14a4eee3f99e) ) + + ROM_REGION( 0x100000, "gfx1", 0 ) + ROM_LOAD( "pb-ic14.bin", 0x00000, 0x80000, CRC(55f90ea4) SHA1(793c79e5b72171124368ad09dd31235252c541f5) ) + ROM_LOAD( "pb-ic9.bin", 0x80000, 0x80000, CRC(3253aac9) SHA1(916d85aa96e2914630833292a0655b0389b4a39b) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "083-v3.bin", 0x000000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) +ROM_END + +GAME( 1994, bubbleb, 0, pbobble, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Bubble Buster (PBobble USA Region Hack)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/taito_f2.cpp b/docs/release/src/hbmame/drivers/taito_f2.cpp new file mode 100644 index 00000000000..4a665947114 --- /dev/null +++ b/docs/release/src/hbmame/drivers/taito_f2.cpp @@ -0,0 +1,85 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/taito_f2.cpp" + +static MACHINE_CONFIG_START( f2demo, taitof2_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", M68000, 24000000/2) /* 12 MHz */ + MCFG_CPU_PROGRAM_MAP(liquidk_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", taitof2_state, taitof2_interrupt) + + MCFG_CPU_ADD("audiocpu", Z80, 24000000/6) /* 4 MHz */ + MCFG_CPU_PROGRAM_MAP(sound_map) + + MCFG_MACHINE_START_OVERRIDE(taitof2_state,f2) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) + MCFG_SCREEN_SIZE(120*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(40*8, 106*8-1, 2*8, 32*8-1) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed) + MCFG_SCREEN_PALETTE("palette") + MCFG_GFXDECODE_ADD("gfxdecode", "palette", taitof2) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) + MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + + MCFG_SOUND_ADD("ymsnd", YM2610, 24000000/3) /* Was 16000000/2, but only a 24Mhz OSC */ + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitof2_state, irqhandler)) + MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) + MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) + MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) + + MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0) + MCFG_TC0140SYT_MASTER_CPU("maincpu") + MCFG_TC0140SYT_SLAVE_CPU("audiocpu") + + MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0) + MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA")) + MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB")) + MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0")) + MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1")) + MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2")) + + MCFG_DEVICE_ADD("tc0100scn", TC0100SCN, 0) + MCFG_TC0100SCN_GFX_REGION(1) + MCFG_TC0100SCN_TX_REGION(2) + MCFG_TC0100SCN_OFFSETS(3, 0) + MCFG_TC0100SCN_GFXDECODE("gfxdecode") + MCFG_TC0100SCN_PALETTE("palette") + + MCFG_TC0360PRI_ADD("tc0360pri") +MACHINE_CONFIG_END + +// Game has no sound +ROM_START( f2demo ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */ + ROM_LOAD16_BYTE( "lq09.bin", 0x00000, 0x20000, CRC(809a968b) SHA1(06e8be120869371d33c61fa14c48fe4e5fd659ec) ) + ROM_LOAD16_BYTE( "lq11.bin", 0x00001, 0x20000, CRC(7ba3a5cb) SHA1(08f5392296cceadcae0cd34e9dfe76c835583231) ) + + ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */ + ROM_LOAD( "f2d_scr.bin", 0x000000, 0x80000, CRC(b178fb05) SHA1(3d33dd822622579c75b55971926f6eb04d33f5a6) ) /* TC0100SCN #1 */ + + ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */ + ROM_LOAD( "f2d_obj0.bin", 0x00000, 0x80000, CRC(1bb8aa37) SHA1(9051270485a7a995779c80b4e692b8395503d6c3) ) + ROM_LOAD( "f2d_obj1.bin", 0x80000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) ) + + ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */ + ROM_LOAD( "c49-08.9", 0x00000, 0x04000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) ) + ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ + + ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */ + ROM_LOAD( "lk_snd.bin", 0x00000, 0x80000, CRC(474d45a4) SHA1(20cb818d753a185973098007e645f1aa75c5528d) ) + + /* no Delta-T samples */ +ROM_END + +GAME( 1990, f2demo, 0, f2demo, liquidk, driver_device, 0, ROT180, "Charles Doty", "Demo - Taito F2", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/taito_f3.cpp b/docs/release/src/hbmame/drivers/taito_f3.cpp new file mode 100644 index 00000000000..d85f2937046 --- /dev/null +++ b/docs/release/src/hbmame/drivers/taito_f3.cpp @@ -0,0 +1,251 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/taito_f3.cpp" + +ROM_START( arkretrh ) + ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_LOAD32_BYTE("e36-11", 0x000000, 0x040000, CRC(b50cfb92) SHA1(dac69fc9ef03315b11bb94d19e3dfdc8867b08ed) ) + ROM_LOAD32_BYTE("e36-10", 0x000001, 0x040000, CRC(c940dba1) SHA1(ec87c9e4250f8b2f15094681a4783bca8c68f576) ) + ROM_LOAD32_BYTE("e36-09", 0x000002, 0x040000, CRC(f16985e0) SHA1(a74cfee8f958e7a32354d4353eeb199a7fb1ce64) ) + ROM_LOAD32_BYTE("e36-wrd", 0x000003, 0x040000, CRC(4467ff37) SHA1(509a0d516def02d86d81b9868de0d9593539e65c) ) + + ROM_REGION(0x180000, "audiocpu", 0) /* Sound CPU */ + ROM_LOAD16_BYTE("e36-12", 0x100000, 0x40000, CRC(3bae39be) SHA1(777142ecc24799b934ed51ac4cd8700bb6da7e3c) ) + ROM_LOAD16_BYTE("e36-13", 0x100001, 0x40000, CRC(94448e82) SHA1(d7766490318623be770545918391c5e6144dd619) ) + + ROM_REGION(0x100000, "gfx1" , 0) /* Sprites */ + ROM_LOAD16_BYTE("e36-03", 0x000000, 0x040000, CRC(1ea8558b) SHA1(b8ea4d6e1fb551b3c47f336a5e60ec33f7be525f) ) + ROM_LOAD16_BYTE("e36-02", 0x000001, 0x040000, CRC(694eda31) SHA1(1a6f85057395052571491f85c633d5632ab64865) ) + ROM_LOAD ("e36-01", 0x0c0000, 0x040000, CRC(54b9b2cd) SHA1(55ae964ea1d2cc40a6578c5339754a270096f01f) ) + ROM_FILL ( 0x080000, 0x040000, 0 ) + + ROM_REGION(0x200000, "gfx2" , 0) /* Tiles */ + ROM_LOAD16_BYTE("e36-07", 0x000000, 0x080000, CRC(266bf1c1) SHA1(489549478d7016400af2e643d4b98bf605237d34) ) + ROM_LOAD16_BYTE("e36-06", 0x000001, 0x080000, CRC(110ab729) SHA1(0ccc0a5abbcfd79a069daf5162cd344a5fb225d5) ) + ROM_LOAD ("e36-05", 0x180000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) + ROM_FILL ( 0x100000, 0x080000, 0 ) + + ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_LOAD16_BYTE("e36-04", 0x000000, 0x200000, CRC(2250959b) SHA1(06943f1b72bdf325485356a01278d88aeae93d87) ) // C8 C9 CA CB +ROM_END + +ROM_START( cleopath ) + ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_LOAD32_BYTE("e28-10.bin", 0x000000, 0x80000, CRC(013fbc39) SHA1(d36ac44609b88e1da35c98dda381042e0112ea00) ) + ROM_LOAD32_BYTE("e28-09.bin", 0x000001, 0x80000, CRC(1c48a1f9) SHA1(791d321c03073cdd0269b970f926897446d2a6fb) ) + ROM_LOAD32_BYTE("e28-08.bin", 0x000002, 0x80000, CRC(7564f199) SHA1(ec4b19edb0660ad478f6c0ec27d701368696a2e4) ) + ROM_LOAD32_BYTE("e28-wrd.bin", 0x000003, 0x80000, CRC(544dd2e9) SHA1(11ad1ce4202937108f23c44de2244da570452ce1) ) + + ROM_REGION(0x200000, "gfx1" , 0) /* Sprites */ + ROM_LOAD16_BYTE("e28-02.bin", 0x000000, 0x080000, CRC(b20d47cb) SHA1(6888e5564688840fed1c123ab38467066cd59c7f) ) + ROM_LOAD16_BYTE("e28-01.bin", 0x000001, 0x080000, CRC(4440e659) SHA1(71dece81bac8d638473c6531fed5c32798096af9) ) + ROM_FILL ( 0x100000, 0x100000, 0 ) + + ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */ + ROM_LOAD16_BYTE("e28-06.bin", 0x000000, 0x100000, CRC(21d0c454) SHA1(f4c815984b19321cfab303fa6f21d9cad35b09f2) ) + ROM_LOAD16_BYTE("e28-05.bin", 0x000001, 0x100000, CRC(2870dbbc) SHA1(4e412b90cbd9a05956cde3d8cff615ebadca9db6) ) + ROM_LOAD ("e28-04.bin", 0x300000, 0x100000, CRC(57aef029) SHA1(5c07209015d4749d1ffb3e9c1a890e6cfeec8cb0) ) + ROM_FILL ( 0x200000, 0x100000, 0 ) + + ROM_REGION(0x140000, "audiocpu", 0) /* Sound CPU */ + ROM_LOAD16_BYTE("e28-11.bin", 0x100000, 0x20000, CRC(01a06950) SHA1(94d22cd839f9027e9d45264c366e0cb5d698e0b6) ) + ROM_LOAD16_BYTE("e28-12.bin", 0x100001, 0x20000, CRC(dc19260f) SHA1(fa0ca03a236326652e4f9898d07cd837c1507a9d) ) + + ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_LOAD16_BYTE("e28-03.bin", 0x000000, 0x200000, CRC(15c7989d) SHA1(7cc63d93e5c1f9f52f889e973bbefd5e6f7ce807) ) // C8 C9 CA CB +ROM_END + +ROM_START( driusgxh ) + ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_LOAD32_BYTE("dge_mpr3.bin", 0x000000, 0x80000, CRC(1c1e24a7) SHA1(eafde331c3be5be55d0d838a84017f357ff92634) ) + ROM_LOAD32_BYTE("dge_mpr2.bin", 0x000001, 0x80000, CRC(7be23e23) SHA1(4764355f51e207f4538dd753aea59bf2689835de) ) + ROM_LOAD32_BYTE("dge_mpr1.bin", 0x000002, 0x80000, CRC(bc030f6f) SHA1(841396911d26ddfae0c9863431e02e0b5e762ac6) ) + ROM_LOAD32_BYTE("dge_wrd.bin", 0x000003, 0x80000, CRC(2bb37270) SHA1(98bc07894e92ca9cce34fc7390f40d3357783e3f) ) + + ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) ) + ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) ) + ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ + ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) + ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) + ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x180000, "audiocpu", 0) /* 68000 sound CPU */ + ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) + ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) + + ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC + ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 +ROM_END + +ROM_START( f3demo ) + ROM_REGION(0x200000, "maincpu", ROMREGION_ERASE00) /* 68020 code */ + ROM_LOAD("f3demo.bin", 0, 0x194c, CRC(08587aea) SHA1(4850d170b935fd4b6726c03693eb25e5ac3b6198) ) + ROM_FILL(0x043A, 1, 0x4E) + ROM_FILL(0x043B, 1, 0xB8) + ROM_FILL(0x043C, 1, 0x19) + ROM_FILL(0x043D, 1, 0x4C) + ROM_FILL(0x194C, 1, 0x41) + ROM_FILL(0x194D, 1, 0xF9) + ROM_FILL(0x194F, 1, 0x66) + ROM_FILL(0x1951, 1, 0x18) + ROM_FILL(0x1952, 1, 0x30) + ROM_FILL(0x1953, 1, 0x3C) + ROM_FILL(0x1955, 1, 0x9E) + ROM_FILL(0x1956, 1, 0x31) + ROM_FILL(0x1957, 1, 0x40) + ROM_FILL(0x195A, 1, 0x30) + ROM_FILL(0x195B, 1, 0x3C) + ROM_FILL(0x195D, 1, 0xF1) + ROM_FILL(0x195E, 1, 0x31) + ROM_FILL(0x195F, 1, 0x40) + ROM_FILL(0x1961, 1, 0x02) + ROM_FILL(0x1962, 1, 0x60) + ROM_FILL(0x1963, 1, 0xFE) + + ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) ) + ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) ) + ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ + ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) + ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) + ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x180000, "audiocpu", 0) /* 68000 sound CPU */ + ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) + ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) + + ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC + ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 +ROM_END + +ROM_START( gekiridh ) + ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_LOAD32_BYTE("e11-12.bin", 0x000000, 0x40000, CRC(6a7aaacf) SHA1(a8114c84e76c75c908a61d985d96aa4eb9a0ac5a) ) + ROM_LOAD32_BYTE("e11-11.bin", 0x000001, 0x40000, CRC(2284a08e) SHA1(3dcb91be0d3491ad5e77efd30bacd506dad0f848) ) + ROM_LOAD32_BYTE("e11-10.bin", 0x000002, 0x40000, CRC(8795e6ba) SHA1(9128c29fdce3276f55aad47451e4a507470c8b9f) ) + ROM_LOAD32_BYTE("e11-wrd.bin", 0x000003, 0x40000, CRC(5aef1fd8) SHA1(a94884e39172e664759bff53a6dd2f93422d3299) ) + + ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_LOAD16_BYTE("e11-03.bin", 0x000000, 0x200000, CRC(f73877c5) SHA1(1f6b7c0b8a0aaab3e5427d21de7fad3d3cbf737a) ) + ROM_LOAD16_BYTE("e11-02.bin", 0x000001, 0x200000, CRC(5722a83b) SHA1(823c20a33016a5506ca5415ec615c3d2546ca9ab) ) + ROM_LOAD ("e11-01.bin", 0x600000, 0x200000, CRC(c2cd1069) SHA1(9744dd3d8a6d9200cea4429dafce5620b60e2960) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ + ROM_LOAD16_BYTE("e11-08.bin", 0x000000, 0x200000, CRC(907f69d3) SHA1(0899ed58edcae22144625c349c9d2fe4d46d11e3) ) + ROM_LOAD16_BYTE("e11-07.bin", 0x000001, 0x200000, CRC(ef018607) SHA1(61b602b13754c3be21caf76acbfc10c87518ba47) ) + ROM_LOAD ("e11-06.bin", 0x600000, 0x200000, CRC(200ce305) SHA1(c80a0b96510913a6411e6763fb72bf413fb792da) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x140000, "audiocpu", 0) /* 68000 sound CPU */ + ROM_LOAD16_BYTE("e11-13.bin", 0x100000, 0x20000, CRC(51a11ff7) SHA1(c03042489d71423667f25856d15aa6a363ea6c92) ) + ROM_LOAD16_BYTE("e11-14.bin", 0x100001, 0x20000, CRC(dce2ba91) SHA1(00bc353c7747a7954365b587d7bc759ee5dc09c2) ) + + ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_LOAD16_BYTE("e11-04.bin", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) ) // C8 C9 CA CB + ROM_LOAD16_BYTE("e11-05.bin", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) ) // CC CD -std- +ROM_END + +ROM_START( gekiridoc ) + ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_LOAD32_BYTE("e11-12c.bin", 0x000000, 0x40000, CRC(448308ce) SHA1(22eac25158bd3a0349aa4f1f041473b93030ee43) ) + ROM_LOAD32_BYTE("e11-11c.bin", 0x000001, 0x40000, CRC(8ae457c4) SHA1(f1d74d99c916df90a74be0ff80b05b0f31284306) ) + ROM_LOAD32_BYTE("e11-10c.bin", 0x000002, 0x40000, CRC(b1ff4529) SHA1(9e8366d9d90ad4155aab3828523daff09e3d400d) ) + ROM_LOAD32_BYTE("e11-09c.bin", 0x000003, 0x40000, CRC(24d884ff) SHA1(35ddb21608c781a0674a4244c8e5c0aa6dc220eb) ) + + ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_LOAD16_BYTE("e11-03c.bin", 0x000000, 0x200000, CRC(2b0dab58) SHA1(7c70a2104fbbfde32fa006bfafe30c3d9708cb10) ) + ROM_LOAD16_BYTE("e11-02c.bin", 0x000001, 0x200000, CRC(a2c4fa4f) SHA1(2ad73ce8431f1199dd32df83352dc4f85345529f) ) + ROM_LOAD ("e11-01c.bin", 0x600000, 0x200000, CRC(e19874b3) SHA1(a8d6806133977a7decefafff5d7b249803add70b) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ + ROM_LOAD16_BYTE("e11-08c.bin", 0x000000, 0x200000, CRC(93884253) SHA1(6d0530db64c84bf7b2ad47e94036ecd8c81418b6) ) + ROM_LOAD16_BYTE("e11-07c.bin", 0x000001, 0x200000, CRC(15ca8ac2) SHA1(33cbcc96e5144e5910c67c99815958d8f004287e) ) + ROM_LOAD ("e11-06c.bin", 0x600000, 0x200000, CRC(0acc71d3) SHA1(455c70ec8f1087189170160d5683545bbea1fe9a) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x140000, "audiocpu", 0) /* 68000 sound CPU */ + ROM_LOAD16_BYTE("e11-13.bin", 0x100000, 0x20000, CRC(51a11ff7) SHA1(c03042489d71423667f25856d15aa6a363ea6c92) ) + ROM_LOAD16_BYTE("e11-14.bin", 0x100001, 0x20000, CRC(dce2ba91) SHA1(00bc353c7747a7954365b587d7bc759ee5dc09c2) ) + + ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_LOAD16_BYTE("e11-04.ic38", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) ) // C8 C9 CA CB + ROM_LOAD16_BYTE("e11-05.ic41", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) ) // CC CD -std- +ROM_END + +ROM_START( landmakh ) + ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_LOAD32_BYTE("e61-13.20", 0x000000, 0x80000, CRC(0af756a2) SHA1(2dadac6873f2491ee77703f07f00dde2aa909355) ) + ROM_LOAD32_BYTE("e61-12.19", 0x000001, 0x80000, CRC(636b3df9) SHA1(78a5bf4977bb90d710942188ce5016f3df499feb) ) + ROM_LOAD32_BYTE("e61-11.18", 0x000002, 0x80000, CRC(279a0ee4) SHA1(08380286737b33db76a79b27d0df5faba17dfb96) ) + ROM_LOAD32_BYTE("e61-wrd.17", 0x000003, 0x80000, CRC(34a5939e) SHA1(4fbcdd0b57cbd589b554d1751394df8389293966) ) + + ROM_REGION(0x800000, "gfx1" , 0) /* Sprites */ + ROM_LOAD16_BYTE("e61-03.12",0x000000, 0x200000, CRC(e8abfc46) SHA1(fbde006f9822af3ed8debec525270d329981ea21) ) + ROM_LOAD16_BYTE("e61-02.08",0x000001, 0x200000, CRC(1dc4a164) SHA1(33b412d9653099aaff8ed5e62d1ba4fc30aa9058) ) + ROM_LOAD ("e61-01.04",0x600000, 0x200000, CRC(6cdd8311) SHA1(7810a5a81f3b5a730d2088c79b12fffd77659b5b) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x800000, "gfx2" , 0) /* Tiles */ + ROM_LOAD16_BYTE("e61-09.47", 0x000000, 0x200000, CRC(6ba29987) SHA1(b63c12523e19da66b3ca07c3548ac81bf57b59a1) ) + ROM_LOAD16_BYTE("e61-08.45", 0x000001, 0x200000, CRC(76c98e14) SHA1(c021c325ab4ae410fa54e2eab61d34318867432b) ) + ROM_LOAD ("e61-07.43", 0x600000, 0x200000, CRC(4a57965d) SHA1(8e80788e0f47fb242da9af3aa19077dc0ec829b8) ) + ROM_FILL ( 0x400000, 0x200000, 0 ) + + ROM_REGION(0x140000, "audiocpu", 0) /* 68000 sound CPU */ + ROM_LOAD16_BYTE("e61-14.32", 0x100000, 0x20000, CRC(b905f4a7) SHA1(613b954e3e129fd44b4ce64958f16e5636012d6e) ) + ROM_LOAD16_BYTE("e61-15.33", 0x100001, 0x20000, CRC(87909869) SHA1(7b90c23899a673966cac3352d375d17b83e66596) ) + + ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_LOAD16_BYTE("e61-04.38", 0x400000, 0x200000, CRC(c27aec0c) SHA1(e95da2db07a20a53662ebd45c033966e8a22a15a) ) // C8 C9 CA CB + ROM_LOAD16_BYTE("e61-05.39", 0x800000, 0x200000, CRC(83920d9d) SHA1(019e39ae85d1129f6d3b8460c4b1bd925f868ee2) ) // CC CD CE CF + ROM_LOAD16_BYTE("e61-06.40", 0xc00000, 0x200000, CRC(2e717bfe) SHA1(1be54cd2ec65d8fd49a5c09b5d27791fd7a320d4) ) // D0 D1 D2 D3 +ROM_END + +ROM_START( pbobl2xh ) + ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ + ROM_LOAD32_BYTE("e10-29.20", 0x000000, 0x40000, CRC(f1e9ad3f) SHA1(8689d85f30e075d21e4be01a2a097a850a921c47) ) + ROM_LOAD32_BYTE("e10-28.19", 0x000001, 0x40000, CRC(412a3602) SHA1(d754e6ac886676d2c1eb52de3a727894f316e6b5) ) + ROM_LOAD32_BYTE("e10-27.18", 0x000002, 0x40000, CRC(88cc0b5c) SHA1(bb08a7b8b37356376052ed03f8515677811823c0) ) + ROM_LOAD32_BYTE("e10-wrd.17", 0x000003, 0x40000, CRC(4bcc216b) SHA1(45e9250414201fa5ad866b32b0285973fd06367c) ) + + ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */ + ROM_LOAD16_BYTE("e10-02.rom", 0x000000, 0x100000, CRC(c0564490) SHA1(cbe9f880192c08f4d1db21d5ba14073b97e5f1d3) ) + ROM_LOAD16_BYTE("e10-01.rom", 0x000001, 0x100000, CRC(8c26ff49) SHA1(cbb514c061106003d2ae2b6c43958b24feaad656) ) + ROM_FILL ( 0x200000, 0x200000, 0 ) + + ROM_REGION(0x400000, "gfx2" , ROMREGION_ERASE00) /* Tiles */ + ROM_LOAD16_BYTE("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) + ROM_LOAD16_BYTE("e10-06.rom", 0x000001, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) + ROM_LOAD ("e10-05.rom", 0x300000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) + + ROM_REGION(0x180000, "audiocpu", 0) /* 68000 sound CPU */ + ROM_LOAD16_BYTE("e10-30.32", 0x100000, 0x40000, CRC(bb090c1e) SHA1(af2ff23d6f9bd56c25530cb9bf9f452b6f5210f5) ) + ROM_LOAD16_BYTE("e10-31.33", 0x100001, 0x40000, CRC(f4b88d65) SHA1(c74dcb4bed979039fad1d5c7528c14ce4db1d5ec) ) + + ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB + ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF +ROM_END + + +GAME( 1997, arkretrh, arkretrn, f3, f3, taito_f3_state, arkretrn, ROT0, "hack", "Arkanoid Returns (World Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, cleopath, cleopatr, f3_224a, f3, taito_f3_state, cleopatr, ROT0, "hack", "Cleopatra Fortune (World Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, driusgxh, dariusg, f3, f3, taito_f3_state, dariusg, ROT0, "hack", "Darius Gaiden (World Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, f3demo, 0, f3, f3, taito_f3_state, pbobble3, ROT0, "Antiriad", "Demo - Taito F3", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gekiridh, gekiridn, f3, f3, taito_f3_state, gekirido, ROT270, "hack", "Gekirindan (World Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gekiridoc, gekiridn, f3, f3, taito_f3_state, gekirido, ROT270, "Taito Corporation", "Gekirindan (Ver 2.3C 1995/09/21)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, landmakh, landmakr, f3, f3, taito_f3_state, landmakr, ROT0, "hack", "Land Maker (World Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, pbobl2xh, pbobble2, f3, f3, taito_f3_state, pbobbl2x, ROT0, "hack", "Puzzle Bobble 2X (World Hack)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/taito_l.cpp b/docs/release/src/hbmame/drivers/taito_l.cpp new file mode 100644 index 00000000000..7b01dd2dff4 --- /dev/null +++ b/docs/release/src/hbmame/drivers/taito_l.cpp @@ -0,0 +1,72 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/taito_l.cpp" + +ROM_START( evilstonfr ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD( "c67-03fr.ic2", 0x00000, 0x20000, CRC(3fa7e884) SHA1(94716256c199b5f347bbe122d04adbab1a54b1ce) ) + ROM_LOAD( "c67-04fr.ic6", 0x20000, 0x20000, CRC(8c43dc76) SHA1(ee395d55ee8e66c86e12f604774799ca7cfe1858) ) + + ROM_REGION( 0x80000, "audiocpu", 0 ) + ROM_LOAD( "c67-05.ic22", 0x00000, 0x20000, CRC(94d3a642) SHA1(af20aa5bb60a45c05eb1deba23ba30e6640ca235) ) + + ROM_REGION( 0x100000, "gfx1", 0 ) + ROM_LOAD( "c67-01.ic1", 0x00000, 0x80000, CRC(2f351bf4) SHA1(0fb37abf3413cd11baece1c9bbca5a51b0f28938) ) + ROM_LOAD( "c67-02.ic5", 0x80000, 0x80000, CRC(eb4f895c) SHA1(2c902572fe5a5d4442e4dd29e8a85cb40c384140) ) +ROM_END + +ROM_START( sokoban ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sokoban.ic10", 0x00000, 0x10000, CRC(5959ddb4) SHA1(73f206e19cdfd151426092aa3eea6f72093f360b) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD16_BYTE( "sokoban.ic9", 0x00000, 0x10000, CRC(859e1ff4) SHA1(899b71bd0eb9923e88cf7142ed634b36b3e34c6c) ) + ROM_LOAD16_BYTE( "sokoban.ic8", 0x00001, 0x10000, CRC(439a6670) SHA1(79144e3ba5205f5356f28d3b23ef32d3d4fca51c) ) + + // came with the zipfile but not used + ROM_REGION( 0x0200, "plds", 0 ) + ROM_LOAD_OPTIONAL( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) ) +ROM_END + +ROM_START( speccies ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "speccies.ic10", 0x00000, 0x55e9, CRC(29e126ac) SHA1(1e3e1379f964e0967d6ea5ef6a84741319b5108f) ) + + // came with the zipfile but not used + ROM_REGION( 0x0800, "mcu", 0 ) + ROM_LOAD_OPTIONAL( "mc68705p3.ic4", 0x0000, 0x0800, CRC(085f68b4) SHA1(2dbc7e2c015220dc59ee1f1208540744e5b9b7cc) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD16_BYTE( "speccies.ic9", 0x00000, 0x10000, CRC(11ed1528) SHA1(55f0b63bcbbbe4ad4d1041dca980b55ccb7a7aea) ) + ROM_LOAD16_BYTE( "speccies.ic8", 0x00001, 0x10000, CRC(fcfeb89f) SHA1(fc0e811c72313b371d3a6530b27f9023ff201e31) ) + + // came with the zipfile but not used + ROM_REGION( 0x0200, "plds", 0 ) + ROM_LOAD_OPTIONAL( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) ) +ROM_END + +ROM_START( tldemo ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "tldemo.ic10", 0x00000, 0x56a4, CRC(fda3d418) SHA1(e0171cc1c035d1f800702c3766825b63f6acd291) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD16_BYTE( "tldemo.ic9", 0x00000, 0x10000, CRC(792b8c11) SHA1(0592481b586bfca0f8f8eb096bee46690943596b) ) + ROM_LOAD16_BYTE( "tldemo.ic8", 0x00001, 0x10000, CRC(59cfc5ab) SHA1(133084eeacdf978ed13db565f64d155c08ecaade) ) +ROM_END + +ROM_START( tldemo2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "tldemo2.ic10", 0x00000, 0x7142, CRC(1292a22c) SHA1(e351ac5381f7d73de0087586c7fb28d9eccd72cb) ) + // This one below is the old version, works fine in MAME but is buggy in real hardware. + //ROM_LOAD( "tldemo2.ic10", 0x00000, 0x6514, CRC(efd21b6b) SHA1(1c3bfb64dacfb5a1da55201cd4d4202694e06d37) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD16_BYTE( "tldemo2.ic9", 0x00000, 0x10000, CRC(fcc75ddb) SHA1(e702480b84379e3106cb6d575d237a8f9701f49e) ) + ROM_LOAD16_BYTE( "tldemo2.ic8", 0x00001, 0x10000, CRC(33e70f71) SHA1(5a0caa0912dd7d76dd7e788e21b4cc7f320156ad) ) +ROM_END + +GAME( 2007, evilstonfr, evilston, evilston, evilston, driver_device, 0, ROT270, "Arkatrad", "Evil Stone (French)", MACHINE_IMPERFECT_SOUND ) +GAME( 2015, sokoban, 0, plotting, plotting, driver_device, 0, ROT0, "cmonkey", "Sokoban LE", 0 ) +GAME( 2015, speccies, 0, plotting, plotting, driver_device, 0, ROT0, "Sokurah", "Speccies 2", 0 ) +GAME( 2014, tldemo, 0, plotting, plotting, driver_device, 0, ROT0, "cmonkey", "Demo - System Timed Cheat Tool", 0 ) +GAME( 2015, tldemo2, 0, plotting, plotting, driver_device, 0, ROT0, "cmonkey", "Demo - 256 colours", 0 ) diff --git a/docs/release/src/hbmame/drivers/tecmo.cpp b/docs/release/src/hbmame/drivers/tecmo.cpp new file mode 100644 index 00000000000..3fe54238be8 --- /dev/null +++ b/docs/release/src/hbmame/drivers/tecmo.cpp @@ -0,0 +1,73 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/tecmo.cpp" + +ROM_START( geminit ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "gw04-5s.rom", 0x00000, 0x10000, CRC(ff9de855) SHA1(34167af8456a081f68b338f10d4319ce1e703fd4) ) /* c000-ffff is not used */ + ROM_LOAD( "gw05-6s.rom", 0x10000, 0x10000, CRC(5a6947a9) SHA1(18b7aeb0f0e2c396bc759118dd7c45fd6070b804) ) /* banked at f000-f7ff */ + + ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "gw03-5h.rom", 0x0000, 0x8000, CRC(9bc79596) SHA1(61de9ddd45140e8ed88173294bd26147e2abfa21) ) + + ROM_REGION( 0x08000, "gfx1", 0 ) + ROM_LOAD( "gw02-3h.rom", 0x00000, 0x08000, CRC(7acc8d35) SHA1(05056e9f077e7571b314390b508c72d56ad0f43b) ) /* characters */ + + ROM_REGION( 0x40000, "gfx2", 0 ) + ROM_LOAD( "t-gw06-1c.rom", 0x00000, 0x10000, CRC(c47b1c97) SHA1(7d8680afe4bc76ac712ef2e86bb43bbe02c77199) ) /* sprites */ + ROM_LOAD( "gw07-1d.rom", 0x10000, 0x10000, CRC(da42637e) SHA1(9885c52823279f26871092c77bdbe027df08268f) ) /* sprites */ + ROM_LOAD( "gw08-1f.rom", 0x20000, 0x10000, CRC(0b4e8d70) SHA1(55069f3df1c8db83f306d46b8262fd23585e6013) ) /* sprites */ + ROM_LOAD( "gw09-1h.rom", 0x30000, 0x10000, CRC(b65c5e4c) SHA1(699e1a9e72b8d94edae7382ba119fe5da113514d) ) /* sprites */ + + ROM_REGION( 0x40000, "gfx3", 0 ) + ROM_LOAD( "gw10-1n.rom", 0x00000, 0x10000, CRC(5e84cd4f) SHA1(e85320291027a16619c87fc2365448367bda454a) ) /* tiles #1 */ + ROM_LOAD( "gw11-2na.rom", 0x10000, 0x10000, CRC(08b458e1) SHA1(b3426faa57dca51dc053db44fa4968425d8bf3ee) ) /* tiles #1 */ + ROM_LOAD( "gw12-2nb.rom", 0x20000, 0x10000, CRC(229c9714) SHA1(f4f47d6b379c973c22f9ae7d7bec7041cdf3f737) ) /* tiles #1 */ + ROM_LOAD( "gw13-3n.rom", 0x30000, 0x10000, CRC(c5dfaf47) SHA1(c3202ca8c7f3c5c7dc9acdc09c1c894e168ef9fe) ) /* tiles #1 */ + + ROM_REGION( 0x40000, "gfx4", 0 ) + ROM_LOAD( "gw14-1r.rom", 0x00000, 0x10000, CRC(9c10e5b5) SHA1(a81399b85d8f3ddca26883ec3535cb9044c35ada) ) /* tiles #2 */ + ROM_LOAD( "gw15-2ra.rom", 0x10000, 0x10000, CRC(4cd18cfa) SHA1(c197a098a7c1e5220aad039383a40702fe7c4f21) ) /* tiles #2 */ + ROM_LOAD( "gw16-2rb.rom", 0x20000, 0x10000, CRC(f911c7be) SHA1(3f49f6c4734f2b644d93c4a54249aae6ff080e1d) ) /* tiles #2 */ + ROM_LOAD( "gw17-3r.rom", 0x30000, 0x10000, CRC(79a9ce25) SHA1(74e3917b8e7a920ceb2135d7ef8fb2f2c5176b21) ) /* tiles #2 */ + + ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */ + ROM_LOAD( "gw01-6a.rom", 0x0000, 0x8000, CRC(d78afa05) SHA1(b02a739b045f5cddf943ce59226ef234463eeebe) ) +ROM_END + +ROM_START( rygark ) + ROM_REGION( 0x18000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "cpuj_5p.bin", 0x00000, 0x08000, CRC(b39698ba) SHA1(01a5a12a71973ad117b0bbd763e470f89c439e45) ) /* code */ + ROM_LOAD( "cpuj_5m.bin", 0x08000, 0x04000, CRC(3f180979) SHA1(c4c2e9f83b06b8677978800bfcc39f4ba3b344ab) ) /* code */ + ROM_LOAD( "cpuj_5j.bin", 0x10000, 0x08000, CRC(69e44e8f) SHA1(e979760a3582e64788c043adf7e475f0e1b75033) ) /* banked at f000-f7ff */ + + ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, CRC(e4a2fa87) SHA1(ed58187dbbcf59358496a98ffd6c227a87d6c433) ) + + ROM_REGION( 0x08000, "gfx1", 0 ) + ROM_LOAD( "cpuk_8k.bin", 0x00000, 0x08000, CRC(370bd8c0) SHA1(a4f140c8890608afdee4617ad1165b491cd103d8) ) /* characters */ + + ROM_REGION( 0x20000, "gfx2", 0 ) + ROM_LOAD( "vid_6k.bin", 0x00000, 0x08000, CRC(aba6db9e) SHA1(43eb6f4f92afb5fbc11adc7e2ab04878ab56cb17) ) /* sprites */ + ROM_LOAD( "vid_6j.bin", 0x08000, 0x08000, CRC(ae1f2ed6) SHA1(6e6a33e665ba0884b7f57e9ad69d3f51e41d9e7b) ) /* sprites */ + ROM_LOAD( "vid_6h.bin", 0x10000, 0x08000, CRC(46d9e7df) SHA1(a24e0bea310a03636af704a0ad3f1a9cc4aafe12) ) /* sprites */ + ROM_LOAD( "vid_6g.bin", 0x18000, 0x08000, CRC(45839c9a) SHA1(eaee5767d8b0b62b991c089ef51b922e89850b79) ) /* sprites */ + + ROM_REGION( 0x20000, "gfx3", 0 ) + ROM_LOAD( "vid_6p.bin", 0x00000, 0x08000, CRC(9eae5f8e) SHA1(ed83b608ca57b9bf69fa866d9b8f55d16b7cff63) ) + ROM_LOAD( "vid_6o.bin", 0x08000, 0x08000, CRC(5a10a396) SHA1(12ebed3952ff35a2c275cb27c915f82183048cd4) ) + ROM_LOAD( "vid_6n.bin", 0x10000, 0x08000, CRC(7b12cf3f) SHA1(6b9d8cad6e15317df01bab0591fab09199ca6d40) ) + ROM_LOAD( "vid_6l.bin", 0x18000, 0x08000, CRC(3cea7eaa) SHA1(1dd194d5672dfe71c2b27d2d7b76f5a611cff76f) ) + + ROM_REGION( 0x20000, "gfx4", 0 ) + ROM_LOAD( "vid_6f.bin", 0x00000, 0x08000, CRC(9840edd8) SHA1(f19a1a1d932214037144c533ad07ed81256c34e7) ) + ROM_LOAD( "vid_6e.bin", 0x08000, 0x08000, CRC(ff65e074) SHA1(513c1bad336ef5d871f15d6ba8943020f98d1f4a) ) + ROM_LOAD( "vid_6c.bin", 0x10000, 0x08000, CRC(89868c85) SHA1(f21550f40e7a177e95c40f2726c651f85ca8edce) ) + ROM_LOAD( "vid_6b.bin", 0x18000, 0x08000, CRC(35389a7b) SHA1(a887a89f9bbb5979bb589468d80efba1f243690b) ) + + ROM_REGION( 0x4000, "adpcm", 0 ) /* ADPCM samples */ + ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, CRC(3cc98c5a) SHA1(ea1035be939ed1a994f3273b33412c85dda0973e) ) +ROM_END + +GAME( 2002, geminit, 0, gemini, gemini, tecmo_state, gemini, ROT90, "Twisty", "Gemini Wing Hack", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rygark, 0, rygar, rygar, tecmo_state, rygar, ROT0, "Hack", "Rygar (Korean)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/tecmo16.cpp b/docs/release/src/hbmame/drivers/tecmo16.cpp new file mode 100644 index 00000000000..60d9fbea587 --- /dev/null +++ b/docs/release/src/hbmame/drivers/tecmo16.cpp @@ -0,0 +1,32 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/tecmo16.cpp" + + + +ROM_START( fstarfrcc ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "fstarfc01.rom", 0x00000, 0x40000, CRC(28a0b648) SHA1(b9b1ad7a7823b0c4e96bf1a3c4ede0192a78fe38) ) + ROM_LOAD16_BYTE( "fstarfc02.rom", 0x00001, 0x40000, CRC(cd49179f) SHA1(b1093a999c5c918cf399589fba6d175cd6899e6a) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "fstarf07.rom", 0x00000, 0x10000, CRC(e0ad5de1) SHA1(677237341e837061b6cc02200c0752964caed907) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) + ROM_LOAD( "fstarfc03.rom", 0x00000, 0x20000, CRC(4bedd245) SHA1(55a5dfac11dbd0c615025d25d24a5917a54955c7) ) + + ROM_REGION( 0x100000, "gfx2", 0 ) + ROM_LOAD16_BYTE( "fstarf05.rom", 0x00000, 0x80000, CRC(77a281e7) SHA1(a87a90c2c856d45785cb56185b1a7dff3404b5cb) ) + ROM_LOAD16_BYTE( "fstarf04.rom", 0x00001, 0x80000, CRC(398a920d) SHA1(eecc167803f48517348d68ce70f15e87eac204bb) ) + + ROM_REGION( 0x100000, "gfx3", 0 ) + ROM_LOAD16_BYTE( "fstarf09.rom", 0x00000, 0x80000, CRC(d51341d2) SHA1(e46c319158046d407d4387cb2d8f0b6cfd7be576) ) + ROM_LOAD16_BYTE( "fstarf06.rom", 0x00001, 0x80000, CRC(07e40e87) SHA1(22867e52a8267ae8ae0ff0dba6bb846cb3e1b63d) ) + + ROM_REGION( 0x40000, "oki", 0 ) + ROM_LOAD( "fstarf08.rom", 0x00000, 0x20000, CRC(f0ad5693) SHA1(a0202801bb9f9c86175ca7989fbc9efa47183188) ) +ROM_END + + + +GAME( 1992, fstarfrcc, fstarfrc, fstarfrc, fstarfrc, driver_device, 0, ROT90, "Tecmo", "Final Star Force (Chinese)", 0 ) diff --git a/docs/release/src/hbmame/drivers/tehkanwc.cpp b/docs/release/src/hbmame/drivers/tehkanwc.cpp new file mode 100644 index 00000000000..fcb204fa562 --- /dev/null +++ b/docs/release/src/hbmame/drivers/tehkanwc.cpp @@ -0,0 +1,123 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/tehkanwc.cpp" + +ROM_START( ballonwc ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) ) + ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) ) + ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */ + ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */ + ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "twc-12.bin", 0x00000, 0x4000, CRC(a9e274f8) SHA1(02b46e1b149a856f0be74a23faaeb792935b66c7) ) /* fg tiles */ + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "blwc-8.bin", 0x00000, 0x8000, CRC(a0f75389) SHA1(60c5117430ac3471768efd0341ea533f49e8b1bd) ) /* sprites */ + ROM_LOAD( "twc-7.bin", 0x08000, 0x8000, CRC(59faebe7) SHA1(85dad90928369601e039467d575750539410fcf6) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "twc-11.bin", 0x00000, 0x8000, CRC(669389fc) SHA1(a93e8455060ce5242cb65f78e47b4840aa13ab13) ) /* bg tiles */ + ROM_LOAD( "twc-9.bin", 0x08000, 0x8000, CRC(347ef108) SHA1(bb9c2f51d65f28655404e10c3be44d7ade98711b) ) + + ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */ + ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) ) +ROM_END + +ROM_START( tehkangc ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) ) + ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) ) + ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */ + ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */ + ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "tgc-12.bin", 0x00000, 0x4000, CRC(dbf5cede) SHA1(ec2d21f62ab331ce64c7765f6b05a8c3c69e8ddd) ) /* fg tiles */ + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "tgc-8.bin", 0x00000, 0x8000, CRC(1177c8a0) SHA1(be0e0c763f2ac08ede546884e616073eb9a5517d) ) /* sprites */ + ROM_LOAD( "tgc-7.bin", 0x08000, 0x8000, CRC(7f01d5a4) SHA1(4494ca82c9d16a4047591de7b588a8ab53ce5170) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "twc-11.bin", 0x00000, 0x8000, CRC(669389fc) SHA1(a93e8455060ce5242cb65f78e47b4840aa13ab13) ) /* bg tiles */ + ROM_LOAD( "twc-9.bin", 0x08000, 0x8000, CRC(347ef108) SHA1(bb9c2f51d65f28655404e10c3be44d7ade98711b) ) + + ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */ + ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) ) +ROM_END + +ROM_START( tankwc ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) ) + ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) ) + ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */ + ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */ + ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "tkwc-12.bin", 0x00000, 0x4000, CRC(cf5e084a) SHA1(bba909898135467a8cbe8ca7ba7d14254ad52135) ) /* fg tiles */ + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "tkwc-8.bin", 0x00000, 0x8000, CRC(068210d1) SHA1(f2f21fa9452ba6d47ccdb4de3ddab833956d3fea) ) /* sprites */ + ROM_LOAD( "tkwc-7.bin", 0x08000, 0x8000, CRC(8e7dca59) SHA1(4ae3d6c0faf99d16db5b3c49ae96aa87741f635c) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "tkwc-11.bin", 0x00000, 0x8000, CRC(1f8536e3) SHA1(de44a066fc5862bac7de039053262ec167b70c35) ) /* bg tiles */ + ROM_LOAD( "tkwc-9.bin", 0x08000, 0x8000, CRC(f88f52ed) SHA1(33fa29582f81f2da7dcb671ccb0c7121b95b545f) ) + + ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */ + ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) ) +ROM_END + +ROM_START( twc_gr ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "twc-1gr.bin", 0x0000, 0x4000, CRC(0686377f) SHA1(69c4d63c216e0b640ad514568a07c414a94bae7c) ) + ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) ) + ROM_LOAD( "twc-3gr.bin", 0x8000, 0x4000, CRC(9a10118d) SHA1(1319e465620ab297bf70aed6eed426b68580a327) ) + + ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */ + ROM_LOAD( "twc-4gr.bin", 0x0000, 0x8000, CRC(8a13d6ac) SHA1(cc9b7a0836d6b4ff5f037a165451f6cf2f967d21) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */ + ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "twc-12gr.bin", 0x00000, 0x4000, CRC(17808225) SHA1(259c0162c4eef4eceb889f4a1a142b541376e04d) ) /* fg tiles */ + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "twc-8.bin", 0x00000, 0x8000, CRC(055a5264) SHA1(fe294ba57c2c858952e2fab0be1b8859730846cb) ) /* sprites */ + ROM_LOAD( "twc-7.bin", 0x08000, 0x8000, CRC(59faebe7) SHA1(85dad90928369601e039467d575750539410fcf6) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "twc-11gr.bin", 0x00000, 0x8000, CRC(ceab1e34) SHA1(f803965ef8b69a5951656f890f0e411dfdeef7ab) ) /* bg tiles */ + ROM_LOAD( "twc-9gr.bin", 0x08000, 0x8000, CRC(b120fbee) SHA1(a7012ec3ecbedfb3d04477bdda6f87f1fe819919) ) + + ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */ + ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) ) +ROM_END + +GAME( 1985, ballonwc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Grand Master Peter", "Ballon World Cup", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tehkangc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Grand Master Peter", "Tehkan Greek Cup", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, tankwc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Kazzy", "Tank World Cup", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, twc_gr, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "GreekRoms", "Tehkan World Cup (Greek)", MACHINE_SUPPORTS_SAVE ) + +/* Notes on E602 - Tehkan World Cup (set 3 bootleg) (1986) + - Year is 1986 instead of 1985 - seems this is possibly the Spanish version + - Rom 1 is overdumped, after fixing this, noticed last byte changed from 27 to FF + - 4 bytes in rom 9 changed - this rom makes the gfx on the title screen + - Could not see any visual or other differences + - Therefore, game not added */ diff --git a/docs/release/src/hbmame/drivers/tempest.cpp b/docs/release/src/hbmame/drivers/tempest.cpp new file mode 100644 index 00000000000..3dc60e0e49e --- /dev/null +++ b/docs/release/src/hbmame/drivers/tempest.cpp @@ -0,0 +1,782 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/tempest.cpp" + + +/* most of these inputs are not verified */ +static INPUT_PORTS_START( aliensv ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) /* no tilt */ + PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_tempest_device, done_r, NULL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,clock_r, NULL) + + PORT_START("IN1/DSW0") + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,tempest_knob_r, NULL) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) /* controls change but no flip */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN2") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) + PORT_DIPSETTING( 0x03, "Medium1" ) + PORT_DIPSETTING( 0x00, "Medium2" ) + PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) + PORT_DIPNAME( 0x04, 0x04, "Rating" ) + PORT_DIPSETTING( 0x04, "1, 3, 5, 7, 9" ) + PORT_DIPSETTING( 0x00, "tied to high score" ) + PORT_BIT(0x18, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,tempest_buttons_r, NULL) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSW1") + PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage ) ) /* coinage verified */ + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x0c, 0x00, "Right Coin" ) + PORT_DIPSETTING( 0x00, "*1" ) + PORT_DIPSETTING( 0x04, "*4" ) + PORT_DIPSETTING( 0x08, "*5" ) + PORT_DIPSETTING( 0x0c, "*6" ) + PORT_DIPNAME( 0x10, 0x00, "Left Coin" ) + PORT_DIPSETTING( 0x00, "*1" ) + PORT_DIPSETTING( 0x10, "*2" ) + PORT_DIPNAME( 0xe0, 0x00, "Bonus Coins" ) + PORT_DIPSETTING( 0x00, DEF_STR( None ) ) + PORT_DIPSETTING( 0x80, "1 each 5" ) + PORT_DIPSETTING( 0x40, "1 each 4 (+Demo)" ) + PORT_DIPSETTING( 0xa0, "1 each 3" ) + PORT_DIPSETTING( 0x60, "2 each 4 (+Demo)" ) + PORT_DIPSETTING( 0x20, "1 each 2" ) + PORT_DIPSETTING( 0xc0, "Freeze Mode" ) + PORT_DIPSETTING( 0xe0, "Freeze Mode" ) + + PORT_START("DSW2") /* DSW2 all dips verified */ + PORT_DIPNAME( 0x01, 0x00, "Minimum" ) + PORT_DIPSETTING( 0x00, "1 Credit" ) + PORT_DIPSETTING( 0x01, "2 Credit" ) + PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x00, "2" ) + PORT_DIPSETTING( 0x04, "3" ) + PORT_DIPSETTING( 0x08, "4" ) + PORT_DIPSETTING( 0x0c, "5" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Language ) ) + PORT_DIPSETTING( 0x00, DEF_STR( English ) ) + PORT_DIPSETTING( 0x10, DEF_STR( French ) ) + PORT_DIPSETTING( 0x20, DEF_STR( German ) ) + PORT_DIPSETTING( 0x30, DEF_STR( Spanish ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Bonus_Life ) ) + PORT_DIPSETTING( 0x00, "10000" ) + PORT_DIPSETTING( 0x02, "20000" ) + PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) // if high it freezes + + PORT_START(TEMPEST_KNOB_P1_TAG ) + /* This is the Tempest spinner input. It only uses 4 bits. */ + PORT_BIT( 0x0f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1) PORT_FULL_TURN_COUNT(72) + PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START(TEMPEST_KNOB_P2_TAG ) + /* This is the Tempest spinner input. It only uses 4 bits. */ + PORT_BIT( 0x0f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(2) PORT_FULL_TURN_COUNT(72) + PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START(TEMPEST_BUTTONS_P1_TAG ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START(TEMPEST_BUTTONS_P2_TAG ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END + +ROM_START( temped ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "136002.113", 0x9000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "temped.118", 0xb800, 0x0800, CRC(4825ee42) SHA1(7082c4a2f4b945c004b3b17166e0e58484fda3d2) ) + ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) ) + ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( tempestm ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "136002.113", 0x9000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "tempestm.118", 0xb800, 0x0800, CRC(b5e00840) SHA1(912e98b6766143ff5a1bc09c4d9685379408ee85) ) + ROM_LOAD( "tempestm.119", 0xc000, 0x0800, CRC(ed4f2132) SHA1(b7deb31b23c28d0e084772bbed80a1c5997eac12) ) + ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( tempall ) /* rev 3 */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "tempall.118", 0xb800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) ) + ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) ) + ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( temptwst ) /* rev 3 */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "temptwst.118", 0xb800, 0x0800, CRC(f30afe2d) SHA1(b83b0fd7c8f4c51e2c2dc1f516212ce53fa8b240) ) + ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) ) + ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_LOAD( "temptwst.121", 0xd000, 0x0800, CRC(67619e6e) SHA1(4cf91abc535cc8c5de7e5f30fabe0876a5182b39) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( tmptwsta ) /* rev 3 */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "tmptwsta.118", 0xb800, 0x0800, CRC(a45add57) SHA1(79748a415dbc0a5f600d38ac098bd2d63a4f9ecc) ) + ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) ) + ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_LOAD( "temptwst.121", 0xd000, 0x0800, CRC(67619e6e) SHA1(4cf91abc535cc8c5de7e5f30fabe0876a5182b39) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( tmptwst2 ) /* rev 3 */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "tmptwst2.118", 0xb800, 0x0800, CRC(1c6827cb) SHA1(d5a555f6ad59630e6d33c4bacad80ee429349e59) ) + ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) ) + ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_LOAD( "tmptwst2.121", 0xd000, 0x0800, CRC(c1bc4a69) SHA1(a60491fd7d6715118ed0d59dac0064c4263e15c6) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( tmptwst3 ) /* rev 3 */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "tmptwst3.118", 0xb800, 0x0800, CRC(c8e7693f) SHA1(18914841f3dc685d9a72bc2aaae940f6b6711e27) ) + ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) ) + ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_LOAD( "tmptwst3.121", 0xd000, 0x0800, CRC(194b34a9) SHA1(86c34dcccc2054cad4f8c175c4db4d3856172f66) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( tmptwst4 ) /* rev 3 */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "tmptwst4.118", 0xb800, 0x0800, CRC(2b6fcca4) SHA1(adfd65c94c46235ba47017e726a7b3c554e8e07a) ) + ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) ) + ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_LOAD( "tmptwst4.121", 0xd000, 0x0800, CRC(7fde0be4) SHA1(3d06b0f0ef71132b3fa67ad8930e2dd334e90932) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( vbrakout ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "vbrakout.113", 0x9000, 0x0800, CRC(6fd3efe5) SHA1(d195d08984ad8797607bc1989e8a606d51547c68) ) + ROM_LOAD( "vbrakout.114", 0x9800, 0x0800, CRC(9974b9a5) SHA1(6ecc6f72070895bb15992977348f58835233911f) ) + ROM_LOAD( "vbrakout.115", 0xa000, 0x0800, CRC(44d611d8) SHA1(82cd63fc9067ea1f00feeffbee66e7d750cab7e5) ) + ROM_LOAD( "vbrakout.116", 0xa800, 0x0800, CRC(cd58fc11) SHA1(060e31e55183ccef67a1adc91fb48c22424a4ba5) ) + ROM_LOAD( "vbrakout.122", 0xd800, 0x0800, CRC(1ae2dd53) SHA1(b908ba6b59195aea853380a56a243aa8fa2fba71) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( temptlm ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "temptlm.113", 0x9000, 0x0800, CRC(44103863) ) + ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_LOAD( "136002.118", 0xb800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) ) + ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) ) + ROM_LOAD( "temptlm.120", 0xc800, 0x0800, CRC(d27ed181) ) + ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) ) + ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */ + ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + + +/* The following prototypes, if run on the real hardware, can ruin your monitor... */ +/* or, as written in the readme, "DONT RUN IT ON REAL HARDWARE - IT CAN FUCK THE MONITOR." ;) */ + +ROM_START( vortex ) /* rev 1 */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "d1.bin", 0x9000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) ) + ROM_LOAD( "e1.bin", 0x9800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) ) + ROM_LOAD( "f1.bin", 0xa000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) ) + ROM_LOAD( "h1.bin", 0xa800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) ) + ROM_LOAD( "j1.bin", 0xb000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) ) + ROM_LOAD( "k1.bin", 0xb800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) ) + ROM_LOAD( "lm1.bin", 0xc000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) ) + ROM_LOAD( "mn1.bin", 0xc800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) ) + ROM_LOAD( "p1.bin", 0xd000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) ) + ROM_LOAD( "r1.bin", 0xd800, 0x0800, CRC(67cafbb1) SHA1(467515733d843398e6fe29661002536a1e6c8fc9) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "n3.bin", 0x3000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) ) + ROM_LOAD( "r3.bin", 0x3800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) ) + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( vortexa ) /* rev 2? */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "d1.bin", 0x9000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) ) + ROM_LOAD( "e1.bin", 0x9800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) ) + ROM_LOAD( "f1.bin", 0xa000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) ) + ROM_LOAD( "h1.bin", 0xa800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) ) + ROM_LOAD( "j1.bin", 0xb000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) ) + ROM_LOAD( "k1.bin", 0xb800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) ) + ROM_LOAD( "lm1.bin", 0xc000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) ) + ROM_LOAD( "mn1.bin", 0xc800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) ) + ROM_LOAD( "p1.bin", 0xd000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) ) + ROM_LOAD( "r1_alt.bin", 0xd800, 0x0800, CRC(2711c2cc) SHA1(f5e43dd46c24828e733b70f7bd678522c34e318a) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "n3.bin", 0x3000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) ) + ROM_LOAD( "r3.bin", 0x3800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) ) + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( aliensv ) /* rev 1 */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "aliens_d1.bin", 0x9000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) ) + ROM_LOAD( "aliens_e1.bin", 0x9800, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) ) + ROM_LOAD( "aliens_f1.bin", 0xa000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) ) + ROM_LOAD( "aliens_h1.bin", 0xa800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) ) + ROM_LOAD( "aliens_j1.bin", 0xb000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) ) + ROM_LOAD( "aliens_k1.bin", 0xb800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) ) + ROM_LOAD( "aliens_l1.bin", 0xc000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) ) + ROM_LOAD( "aliens_n1.bin", 0xc800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) ) + ROM_LOAD( "aliens_p1.bin", 0xd000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) ) + ROM_LOAD( "aliens_r1.bin", 0xd800, 0x0800, CRC(555c3070) SHA1(032f03af23c7ccac8a2bf50c3c646e141921ffee) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "aliens_n3.bin", 0x3000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) ) + ROM_LOAD( "aliens_r3.bin", 0x3800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) ) + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +ROM_START( aliensva ) /* rev 2? */ + ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */ + ROM_LOAD( "aliens_d1.bin", 0x9000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) ) + ROM_LOAD( "aliens_e1.bin", 0x9800, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) ) + ROM_LOAD( "aliens_f1.bin", 0xa000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) ) + ROM_LOAD( "aliens_h1.bin", 0xa800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) ) + ROM_LOAD( "aliens_j1.bin", 0xb000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) ) + ROM_LOAD( "aliens_k1.bin", 0xb800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) ) + ROM_LOAD( "aliens_l1.bin", 0xc000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) ) + ROM_LOAD( "aliens_n1.bin", 0xc800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) ) + ROM_LOAD( "aliens_p1.bin", 0xd000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) ) + ROM_LOAD( "aliens_r1a.bin", 0xd800, 0x0800, CRC(4da6627d) SHA1(01d8eea45373e3e87c81bc3b31d85ba8c7f4fcb3) ) + ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */ + /* Vector ROM */ + ROM_LOAD( "aliens_n3.bin", 0x3000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) ) + ROM_LOAD( "aliens_r3.bin", 0x3800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) ) + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + +/* tempest multigame */ + +class tempmg_state : public tempest_state +{ +public: + tempmg_state(const machine_config &mconfig, device_type type, const char *tag) + : tempest_state(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { } + + DECLARE_WRITE8_MEMBER(tempmg_rombank_w); + DECLARE_MACHINE_RESET(tempmg); + DECLARE_DRIVER_INIT(tempmg); + required_device<cpu_device> m_maincpu; +}; + +WRITE8_MEMBER( tempmg_state::tempmg_rombank_w ) +{ + UINT8 *RAM = memregion("maincpu")->base(); + membank("bank1")->set_entry(data); + membank("bank2")->set_entry(data); + /* standard rom banking would not work here, using memcpy instead */ + if (data < 4) memcpy(&RAM[0x3000], &RAM[0x16000+(data<<15)],0x1000); +} + +MACHINE_RESET_MEMBER( tempmg_state, tempmg ) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + tempmg_rombank_w (space, 0,0); +} + +DRIVER_INIT_MEMBER( tempmg_state, tempmg ) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + UINT8 *RAM = memregion("maincpu")->base(); + membank("bank1")->configure_entries(0, 8, &RAM[0x11000], 0x8000); // main roms + membank("bank2")->configure_entries(0, 8, &RAM[0x17800], 0x8000); // vectors + tempmg_rombank_w (space, 0,0); +} + +static ADDRESS_MAP_START( tempmg_map, AS_PROGRAM, 8, tempmg_state ) + AM_RANGE(0x0000, 0x07ff) AM_RAM + AM_RANGE(0x0800, 0x080f) AM_WRITEONLY AM_SHARE("colorram") + AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("IN0") + AM_RANGE(0x0d00, 0x0d00) AM_READ_PORT("DSW1") + AM_RANGE(0x0e00, 0x0e00) AM_READ_PORT("DSW2") + AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000) + AM_RANGE(0x3000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x4000) AM_WRITE(tempest_coin_w) + AM_RANGE(0x4800, 0x4800) AM_DEVWRITE("avg", avg_tempest_device, go_w) + AM_RANGE(0x5000, 0x5000) AM_WRITE(wdclr_w) + AM_RANGE(0x5800, 0x5800) AM_DEVWRITE("avg", avg_tempest_device, reset_w) + AM_RANGE(0x6000, 0x603f) AM_DEVWRITE("earom", atari_vg_earom_device, write) + AM_RANGE(0x6040, 0x6040) AM_DEVREAD("mathbox", mathbox_device, status_r) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w) + AM_RANGE(0x6050, 0x6050) AM_DEVREAD("earom", atari_vg_earom_device, read) + AM_RANGE(0x6060, 0x6060) AM_DEVREAD("mathbox", mathbox_device, lo_r) + AM_RANGE(0x6070, 0x6070) AM_DEVREAD("mathbox", mathbox_device, hi_r) + AM_RANGE(0x6080, 0x609f) AM_DEVWRITE("mathbox", mathbox_device, go_w) + AM_RANGE(0x60c0, 0x60cf) AM_DEVREADWRITE("pokey1", pokey_device, read, write) + AM_RANGE(0x60d0, 0x60df) AM_DEVREADWRITE("pokey2", pokey_device, read, write) + AM_RANGE(0x60e0, 0x60e0) AM_WRITE(tempest_led_w) + AM_RANGE(0x9000, 0xdfff) AM_ROMBANK("bank1") + AM_RANGE(0xe000, 0xe000) AM_WRITE(tempmg_rombank_w) + AM_RANGE(0xf800, 0xffff) AM_ROMBANK("bank2") +ADDRESS_MAP_END + +static MACHINE_CONFIG_DERIVED_CLASS( tempmg, tempest, tempmg_state ) // new cfg, old cfg, new class + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(tempmg_map) + MCFG_MACHINE_RESET_OVERRIDE(tempmg_state, tempmg) +MACHINE_CONFIG_END + +ROM_START( tempmg ) + ROM_REGION( 0x50000, "maincpu", 0 ) + ROM_LOAD( "tempmg-113.d1", 0x11000, 0x0800, CRC(8a6633fb) SHA1(b143a5d2019f24666b350b40b0dab2924bb9c7c0) ) + ROM_LOAD( "tempmg-114.e1", 0x11800, 0x0800, CRC(2eedfdf6) SHA1(2ed494bd8610bebd07284289ca8b7059fd805300) ) + ROM_LOAD( "tempmg-115.f1", 0x12000, 0x0800, CRC(12f62746) SHA1(37356b5738c27ffe4c38f1b6cf99ae21441d8e8e) ) + ROM_LOAD( "tempmg-222.r1", 0x15800, 0x0800, CRC(1d8f194a) SHA1(c77f6b83f5c498c0f2d5372089a4604913a4aad5) ) + ROM_RELOAD( 0x17800, 0x0800 ) + ROM_LOAD( "aliens_d1.bin", 0x19000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) ) + ROM_RELOAD( 0x19800, 0x0800 ) + ROM_LOAD( "aliens_f1.bin", 0x1a000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) ) + ROM_LOAD( "aliens_h1.bin", 0x1a800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) ) + ROM_LOAD( "aliens_j1.bin", 0x1b000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) ) + ROM_LOAD( "aliens_k1.bin", 0x1b800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) ) + ROM_LOAD( "aliens_l1.bin", 0x1c000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) ) + ROM_LOAD( "aliens_n1.bin", 0x1c800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) ) + ROM_LOAD( "aliens_p1.bin", 0x1d000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) ) + ROM_LOAD( "aliens_r1.bin", 0x1d800, 0x0800, CRC(555c3070) SHA1(032f03af23c7ccac8a2bf50c3c646e141921ffee) ) + ROM_RELOAD( 0x1f800, 0x0800 ) /* for reset/interrupt vectors */ + ROM_LOAD( "vb_d1.bin", 0x21000, 0x0800, CRC(6fd3efe5) SHA1(d195d08984ad8797607bc1989e8a606d51547c68) ) + ROM_LOAD( "vb_e1.bin", 0x21800, 0x0800, CRC(9974b9a5) SHA1(6ecc6f72070895bb15992977348f58835233911f) ) + ROM_LOAD( "vb_f1.bin", 0x22000, 0x0800, CRC(44d611d8) SHA1(82cd63fc9067ea1f00feeffbee66e7d750cab7e5) ) + ROM_LOAD( "vb_h1.bin", 0x22800, 0x0800, CRC(cd58fc11) SHA1(060e31e55183ccef67a1adc91fb48c22424a4ba5) ) + ROM_LOAD( "vb_r1.bin", 0x25800, 0x0800, CRC(1ae2dd53) SHA1(b908ba6b59195aea853380a56a243aa8fa2fba71) ) + ROM_RELOAD( 0x27800, 0x0800 ) /* for reset/interrupt vectors */ + ROM_LOAD( "d1.bin", 0x29000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) ) + ROM_LOAD( "e1.bin", 0x29800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) ) + ROM_LOAD( "f1.bin", 0x2a000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) ) + ROM_LOAD( "h1.bin", 0x2a800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) ) + ROM_LOAD( "j1.bin", 0x2b000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) ) + ROM_LOAD( "k1.bin", 0x2b800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) ) + ROM_LOAD( "lm1.bin", 0x2c000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) ) + ROM_LOAD( "mn1.bin", 0x2c800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) ) + ROM_LOAD( "p1.bin", 0x2d000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) ) + ROM_LOAD( "r1.bin", 0x2d800, 0x0800, CRC(67cafbb1) SHA1(467515733d843398e6fe29661002536a1e6c8fc9) ) + ROM_RELOAD( 0x2f800, 0x0800 ) /* for reset/interrupt vectors */ + ROM_LOAD( "136002-113.d1", 0x31000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) ) + ROM_RELOAD( 0x39000, 0x0800 ) + ROM_RELOAD( 0x41000, 0x0800 ) + ROM_RELOAD( 0x49000, 0x0800 ) + ROM_LOAD( "136002-114.e1", 0x31800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) ) + ROM_RELOAD( 0x39800, 0x0800 ) + ROM_RELOAD( 0x41800, 0x0800 ) + ROM_RELOAD( 0x49800, 0x0800 ) + ROM_LOAD( "136002-115.f1", 0x32000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) ) + ROM_RELOAD( 0x3a000, 0x0800 ) + ROM_RELOAD( 0x42000, 0x0800 ) + ROM_RELOAD( 0x4a000, 0x0800 ) + ROM_LOAD( "136002-316.h1", 0x32800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) ) + ROM_RELOAD( 0x4a800, 0x0800 ) + ROM_RELOAD( 0x12800, 0x0800 ) + ROM_LOAD( "136002-217.j1", 0x33000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) ) + ROM_RELOAD( 0x43000, 0x0800 ) + ROM_RELOAD( 0x4b000, 0x0800 ) + ROM_RELOAD( 0x13000, 0x0800 ) + ROM_LOAD( "tube-118.k1", 0x33800, 0x0800, CRC(cefb03f0) SHA1(41ddfa4991fa49a31d4740a04551556acca66196) ) + ROM_LOAD( "136002-119.lm1", 0x34000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) ) + ROM_RELOAD( 0x3c000, 0x0800 ) + ROM_RELOAD( 0x44000, 0x0800 ) + ROM_RELOAD( 0x4c000, 0x0800 ) + ROM_RELOAD( 0x14000, 0x0800 ) + ROM_LOAD( "136002-120.mn1", 0x34800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) ) + ROM_RELOAD( 0x3c800, 0x0800 ) + ROM_RELOAD( 0x44800, 0x0800 ) + ROM_RELOAD( 0x4c800, 0x0800 ) + ROM_RELOAD( 0x14800, 0x0800 ) + ROM_LOAD( "136002-121.p1", 0x35000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) ) + ROM_RELOAD( 0x3d000, 0x0800 ) + ROM_RELOAD( 0x45000, 0x0800 ) + ROM_RELOAD( 0x4d000, 0x0800 ) + ROM_RELOAD( 0x15000, 0x0800 ) + ROM_LOAD( "136002-222.r1", 0x35800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) ) + ROM_RELOAD( 0x37800, 0x0800 ) + ROM_RELOAD( 0x45800, 0x0800 ) + ROM_RELOAD( 0x47800, 0x0800 ) + ROM_RELOAD( 0x4d800, 0x0800 ) + ROM_RELOAD( 0x4f800, 0x0800 ) + ROM_LOAD( "136002-116.h1", 0x3a800, 0x0800, CRC(7356896c) SHA1(a013ede292189a8f5a907de882ee1a573d784b3c) ) + ROM_RELOAD( 0x42800, 0x0800 ) + ROM_LOAD( "136002-117.j1", 0x3b000, 0x0800, CRC(55952119) SHA1(470d914fa52fce3786cb6330889876d3547dca65) ) + ROM_LOAD( "136002-118.k1", 0x3b800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) ) + ROM_RELOAD( 0x43800, 0x0800 ) + ROM_RELOAD( 0x4b800, 0x0800 ) + ROM_RELOAD( 0x13800, 0x0800 ) + ROM_LOAD( "136002-122.r1", 0x3d800, 0x0800, CRC(796a9918) SHA1(c862a0d4ea330161e4c3cc8e5e9ad38893fffbd4) ) + ROM_RELOAD( 0x3f800, 0x0800 ) + /* Vector ROMs */ + ROM_LOAD( "136002-123.np3", 0x16000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) + ROM_RELOAD( 0x26000, 0x0800 ) + ROM_LOAD( "136002-124.r3", 0x16800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) + ROM_RELOAD( 0x26800, 0x0800 ) + ROM_LOAD( "aliens_n3.bin", 0x1e000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) ) + ROM_LOAD( "aliens_r3.bin", 0x1e800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) ) + ROM_LOAD( "n3.bin", 0x2e000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) ) + ROM_LOAD( "r3.bin", 0x2e800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) ) + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) + + /* Mathbox PROMs */ + ROM_REGION( 0x20, "user2", 0 ) + ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) ) + + ROM_REGION32_BE( 0x400, "user3", 0 ) + ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) + ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3)) + ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3)) +ROM_END + + +GAME( 2000, temped, tempest, tempest, tempest, driver_device, 0, ROT270, "hack", "TempEd", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tempall, tempest, tempest, tempest, driver_device, 0, ROT270, "hack", "Tempest All Levels", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, temptwst, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Twisted", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tmptwsta, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Twisted (Alt)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tmptwst2, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Twisty's Revenge", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tmptwst3, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Psycho Twist", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tmptwst4, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Twisted Maniac", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tempestm, tempest, tempest, tempest, driver_device, 0, ROT270, "hack", "Tempest Mark's Hacks", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, tempmg, tempest, tempmg, tempest, tempmg_state, tempmg, ROT270, "Clay Cowgill", "Tempest Multigame", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, vbrakout, tempest, tempest, tempest, driver_device, 0, ROT270, "Clay Cowgill", "Vector Breakout [h]", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, temptlm, tempest, tempest, tempest, driver_device, 0, ROT270, "hack", "Tempest Level Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, vortex, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Vortex", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, vortexa, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Vortex alt version", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, aliensv, tempest, tempest, aliensv, driver_device, 0, ROT270, "Atari", "Aliens", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, aliensva, tempest, tempest, aliensv, driver_device, 0, ORIENTATION_FLIP_Y ^ ROT270, "Atari", "Aliens alt version", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/terracre.cpp b/docs/release/src/hbmame/drivers/terracre.cpp new file mode 100644 index 00000000000..fd89874c5ef --- /dev/null +++ b/docs/release/src/hbmame/drivers/terracre.cpp @@ -0,0 +1,50 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/terracre.cpp" + +ROM_START( terracrc ) + ROM_REGION( 0x20000, "maincpu", 0 ) /* 128K for 68000 code */ + ROM_LOAD16_BYTE( "terracrc.8", 0x00000, 0x4000, CRC(44e29950) SHA1(0446c803771e624a812b5b7bd422505a58fa2f9d) ) + ROM_LOAD16_BYTE( "terracrc.12", 0x00001, 0x4000, CRC(5d2d4fef) SHA1(b31c2c496013163a5504343f06b4f9cc9834f78a) ) + ROM_LOAD16_BYTE( "terracrc.7", 0x08000, 0x4000, CRC(907968e6) SHA1(8b8a17b87a08e2a5e4223d9bdbc4a7df0726a589) ) + ROM_LOAD16_BYTE( "terracrc.11", 0x08001, 0x4000, CRC(f5dcd168) SHA1(d58c76d1f199e664caae6a89b39d8dddb758d593) ) + ROM_LOAD16_BYTE( "terracrc.6", 0x10000, 0x4000, CRC(b2cb4442) SHA1(a7a3a2d2a509bfcc905c7bfda516147626e09782) ) + ROM_LOAD16_BYTE( "terracrc.10", 0x10001, 0x4000, CRC(66db3b3b) SHA1(637b6dec3e03bd80ba4efdb08e9604bf3deea49b) ) + ROM_LOAD16_BYTE( "terracrc.5", 0x18000, 0x4000, CRC(a1bea44f) SHA1(cda2f0f7feac9060f86392704907b86cb5857b47) ) + ROM_LOAD16_BYTE( "1a_9b.rom", 0x18001, 0x4000, CRC(69227b56) SHA1(58c8aa4baa1f5ddfc151f5ed6284a06e87866dd7) ) + ROM_FILL(0x1c16,1,1) + ROM_FILL(0x1c17,1,0x1c) // bypass rom checksum - one of the roms might be bad + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "2a_15b.rom", 0x0000, 0x4000, CRC(604c3b11) SHA1(c01d1ddae40fa8b65dfc72f959942cb9664a548b) ) + ROM_LOAD( "terracrc.19", 0x4000, 0x4000, CRC(20fd3b53) SHA1(baf494f64a66fc4ae9d2fef12ae7c6f61ad82d94) ) + ROM_LOAD( "2a_18b.rom", 0x8000, 0x4000, CRC(302dc0ab) SHA1(4db8f12e70f9adf1eb993c6a8af68b5edbf79773) ) + + ROM_REGION( 0x02000, "gfx1", 0 ) + ROM_LOAD( "2a_16b.rom", 0x00000, 0x2000, CRC(591a3804) SHA1(e1b46f5652e7f9677d75f01c6132975ace4facdd) ) /* tiles */ + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "terracrc.4", 0x0000, 0x4000, CRC(3597f737) SHA1(443ad8b868a20a28a739df2f677803cb94012919) ) + ROM_LOAD( "terracrc.2", 0x4000, 0x4000, CRC(26474fd6) SHA1(7e8b725d5a29cc328925eea1ccdc2edaa2e7a927) ) + ROM_LOAD( "terracrc.3", 0x8000, 0x4000, CRC(f5f66a67) SHA1(d7761634fd0ea725e4fdaff698171285f9042f0f) ) + ROM_LOAD( "terracrc.1", 0xc000, 0x4000, CRC(55f80572) SHA1(a32749f8539a2a908532365f7f5650c92fc19f42) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) + ROM_LOAD( "2a_6e.rom", 0x00000, 0x4000, CRC(bcf7740b) SHA1(8701862c35eb8fb1ec239253136a3858ebea4d0c) ) /* Sprites */ + ROM_LOAD( "2a_7e.rom", 0x04000, 0x4000, CRC(a70b565c) SHA1(153e5f5a9927c294660dd0d636a9f651d4984d6d) ) + ROM_LOAD( "2a_6g.rom", 0x08000, 0x4000, CRC(4a9ec3e6) SHA1(0a35b82fb49ecf7edafd02744a48490e744c0a00) ) + ROM_LOAD( "2a_7g.rom", 0x0c000, 0x4000, CRC(450749fc) SHA1(376ab98ab8db56ed45f7d97a221dfd52e389cb5a) ) + + ROM_REGION( 0x0504, "proms", 0 ) /* first 4 not supplied - using from terracre */ + ROM_LOAD( "tc1a_10f.bin", 0x0000, 0x0100, CRC(ce07c544) SHA1(c3691cb420c88f1887a55e3035b5d017decbc17a) ) /* red component */ + ROM_LOAD( "tc1a_11f.bin", 0x0100, 0x0100, CRC(566d323a) SHA1(fe83585a0d9c7f942a5e54620b627a5a17a0fcf4) ) /* green component */ + ROM_LOAD( "tc1a_12f.bin", 0x0200, 0x0100, CRC(7ea63946) SHA1(d7b89694a80736c7605b5c83d25d8b706f4504ab) ) /* blue component */ + ROM_LOAD( "tc2a_2g.bin", 0x0300, 0x0100, CRC(08609bad) SHA1(e5daee3c3fea6620e3c2b91becd93bc4d3cdf011) ) /* sprite lookup table */ + /* This came with dump - no idea what it does - not hooked up */ + ROM_LOAD_OPTIONAL( "pal16r4.bin", 0x0400, 0x0104, CRC(119ef878) SHA1(4cc68200c755d646789f6af1c7a52273f07f597c) ) + + ROM_REGION( 0x0100, "user1", 0 ) /* not supplied - using from terracre */ + ROM_LOAD( "tc2a_4e.bin", 0x0000, 0x0100, CRC(2c43991f) SHA1(312112832bee511b0545524295aa9bc2e756db0f) ) /* sprite palette bank */ +ROM_END + +GAME( 1985, terracrc, terracre, ym3526, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (alt)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/tmnt.cpp b/docs/release/src/hbmame/drivers/tmnt.cpp new file mode 100644 index 00000000000..e493268c28f --- /dev/null +++ b/docs/release/src/hbmame/drivers/tmnt.cpp @@ -0,0 +1,33 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/tmnt.cpp" + +ROM_START( ssridersaex ) + ROM_REGION( 0xc0000, "maincpu", 0 ) /* 2*256k and 2*128k for 68000 code */ + ROM_LOAD16_BYTE( "064eac02.8e-ex", 0x000000, 0x40000, CRC(536d4a79) SHA1(dec7f827e3a1300ee32e6134b8141ae99a89b50a) ) + ROM_LOAD16_BYTE( "064eac03.8g-ex", 0x000001, 0x40000, CRC(8ea4c0e8) SHA1(c971df7fdaa801c6351a5df401a7528f000bee06) ) + ROM_LOAD16_BYTE( "064eab04.10e", 0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) ) + ROM_LOAD16_BYTE( "064eab05.10g", 0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "064e01.2f", 0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) ) + + ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */ + ROM_LOAD32_WORD( "064e12.16k", 0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) ) + ROM_LOAD32_WORD( "064e11.12k", 0x000002, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) ) + + ROM_REGION( 0x200000, "k053245", 0 ) /* graphics (addressable by the main CPU) */ + ROM_LOAD32_WORD( "064e09.7l", 0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) ) /* sprites */ + ROM_LOAD32_WORD( "064e07.3l", 0x000002, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) ) + + ROM_REGION( 0x100000, "k053260", 0 ) /* samples for the 053260 */ + ROM_LOAD( "064e06.1d", 0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) ) + + ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error + ROM_LOAD( "ssriders_abd.nv", 0x0000, 0x080, CRC(bfdafedf) SHA1(bc786d4fb3495a6baf2ae13c19392c6740a2be6d) ) + //ROM_LOAD( "ssriders_eac.nv", 0x0000, 0x080, CRC(f6d641a7) SHA1(6c680d49e1b07a47b29ff263a6009d226bd120cf) ) +ROM_END + + +// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS +GAME( 2009, ssridersaex, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Pipi899","Sunset Riders (2 Players ver ABD EX Super Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/toaplan1.cpp b/docs/release/src/hbmame/drivers/toaplan1.cpp new file mode 100644 index 00000000000..f82d1ec127f --- /dev/null +++ b/docs/release/src/hbmame/drivers/toaplan1.cpp @@ -0,0 +1,32 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/toaplan1.cpp" + +ROM_START( samenew ) + ROM_REGION( 0x080000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "o17_09n.8j", 0x000000, 0x08000, CRC(f60af2f9) SHA1(ce41efd5ca4f4adc8bf1976f61a8a8d357fb234a) ) + ROM_LOAD16_BYTE( "o17_10n.8l", 0x000001, 0x08000, CRC(023bcb95) SHA1(69a051fb223e6cacaf1cda8bf5430933d24fb8a7) ) + ROM_LOAD16_BYTE( "o17_11.7j", 0x040000, 0x20000, CRC(be07d101) SHA1(1eda14ba24532b565d6ad57490b73ff312f98b53) ) + ROM_LOAD16_BYTE( "o17_12.7l", 0x040001, 0x20000, CRC(ef698811) SHA1(4c729704eba0bf469599c79009327e4fa5dc540b) ) + + ROM_REGION( 0x8000, "audiocpu", 0 ) + ROM_LOAD( "hd647180.017", 0x00000, 0x08000, NO_DUMP ) + + ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_LOAD16_BYTE( "o17_05.12j", 0x00000, 0x20000, CRC(565315f8) SHA1(6b1c5ef52359483228b329c89c2e1174e3fbf017) ) + ROM_LOAD16_BYTE( "o17_06.13j", 0x00001, 0x20000, CRC(95262d4c) SHA1(16f3aabecb1c87ce7eadf4f0ff61b29a4c017614) ) + ROM_LOAD16_BYTE( "o17_07.12l", 0x40000, 0x20000, CRC(4c4b735c) SHA1(812c3bf46bd7764b2bb812bd2b9eb0331ed257ae) ) + ROM_LOAD16_BYTE( "o17_08.13l", 0x40001, 0x20000, CRC(95c6586c) SHA1(ff87901f79d80f73ad09664b0c0d892898570616) ) + + ROM_REGION( 0x80000, "gfx2", 0 ) + ROM_LOAD16_BYTE( "o17_01.1d", 0x00000, 0x20000, CRC(ea12e491) SHA1(02190722b7c5383471e0af9596be7039a5367240) ) + ROM_LOAD16_BYTE( "o17_02.3d", 0x00001, 0x20000, CRC(32a13a9f) SHA1(1446acdfd21cd41f3d97aaf30f498c0c5d890605) ) + ROM_LOAD16_BYTE( "o17_03.5d", 0x40000, 0x20000, CRC(68723dc9) SHA1(4f1b7aa2469c955e03737b611a7d2524f1e4f61e) ) + ROM_LOAD16_BYTE( "o17_04.7d", 0x40001, 0x20000, CRC(fe0ecb13) SHA1(634a49262b9c092c25f11b14c6757fe94ea9eddc) ) + + ROM_REGION( 0x40, "proms", 0 ) + ROM_LOAD( "prom14.25b", 0x00, 0x20, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) + ROM_LOAD( "prom15.20c", 0x20, 0x20, CRC(a1e17492) SHA1(9ddec4c97f2d541f69f3c32c47aaa21fd9699ae2) ) +ROM_END + +GAME( 2014, samenew, fireshrk, samesame, samesame, toaplan1_state, toaplan1, ROT270, "Trap15", "Same! Same! Same! (NEW VER!)", MACHINE_NO_SOUND ) diff --git a/docs/release/src/hbmame/drivers/toaplan2.cpp b/docs/release/src/hbmame/drivers/toaplan2.cpp new file mode 100644 index 00000000000..b2d2a624b8f --- /dev/null +++ b/docs/release/src/hbmame/drivers/toaplan2.cpp @@ -0,0 +1,94 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/toaplan2.cpp" + +ROM_START( kgpe ) + ROM_REGION( 0x100000, "maincpu", 0 ) /* Main 68K code */ + ROM_LOAD16_BYTE( "ma02rom1.bin", 0x000000, 0x080000, CRC(a678b149) SHA1(8c1a631e023dbba0a3fa6cd1b7d10dec1663213a) ) + ROM_LOAD16_BYTE( "ma02rom0.bin", 0x000001, 0x080000, CRC(f226a212) SHA1(526acf3d05fdc88054a772fbea3de2af532bf3d2) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ + ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) ) + + ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_LOAD( "ma02rom3.bin", 0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) ) + ROM_LOAD( "ma02rom4.bin", 0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) ) + + ROM_REGION( 0x008000, "text", 0 ) + ROM_LOAD( "kgpe.05", 0x000000, 0x008000, CRC(a0707702) SHA1(b6105291c1ae3d0792e69fd2495c31b56fbf61b7) ) + + ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM Samples */ + ROM_LOAD( "ma02rom6.bin", 0x00000, 0x80000, CRC(199e7cae) SHA1(0f5e13cc8ec42c80bb4bbff90aba29cdb15213d4) ) +ROM_END + +GAME( 1994, kgpe, 0, shippumd, kingdmgp, driver_device, 0, ROT270, "Neil Corlett", "Kingdom Grand Prix" , MACHINE_SUPPORTS_SAVE ) + +/* This game can be obtained from the Raine site, use a hex editor to zero out the last 4 bytes, + and rename the result to "kgpe.05". Thanks goes to the Raine devs for the idea and the rom, + and Tourniquet for the byte modification. Without this mod, the rom has the same crc as "ma02rom5.eng" + from "kingdmgp", which caused all sorts of confusion and problems. */ + +ROM_START( mahoudcn ) + ROM_REGION( 0x080000, "maincpu", 0 ) /* Main 68K code */ + ROM_LOAD16_WORD_SWAP( "ra_ma_01_01.u65", 0x000000, 0x080000, CRC(970ccc5c) SHA1(c87cab83bde0284e631f02e50068407fee81d941) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ + ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) ) + + ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_LOAD( "ra_ma_01_cn.03", 0x000000, 0x100000, CRC(7441e469) SHA1(ba1b127b6878ec45054c7220510a1ec0a8c06a0a) ) + ROM_LOAD( "ra_ma_01_cn.04", 0x100000, 0x100000, CRC(eb9f8159) SHA1(db8e10b847b0fbb34136c1a320ca0a160ac2646e) ) + + ROM_REGION( 0x008000, "text", 0 ) + ROM_LOAD( "ra_ma_01_05.u81", 0x000000, 0x008000, CRC(c00d1e80) SHA1(53e64c4c0c6309130b37597d13b44a9e95b717d8) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_LOAD( "ra-ma01-rom1.u57", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) ) +ROM_END + +ROM_START( batsugunt ) + ROM_REGION( 0x080000, "maincpu", 0 ) /* Main 68K code */ + ROM_LOAD16_WORD_SWAP( "tp030_01t.bin", 0x000000, 0x080000, CRC(63d28fd3) SHA1(aa3e111d596f408b735e4f79ab654eea24bd6f0c) ) + + /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */ + /* It's a NEC V25 (PLCC94) (program uploaded by main CPU) */ + + ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) ) + ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) ) + ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) ) + ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) ) + + ROM_REGION( 0x200000, "gp9001_1", 0 ) + ROM_LOAD( "tp030_5.bin", 0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) ) + ROM_LOAD( "tp030_6.bin", 0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) ) + + ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) ) +ROM_END + +ROM_START( bgareggz ) + ROM_REGION( 0x100000, "maincpu", 0 ) /* Main 68K code */ + ROM_LOAD16_BYTE( "prg0z.bin", 0x000000, 0x080000, CRC(6f4af466) SHA1(fb77f3b86c0b25941ae0efe70ca779d06f66f02b) ) + ROM_LOAD16_BYTE( "prg1z.bin", 0x000001, 0x080000, CRC(b4dc9a48) SHA1(9310a8c1de2a64e5597206a9974f25351d7825c2) ) + + ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ + ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) + + ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) ) + ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) ) + ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) ) + ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) ) + + ROM_REGION( 0x010000, "text", 0 ) + ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) ) + + ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) +ROM_END + + +GAME( 1993, mahoudcn, sstriker, mahoudai, mahoudai, driver_device, 0, ROT270, "Raizing (Able license)", "Mahou Daisakusen (Chinese)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, batsugunt, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Eezezy", "Batsugun Transparent (HACK BY EEZEZY(LB70))", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bgareggz, bgaregga, bgaregga, bgaregga, toaplan2_state, bgaregga,ROT270, "Zack", "Battle Garegga (Europe / USA / Japan / Asia) (Zakk version)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/trackfld.cpp b/docs/release/src/hbmame/drivers/trackfld.cpp new file mode 100644 index 00000000000..185e9821fe2 --- /dev/null +++ b/docs/release/src/hbmame/drivers/trackfld.cpp @@ -0,0 +1,41 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/trackfld.cpp" + +ROM_START( athens04 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "a01_e01.bin", 0x6000, 0x2000, CRC(2882f6d4) SHA1(f7ddae2c5412a2849efd7f9629e92a5b0328e7cb) ) + ROM_LOAD( "a02_e02.bin", 0x8000, 0x2000, CRC(1743b5ee) SHA1(31301031a525f893c31461f634350f01a9492ef4) ) + ROM_LOAD( "athens04.k03", 0xa000, 0x2000, CRC(2dd0e765) SHA1(4f832db55d9614ea733eaf53bf8a35d673bf5cba) ) + ROM_LOAD( "a04_e04.bin", 0xc000, 0x2000, CRC(21d6c448) SHA1(6c42cc76302485954a31520bdd08469fa948c72f) ) + ROM_LOAD( "a05_e05.bin", 0xe000, 0x2000, CRC(f08c7b7e) SHA1(50e65d9b0ea37d2afb2dfdf1f3e1378e3290bc81) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */ + ROM_LOAD( "c2_d13.bin", 0x0000, 0x2000, CRC(95bf79b6) SHA1(ea9135acd7ad162c19c5cdde356e69792d61b675) ) + + ROM_REGION( 0x8000, "gfx1", 0 ) + ROM_LOAD( "c11_d06.bin", 0x0000, 0x2000, CRC(82e2185a) SHA1(1da9ea20e7af0b49c62fb39834a7ec686491af04) ) + ROM_LOAD( "c12_d07.bin", 0x2000, 0x2000, CRC(800ff1f1) SHA1(33d73b18903e3e6bfb30f1a06db4b8105d4040d8) ) + ROM_LOAD( "c13_d08.bin", 0x4000, 0x2000, CRC(d9faf183) SHA1(4448b6242790783d37acf50704d597af5878c2ab) ) + ROM_LOAD( "c14_d09.bin", 0x6000, 0x2000, CRC(5886c802) SHA1(884a12a8f63600da4f23b29be6dbaacef37add20) ) + + ROM_REGION( 0x6000, "gfx2", 0 ) + ROM_LOAD( "athens04.e12", 0x0000, 0x2000, CRC(29908ce9) SHA1(6f80f4962059f3422282f3e30c55c73407d9cf4c) ) + ROM_LOAD( "athens04.e11", 0x2000, 0x2000, CRC(7a534ca1) SHA1(0bcf582662e93f96a2ebe6bd52ee8f8e8f36c24c) ) + ROM_LOAD( "h14_e10.bin", 0x4000, 0x2000, CRC(c2166a5c) SHA1(5ba25900e653ce4edcf35f1fbce758a327a715ce) ) + + ROM_REGION( 0x0220, "proms", 0 ) + ROM_LOAD( "361b16.f1", 0x0000, 0x0020, CRC(d55f30b5) SHA1(4d6a851f4886778307f75771645078b97ad55f5f) ) /* palette */ + ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */ + ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */ + + ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for speech rom */ + ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) ) +ROM_END + +/* ATHENS 2004 + +HACK by The Gameland Crew (http://www.gameland.gr) +Maddog, Whacker, Badge, Geoanas */ + +GAME( 2004, athens04, 0, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Gameland.gr", "Athens 2004", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/twincobr.cpp b/docs/release/src/hbmame/drivers/twincobr.cpp new file mode 100644 index 00000000000..8bb06a0b885 --- /dev/null +++ b/docs/release/src/hbmame/drivers/twincobr.cpp @@ -0,0 +1,96 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/twincobr.cpp" + +ROM_START( twincbu2 ) + ROM_REGION( 0x30000, "maincpu", 0 ) /* Main 68K code */ + ROM_LOAD16_BYTE( "tc16", 0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) ) + ROM_LOAD16_BYTE( "tc14", 0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) ) + ROM_LOAD16_BYTE( "tcbra26.bin", 0x20000, 0x08000, CRC(bdd00ba4) SHA1(b76b22f03eb4b821a8c555edd9fcee814f2e66a7) ) + ROM_LOAD16_BYTE( "tcbra27.bin", 0x20001, 0x08000, CRC(ed600907) SHA1(e5964db9eab2c334940795d71cb90f6679490227) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ + ROM_LOAD( "b30-05", 0x00000, 0x08000, CRC(1a8f1e10) SHA1(0c37a7a50b2523506ad77ac03ae752eb94092ff6) ) + + ROM_REGION( 0x2000, "dsp", 0 ) /* Co-Processor TMS320C10 MCU code */ + ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) ) + ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) ) + + ROM_REGION( 0x0c000, "gfx1", 0 ) /* chars */ + ROM_LOAD( "tc11", 0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) ) + ROM_LOAD( "b30_07.128", 0x04000, 0x04000, CRC(3160894d) SHA1(234951e2aa4002e23781f8ed3be64b71b0400e9f) ) + ROM_LOAD( "tc04", 0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) ) + + ROM_REGION( 0x40000, "gfx2", 0 ) /* fg tiles */ + ROM_LOAD( "b30_15.512", 0x00000, 0x10000, CRC(88795b18) SHA1(73bd28ef12576cf54630304c3c0f8a08141a321f) ) + ROM_LOAD( "b30_16.512", 0x10000, 0x10000, CRC(e6f421d2) SHA1(82da99d017780d0e52988dc8ebfcd16b54d34b6b) ) + ROM_LOAD( "tc06", 0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) ) + ROM_LOAD( "tc05", 0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) ) + + ROM_REGION( 0x20000, "gfx3", 0 ) /* bg tiles */ + ROM_LOAD( "tc07", 0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) ) + ROM_LOAD( "tc08", 0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) ) + ROM_LOAD( "tc09", 0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) ) + ROM_LOAD( "tc10", 0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) ) + + ROM_REGION( 0x40000, "scu", 0 ) /* sprites */ + ROM_LOAD( "tc20", 0x00000, 0x10000, CRC(cb4092b8) SHA1(35b1d1e04af760fa106124bd5a94174d63ff9705) ) + ROM_LOAD( "b30_19.512", 0x10000, 0x10000, CRC(4043ad5a) SHA1(bf14829ec800dab9ac6e385bddcab303301df530) ) + ROM_LOAD( "b30_18.512", 0x20000, 0x10000, CRC(cdc16155) SHA1(9f41695409dbf72c2a66911aaa94b8fe5f6acc01) ) + ROM_LOAD( "tc17", 0x30000, 0x10000, CRC(4264bff8) SHA1(3271b8b23f51346d1928ae01f8b547fed49181e6) ) + + ROM_REGION( 0x260, "proms", 0 ) /* nibble bproms, lo/hi order to be determined */ + ROM_LOAD( "82s129.d3", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) ) /* sprite priority control ?? */ + ROM_LOAD( "82s129.d4", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) ) /* sprite priority control ?? */ + ROM_LOAD( "82s123.d2", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) ) /* sprite control ?? */ + ROM_LOAD( "82s123.e18", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */ + ROM_LOAD( "82s123.b24", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) ) /* tile to sprite priority ?? */ +ROM_END + +ROM_START( twintwst ) + ROM_REGION( 0x30000, "maincpu", 0 ) /* Main 68K code */ + ROM_LOAD16_BYTE( "tc16", 0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) ) + ROM_LOAD16_BYTE( "tc14", 0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) ) + ROM_LOAD16_BYTE( "tc15", 0x20000, 0x08000, CRC(3a646618) SHA1(fc1ed8f3c491f5cf16a17e5ce08c5d8f3ce03683) ) + ROM_LOAD16_BYTE( "tc13", 0x20001, 0x08000, CRC(d7d1e317) SHA1(57b8433b1677a390a7c7e00a1464bb8ed9cbfc73) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ + ROM_LOAD( "tc12", 0x00000, 0x08000, CRC(e37b3c44) SHA1(5fed10b29c14e27aee0cd92ecde5c5cb422273b1) ) /* slightly different from the other two sets */ + + ROM_REGION( 0x2000, "dsp", 0 ) /* Co-Processor TMS320C10 MCU code */ + ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) ) + ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) ) + + ROM_REGION( 0x0c000, "gfx1", 0 ) /* chars */ + ROM_LOAD( "tc11", 0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) ) + ROM_LOAD( "tc03", 0x04000, 0x04000, CRC(e9e2d4b1) SHA1(e0a19dd46a9ba85d95bba7fbf81d8dc36dbfeabd) ) + ROM_LOAD( "tc04", 0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) ) + + ROM_REGION( 0x40000, "gfx2", 0 ) /* fg tiles */ + ROM_LOAD( "tc01", 0x00000, 0x10000, CRC(15b3991d) SHA1(f5e7ed7a7721ed7e6dfd440634160390b7a294e4) ) + ROM_LOAD( "tc02", 0x10000, 0x10000, CRC(d9e2e55d) SHA1(0409e6df836d1d5198b64b21b42192631aa6d096) ) + ROM_LOAD( "tc06", 0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) ) + ROM_LOAD( "tc05", 0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) ) + + ROM_REGION( 0x20000, "gfx3", 0 ) /* bg tiles */ + ROM_LOAD( "tc07", 0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) ) + ROM_LOAD( "tc08", 0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) ) + ROM_LOAD( "tc09", 0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) ) + ROM_LOAD( "tc10", 0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) ) + + ROM_REGION( 0x40000, "scu", 0 ) /* sprites */ + ROM_LOAD( "tcw20", 0x00000, 0x10000, CRC(41c8f4ea) SHA1(9da6911b89b5cf49b64a8bcb12ab191cc98316f2) ) + ROM_LOAD( "tcw19", 0x10000, 0x10000, CRC(8d5db99e) SHA1(33a1a51396fd289ee23ea1c645bc85bfed37848d) ) + ROM_LOAD( "tcw18", 0x20000, 0x10000, CRC(eade1ca3) SHA1(af62d4b3a4072d6b0970a47ab6ef68987bac9c93) ) + ROM_LOAD( "tcw17", 0x30000, 0x10000, CRC(6a559622) SHA1(8a07f792efea9d521a5fd0169a5d6c15fe615d5d) ) + + ROM_REGION( 0x260, "proms", 0 ) /* nibble bproms, lo/hi order to be determined */ + ROM_LOAD( "82s129.d3", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) ) /* sprite priority control ?? */ + ROM_LOAD( "82s129.d4", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) ) /* sprite priority control ?? */ + ROM_LOAD( "82s123.d2", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) ) /* sprite control ?? */ + ROM_LOAD( "82s123.e18", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */ + ROM_LOAD( "82s123.b24", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) ) /* tile to sprite priority ?? */ +ROM_END + +GAME( 2002, twincbu2, twincobr, twincobr, twincobru, twincobr_state, twincobr, ROT270, "[Hack]", "Twin Cobra (Hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, twintwst, twincobr, twincobr, twincobr, twincobr_state, twincobr, ROT270, "[Hack]", "Twin Twist (Twin Cobra Hack)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/volfied.cpp b/docs/release/src/hbmame/drivers/volfied.cpp new file mode 100644 index 00000000000..ac4f037ecd2 --- /dev/null +++ b/docs/release/src/hbmame/drivers/volfied.cpp @@ -0,0 +1,30 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/volfied.cpp" + +ROM_START( volfiedg ) + ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code and tile data */ + ROM_LOAD16_BYTE( "c04-12-1.30g", 0x00000, 0x10000, CRC(f13c5621) SHA1(b50aaadb1a3128aa5ecbab2a1450c5e817f33620) ) + ROM_LOAD16_BYTE( "c04-08-1.10g", 0x00001, 0x10000, CRC(b7e5472e) SHA1(68323e46ffee7cf8d2119405543353691673ac05) ) + ROM_LOAD16_BYTE( "c04-11-1.29g", 0x20000, 0x10000, CRC(54730fe3) SHA1(796693cd2cfb539f6691aa4e359c47cfd7348734) ) + ROM_LOAD16_BYTE( "c04-25-1.9g", 0x20001, 0x10000, CRC(cff7aee1) SHA1(1d9a3ddebafb8b8b4075de2946a250156f81fb54) ) + ROM_LOAD16_BYTE( "c04-20.7g", 0x80000, 0x20000, CRC(7614c798) SHA1(7465f2eaeab73f047cc9f41f5a00173c34636513) ) + ROM_LOAD16_BYTE( "c04-22.9g", 0x80001, 0x20000, CRC(aa6e8da8) SHA1(014eb2b5ba89e267a915ea647a71fdd8413099c7) ) + ROM_LOAD16_BYTE( "c04-19.6", 0xc0000, 0x20000, CRC(231493ae) SHA1(2658e6556fd0e75ddd0f0b8628cfa5237c187a06) ) + ROM_LOAD16_BYTE( "c04-21.8", 0xc0001, 0x20000, CRC(8598d38e) SHA1(4ec1b819586b50e2f6aff2aaa5e3b06704b9bec2) ) + + ROM_REGION( 0xc0000, "gfx1", 0 ) /* sprites 16x16 */ + ROM_LOAD16_BYTE( "c04-16.2g", 0x00000, 0x20000, CRC(1c6963a9) SHA1(2dc4b6838c95497e019c03582a8f7ecb48fa97a8) ) + ROM_LOAD16_BYTE( "c04-18.4g", 0x00001, 0x20000, CRC(67ea587f) SHA1(2b43ba53cc563d3462a4bec430427f92290f2b23) ) + ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) ) + ROM_LOAD16_BYTE( "c04-17.3", 0x40001, 0x20000, CRC(c62fdeb8) SHA1(a9f6ca8335071169d772e65a9f5315a22a310b25) ) + ROM_LOAD16_BYTE( "c04-10.15", 0x80000, 0x10000, CRC(429b6b49) SHA1(dcb0c8bc9d67643d96b2ffdf5ccd747318704c37) ) + ROM_RELOAD ( 0xa0000, 0x10000 ) + ROM_LOAD16_BYTE( "c04-09.14", 0x80001, 0x10000, CRC(c78cf057) SHA1(097982e57b1d20fbdf21986c23684adefe6f1ce1) ) + ROM_RELOAD ( 0xa0001, 0x10000 ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ + ROM_LOAD( "c04-06.71", 0x0000, 0x8000, CRC(b70106b2) SHA1(d71062f9d9b11492e13fc93982b95883f564f902) ) +ROM_END + +GAME( 2005, volfiedg, 0, volfied, volfied, driver_device, 0, ROT270, "GreekRoms", "Volfied (Greek)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/vsnes.cpp b/docs/release/src/hbmame/drivers/vsnes.cpp new file mode 100644 index 00000000000..d9c343df629 --- /dev/null +++ b/docs/release/src/hbmame/drivers/vsnes.cpp @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/vsnes.cpp" + +ROM_START( mrio2002 ) + ROM_REGION( 0x10000,"maincpu", 0 ) /* 6502 memory */ + ROM_LOAD( "mds-sm4.1d", 0x8000, 0x2000, CRC(be4d5436) SHA1(08162a7c987f1939d09bebdb676f596c86abf465) ) + ROM_LOAD( "mds-sm4.1c", 0xa000, 0x2000, CRC(0011fc5a) SHA1(5c2c49938a12affc03e64e5bdab307998be20020) ) + ROM_LOAD( "mds-sm4.1b", 0xc000, 0x2000, CRC(b1b87893) SHA1(8563ceaca664cf4495ef1020c07179ca7e4af9f3) ) + ROM_LOAD( "mds-sm4.1a", 0xe000, 0x2000, CRC(1abf053c) SHA1(f17db88ce0c9bf1ed88dc16b9650f11d10835cec) ) + + ROM_REGION( 0x4000,"gfx1", 0 ) /* PPU memory */ + ROM_LOAD( "mrio2002.2b", 0x0000, 0x2000, CRC(1feda640) SHA1(f26be31f43dacdaa9d8bffa75f4fcd9d8d04953a) ) + ROM_LOAD( "mds-sm4.2a", 0x2000, 0x2000, CRC(15506b86) SHA1(69ecf7a3cc8bf719c1581ec7c0d68798817d416f) ) + + PALETTE_2C04_0004 +ROM_END + +ROM_START( suprsktr ) + ROM_REGION( 0x10000,"maincpu", 0 ) /* 6502 memory */ + ROM_LOAD( "mds-sm4.1d", 0x8000, 0x2000, CRC(be4d5436) SHA1(08162a7c987f1939d09bebdb676f596c86abf465) ) + ROM_LOAD( "mds-sm4.1c", 0xa000, 0x2000, CRC(0011fc5a) SHA1(5c2c49938a12affc03e64e5bdab307998be20020) ) + ROM_LOAD( "mds-sm4.1b", 0xc000, 0x2000, CRC(b1b87893) SHA1(8563ceaca664cf4495ef1020c07179ca7e4af9f3) ) + ROM_LOAD( "mds-sm4.1a", 0xe000, 0x2000, CRC(1abf053c) SHA1(f17db88ce0c9bf1ed88dc16b9650f11d10835cec) ) + + ROM_REGION( 0x4000,"gfx1", 0 ) /* PPU memory */ + ROM_LOAD( "suprsktr.2b", 0x0000, 0x2000, CRC(f3980303) SHA1(b9a25c906d1861c89e2e40e878a34d318daf6619) ) + ROM_LOAD( "mds-sm4.2a", 0x2000, 0x2000, CRC(15506b86) SHA1(69ecf7a3cc8bf719c1581ec7c0d68798817d416f) ) + + PALETTE_2C04_0004 +ROM_END + +GAME( 2002, mrio2002, suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Mario Bros. 2002", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, suprsktr, suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Skater Bros.", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/williams.cpp b/docs/release/src/hbmame/drivers/williams.cpp new file mode 100644 index 00000000000..afb06012989 --- /dev/null +++ b/docs/release/src/hbmame/drivers/williams.cpp @@ -0,0 +1,130 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/williams.cpp" + +ROM_START( defender2 ) + ROM_REGION( 0x19000, "maincpu", 0 ) + ROM_LOAD( "10", 0x0d000, 0x1000, CRC(4d82fc2f) SHA1(b11dc3f3f2100ab14ad5b26cd333b212c454cc8d) ) + ROM_LOAD( "11", 0x0e000, 0x1000, CRC(561fad3f) SHA1(597851e78423f30341f682f3fc62bf24cf9e8a91) ) + ROM_LOAD( "12", 0x0f000, 0x1000, CRC(836eacca) SHA1(f788fc2a25adffa21e02a3dfe2074e8719405200) ) + ROM_LOAD( "01", 0x10000, 0x1000, CRC(88824d18) SHA1(f003a5a9319c4eb8991fa2aae3f10c72d6b8e81a) ) + ROM_LOAD( "02", 0x11000, 0x1000, CRC(afc614c5) SHA1(087c6da93318e8dc922d3d22e0a2af7b9759701c) ) + ROM_LOAD( "03", 0x12000, 0x1000, CRC(6dd57970) SHA1(1fdee9180bfb835f35ac786116e0f8d7833f2c3f) ) + ROM_LOAD( "04", 0x13000, 0x1000, CRC(a8b4bf0f) SHA1(6b4d47c2899fe9f14f9dab5928499f12078c437d) ) + ROM_LOAD( "05", 0x14000, 0x1000, CRC(2d306074) SHA1(54f871983699113e31bb756d4ca885c26c2d66b4) ) + ROM_LOAD( "06", 0x15000, 0x1000, CRC(53598dde) SHA1(54b02d944caf95283c9b6f0160e75ea8c4ccc97b) ) + ROM_LOAD( "07", 0x16000, 0x1000, CRC(55b5b0d2) SHA1(dcf392a899fb6c225c4e31034e242e575c3dc94d) ) + ROM_LOAD( "08", 0x17000, 0x1000, CRC(b4f22d4d) SHA1(2486e895628df9ae1268d9eb2434f240dba99f70) ) + ROM_LOAD( "09", 0x18000, 0x1000, CRC(6df7463d) SHA1(b80c2872fc47b4b604967f176e3931cd992dd692) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "sg.snd", 0xf800, 0x0800, CRC(2fcf6c4d) SHA1(9c4334ac3ff15d94001b22fc367af40f9deb7d57) ) + + ROM_REGION( 0x0400, "proms", 0 ) + ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) + ROM_LOAD( "decoder.5", 0x0200, 0x0200, CRC(f921c5fe) SHA1(9cebb8bb935315101d248140d1b4503993ebdf8a) ) +ROM_END + +ROM_START( splatsc1 ) + ROM_REGION( 0x19000, "maincpu", 0 ) + ROM_LOAD( "splatsc1.10", 0x0d000, 0x1000, CRC(6cc2988a) SHA1(bd0648185ab859afc981d4e8ab954ed1f39303e4) ) + ROM_LOAD( "splatsc1.11", 0x0e000, 0x1000, CRC(ee960115) SHA1(b3a03b14f7ee97d55b948ecc09c5e4006c31f0ce) ) + ROM_LOAD( "splatsc1.12", 0x0f000, 0x1000, CRC(21916fce) SHA1(6896afd10c30d90b807b60f90fced7114b1812e3) ) + ROM_LOAD( "splat.01", 0x10000, 0x1000, CRC(1cf26e48) SHA1(6ba4de6cc7d1359ed450da7bae1000552373f873) ) + ROM_LOAD( "splat.02", 0x11000, 0x1000, CRC(ac0d4276) SHA1(710aba98909d5d63c4b9b08579021f9c026b3111) ) + ROM_LOAD( "splat.03", 0x12000, 0x1000, CRC(74873e59) SHA1(727c9da682fd10353f3969ef02e9f1826d8cb77a) ) + ROM_LOAD( "splat.04", 0x13000, 0x1000, CRC(70a7064e) SHA1(7e6440585462b68b62d6d571d83635bf17149f1a) ) + ROM_LOAD( "splatsc1.05", 0x14000, 0x1000, CRC(6989e923) SHA1(383d831084cf79e3961125142d1e3bf4fad1ac66) ) + ROM_LOAD( "splatsc1.06", 0x15000, 0x1000, CRC(82b22e55) SHA1(d71c6598f6a43f47f6752c803069efeb877bf1f0) ) + ROM_LOAD( "splatsc1.07", 0x16000, 0x1000, CRC(e0c4230c) SHA1(2795732725f63e766ee23744147bf002373bc5f7) ) + ROM_LOAD( "splatsc1.08", 0x17000, 0x1000, CRC(42ff589f) SHA1(72c9b40c9291a6b97f637c6424265b30227d87c6) ) + ROM_LOAD( "splatsc1.09", 0x18000, 0x1000, CRC(f67564be) SHA1(3fda9032953e4f75df838616d1c7023a1f2e9861) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "splat.snd", 0xf000, 0x1000, CRC(a878d5f3) SHA1(f3347a354cb54ca228fe0971f0ae3bc778e2aecf) ) + + ROM_REGION( 0x0400, "proms", 0 ) + ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) + ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) +ROM_END + +ROM_START( robotron201 ) + ROM_REGION( 0x19000, "maincpu", 0 ) + ROM_LOAD( "robotron.sba", 0x0d000, 0x1000, CRC(13797024) SHA1(d426a50e75dabe936de643c83a548da5e399331c) ) + ROM_LOAD( "robotron.sbb", 0x0e000, 0x1000, CRC(e83a2eda) SHA1(4a62fcd2f91dfb609c3d2c300bd9e6cb60edf52e) ) + ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) ) + ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) ) + ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) ) + ROM_LOAD( "robotron201.3", 0x12000, 0x1000, CRC(85eb583e) SHA1(b6c4280415515de6f56b358206dc3bd93a12bfce) ) + ROM_LOAD( "robotron.sb4", 0x13000, 0x1000, CRC(afb1c561) SHA1(aaf89c19fd8f4e8750717169eb1af476aef38a5e) ) + ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) ) + ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) ) + ROM_LOAD( "robotron.sb7", 0x16000, 0x1000, CRC(49ac400c) SHA1(06eae5138254723819a5e93cfd9e9f3285fcddf5) ) + ROM_LOAD( "robotron.sb8", 0x17000, 0x1000, CRC(3a96e88c) SHA1(7ae38a609ed9a6f62ca003cab719740ed7651b7c) ) + ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) ) + + ROM_REGION( 0x0400, "proms", 0 ) + ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) + ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) +ROM_END + +ROM_START( robotronp ) + ROM_REGION( 0x19000, "maincpu", 0 ) + ROM_LOAD( "robotron.sba", 0x0d000, 0x1000, CRC(13797024) SHA1(d426a50e75dabe936de643c83a548da5e399331c) ) + ROM_LOAD( "robotron.sbb", 0x0e000, 0x1000, CRC(e83a2eda) SHA1(4a62fcd2f91dfb609c3d2c300bd9e6cb60edf52e) ) + ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) ) + ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) ) + ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) ) + ROM_LOAD( "robotron.sb3", 0x12000, 0x1000, CRC(e99a82be) SHA1(06a8c8dd0b4726eb7f0bb0e89c8533931d75fc1c) ) + ROM_LOAD( "robotron.sb4", 0x13000, 0x1000, CRC(afb1c561) SHA1(aaf89c19fd8f4e8750717169eb1af476aef38a5e) ) + ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) ) + ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) ) + ROM_LOAD( "robotron.sb7", 0x16000, 0x1000, CRC(49ac400c) SHA1(06eae5138254723819a5e93cfd9e9f3285fcddf5) ) + ROM_LOAD( "robotron.sb8", 0x17000, 0x1000, CRC(3a96e88c) SHA1(7ae38a609ed9a6f62ca003cab719740ed7651b7c) ) + ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) ) + + ROM_REGION( 0x0400, "proms", 0 ) + ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) + ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) +ROM_END + +ROM_START( robotrontie ) + ROM_REGION( 0x19000, "maincpu", 0 ) + ROM_LOAD( "robotrontie.a", 0x0d000, 0x1000, CRC(952bea55) SHA1(80f51d8e7ec62518afad7e56a47e0756f83f813c) ) + ROM_LOAD( "robotrontie.b", 0x0e000, 0x1000, CRC(4c05fd3c) SHA1(0d727458454826fd8222e4022b755d686ccb065f) ) + ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) ) + ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) ) + ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) ) + ROM_LOAD( "robotron.sb3", 0x12000, 0x1000, CRC(e99a82be) SHA1(06a8c8dd0b4726eb7f0bb0e89c8533931d75fc1c) ) + ROM_LOAD( "robotrontie.4", 0x13000, 0x1000, CRC(e8238019) SHA1(0ce29f4bf6bdee677c8e80c2d5e66fc556ba349f) ) + ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) ) + ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) ) + ROM_LOAD( "robotrontie.7", 0x16000, 0x1000, CRC(3ecf4620) SHA1(3c670a1f8df35d18451c82f220a02448bf5ef5ac) ) + ROM_LOAD( "robotrontie.8", 0x17000, 0x1000, CRC(752d7a46) SHA1(85dd58d14d527ca75d6c546d6271bf8ee5a82c8c) ) + ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) ) + + ROM_REGION( 0x0400, "proms", 0 ) + ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) + ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) +ROM_END + +/******************************************************* + * + * Game Driver + * + *******************************************************/ + +GAME( 1981, defender2, defender, williams, stargate, williams_state, stargate, ROT0, "Jeff Vavasour", "Defender II", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, splatsc1, 0, williams, splat, williams_state, joust, ROT0, "Williams", "Splat! (sc1 hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, robotron201, robotron, williams, robotron, williams_state, robotron, ROT0, "Sean Riddle", "Robotron: 2084 (Hacked Patched Blue-201)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, robotronp, robotron, williams, robotron, williams_state, robotron, ROT0, "Christian Gingras / Sean Riddle", "Robotron: 2084 (patched)", MACHINE_SUPPORTS_SAVE ) +GAME( 2014, robotrontie, robotron, williams, robotron, williams_state, robotron, ROT0, "Vid Kidz", "Robotron: 2084 (Tie Die)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/drivers/yiear.cpp b/docs/release/src/hbmame/drivers/yiear.cpp new file mode 100644 index 00000000000..3f01f520f34 --- /dev/null +++ b/docs/release/src/hbmame/drivers/yiear.cpp @@ -0,0 +1,27 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/yiear.cpp" + +ROM_START( nacho ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "nacho.8", 0x08000, 0x4000, CRC(ad779f38) SHA1(057f05f789261f0b9a0f9d32623c3de10d5ed5e6) ) + ROM_LOAD( "nacho.7", 0x0c000, 0x4000, CRC(6d9b7c36) SHA1(634c68617df9d3078be85ccaefda3719b9e06bab) ) + + ROM_REGION( 0x04000, "gfx1", 0 ) + ROM_LOAD( "nacho.1", 0x00000, 0x2000, CRC(7f1139ef) SHA1(04872803bcfd468490aa68b6b4b8c6219d0e3805) ) + ROM_LOAD( "nacho.2", 0x02000, 0x2000, CRC(cd8be306) SHA1(7e6fe875e808def4da7d5b19e291481d736e418c) ) + + ROM_REGION( 0x10000, "gfx2", 0 ) + ROM_LOAD( "nacho.5", 0x00000, 0x4000, CRC(2da87538) SHA1(37f17b8a6e1ad2fc2a94f90e54fa9ae8a5380b45) ) + ROM_LOAD( "nacho.6", 0x04000, 0x4000, CRC(b48393a9) SHA1(d8f4011423027e9f22f3a62e16e9f77e0fbfdb2c) ) + ROM_LOAD( "nacho.3", 0x08000, 0x4000, CRC(75bad724) SHA1(b6fad1771b7600867de3cafddd7555a8ab0f4f98) ) + ROM_LOAD( "nacho.4", 0x0c000, 0x4000, CRC(3ecb72e4) SHA1(4fc494bf3025b3b9fd05fc9f4f6d865039b3ffc8) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "yiear.clr", 0x00000, 0x0020, CRC(c283d71f) SHA1(10cd39f4e951ba6ca5610081c8c1fcd9d68b34d2) ) + + ROM_REGION( 0x2000, "vlm", 0 ) /* 8k for the VLM5030 data */ + ROM_LOAD( "a12_9.bin", 0x00000, 0x2000, CRC(f75a1539) SHA1(f139f6cb41351eb81ee47d777db03012aa5fadb1) ) +ROM_END + +GAME( 2009, nacho, yiear, yiear, yiear, driver_device, 0, ROT0, "Gatinho", "Nacho Libre", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/hbmame/hbmame.cpp b/docs/release/src/hbmame/hbmame.cpp new file mode 100644 index 00000000000..299d7cbf496 --- /dev/null +++ b/docs/release/src/hbmame/hbmame.cpp @@ -0,0 +1,24 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/*************************************************************************** + + hbmame.c + + Specific (per target) constants + +****************************************************************************/ + +#include "emu.h" + +#define APPNAME "HBMAME" +#define APPNAME_LOWER "hbmame" +#define CONFIGNAME "hbmame" +#define COPYRIGHT "Copyright Nicola Salmoria\nand the MAME team\nhttp://mamedev.org" +#define COPYRIGHT_INFO "\nMAME portions are copyright Nicola Salmoria and the MAME team.\n" \ + "HBMAME portions are copyright Robbbert." + +const char * emulator_info::get_appname() { return APPNAME;} +const char * emulator_info::get_appname_lower() { return APPNAME_LOWER;} +const char * emulator_info::get_configname() { return CONFIGNAME;} +const char * emulator_info::get_copyright() { return COPYRIGHT;} +const char * emulator_info::get_copyright_info() { return COPYRIGHT_INFO;} diff --git a/docs/release/src/hbmame/hbmame.lst b/docs/release/src/hbmame/hbmame.lst new file mode 100644 index 00000000000..6dacc7b06ad --- /dev/null +++ b/docs/release/src/hbmame/hbmame.lst @@ -0,0 +1,2527 @@ +// license:BSD-3-Clause +// license:BSD-3-Clause +// copyright-holders:Robbbert +/****************************************************************************** + + hbmame.lst + + List of all enabled drivers in the system. + +**************************************************************************** + + + /* 1942 */ +1942 //parent +1942c64 // 1942 with C64 sounds (by minwah) +1942fpa // 1942 with free play (by cmonkey) +galagax /* Jerky - Chris Moore hack of 1942 */ + + /* 1943 */ +1943 //parent +1943h /* Hacked to have the vendor name and phone number */ + + /* arkanoid */ +arkanoid /* A75 (c) 1986 Taito Corporation Japan (World) */ +akblc2dx /* hack */ +akgcdx /* hack */ +aktaytdx /* hack */ +arkll32 /* LLMAME 32 */ + + /* asteroid */ +asteroid +asteroid6 /* Clay Cowgill Bullet Hack */ +astdelux4 +starslayer // star destroyer, hack of asteroid2 +//amg // test only + + /* astrocde */ +tst_gorf /* Gorf test rom */ +tst_gor1 /* Gorf test rom */ +tst_wow2 /* Wow test rom */ +tst_wow3 /* Wow test rom */ + + /* astrof */ +astrf_bl /* Black Background */ + + /* asuka */ +asuka // parent +asukac // chinese + + /* atari_s1 */ +//atarians // parent +//atarianb /* hack for emulators */ + + /* bagman */ +bagturbo +pickinpi /* Color Hack by Pi */ + + /* blktiger */ +blkdrgnk /* Korean Translation */ + + /* bombjack */ +bombjack /* (c) 1984 Tehkan */ +bmbjckgr /* Vag @ GreekRoms */ +bombjckb /* bootleg */ +bombjred /* hack by unknown French person */ + + /* btime */ +btime /* (c) 1982 */ +bnjr /* Bump N Jump Reverse Mod */ +pnc /* Pac N Chase */ +stictime /* Marks Hack of btime */ +vecbtime /* T-Bone hack of Burgertime */ + + /* bublbobl */ +bublbobl /* A78 (c) 1986 Taito Corporation */ +bbaladar /* Aladar Bootleg */ +bb2bmh /* Overclocked Bubblebobble Memories Hack */ +bbhackv1 /* OVerclocked Level Hack */ +bbredux1 /* Punji - Bubble Bobble Redux with Level Skip */ +bbredux2 /* Punji - Bubble Bobble Redux with Level Skip and Game Continue */ +bbredux3 /* Punji - Bubble Bobble Redux with Level Skip, Game Continue, and High Score Save */ +bublbobf /* Arkatrad */ +sboblboblh /* level select hack */ + + /* bwidow */ +spacwarp /* Jeff Hendrix - Proto on Space Duel HW */ + + /* cave */ +pwrinst2 +pwrinst2h /* 2013 Hack by TT */ + + /* cball */ +cball // parent +cballfix // With MASH 'fixed' gfx rom + + /* cclimber */ +ckong /* (c) 1981 Falcon */ +tongypac +ckongfix /* Graphics Fix */ +ckonga2 +ckonga3 +cclimbrm /* Tim Arcadecollecting Modded Version */ + + /* centiped */ +centiped /* 136001 (c) 1980 */ +milliped /* 136013 (c) 1982 */ +astroped /* Twisty Hack of Centipede */ +astropd2 /* Twisty Hack of Centipede */ +cemescry /* NoSync hack of Centipede */ +killiped /* The Dog hack of Centipede */ +pacipede /* Jeff Coleburn hack of Centiped */ +silliped /* Andy hack of Millipede */ +vectiped /* The Dog hack of Centipede */ +vectrped /* T-Bone hack of Centipede */ +centipb /* bootleg of centipdb */ +magworm2 /* bootleg of magworm */ + + /* cinemat */ +bbugtest /* Test Rom */ + + /* commando */ +commando /* 5/1985 (c) 1985 (World) */ +comdelux /* Twisty Hack */ +comdlux1 /* Twisty Hack */ + + /* cps1 */ +3wonders // parent +captcomm // parent +cawing // parent +dino // parent +ffight // parent +ghouls // parent +kod // parent +knights // parent +megaman // parent +punisher // parent +sf2 // parent +sf2ce // parent +slammast // parent +strider // parent +varth // parent +wof // parent + + /* cps1mis */ +3wondrud +//captcocc // not working +captcomc // chinese +captcomh +captcoud +//captcovs // not working +cawingb +cps1demo /* Charles Doty */ +cps1frog /* Charles Doty */ +cps1test /* Cal2 */ +cps1testa /* Cal2 */ +daimakb /* Found in Mame Plus */ +dino08h2 +dino08h3 +dino08hp +dinob /* 1993 Cadillacs and Dinosaurs (bootleg) */ +dinobt +dinobtpp +dinocgba +dinocgbb +dinocgbc +dinoeh +dinoex +dinoh /* 1993 Cadillacs and Dinosaurs (Hack) */ +dinoha /* 1993 Cadillacs and Dinosaurs (Hack) */ +dinohb /* 1993 Cadillacs and Dinosaurs (Hack) */ +dinohp +//dinohx // crashes in the "underground", demo sound only works on first run. +dinojp // 2010 Pipi899, RockWall, Zhyxxxx +dinorp +dinoslice +dinouphp +dinoz /* Boss Hack */ +ffightb +knight21 // debug +//knightsa // - rom missing +knightsb2 +knightsh /* 1991 Knights of the Round (Hack) */ +knightsha /* 1991 Knights of the Round (Hack) */ +knightsjb +knightsro // Sebastian Mihai - Romanian translation 2015 +knightud +//kodd // not working +kodh +kodsp +//kodud // not working +pnicku /* 06/08/1994 (c) 1994 + Compile license (Japan) not listed on Capcom's site */ +punisherb /* Found in neht build */ +punisherf /* Flash version 24/7/2009 by Zhyxxxx */ +punisherje1 +punisherjh +punisherjh1 +punisherjha +punisherud1 +punisherud2 +sf2c // sf2, chinese +sf2cebr /* hack, Brasil 920313 */ +sf2ced /* hack, Hispanic 990804 */ +sf2ceda /* hack, Hispanic 990804 */ +sf2ceh /* hack, Hispanic 990804 */ +sf2koryuh /* Hack by TT */ +sf2h9 /* Found in Mame Plus */ +sf2h10 /* Found in Mame Plus */ +sf2h11 /* Found in Mame Plus */ +sf2h12 /* Found in Mame Plus */ +sf2h13 /* hack */ +sf2pun /* Drakon, Punishment Edition v1 Final */ +sf2sl73a /* Drakon, Sheng Long v7.3a */ +sf2th +sf2tha +sf2tlona /* hack, Tu Long set 1 */ +sf2tlonb /* hack, Tu Long set 2 */ +sf2tlonc /* hack, Tu Long set 3 */ +sf2turyu /* hack, Tu Long prototype */ +sf2yyc3d5 +sf2yyc3g +sf2yyc6 +sk2h1 /* 1999 Legend of Three Kingdoms' Heroes / Sanguo Yingxiong Zhuan */ +sk2h2 /* 1999 Legend of Three Kingdoms' Heroes / Sanguo Yingxiong Zhuan */ +sk2h3 // mame sgyxz for testing +sk2h11 /* 1992 Sangokushi II (Hack 1) */ +sk2h12 /* 1992 Sangokushi II (Hack 2) */ +sk2h13 /* 1992 Sangokushi II (Hack 3) */ +sk2h14 /* Chinese language */ +sk2h21 /* 1997 Three Sword Masters / San Jian Sheng */ +sk2h22 // San Jian Sheng (Chinese bootleg of Sangokushi II +sk2h31 /* 1997 Three Holy Swords / San Sheng Jian */ +sk2h32 /* 1997 Three Holy Swords / San Sheng Jian */ +sk2h33 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */ +sk2h34 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */ +sk2h35 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */ +sk2h1q // qsound version of sk2h1 +sk2h2q +sk2h31q +sk2h32q +sk2h33q +sk2h34q +slammastud +stridergf // fix unwanted black specks +stridergh // as above, and uncensored +sk2h15 // wofaehp +sk2h16 // wofahp2 +wofb +wofch +wofch_v3 +wofchdx +wofchdx1 +wofchdx2 +wofchspp +wofjcn // chinese language +woffr /* Neo-Arc French Trans */ +wofjh +wofjhb // was dynwarjh in another life +wofjhc // was dynwarj2 in another life +wofjm +wofjzero +wofr1h +wofsf2 + + /* cps2 */ +1944 //parent +1944da +1944fp +ddsom //parent +ddsomavs +ddsomchs +ddsomhp +ddsomjfs +dstlk //parent +halfway // progear hack +mpang //parent +mpangjd +progear //parent +suicide /* Razoola */ +suicide2 /* Razoola */ +sfa //parent +sfa2 //parent +sfa2h +sfaud +sfz2abr +ssf2 +ssf2r1d +ssf2t //parent +ssf2td +spf2t //parent +spf2tb // boss hack +vampjb + + /* cps3 */ +redearth // parent +redeartn // no-cd version - needs correct bios +sfiii3 // parent +sfiii3an // hack +sfiii4rd // hack + + /* dec0 */ +baddudes // parent +baddudef /* Arkatrad */ +decodemo /* Charles Doty */ + + /* dkong */ +dkong /* (c) 1981 Nintendo of America */ +dkongex /* Jeff's Hack with Foundry Level */ +dkongp /* Fix for level 22 kill screen by Don Hodges */ +dkongpac /* Tim Appleton - Donkey Kong with Pacman graphics */ +kong2600 /* Vic Twenty George hack of Donkey Kong */ +nadkong +dkong2m +dkrainbow +dkrdemo + + /* docastle */ +dorunrun /* (c) 1984 */ +sdreturn + + /* ertictac */ +//armdemo /* Charles Doty */ // totally broken + + /* exidy */ +targ /* needed parent */ +targtest /* Targ Test Rom */ + + /* exerion */ +exerionj /* Japanese version */ +exriongr /* Vag @ GreekRoms 2004 */ + + /* fcrash */ +fcrash +ffightbl +ffightbla +kodb +varthb // from mame+ +// from mame+ to be checked +captcommb2 + + /* galaga */ +galaga +xevious +galagads +galagab2 +galaga84 +nebulbee +galaga99 /* Jerky and Sil hack of Galaga */ +galagabl /* Namco 1982 version of Gallag */ +galagaf /* Fast Shoot Hack */ +galagap /* Patch to fix level 0 crash, by Don Hodges */ +galagix /* Galaga Meets Phoenix */ +galagost /* Twisty Hack of Galaga */ +galagosb /* Twisty Hack of Galaga 20021128 */ +galaped /* Cary Barnhard hack of Galaga */ +galgaxin /* T-Bone hack of Galaga */ +terror /* Galaga Terrorist Hack */ +galagaef /* Galaga Terrorist Hack */ +vgalaga /* Galaga Vector Hack */ +vgalagam +vgalagaf +battlesh /* Battles 2002 */ +gaous /* Xevious Hack */ +mrdonm /* Mr Do Nightmare */ +sxvioush /* Super Xevious 2002 */ +xevioush /* Xevious 2002 */ +xviousah +xeviousp /* Xevious Plus! */ +xevious3 /* Xevious 2003 */ +xevious4 /* Xevious 2004 */ +xevious5 /* Xevious 2005 */ +xeviblk /* Xevious Black */ + + /* galaxian */ +amidar /* GX337 (c) 1981 Konami */ +mooncrst /* (c) 1980 Nichibutsu */ +pisces /* Subelectro */ +scramble /* GX387 (c) 1981 Konami */ +frogger /* GX392 (c) 1981 Konami */ +amidarf /* ArkaMAME */ +amidargr /* GreekRoms 2004 */ +andromd /* hack - Renamed to avoid confusion with andromed (ex TestDriver) */ +buglaxn /* The Dog hack of Galaxian */ +fourplay +galaxiab /* unknown hack of Galaxian */ +galaxkyo /* unknown hack of Galaxian Part X */ +galaxni /* Petaco bootleg of Galaxian Part X */ +galinvad /* T-Bone hack of Galaxian */ +galnamco /* The Original Namco */ +gaylaxn /* The Dog hack of Galaxian Part X */ +jumpbugx /* jumpbug with extra sounds */ +kazzy +monstrz +mooncmst +mooncrs5 /* clone of fantazia */ +offender /* Chris Henry hack of scramble */ +starfgh2 /* Bootleg of Pisces */ +superdog /* Jerky Hack Hack of scramble */ +trukker /* Grimlick hack of Frogger */ +tst_frog /* JROK */ +vectrgal /* T-Bone hack of Galaxian */ +videight /* 8in1 multigame */ +wbeast /* Bootleg of War-of-Bug */ + + /* gauntlet */ +gaunt2 // parent +gaunt2ls // Orange Elf - new levels +gaunt2s /* Speed Hack */ +gaunt2f // graphics hack + + /* gottlieb */ +qbert /* GV-103 (c) 1982 Gottlieb */ +711qbert /* Hack of Mello Yellow QBert */ +pbert +qbertb /* */ +vbert + + /* ir */ +invrvnge + + /* itech8 */ +itecdemo /* Charles Doty */ + + /* jrpacman */ +jrpacman /* (c) 1983 Midway */ +jr1000 /* Blue Justice */ +jr1000_2 /* Blue Justice */ +jr2000 /* Blue Justice */ +jr2001 /* Blue Justice */ +jr2001p /* Blue Justice */ +jr2002 /* Blue Justice */ +jr2002p /* Blue Justice */ +jr2003 /* Blue Justice */ +jr2003p /* Blue Justice */ +jr2004 /* Blue Justice */ +jr2004p /* Blue Justice */ +jr2005 /* Blue Justice */ +jr2005p /* Blue Justice */ +jr3000p /* Blue Justice */ +jr4000p /* Blue Justice */ +jr5000p /* Blue Justice */ +jr6000 /* Blue Justice */ +jr7000 /* Blue Justice */ +jr7000p /* Blue Justice */ +jr8000 /* Blue Justice */ +jr8000p /* Blue Justice */ +jr9000p /* Blue Justice */ +jrdeluxe /* Blue Justice */ +jrhearts +jrpacad +jrpacjr /* Blue Justice */ +jrpacjrp /* Blue Justice */ +jrpacp /* Blue Justice */ +jrvectr /* T-Bone hack of Jr. Pac-Man */ +jrfast +jrcheat +jrspeed +jryumyum /* Tim Appleton: Jr.Pacman vs Yum Yum */ + + /* kof94 */ +kof94b +kof94blk +kof94br +kof94cyk +kof94eh +//kof94h rom missing +kof94k +kof94ru +kof94ruj +kof94rz +kof94seh +kof94sri +kof94y + + /* kof95 */ +kof95b +kof95bln +kof95brz +kof95ce +kof95d +kof95eh +kof95hp +kof95pjc +kof95ru +kof95seh +kof95xg +kof95y + + /* kof96 */ +kof96a +kof96ae +kof96ae1 +kof96ae1a +kof96b +kof96b1 +kof96bb +kof96c +kof96cbi +kof96ckvs +kof96cn +kof96cr +kof96chj +kof96de +kof96eh +kof96ep +kof96ep2 +kof96ep3 +kof96evo +kof96evoo +kof96ey +kof96hp +kof96hpr +kof96k +kof96k1 +kof96k3 +kof96k3o +kof96kt // supposedly a korean translation, but looks the same to me. +kof96lx +kof96ncd +kof96oib //IsmaMj +kof96oib2 //IsmaMj +kof96oih +kof96oir +kof96pjc +kof96pm +kof96rcw +kof96rf +kof96rfs +kof96ri +kof96ri1 +kof96ri2 +kof96ri3 +kof96ri4 +kof96ri5 +kof96rm +kof96rp +kof96rp1 +kof96rss +kof96ru +kof96rw +kof96ryu +kof96seh + + /* kof97 */ +kof97aa +kof97ae +kof97ae1 +kof97bh +kof97bng +kof97bs +kof97cb2 +kof97chris +kof97cn +kof97co +kof97co6 +kof97cr +kof97chl +kof97chl2 +kof97eh +kof97eh2 +kof97eho +kof97evo +kof97evoa +kof97hk +kof97hl +kof97hxd +kof97ice +kof97kai +kof97kp +kof97kp1 +kof97lb +kof97lc +kof97lr +kof97m +kof97mit +kof97mj +kof97nd +kof97ne +kof97neo +kof97nude +kof97phl +kof97pj +kof97pjc +kof97pl2 +kof97pl3 +kof97pla +kof97plc +kof97plus +kof97pm +kof97ps +kof97rev +kof97rk +kof97rv +kof97saw +kof97sed +kof97sex +kof97shi +kof97sm +kof97svs +kof97sw +kof97wh +kof97wpls +kof97xbt +kof97xi +kof97xp +kof97xt +kof97xt1 +kof97xxx +kof97y +kof97ya +kof97yb +kof97ye +kof97yg +kof97yh +kof97yk +kof97yk1 +kof97yk2 +kof97yl +kof97yl2 +kof97yo +kof97z +kof97zm + + /* kof98 */ +kof98aas +//kof98ae //black splashes all over fight scene where cars speed past +kof98ae0 +kof98ae1 +kof98ae2 +kof98b +kof98bh +kof98c2006 +kof98c20070720 +kof98c20070923 // sometimes reboots itself +kof98c20080524 // sometimes reboots itself +kof98c20080616 // sometimes reboots itself +kof98c20080712 // sometimes reboots itself +kof98c20090620 // sometimes reboots itself +kof98c20090923 +kof98c20100214 +kof98c20110114 +kof98c20120116 +kof98c20120915 +kof98c20130213 +kof98c20130311 +kof98c20130509 +kof98c20130528 +kof98c20130617 +kof98c20130808 +kof98c20130820 +kof98c20131113 +kof98c20140101 +kof98c20140110 +kof98c20140118 +kof98c20140204 +kof98c20140213 +kof98c20140217 +kof98c20140228 +kof98c20140302 +kof98c20140310 +kof98c20140317 +kof98c20140403 +kof98c20140412 +kof98c20140416 +kof98c20140419 +kof98c20140428 +kof98c20140504 +kof98c20140524 +kof98c20140606 +kof98c20140620 +kof98c20140717 +kof98c20140809 +kof98c20140816 +kof98c20140824 +kof98c20140906 +kof98c20140924 +kof98c20141002 +kof98c20141020 +kof98c20150201 +kof98c20150228 +kof98c20150302 +kof98c20150310 +kof98c20150330 +kof98c20150528 +kof98c20150614 +kof98c20150705 +kof98c20150729 +kof98c20150827 +kof98c20151103 +kof98c20151108 +kof98c20151110 +kof98c20151223 +kof98cd +kof98cd1 +kof98ch +kof98chl +kof98chris +kof98cn +kof98cn1 +kof98cos +kof98cos1 +kof98cos2 +kof98cta // (kof98c20080801) - sometimes reboots itself +kof98dc +kof98ehr +kof98evl +kof98evo +kof98evo2 +kof98f +kof98fr +kof98fro +kof98fro2 +kof98frp //slutfest +kof98gold +kof98hk +kof98ice +kof98ico +kof98iori +kof98jh +kof98k95 +kof98klc +kof98lb +kof98lv +kof98m +kof98mix /* KOF98 mix 2011-10-01 */ +kof98nc +kof98new +kof98pjc +kof98rh +kof98rh1 +kof98rl +kof98rm +kof98seh +kof98seho +kof98sof +kof98sp +kof98sp2 +kof98sr +kof98tim +kof98ul +kof98ur +kof98urf +kof98wh +kof98wh1 +kof98wh2 +kof98xi +kof98y +kof98yh + + /* kof99 */ +kof99ab +kof99ae /* Anniversary Edition */ +kof99ae0 +kof99ae20140408 +kof99ae20140624 +kof99ae20150121 +kof99ae20150520 +kof99ae20150711 +kof99bh +kof99bhs +kof99bs +kof99ch +kof99chf +kof99co +kof99co2 +kof99d +kof99eh +kof99ehr +kof99eur +kof99eur1 +kof99eur2 +kof99eur3 +kof99evo +kof99fc +kof99fc0 +kof99fc1 +kof99fc2 +kof99fix +kof99fmi +kof99hbi +kof99hp +kof99iori +kof99jh +kof99jho +kof99kp +kof99lb +kof99m +kof99nd +kof99ndh +kof99ob +kof99ob2 +kof99pb +kof99pjc1 +kof99pjc2 +kof99pjc3 +kof99pjco +kof99pk +kof99pko +kof99pm +kof99pt +kof99py +kof99r +kof99revo +kof99rp +kof99rp0 +kof99rp1 +kof99rp2 +kof99rp3 +kof99rp4 +kof99rp5 +kof99rp6 +kof99rp7 +kof99rp8 +kof99rp9 +kof99rpa +kof99rpb +kof99rpc +kof99rpp +kof99rr +kof99rs +kof99rsm +kof99rsp +kof99seh +kof99sp +kof99sr +kof99srr +kof99the4 +kof99the42 +kof99wet +kof99wh1 +kof99wh2 +kof99wh3 +kof99wh4 +kof99xpsa +kof99xpsf +kof99xpsp +kof99xxx +kof99y +kof99yb +kof99yd + + /* kof2000 */ +kof2000d +kof2000r +kof2kbh +kof2kbj +kof2kbsd +kof2kce +kof2kch +kof2kcp +kof2keh +kof2kehr +kof2kevo +kof2kevo1 +kof2kevo2 +kof2kevo3 +kof2kgbh +kof2kgold +kof2kice +kof2kiori +kof2kjlc +kof2kkf1 +kof2kkvs +kof2kkzs +kof2knd +kof2kpjc +kof2kpjc1 +kof2kpjc2 +kof2kpjc3 +kof2kpls +kof2krm +kof2krp +kof2kryu +kof2kseh +kof2kst +kof2kwh +kof2kwh2 +kof2kxxx +kof2ky +kof2kyd +kof2kyg +kof2kz +kof2kzs + + /* kof2001 */ +kof2001d +kof2001n +kof2k1ay +kof2k1b +kof2k1b1 +kof2k1b3 +kof2k1b4 +kof2k1bd2 +kof2k1bh +kof2k1bh1 +kof2k1bs +kof2k1bs2 +kof2k1ce +kof2k1cfc +kof2k1cf1 +kof2k1ch +kof2k1clr +kof2k1cp +kof2k1cp1 +kof2k1cp2 +kof2k1cp3 +kof2k1cp4 +kof2k1cp5 +kof2k1cp6 +kof2k1cp7 +kof2k1cr +kof2k1eh +kof2k1ehc +kof2k1ehr +kof2k1gm +kof2k1guan +kof2k1ha +kof2k1ha2 +kof2k1hao +kof2k1hb +kof2k1hgm +kof2k1ice +kof2k1ic2 +kof2k1k3o +kof2k1k32 +kof2k1k33 +kof2k1k34 +kof2k1k35 +kof2k1k36 +kof2k1k37 +kof2k1k38 +kof2k1k39 +kof2k1k3a +kof2k1k3b +kof2k1k3c +kof2k1k3d +kof2k1k3e +kof2k1k3f +kof2k1k3g +kof2k1k3h +kof2k1ki +kof2k1lse +kof2k1mk2 +kof2k1mk +kof2k1mke +kof2k1pa +kof2k1pa2 +kof2k1pjc +kof2k1pjo +kof2k1pj1 +kof2k1pj2 +kof2k1pj3 +kof2k1pls +kof2k1rm +kof2k1rp +kof2k1rp0 +kof2k1rp1 +kof2k1rpo +kof2k1ru +kof2k1ru0 +kof2k1seh +kof2k1sob +kof2k1st +kof2k1st2 +kof2k1wh +kof2k1z1 +kof2k1z2 +//kf2k1pa +//kf2k1pls + + /* kof2002 */ +kof2002d +kof2002x +kof2k2ath +kof2k2b // no sound in attract mode +kof2k2b1 +kof2k2bh +kof2k2bjh +kof2k2bjo +kof2k2bld +kof2k2blood2 +kof2k2br +kof2k2br1 +kof2k2br2 +kof2k2bs +kof2k2c2 +kof2k2cf1 +kof2k2cf2 +kof2k2cf3 +kof2k2cfc +kof2k2ch +kof2k2chl +kof2k2cl2 +kof2k2cl3 +kof2k2cn +kof2k2cori +kof2k2dbh +kof2k2e1 +kof2k2e2 +kof2k2e3 +kof2k2ehr +kof2k2er2 +kof2k2er3 +kof2k2er4 +kof2k2erx +kof2k2evo +kof2k2evo2 +kof2k2fy +kof2k2gc +kof2k2gc2 +kof2k2gf +kof2k2green +kof2k2ht +kof2k2ibp +kof2k2ic1 +kof2k2ic2 +kof2k2ice +kof2k2jc +kof2k2js +kof2k2js2 +kof2k2js4 +kof2k2k2 +kof2k2k3o +kof2k2k32 +kof2k2k33 +kof2k2k34 +kof2k2k35 +kof2k2k36 +kof2k2k37 +kof2k2k38 +kof2k2k39 +kof2k2k3a +kof2k2k3b +kof2k2k3c +kof2k2k3d +kof2k2k3e +kof2k2k3f +kof2k2k3g +kof2k2kai +kof2k2kc +kof2k2kc2 +kof2k2kk +kof2k2lb // no sound in attract mode +kof2k2leon +kof2k2mcr +kof2k2moi2 +kof2k2moir // no sound in attract mode +kof2k2mp1 /* Magic Plus */ +kof2k2mp3 /* Magic Plus III - Ismamj */ +kof2k2mpu +kof2k2ngp +kof2k2nu +kof2k2olp +kof2k2omg8 +kof2k2omg9 +kof2k2omg9b +kof2k2on +kof2k2or +kof2k2ori +kof2k2ori2 +kof2k2pa +kof2k2pjw // no sound in attract mode +kof2k2plb +kof2k2pr +kof2k2pro +kof2k2ps2 +kof2k2ps2a +kof2k2ps2mp +kof2k2pur +kof2k2ra +kof2k2rgl // no sound in attract mode +kof2k2rm +kof2k2rma +kof2k2rmb +kof2k2rm1 +kof2k2rm2 +kof2k2rm3 +kof2k2rm13 // no sound in attract mode +kof2k2rr // no sound in attract mode +kof2k2rr1 +kof2k2rr2 // no sound in attract mode +kof2k2rr3 +kof2k2rr4 +kof2k2rr5 +kof2k2rr6 +kof2k2rr7 +kof2k2rr8 // no sound in attract mode +kof2k2rs +kof2k2rs2 +kof2k2ru +kof2k2rw +kof2k2sb +kof2k2seh +kof2k2se2 +kof2k2sm // bad gfx on train scene +kof2k2smg +kof2k2smg2 +kof2k2soi +kof2k2sp +kof2k2spl +kof2k2spls +kof2k2spo +kof2k2tc +kof2k2ul +kof2k2ule +kof2k2wuk // no sound in attract mode +kof2k2xxx +kof2k2bd //not working +//kf2k2plc + + /* kof2003 */ +kof2003d +kof2003f +kof2003rebh +kof2k3b +kof2k3br +kof2k3bs4 +kof2k3d +kof2k3evo +kof2k3gc +kof2k3hd +kof2k3pcd +kof2k3ps2 +kof2k3ryu +kof2k3sc +kof2k3tc +kof2k3zgf +//kof2k3bd +//kof2k3pd +//kof2k3upd + + /* kyugo */ +airwolf //parent +airwolffr // french + + /* m52 */ +mpatrol //parent +spatrol /* Sponge Patrol - Gatinho 2008 */ + + /* maketrax */ +eyes /* (c) 1982 Digitrex Techstar + "Rockola presents" */ +aa /* Widel's Games */ +absurd /* scott - nonworking alpha ver 3 */ +//alpaca7 /* Jerronimo (useless) */ +//alpaca8 /* Jerronimo (useless) */ +bace /* Widel's Games */ +crashh /* PacMAME Hacks */ +dderby /* Widel's Games */ +eyesb +kangaroh /* Widel's Games */ +lazybug +lazybug1 +mtturbo /* Tim - Make Trax Turbo Hack */ +pachello /* Jerronimo */ +pacmatri /* Jerronimo */ +pactest /* Widel's Games */ +ppong /* Widel's Games */ +ppong2 /* Widel's Games */ +rainboh /* Widel's Games */ +seq1 /* Jerronimo */ +seq2 /* Jerronimo */ +tst_pacm +wavybug +zap /* Widel's Games */ + + /* mappy */ +mappy //parent +superpac //parent +crackhea /* Cary Barnhard hack of Mappy */ +housepty /* Jerky hack of Mappy */ +marpy +superpc1 /* Paul Smith */ +superpcn /* Blue Justice */ +superpcp /* Blue Justice */ +superpcs /* Paul Smith */ +vectrsup /* T-Bone hack of Super Pac-Man */ + + /* mario */ +cenmario + + /* mcr */ +handiman /* Bobby Tribble hack of Tron */ +shtron /* Jerronimo */ +stapper /* Tapper Simpsons Hack */ +stapper1 /* Tapper Simpsons Hack ver .81 */ + + /* mcr3 */ +sarge //parent +sargex /* Gatinho Sarge x-rated */ + + /* mgd2 */ +bstarsd /* 0002 (c) 1990 SNK */ +tpgolfd /* 0003 (c) 1990 SNK */ +maglordd /* 0005 (c) 1990 Alpha Denshi Co. */ +ridherod /* 0006 (c) 1990 SNK */ +alpham2d /* 0007 (c) 1991 SNK */ +ncombatd /* 0009 (c) 1990 Alpha Denshi Co. */ +cyberlipd /* 0010 (c) 1990 SNK */ +superspyd /* 0011 (c) 1990 SNK */ +mutnatd /* 0014 (c) 1992 SNK */ +kotmd /* 0016 (c) 1991 SNK */ +sengokud /* 0017 (c) 1991 SNK */ +burningfd /* 0018 (c) 1991 SNK */ +lbowlingd /* 0019 (c) 1990 SNK */ +gpilotsd /* 0020 (c) 1991 SNK */ +joyjoyd /* 0021 (c) 1990 SNK */ +lresortd /* 0024 (c) 1992 SNK */ +eightmand /* 0025 (c) 1991 SNK / Pallas */ +minasand /* 0027 (c) 1990 Monolith Corp. */ +2020bbd /* 0030 (c) 1991 SNK / Pallas */ +socbrawld /* 0031 (c) 1991 SNK */ +roboarmyd /* 0032 (c) 1991 SNK */ +fatfury1d /* 0033 (c) 1991 SNK */ +fbfrenzyd /* 0034 (c) 1992 SNK */ +bakatonod /* 0036 (c) 1991 Monolith Corp. */ +crswordd /* 0037 (c) 1991 Alpha Denshi Co. */ +trallyd /* 0038 (c) 1991 Alpha Denshi Co. */ +sengoku2d /* 0040 (c) 1993 SNK */ +3countbd /* 0043 (c) 1993 SNK */ +aofd /* 0044 (c) 1992 SNK */ +androdund /* 0049 (c) 1992 Visco */ +ncommandd /* 0050 (c) 1992 Alpha Denshi Co. */ +wh1d /* 0053 (c) 1992 Alpha Denshi Co. */ + + /* mineswp */ +mineswp /* Minesweeper */ + + /* midtunit */ +mk //parent +mkfr // french +mkturbod /* MK protection hack */ +mktturboen // Zenomorp 2012 Turbo Endurance +mktturbopi // Zenomorp 2012 Turbo Projectile Insanity +mk2 //parent Mortal Kombat II r3.1 +mk2fr // french +mk2r33 // Mortal Kombat II r3.3 +umk2te50 // Ultimate MKII Tournament Edition r5.0.050 +umk2te51 // Ultimate MKII Tournament Edition r5.0.051 +umk2te52 // Ultimate MKII Tournament Edition r5.0.052 + + /* midwunit */ +umk3 //parent +umk3j /* UMK3 1.2 Juggernaut Hack v1.0 */ +umk3z /* UMK3 1.2 Zeus hack */ +umk3te /* UMK3 Tournament Edition 2.0.032b8 */ +umk3te2 /* UMK3 Tournament Edition 2.0.035 */ + + /* midyunit */ +mkla4d /* MK protection hack */ + + /* mitchell */ +mitcdemo /* Charles Doty */ + + /* mmagic */ +mmagic + + /* monaco */ +monaco + + /* mrdo */ +mrdo /* (c) 1982 */ +mrdigdo /* Justin Clark hack of Mr. Do! */ +mrdofast /* Speedup hack from Evil Exidy*/ +mrpac /* Twist Hack 20020813 */ +mrpacb +newdigdo /* Vic 20 George and Jerky hack of... */ +stickydo /* Marck's Hacks */ + + /* mslug */ +msboot +mslugeh +mslug2eh +mslug2eh0 +mslug2eh1 +mslug2eh2 +mslug2eh3 +mslug2eh4 +mslug2fr +mslug2fro +mslug2sh +mslug2t // 2015 trap15 - remove slowdowns that plague gameplay +mslugxeb +mslugxeh +mslugxeh1 +mslugxex +mslugxfr +mslugxfro +mslugxit +mslugxhp +mslugxp +mslugxr +mslugxst +mslug3d +mslug3d1 +mslug3eha +mslug3ehs +mslug3e02 +mslug3e03 +mslug3e04 +mslug3e05 +mslug3e06 +mslug3e07 +mslug3e08 +mslug3e09 +mslug3e10 +mslug3e11 +mslug3e12 +mslug3e13 +mslug3e14 +mslug3e15 +mslug3e16 +mslug3e17 +mslug3e18 +mslug3e19 +mslug3e20 +mslug3e21 +mslug3e22 +mslug3eb +mslug3fr +mslug3fro +mslug3kh +mslug3kho +mslug3v /* EEZEZY Violence Edition */ +mslug4d +mslug4dh /* Super D version */ +mslug4dh1 +mslug4eh +mslug4eh2 +mslug4eh3 +mslug4eh4 +mslug4eh5 +mslug4eh6 +mslug4eho +mslug4fr +mslug4i +mslug4i1 +mslug4kh +mslug4nd +mslug5b +mslug5d +mslug5d1 +mslug5fr +mslug5fr1 +mslug5hd +mslug5l9a +mslug5l9b +mslug5nd +ms5boot +ms5pcbd + + /* mspacman */ +mspacman /* (c) 1981 Midway */ /* made by Gencomp */ +chtmsatk /* PacMAME Hacks */ +chtmspa /* PacMAME Hacks */ +cookiem +cottoh /* Gatinho hack of mspacman, to simulate what Crazy Otto might have been like */ +cottoh2 /* Gatinho hack of mspacman, to simulate what Crazy Otto might have been like */ +fasthang +fastpuck +fasthear /* PacMAME Hacks */ +fastmspa /* PacMAME Hacks */ +fastpop +faststrm /* PacMAME Hacks */ +fstmsatk /* PacMAME Hacks */ +fstpman2 +heartbn2 /* PacMAME Hacks */ +heartbrn /* unknown hack of Ms. Pac-Man */ +horizpab /* Jerronimo v1.0 2004 */ +horizpac /* Jerronimo */ +mrmrspac +mrpacman +ms1000 /* Blue Justice */ +ms2000 /* Blue Justice */ +ms2600 /* T-Bone hack of Ms. Pac-Man */ +ms3000 /* Blue Justice */ +ms4000p /* Blue Justice */ +ms5000 /* Blue Justice */ +ms5000p /* Blue Justice */ +msatk2ad /* PacMAME Hacks */ +msatkad +msbaby /* T-Bone hack */ +msberzk /* Bobby Tribble hack of Ms. Pac-Man */ +mscrzyma /* Blue Justice */ +mscrzymp /* Blue Justice */ +msdroid /* Grendal74 */ +msdstorm /* Mike Naylor hack of Ms. Pac-Man */ +mselton /* Sil hack of Ms. Pac-Man */ +msextra /* Blue Justice */ +msextrap /* Blue Justice */ +msf1pac /* Sil hack of Ms. Pac-Man */ +msgrkatk /* Grendal74 */ +msgrkb /* Grendal74 */ +mshangly /* PacMAME Hacks */ +mshearts /* PacMAME Hacks */ +msheartb +msindy /* Sil hack of Ms. Pac-Man */ +msmini /* T-Bone hack of Ms. Pac-Man */ +msminia /* T-Bone hack of Ms. Pac-Man */ +msmspac /* Blue Justice */ +msnes4a /* T-Bone hack of Ms. Pac-Man */ +msnes62 /* T-Bone hack of Ms. Pac-Man */ +msnes63 /* T-Bone hack of Ms. Pac-Man */ +msnes6m /* T-Bone hack of Ms. Pac-Man */ +msnes6m2 /* T-Bone hack of Ms. Pac-Man */ +msnes6m3 /* T-Bone hack of Ms. Pac-Man */ +msnes6m4 /* T-Bone hack of Ms. Pac-Man */ +mspac1 /* from Greekmame 0.87 */ +mspac6m /* Sil hack of Ms. Pac-Man */ +mspac6m2 /* Sil hack of Ms. Pac-Man (fixed) */ +mspacad /* Sil hack of Ms. Pac-Man */ +mspacat2 /* Sil hack of Miss Pac Plus */ +mspacatb +mspacde +mspacdel /* Blue Justice */ +mspacfnt +mspachi +mspacii +mspacit +mspacit2 +mspacj +mspacmap /* Don Hodges patch to fix various bugs in mspacmab */ +mspacmbg +mspacnes /* T-Bone hack of Ms. Pac-Man */ +mspacp /* Blue Justice */ +mspacpbl /* Dav/PMP bootleg */ +mspacren /* T-Bone hack of Ms. Pac-Man */ +mspacrip /* R3mer hack of Ms. Pac-Man */ +mspacsup /* Super Ms. Pac-Man */ +mspacwf /* Tim Appleton - Ms. PacMan Weird Fruit */ +mspamsba /* Blue Justice */ +mspc6mad /* T-Bone hack of Ms. Pac-Man */ +msplus /* Blue Justice 20010824 */ +msrumble +mssilad /* PacMAME Hacks */ +msstrmaz /* Blue Justice */ +msultra +msvctr6m /* T-Bone hack of Ms. Pac-Man */ +msvectr /* PacMAME Hacks */ +msyakman /* PacMAME Hacks */ +ottop1 +ottop2 +ottop3 +ottopz +pacatk /* Widel's Games */ +pacgalu +pacgent +pacrab +pacsnoop /* Jerronimo */ +petshop +pheartb +piranha2 +ramsnoop /* Jerronimo */ +sueworlb +sueworld +superp4g +superp4m +supmspac /* Spedic Vending bootleg */ +vectratk /* Sil and T-Bone hack of Ms. Pac-Man */ +womanp5 +zolamaze +zolaad /* PacMAME Hacks */ +zolaatk /* PacMAME Hacks */ +zolapac /* PacMAME Hacks */ +zolaslow /* PacMAME Hacks */ +zolatunl /* PacMAME Hacks */ +zolavect /* PacMAME Hacks */ + /* "Pacman hardware" games (hires hacks) */ +mschampx /* hack */ +mspacmnx /* (c) 1981 Midway */ /* made by Gencomp */ +mspacmfx /* hack */ +mspacatx /* hack */ +mspacmbx /* bootleg */ +mspacplx /* hack */ +pacgalx /* hack */ + + /* multipac */ +96in1 /* Widel's Games */ +96in1a /* Widel's Games */ +96in1b /* Widel's Games */ +96in1c /* Widel's Games */ +hackypac /* Widel's Games */ +madpac /* Widel's Games */ +multi10 /* bootleg */ +multi11 /* bootleg */ +multi13 /* bootleg */ +multi14 /* bootleg */ +multi15 /* bootleg */ +mspaceur +pm4n1 +pm4n1a +pm4n1b +pm4n1c +pm4n1d +pm4n1e + + /* nemesis */ +salamand // parent +spclone // v0.7.3 +spcloneo // v0.7.2.2 + + /* neogeo */ +// These are the parents of our hacks +neogeo +2020bb // 030 +3countb // 043 +alpham2 // 007 +androdun // 049 +aodk // 074 +aof // 044 +aof2 // 056 +aof3 // 096 +b2b // 071 +bakatono // 036 +bangbead // 259 +bjourney // 022 +blazstar // 239 +breakers // 230 +breakrev // 245 +bstars // 002 +bstars2 // 041 +burningf // 018 +crsword // 037 +crswd2bl // 054 +ctomaday // 249 +cyberlip // 010 +doubledr // 082 +eightman // 025 +fatfury1 // 033 +fatfury2 // 047 +fatfury3 // 069 +fatfursp // 058 +fbfrenzy // 034 +fightfev // 060 +flipshot // 247 +galaxyfg // 078 +ganryu // 252 +garou // 253 +ghostlop // 228 +goalx3 // 209 +gowcaizr // 094 +gpilots // 020 +gururin // 067 +ironclad // 220 +irrmaze // 236 +janshin // 048 +jockeygp // 331 +joyjoy // 021 +kabukikl // 092 +karnovr // 066 +kizuna // 216 +kof94 // 055 +kof95 // 084 +kof96 // 214 +kof97 // 232 +kof98 // 242 +kof99 // 251 +kof2000 // 257 +kof2001 // 262 +kof2002 // 265 +kof2003 // 271 +kf2k3pcb +kotm // 016 +kotm2 // 039 +lastblad // 234 +lastbld2 // 243 +lasthope // 802 +lbowling // 019 +legendos // 029 +lresort // 024 +magdrop2 // 221 +magdrop3 // 233 +maglord // 005 +mahretsu // 004 +marukodq // 206 +matrim // 266 +miexchng // 231 +minasan // 027 +mosyougi // 203 +ms5pcb +mslug // 201 +mslug2 // 241 +mslugx // 250 +mslug3 // 256 +mslug4 // 263 +mslug5 // 268 +mutnat // 014 +nam1975 // 001 +ncombat // 009 +ncommand // 050 +neobombe // 093 +neocup98 // 244 +neodrift // 213 +neomrdo // 207 +ninjamas // 217 +nitd // 260 +overtop // 212 +panicbom // 073 +pbobbl2n // 248 +pbobblen // 083 +pgoal // 219 +pnyaa // 267 +popbounc // 237 +preisle2 // 255 +pspikes2 // 068 +pulstar // 089 +puzzledp // 202 +puzzldpr // 235 +quizdais // 023 +quizdai2 // 042 +quizkof // 080 +ragnagrd // 218 +rbff1 // 095 +rbff2 // 240 +rbffspec // 223 +ridhero // 006 +roboarmy // 032 +rotd // 264 +s1945p // 254 +samsho // 045 +samsho2 // 063 +samsho3 // 087 +samsho4 // 222 +samsho5 // 270 +samsh5sp // 272 +savagere // 059 +sbp // 338 +sdodgeb // 208 +sengoku // 017 +sengoku2 // 040 +sengoku3 // 261 +shocktr2 // 246 +shocktro // 238 +socbrawl // 031 +sonicwi2 // 075 +sonicwi3 // 097 +spinmast // 062 +ssideki // 052 +ssideki2 // 061 +ssideki3 // 081 +ssideki4 // 215 +stakwin // 088 +stakwin2 // 227 +strhoop // 079 +superspy // 011 +svc // 269 +svcpcb +tophuntr // 046 +tpgolf // 003 +trally // 038 +turfmast // 200 +twinspri // 224 +tws96 // 086 +viewpoin // 051 +vliner // 332 +wakuwak7 // 225 +wh1 // 053 +wh2 // 057 +wh2j // 064 +whp // 090 +wjammers // 065 +zedblade // 076 +zintrckb // 211 +zupapa // 070 + + /* neogeohb */ +beast /* 2002 (c) 1989 Psygnosis */ +cndi /* Chip n Dale Intro */ +cnbe +cphd +columnsn /* 2000 (c) 1990 Sega */ +columnsncd +//csw2 //not working & roms missing +dti // Duck Tales Intro +dwi /* DarkWing Duck Intro */ +ennemi // kannagi 2016 +ffeast // Frog Feast +ffeastd // Frog Feast demo +fr2 // 098 Idol Mahjong - final romance 2 +fr2cd /* 098 (c) 1995 Video Systems Co. */ +fr2ch /* 098 (c) 1995 Video Systems Co. */ +gbi /* Ghostbusters Intro */ +iocero // BEY +knacki // KnackiBalls by Furrtek +lhcdb /* 2007 (c) Last Hope CD beta */ +lhcdba +//lhopecd //not working +//lhopecdh // not working +ltorb +neo2500 /* Blastar */ +neo3d // Oxygene +neocstlv // BarfHappy +neodemo /* Charles Doty */ +neogal1 // BEY +neogal1d // BEY +neogal1t // BEY +neogal2 // BEY +neonopon /* (c) 2002-10-05 Blastar */ +neonopon_d1 // unplayable demo +neonopon_d2 // unplayable demo +neonopon_d3 // unplayable demo +neopong /* (c) 2002 Neodev */ +neoponga /* (c) 2002 Neodev */ +neoromjb // CeL +neotest // BEY +neothund // Sebastian Mihai +ngem2k +ngftdemo // CeL +ngmontst +ngtetris +nyan +pcmademo // 2015 freem +pcmbdemo // 2015 freem +poknight /* 2003 (c) 200? JMK */ +poknightcd +poknightfr +rci /* Robocop intro */ +santabll +smi /* Spiderman intro */ +snddemo // Sound-Loop Demo by Freem +spriteex // furrtek Sprite Experimenter +syscheck +test01 // MVS Test 01 by Furrtek +timesupd // CeL +tmnti /* TMNT intro */ +totc // Treasure of the Caribbean +twister // Blastar 2015 +ww2demo +zintrckbh +zintrkcd /* 211 (c) 1996 ADK / SNK */ +zintrkcd1 +zintrkm + + /* neogeo1 */ +2020bbcd +androdunpx +aofbh +aof2b +aof2b1 +aof2bh +aof2br2 +aof3b +aof3bh +bangbeadp +bjourneypx +breakersbh +breakersp +breakersy +breakrevb +breakrevpp +breakrevy +burningfhp +ctomadaypx +dragons1 +eightmaneb +fightfevbs +fightfevk +flipshotk +galaxyfgb +ganryud +gowcaizrb +gowcaizrbs +gowcaizrrv +gowcaizry +gpilotscd +gpilotse +gpilotspx +ironcladb +//ironcladcd // not working +jockeygpd +joyjoycd +joyjoycd1 +kabukiklb +kabukikleh +kabukiklgm +kabukiklgmc +kabukiklmc +kabukiklyc +karnovreh +kizunaeh +lans2k4d +lbowlingcd +magdrop3fr /* Neo-Arc French Trans */ +matrima +matrimd +matrimdh +matrimeh +matrimehc +matrimnd +miexchngfr /* Neo-Arc French Trans */ +mutnatex +nam1975g +nam1975h +neocup98k +ninjamaseh +ninjamasehc +ninjamasehyc +ninjamasha +nitdd +nitdfr /* Neo-Arc French Trans */ +nitdfro /* Neo-Arc French Trans */ +nitdfro1 +nitdsp +nitdsp1 // Spanish.Rev2 +nitdsp2 +pbcrazyb1 +pbcrazyb2 +pbobblenba +pbobblencd +pbobblendx +pbobblenh +pnyaad +preisle2d +//pspikes2cd // not working +ragnagrdeh +roboarma +s1945pd +s1945pwe +savageredb +shocktr2px +shocktr2w +shocktrosp +sonicwi2eh +sonicwi2px +sonicwi3eh +sonicwi3h +sonicwi3px +spinmasth +spinmastpx +ssidekicd +strhoopcd +superspycd +tophuntrpx +tpgolfcd +trallycd +twinsprih +viewpoinf +viewpointr +wakuwak7bh +wakuwak7h +wjammersf +wjammersk +zupapad +//diggerma duplicate name, to check + + + /* ngdoubledr */ +dbdehy +dbdy +dbdeh +dbdeh1 +dbdq +dbdqb +dbdqp +dbdqeh +doubledre2 +doubledres +doubledrhp + + /* nggaroup */ +garoub +garoud +garoupamu +garoupeh +garoupehc +garoupy +garoupf +garoupfu +garoupfp +garoupy1 + + /* ngkofmisc */ +cthd2k3b +//cthd2k3a // not working, "not responding" +ct2k3eh +ct2k3ifz +ct2k3k3 +ct2k3k3o +ct2k3xx +ct2k3ys +//ct2k3ad +//ct2k3spd +//cthd2k3a +//cthd2k3d +kof2k4mp +kof2k4ru // no sound in attract mode +kof2k4se1 +kof2k4se2 +//kof2k4pls +kof2k4seb +kof2k4spl +kof2k8uni +//kof10thd +kof10thu +kof10thub +kof10thud +kogd +kogf +kogplus +kogplusf + + /* nglastblade */ +lba +lbb +lbe +lbboss +lbeh +lbeh2 +lbseh +lbeho +lbha +lby +lb2a +lb2b +lb2bhd +lb2easy +lb2ed +lb2ebd +lb2eh +lb2eh2 +lb2eho +lb2ehu +lb2pl +lb2te +lb2wh +lb2yd + + /* ngrbff */ +fatfury2b +fatfury3b +fatfury3bd +fatfury3bh +fatfury3eh +fatfurspb +fatfurspbs +fatfurspbt +fatfurspeh +rbff1ud +rbffsehd +rbffsb +rbffseh +rbffspecbs +rbffspy +rbffspbd +rbffsud +rbff2b +rbff2bh +rbff2eh +rbff2ehc +rbff2eh2 +rbff2eho +rbff2fc +rbff2ud +rbff2y + + /* ngrotd */ +rotdb +rotdb1 +rotdbr +rotdbr1 +rotdbr2 +rotdbr2d +rotdcre +rotdcreb +rotdd +rotdeh +rotdehc +rotdfw +rotdfy +rotdh2b +rotdhab +rotdhab1 +rotdhar +rotdhfw +rotdhfwb +rotdnd +rotdyc + + /* ngsamsho */ +samshob +samshoeh +samshoeh2 +samsho2b +samsho2eh +samsho2sq +samsho2ss +samsho2yc +samsho3eh +samsho3hb +samsho3yc +samsho3se +samsho4bh +samsho4cz +samsho4eh +samsho4es +samsho4ev +samsho4ew +samsho4fc +samsho4kw +samsho4kz +samsho4ps +samsho4wh +samsho5bd +samsho5bs +samsho5ch +samsho5d +samsho5d1 +samsho5hd +samsho5x +samsh5spd +samsh5spd1 +samsh5spd2 +samsh5sph1 +samsh5spha +samsh5sphb +samsh5sphc +samsh5sphd +samsh5spn +samsh5spnd +samsh5spnh3 +samsh5spnzk + + /* ngsengoku */ +sengokucd +sengoku3b +sengoku3c +sengoku3d +sengoku3ha +sengoku3k +sengoku3kc +sengoku3p +sengoku3pl +sengoku3ya +sengoku3yk + + /* ngsvc */ +svcd +svcd1 +svch +svcnd +svcpcbd +svcplusb +svcplusd +svcpryu +svcps2 +svcrm +svcspryu + + /* ngwh */ +whpb +whpb2 +whpbh +whpbho +whpbho2 +whpeh +whpeho +whph +whphez +whpsp +whpss +wh1bs +wh2bs +wh2ey +wh2ja +wh2jb + + /* nmk16 */ +//tdragon //parent +//tdragonp // trap15 - not working +tdragon2 //parent +tdragon2p // trap15 + + /* pacland */ +pacland /* (c) 1984 */ +mariopac +paclandb +paclandd /* Blue Justice */ + + /* pacman */ +abortman /* Paul C Copeland hack of Puckman */ +baby2 /* T-Bone hack */ +baby3 /* T-Bone hack */ +baby4 /* T-Bone hack */ +brakman /* Jerry Lawrence hack of Pac-Man (Midway) */ +bucaneer /* PacMAME Hacks */ +caterpil +chtpac +chtpac3d +chtpman2 +chtpop +chtpuck +crazypac +dizzy +eltonpac /* Sil hack of Pac-Man (Midway) */ +europac /* Stefano 'Jojo' Priore hack of Pac-Man (Midway) */ +fpnleash +hanglyad +hmhearts /* hack */ +hearts +hellowp // cmonkey UKVAC +hm1000 /* Blue Justice */ +hm2000 /* Blue Justice */ +hmba5000 /* Blue Justice */ +hmba7000 /* Blue Justice */ +hmbabymz /* Blue Justice */ +hmbluep /* Blue Justice */ +hmgrenp /* Blue Justice */ +hmpopey /* */ +hmplus /* Blue Justice */ +homercid /* David Widel */ +jacman +jpmmunch /* JPM bootleg */ +mazeman /* Sil hack of Pac-Man */ +namcosil /* Sil hack of Pac-Man (Namco) */ +newpuck2 /* Scotty hack of Pac-Man */ +newpuck3 +nwpuc2b +pac2600 /* Bobby Tribble hack of Pac-Man (Midway) */ +pac2600a +pacbaby +pacbaby2 +pacbaby3 +pacbell +pacelec +pacfnt +pacinvis +pacjail +pacjr1 +pacjr2 +pacjr3 +pacjr4 +pacm255 /* Mark Spaeth patch for level 256 */ +pacman25 /* Jerronimo v1.0 2004 */ +pacman3d /* Sil hack of Pac-Man (Midway) */ +pacman6 +pacmanp /* Don Hodges patch for level 256 */ +pacmar /* PacMAME Hacks */ +pacminer +pacmini /* Bobby Tribble hack of Pac-Man (Midway) */ +pacmini2 /* Bobby Tribble hack of Pac-Man (Midway) */ +pacmn6m2 +pacms1 +pacms2 +pacms3 +pacms4 +pacmsa1 +pacmsa2 +pacmsa3 +pacmsa4 +pacmulti +puck255 +pacplusc +pacpopey /* unknown hack of Pac-Man (Namco) */ +pacshuf +pacspeed +pacweird +pacwf /* Tim Appleton - Weird Fruit */ +pcrunchy +pengman /* Jerry Lawrence hack of Pac-Man (Midway) */ +pm1000 /* Blue Justice */ +pm2000 /* Blue Justice */ +pm3000 /* Blue Justice */ +pm4000p /* Blue Justice */ +pm5000p /* Blue Justice */ +pm6000 /* Blue Justice */ +pm7000 /* Blue Justice */ +pm7000p /* Blue Justice */ +pmad /* SirScotty and Sil hack of Pac-Man (Midway) */ +pmad00 +pmad6m /* T-Bone hack */ +pmada +pmba2000 /* Blue Justice */ +pmba3000 /* Blue Justice */ +pmba4000 /* Blue Justice */ +pmba6000 /* Blue Justice */ +pmba8000 /* Blue Justice */ +pmbamaz /* Blue Justice */ +pmbaplus /* Blue Justice */ +pmbluep /* Blue Justice */ +pmdeluxe /* Blue Justice */ +pmextra /* Blue Justice */ +pmextrap /* Blue Justice */ +pmfever /* Blue Justice */ +pmgrenp /* Blue Justice */ +pmheart +newpuc1 /* Italian dump */ +pplusad +puckman /* (c) 1980 Namco */ +puckmano +puckmoti +puckmot1 +puckren +puckrenc +punleash +roboman +snakeyes /* T-Bone hack */ +snowpac /* T-Bone hack */ +spuckman +sumeltob +sumelton +tbone /* T-Bone hack */ +ultra2 /* PacMAME Hacks */ +ultrapac +vcrunchy +vecbaby +vecbaby2 +vecbaby3 +vecpac /* T-Bone hack of Pac-Man (Midway) */ +vectplus +vectr6m /* T-Bone hack */ +vectr6tb /* T-Bone hack */ +vectxens +vhangly +vhangly3 +vpacbell +vpacelec +vpacjail +vpacms1 +vpacms2 +vpacms3 +vpacms4 +vpacmsa1 +vpacmsa2 +vpacmsa3 +vpacmsa4 +vpacshuf +vpspeed +xensad +xensrev + /* "Pacman hardware" games (hires hacks) */ +puckmanx /* (c) 1980 Namco */ +puckmnax /* (c) 1980 Namco */ +puckmnfx /* hack */ +puckmnhx /* hack */ +pacmanx /* (c) 1980 Midway */ +pacmanfx /* hack */ +puckmodx /* (c) 1981 Namco */ +pacmodx /* (c) 1981 Midway */ +newpuc2x /* hack */ +nwpuc2bx /* hack */ +nwpuckxx /* hack */ +hanglyx /* hack */ +hangly2x /* hack */ +hangly3x /* hack */ +pacplusx +pheartx /* hack */ + + /* pcktgal */ +pcktgal /* (c) 1987 Data East Corporation (Japan) */ +pckgalgr /* Vag @ GreekRoms */ +pcktgalk /* Korean Translation */ + + /* pengo */ +pengo /* 834-0386 (c) 1982 Sega */ +pacpen +pengopop +vecpengo /* T-Bone hack of Pengo */ +//alpacap7 /* "Jerronimo", "Alpaca v0.7 (Pengo Hardware) useless */ +//alpacap8 /* "Jerronimo", "Alpaca v0.8 (Pengo Hardware) useless */ + + /* pgm */ +pgm /* (c) 1997 */ +ket +kov //parent +kov2 //parent +kovplus +kovsh +kov2p +pgemeni /* Blastar */ +pgmdemo /* Charles Doty */ +pgmfrog /* Rastersoft */ +ketarrb +orlegend //parent +orlegendcs +orlegendh +//kovassg +//kovdf +kovsgqyzc // similar to kovsgqyza +kov2h1 +kov2h2 +kov2h3 +kov2h4 +kov2h5 // was kov2psv +kovph1 +kovph2 +kovph3 +kovph4 +kovph5 +kovph6 +//kovph7 +kovph8 +//kovph9 +//kovph10 +kovph11 +kovph12 +kovph13 +kovph14 +kovph15 +//kovph16 +kovph17 +kovph18 +//kovph19 +//kovph20 +//kovph21 +//kovph22 +//kovph23 +kovph24 // was kvplusjq +kovph25 // was kovplusq +kovsh1 +kovsh2 +kovsh3 +//kovsh4 // all of these are encrypted, not working +//kovsh5 +//kovsh6 +//kovsh7 +//kovsh8 +//kovsh9 +//kovsh10 +//kovsh11 +//kovsh12 +//kovsh13 +//kovsh14 +//kovsh15 +//kovsh16 +//kovsh17 +kovsh18 // gem fighters +kovsh19 // rugal 98 + + /* phoenix */ +phoenix /* (c) 1980 Amstar */ +//phoenix4 /* rom missing */ +phoenixd +phoenixg /* Vag @ GreekRoms */ +phoenixr /* CYBERYOGI =CO= Windler hack of Phoenix */ +pleiads2 + + /* playch10 */ +playch10 +pc_bb2 /* NES->PC-10 */ +pc_ctfrc /* NES->PC-10 */ +pc_digdg /* NES->PC-10 */ +pc_krsty /* NES->PC-10 */ +pc_mman5 /* NES->PC-10 */ +pc_parsl /* NES->PC-10 */ +pc_ark /* NES->PC-10 */ +pc_dk3 /* NES->PC-10 */ +pc_galag /* NES->PC-10 */ +pc_cch /* NES->PC-10 */ +pc_dk /* NES->PC-10 */ +pc_pacm /* NES->PC-10 */ +pc_gyrus /* NES->PC-10 */ +pc_skykd /* NES->PC-10 */ + + /* powerins */ +powerins // parent +powernbr // Brazil translation + + /* psikyosh */ +s1945ii // parent +s1945iiex + + /* rallyx */ +rxtron /* Jerky and Sil hack of Rally-X */ +nrallyv /* New Rally-X (vertical) */ + + /* rastan */ +rastan /* B04 (c) 1987 Taito Corporation Japan (World) */ +rastandh /* Neil Pearce Hack */ +rastand2 /* Neil Pearce Hack */ +rastaneh /* Neil Pearce Hack */ +rastane2 /* Neil Pearce Hack */ +rastwack /* Vogel Hack */ + + /* retofinv */ +retofin4 /* Paul Smith hack */ + + /* schaser */ +schasrcv + + /* segac2 */ +c2frog + + /* segaorun */ +outrun +outrunen +outrunen0 +outrunen1 +outrunen2 + + /* segar */ +astrob2h + + /* segas16b */ +//altbeast // parent +//altbeastfr // french - Arkatrad - not working + + /* shaolins */ +kfjohnny /* hack by Smitdogg*/ + + /* snk6502 */ +vantris /* (c) 1998 Norbert Kehrer */ + + /* spacmiss */ +spacmiss + + /* st0016 */ +renjuk /* Korean Translation */ + + /* system1 */ +wbml /* bootleg (S2) */ +wbmlbit /* Italian Translation */ +wbmlkb /* Korean Translation */ + + /* system16 */ +sys16dem // Charles Doty + + /* taito_b */ +bubbleb /* pbobble USA Region Hack */ + + /* taito_f2 */ +f2demo /* Charles Doty */ + + /* taito_f3 */ +arkretrn //parent +cleopatr //parent +dariusg //parent +gekiridn //parent +landmakr //parent +pbobble2 //parent +arkretrh +cleopath +driusgxh +//f3demo /* Antiriad (a demo made for Raine, not tested on real hardware) - not working */ +gekiridh +gekiridoc +landmakh +pbobl2xh + + /* taito_l */ +evilston //parent +evilstonfr // French +sokoban // Sokoban LE by cmonkey +speccies // Speccies 2 by Sokurah +tldemo // cmonkey +tldemo2 // cmonkey + + /* tecmo */ +geminit /* Twisty Hack */ +rygark /* Korean Translation */ + + /* tecmo16 */ +fstarfrc //parent +fstarfrcc + + /* tehkanwc */ +tehkanwc /* (c) 1985 Tehkan */ +ballonwc +tehkangc +tankwc +twc_gr /* Vag @ GreekRoms */ + + /* tempest */ +tempest /* 136002 (c) 1980 */ +tempall +temped /* Tempest TempEd Hack */ +tempestm +temptwst /* Twisty Hack */ +tmptwsta /* Twisty Hack 2000 */ +tmptwst2 /* Twisty Hack */ +tmptwst3 /* Twisty Hack */ +tmptwst4 /* Twisty Hack */ +vbrakout /* Clay Cowgill */ +tempmg /* Clay Cowgill Multi-Tempest */ +temptlm +vortex /* Tempest Prototype */ +vortexa /* Tempest Prototype */ +aliensv /* Tempest Prototype */ +aliensva /* Tempest Prototype */ + + /* terracre */ +terracre /* (c) 1985 */ +terracrc + + /* tmnt */ +ssriders +ssridersaex + + /* toaplan1 */ +fireshrk //parent +samenew // Trap15 + + /* toaplan2 */ +kgpe /* Neill Corlett hack */ +sstriker //parent +mahoudcn +batsugun //parent +batsugunt +bgaregga //parent +bgareggz + + /* trackfld */ +athens04 /* Athens 2004 - Hack by The Gameland Crew (http://www.gameland.gr): Maddog, Whacker, Badge, Geoanas */ + + /* twincobr */ +twincobr /* TP-011 (c) 1987 Taito Corporation (World) */ +twincbu2 +twintwst + + /* volfied */ +volfiedg /* Vag @ GreekRoms 2005 */ + + /* vsnes */ +suprmrio /* (c) 1986 Nintendo */ +mrio2002 /* Vs. Super Mario Bros. 2002 */ +suprsktr /* Vs. Super Skater Bros. - Vs. Super Mario Skaters */ + + /* williams */ +defender +defender2 +robotron +robotron201 // start at level 201 (Sean Riddle) +robotronp /* Patched to remove the 'in the corner' crash */ +robotrontie // Tie Die set (Vid Kidz) +splatsc1 + + /* yiear */ +yiear /* GX407 (c) 1985 */ +nacho /* Gatinho - Nacho Libre */ + diff --git a/docs/release/src/hbmame/hbmame.mak b/docs/release/src/hbmame/hbmame.mak new file mode 100644 index 00000000000..5792ffb0895 --- /dev/null +++ b/docs/release/src/hbmame/hbmame.mak @@ -0,0 +1,43 @@ +# license:BSD-3-Clause +# copyright-holders:Robbbert +########################################################################### +# +# makefile +# +# Additional makefile for building HBMAME +# +########################################################################### + +GEN_FOLDERS += $(GENDIR)/mame/layout/ + +# MAME layouts that we use +LAYOUTS += \ + $(SRC)/mame/layout/atari_s1.lay \ + $(SRC)/mame/layout/galactic.lay \ + +# MAME layouts that are needed for compile to succeed, not used by HBMAME +LAYOUTS += \ + $(SRC)/mame/layout/gorf.lay \ + $(SRC)/mame/layout/tenpindx.lay \ + $(SRC)/mame/layout/spacezap.lay \ + $(SRC)/mame/layout/seawolf2.lay \ + $(SRC)/mame/layout/gridiron.lay \ + $(SRC)/mame/layout/turbotag.lay \ + $(SRC)/mame/layout/spyhunt.lay \ + $(SRC)/mame/layout/dpoker.lay \ + $(SRC)/mame/layout/astdelux.lay \ + $(SRC)/mame/layout/outrun.lay \ + $(SRC)/mame/layout/polepos.lay \ + $(SRC)/mame/layout/topracer.lay \ + $(SRC)/mame/layout/armora.lay \ + $(SRC)/mame/layout/barrier.lay \ + $(SRC)/mame/layout/demon.lay \ + $(SRC)/mame/layout/solarq.lay \ + $(SRC)/mame/layout/starcas.lay \ + $(SRC)/mame/layout/sundance.lay \ + $(SRC)/mame/layout/tailg.lay \ + $(SRC)/mame/layout/wotw.lay \ + $(SRC)/mame/layout/ppsatan.lay \ + $(SRC)/mame/layout/konamigt.lay \ + $(SRC)/mame/layout/sfiii2.lay + diff --git a/docs/release/src/hbmame/includes/cps1.h b/docs/release/src/hbmame/includes/cps1.h new file mode 100644 index 00000000000..2615e09c7c7 --- /dev/null +++ b/docs/release/src/hbmame/includes/cps1.h @@ -0,0 +1,455 @@ +// license:BSD-3-Clause +// copyright-holders:Paul Leaman +/*************************************************************************** + + Capcom CPS1/2 hardware + +***************************************************************************/ + +#ifndef _CPS1_H_ +#define _CPS1_H_ + +#include "sound/msm5205.h" +#include "sound/qsound.h" +#include "sound/okim6295.h" +#include "machine/timekpr.h" +#include "cpu/m68000/m68000.h" + +// Video raw params +// measured clocks: +// CPS2(Guru): V = 59.6376Hz, H = 15,4445kHz *H is probably measured too low! +// CPS1 GNG: V = 59.61Hz +/* CPS1(Charles MacDonald): + Pixel clock: 8.00 MHz + Total pixel clocks per scanline: 512 clocks + Horizontal sync pulse width : 36 clocks + Horizontal display and blanking period: 476 clocks + Frame size: 262 scanlines + Refresh rate: 59.63 MHz. +*/ +#define CPS_PIXEL_CLOCK (XTAL_16MHz/2) + +#define CPS_HTOTAL (512) +#define CPS_HBEND (64) +#define CPS_HBSTART (448) + +#define CPS_VTOTAL (262) +#define CPS_VBEND (16) +#define CPS_VBSTART (240) + + +struct gfx_range +{ + // start and end are as passed by the game (shift adjusted to be all + // in the same scale a 8x8 tiles): they don't necessarily match the + // position in ROM. + int type; + int start; + int end; + int bank; +}; + +struct CPS1config +{ + const char *name; /* game driver name */ + + /* Some games interrogate a couple of registers on bootup. */ + /* These are CPS1 board B self test checks. They wander from game to */ + /* game. */ + int cpsb_addr; /* CPS board B test register address */ + int cpsb_value; /* CPS board B test register expected value */ + + /* some games use as a protection check the ability to do 16-bit multiplies */ + /* with a 32-bit result, by writing the factors to two ports and reading the */ + /* result from two other ports. */ + /* It looks like this feature was introduced with 3wonders (CPSB ID = 08xx) */ + int mult_factor1; + int mult_factor2; + int mult_result_lo; + int mult_result_hi; + + /* unknown registers which might be related to the multiply protection */ + int unknown1; + int unknown2; + int unknown3; + + int layer_control; + int priority[4]; + int palette_control; + + /* ideally, the layer enable masks should consist of only one bit, */ + /* but in many cases it is unknown which bit is which. */ + int layer_enable_mask[5]; + + /* these depend on the B-board model and PAL */ + int bank_sizes[4]; + const struct gfx_range *bank_mapper; + + /* some C-boards have additional I/O for extra buttons/extra players */ + int in2_addr; + int in3_addr; + int out2_addr; + + int bootleg_kludge; +}; + + +class cps_state : public driver_device +{ +public: + cps_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_mainram(*this, "mainram"), + m_gfxram(*this, "gfxram"), + m_cps_a_regs(*this, "cps_a_regs"), + m_cps_b_regs(*this, "cps_b_regs"), + m_qsound_sharedram1(*this, "qsound_ram1"), + m_qsound_sharedram2(*this, "qsound_ram2"), + m_objram1(*this, "objram1"), + m_objram2(*this, "objram2"), + m_output(*this, "output"), + m_io_in0(*this, "IN0"), + m_io_in1(*this, "IN1"), + m_cps2_dial_type(0), + m_ecofghtr_dial_direction0(0), + m_ecofghtr_dial_direction1(0), + m_ecofghtr_dial_last0(0), + m_ecofghtr_dial_last1(0), + m_maincpu(*this, "maincpu"), + m_audiocpu(*this, "audiocpu"), + m_oki(*this, "oki"), + m_m48t35(*this,"m48t35"), + m_msm_1(*this, "msm1"), + m_msm_2(*this, "msm2"), + m_gfxdecode(*this, "gfxdecode"), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_decrypted_opcodes(*this, "decrypted_opcodes"), + m_region_stars(*this, "stars") + { } + + /* memory pointers */ + // cps1 + optional_shared_ptr<UINT16> m_mainram; + required_shared_ptr<UINT16> m_gfxram; + required_shared_ptr<UINT16> m_cps_a_regs; + required_shared_ptr<UINT16> m_cps_b_regs; + UINT16 * m_scroll1; + UINT16 * m_scroll2; + UINT16 * m_scroll3; + UINT16 * m_obj; + UINT16 * m_other; + std::unique_ptr<UINT16[]> m_buffered_obj; + optional_shared_ptr<UINT8> m_qsound_sharedram1; + optional_shared_ptr<UINT8> m_qsound_sharedram2; + std::unique_ptr<UINT8[]> m_decrypt_kabuki; + // cps2 + optional_shared_ptr<UINT16> m_objram1; + optional_shared_ptr<UINT16> m_objram2; + optional_shared_ptr<UINT16> m_output; + + optional_ioport m_io_in0; + optional_ioport m_io_in1; + std::unique_ptr<UINT16[]> m_cps2_buffered_obj; + // game-specific + std::unique_ptr<UINT16[]> m_gigaman2_dummyqsound_ram; + UINT16 sf2ceblp_prot; + + /* video-related */ + tilemap_t *m_bg_tilemap[3]; + int m_scanline1; + int m_scanline2; + int m_scancalls; + + int m_scroll1x; + int m_scroll1y; + int m_scroll2x; + int m_scroll2y; + int m_scroll3x; + int m_scroll3y; + + int m_stars_enabled[2]; /* Layer enabled [Y/N] */ + int m_stars1x; + int m_stars1y; + int m_stars2x; + int m_stars2y; + int m_last_sprite_offset; /* Offset of the last sprite */ + int m_cps2_last_sprite_offset; /* Offset of the last sprite */ + int m_pri_ctrl; /* Sprite layer priorities */ + int m_objram_bank; + + /* misc */ + int m_dial[2]; // forgottn + int m_readpaddle; // pzloop2 + int m_cps2networkpresent; + int m_cps2digitalvolumelevel; + int m_cps2disabledigitalvolume; + emu_timer *m_digital_volume_timer; + int m_cps2_dial_type; + int m_ecofghtr_dial_direction0; + int m_ecofghtr_dial_direction1; + int m_ecofghtr_dial_last0; + int m_ecofghtr_dial_last1; + + + /* fcrash sound hw */ + int m_sample_buffer1; + int m_sample_buffer2; + int m_sample_select1; + int m_sample_select2; + + /* video config (never changed after video_start) */ + const struct CPS1config *m_game_config; + int m_scroll_size; + int m_obj_size; + int m_cps2_obj_size; + int m_other_size; + int m_palette_align; + int m_palette_size; + int m_stars_rom_size; + UINT8 m_empty_tile[32*32]; + int m_cps_version; + + /* fcrash video config */ + UINT8 m_layer_enable_reg; + UINT8 m_layer_mask_reg[4]; + int m_layer_scroll1x_offset; + int m_layer_scroll2x_offset; + int m_layer_scroll3x_offset; + int m_sprite_base; + int m_sprite_list_end_marker; + int m_sprite_x_offset; + std::unique_ptr<UINT16[]> m_bootleg_sprite_ram; + std::unique_ptr<UINT16[]> m_bootleg_work_ram; + + /* devices */ + required_device<m68000_base_device> m_maincpu; + optional_device<cpu_device> m_audiocpu; + optional_device<okim6295_device> m_oki; + optional_device<m48t35_device> m_m48t35; + optional_device<msm5205_device> m_msm_1; // fcrash + optional_device<msm5205_device> m_msm_2; // fcrash + required_device<gfxdecode_device> m_gfxdecode; + required_device<screen_device> m_screen; + required_device<palette_device> m_palette; + optional_shared_ptr<UINT16> m_decrypted_opcodes; + optional_memory_region m_region_stars; + + DECLARE_READ16_MEMBER(cps1_hack_dsw_r); + DECLARE_READ16_MEMBER(cps1_in1_r); + DECLARE_READ16_MEMBER(cps1_in2_r); + DECLARE_READ16_MEMBER(cps1_in3_r); + DECLARE_READ16_MEMBER(forgottn_dial_0_r); + DECLARE_READ16_MEMBER(forgottn_dial_1_r); + DECLARE_WRITE16_MEMBER(forgottn_dial_0_reset_w); + DECLARE_WRITE16_MEMBER(forgottn_dial_1_reset_w); + DECLARE_WRITE8_MEMBER(cps1_snd_bankswitch_w); + DECLARE_WRITE16_MEMBER(cps1_soundlatch_w); + DECLARE_WRITE16_MEMBER(cps1_soundlatch2_w); + DECLARE_WRITE16_MEMBER(cpsq_coinctrl2_w); + DECLARE_READ16_MEMBER(qsound_rom_r); + DECLARE_READ16_MEMBER(qsound_sharedram2_r); + DECLARE_WRITE16_MEMBER(qsound_sharedram2_w); + DECLARE_WRITE8_MEMBER(qsound_banksw_w); + DECLARE_READ16_MEMBER(sf2rb_prot_r); + DECLARE_READ16_MEMBER(sf2rb2_prot_r); + DECLARE_READ16_MEMBER(sf2dongb_prot_r); + DECLARE_READ16_MEMBER(sf2ceblp_prot_r); + DECLARE_WRITE16_MEMBER(sf2ceblp_prot_w); + DECLARE_READ16_MEMBER(cps1_dsw_r); + DECLARE_WRITE16_MEMBER(cps1_coinctrl_w); + DECLARE_READ16_MEMBER(qsound_sharedram1_r); + DECLARE_WRITE16_MEMBER(qsound_sharedram1_w); + DECLARE_READ16_MEMBER(ganbare_ram_r); + DECLARE_WRITE16_MEMBER(ganbare_ram_w); + DECLARE_WRITE16_MEMBER(cps1_cps_a_w); + DECLARE_READ16_MEMBER(cps1_cps_b_r); + DECLARE_WRITE16_MEMBER(cps1_cps_b_w); + DECLARE_WRITE16_MEMBER(cps1_gfxram_w); + DECLARE_WRITE16_MEMBER(cps2_objram_bank_w); + DECLARE_READ16_MEMBER(cps2_objram1_r); + DECLARE_READ16_MEMBER(cps2_objram2_r); + DECLARE_WRITE16_MEMBER(cps2_objram1_w); + DECLARE_WRITE16_MEMBER(cps2_objram2_w); + DECLARE_WRITE8_MEMBER(cps1_oki_pin7_w); + DECLARE_WRITE16_MEMBER(sf2m1_layer_w); + DECLARE_WRITE16_MEMBER(sf2m3_layer_w); + DECLARE_READ16_MEMBER(dinohunt_sound_r); + DECLARE_DRIVER_INIT(sf2rb); + DECLARE_DRIVER_INIT(sf2rb2); + DECLARE_DRIVER_INIT(sf2thndr); + DECLARE_DRIVER_INIT(dinohunt); + DECLARE_DRIVER_INIT(forgottn); + DECLARE_DRIVER_INIT(sf2hack); + DECLARE_DRIVER_INIT(slammast); + DECLARE_DRIVER_INIT(pang3b); + DECLARE_DRIVER_INIT(pang3); + DECLARE_DRIVER_INIT(sf2ee); + DECLARE_DRIVER_INIT(sf2m8); + DECLARE_DRIVER_INIT(cps1); + DECLARE_DRIVER_INIT(dino); + DECLARE_DRIVER_INIT(punisher); + DECLARE_DRIVER_INIT(wof); + DECLARE_DRIVER_INIT(ganbare); + DECLARE_DRIVER_INIT(cps2_video); + DECLARE_DRIVER_INIT(cps2); + DECLARE_DRIVER_INIT(cps2nc); + DECLARE_DRIVER_INIT(cps2crypt); + DECLARE_DRIVER_INIT(ssf2tb); + DECLARE_DRIVER_INIT(pzloop2); + DECLARE_DRIVER_INIT(singbrd); + DECLARE_DRIVER_INIT(gigaman2); + DECLARE_DRIVER_INIT(ecofghtr); + DECLARE_DRIVER_INIT(sf2dongb); + DECLARE_DRIVER_INIT(sf2ceblp); + TILEMAP_MAPPER_MEMBER(tilemap0_scan); + TILEMAP_MAPPER_MEMBER(tilemap1_scan); + TILEMAP_MAPPER_MEMBER(tilemap2_scan); + TILE_GET_INFO_MEMBER(get_tile0_info); + TILE_GET_INFO_MEMBER(get_tile1_info); + TILE_GET_INFO_MEMBER(get_tile2_info); + DECLARE_MACHINE_START(cps1); + DECLARE_VIDEO_START(cps1); + DECLARE_MACHINE_START(common); + DECLARE_MACHINE_START(cps2); + DECLARE_VIDEO_START(cps2); + DECLARE_MACHINE_START(qsound); + DECLARE_MACHINE_START(ganbare); + DECLARE_MACHINE_RESET(cps); + DECLARE_VIDEO_START(cps); + DECLARE_MACHINE_START(sf2m1); + UINT32 screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_cps1(screen_device &screen, bool state); + INTERRUPT_GEN_MEMBER(cps1_interrupt); + TIMER_DEVICE_CALLBACK_MEMBER(ganbare_interrupt); + TIMER_DEVICE_CALLBACK_MEMBER(cps2_interrupt); + TIMER_CALLBACK_MEMBER(cps2_update_digital_volume); + + void kabuki_setup(void (*decode)(UINT8 *src, UINT8 *dst)); + + /* fcrash handlers */ + DECLARE_DRIVER_INIT(kodb); + DECLARE_DRIVER_INIT(cawingbl); + DECLARE_DRIVER_INIT(dinopic); + DECLARE_DRIVER_INIT(knightsb); + DECLARE_DRIVER_INIT(punipic); + DECLARE_DRIVER_INIT(punipic3); + DECLARE_DRIVER_INIT(sf2m1); + DECLARE_DRIVER_INIT(sf2mdt); + DECLARE_DRIVER_INIT(sf2mdta); + DECLARE_DRIVER_INIT(sf2mdtb); + DECLARE_DRIVER_INIT(sf2b); + DECLARE_DRIVER_INIT(slampic); + DECLARE_MACHINE_START(fcrash); + DECLARE_MACHINE_RESET(fcrash); + DECLARE_MACHINE_START(cawingbl); + DECLARE_MACHINE_START(dinopic); + DECLARE_MACHINE_START(knightsb); + DECLARE_MACHINE_START(kodb); + DECLARE_MACHINE_START(punipic); + DECLARE_MACHINE_START(sf2mdt); + DECLARE_MACHINE_START(slampic); + DECLARE_MACHINE_START(sgyxz); + DECLARE_WRITE16_MEMBER(cawingbl_soundlatch_w); + DECLARE_WRITE16_MEMBER(dinopic_layer_w); + DECLARE_WRITE16_MEMBER(dinopic_layer2_w); + DECLARE_WRITE16_MEMBER(knightsb_layer_w); + DECLARE_WRITE16_MEMBER(kodb_layer_w); + DECLARE_WRITE16_MEMBER(punipic_layer_w); + DECLARE_WRITE16_MEMBER(sf2mdt_layer_w); + DECLARE_WRITE16_MEMBER(sf2mdta_layer_w); + DECLARE_WRITE16_MEMBER(slampic_layer_w); + DECLARE_WRITE16_MEMBER(fcrash_soundlatch_w); + DECLARE_WRITE8_MEMBER(fcrash_snd_bankswitch_w); + DECLARE_WRITE8_MEMBER(sf2mdt_snd_bankswitch_w); + DECLARE_WRITE8_MEMBER(knightsb_snd_bankswitch_w); + DECLARE_WRITE8_MEMBER(fcrash_msm5205_0_data_w); + DECLARE_WRITE8_MEMBER(fcrash_msm5205_1_data_w); + UINT32 screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void fcrash_update_transmasks(); + void fcrash_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void fcrash_render_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask); + void fcrash_render_high_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer); + void fcrash_build_palette(); + + + /* cps video */ + inline UINT16 *cps1_base( int offset, int boundary ); + void cps1_get_video_base(); + void unshuffle(UINT64 *buf, int len); + void cps2_gfx_decode(); + int gfxrom_bank_mapper(int type, int code); + void cps1_update_transmasks(); + void cps1_build_palette(const UINT16* const palette_base); + void cps1_find_last_sprite(); + void cps1_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void cps2_find_last_sprite(); + void cps2_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks); + void cps1_render_stars(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void cps1_render_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask); + void cps1_render_high_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer); + void cps2_set_sprite_priorities(); + void cps2_objram_latch(); + UINT16 *cps2_objbase(); + + + /* cps2 driver */ + void init_digital_volume(); + DECLARE_READ16_MEMBER(gigaman2_dummyqsound_r); + DECLARE_WRITE16_MEMBER(gigaman2_dummyqsound_w); + void gigaman2_gfx_reorder(); + DECLARE_WRITE16_MEMBER(cps2_eeprom_port_w); + DECLARE_READ16_MEMBER(cps2_qsound_volume_r); + DECLARE_READ16_MEMBER(kludge_r); + DECLARE_READ16_MEMBER(joy_or_paddle_r); + DECLARE_READ16_MEMBER(joy_or_paddle_ecofghtr_r); + DECLARE_WRITE_LINE_MEMBER(m5205_int1); + DECLARE_WRITE_LINE_MEMBER(m5205_int2); + + // HBMAME start + + DECLARE_WRITE16_MEMBER(dinoh_sound_command_w); + DECLARE_WRITE16_MEMBER(daimakb_layer_w); + DECLARE_WRITE16_MEMBER(daimakb_palctrl_w); + DECLARE_DRIVER_INIT(dinoeh); + DECLARE_DRIVER_INIT(dinoh); + DECLARE_DRIVER_INIT(dinoz); + DECLARE_DRIVER_INIT(dinohb); + DECLARE_DRIVER_INIT(punisherb); + DECLARE_DRIVER_INIT(sf2h9); + DECLARE_DRIVER_INIT(sf2h13); + DECLARE_DRIVER_INIT(sk2h1); + DECLARE_DRIVER_INIT(sk2h1q); + DECLARE_DRIVER_INIT(sk2h3); + DECLARE_DRIVER_INIT(sk2h21); + DECLARE_DRIVER_INIT(sk2h22); + DECLARE_DRIVER_INIT(sk2h31); + DECLARE_DRIVER_INIT(sk2h35); + DECLARE_DRIVER_INIT(wofb); + DECLARE_WRITE16_MEMBER(varthb_layer_w); + DECLARE_MACHINE_START(captcommb2); + +// HBMAME end + +}; + +/*----------- defined in drivers/cps1.c -----------*/ + +MACHINE_CONFIG_EXTERN(cps1_12MHz); + +ADDRESS_MAP_EXTERN( qsound_sub_map, 8 ); + +GFXDECODE_EXTERN( cps1 ); + +INPUT_PORTS_EXTERN( dino ); +INPUT_PORTS_EXTERN( knights ); +INPUT_PORTS_EXTERN( punisher ); +INPUT_PORTS_EXTERN( sf2 ); +INPUT_PORTS_EXTERN( slammast ); + +// HBMAME start +INPUT_PORTS_EXTERN( varth ); +INPUT_PORTS_EXTERN( captcomm ); +// HBMAME end + +#endif diff --git a/docs/release/src/hbmame/includes/galaga.h b/docs/release/src/hbmame/includes/galaga.h new file mode 100644 index 00000000000..07d749d0cd5 --- /dev/null +++ b/docs/release/src/hbmame/includes/galaga.h @@ -0,0 +1,100 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria +#include "sound/discrete.h" +#include "sound/namco.h" +#include "sound/samples.h" +#include "machine/namco06.h" // HBMAME + +class galaga_state : public driver_device +{ +public: + galaga_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_videoram(*this, "videoram"), + m_galaga_ram1(*this, "galaga_ram1"), + m_galaga_ram2(*this, "galaga_ram2"), + m_galaga_ram3(*this, "galaga_ram3"), + m_galaga_starcontrol(*this, "starcontrol"), + m_samples(*this, "samples"), // HBMAME + m_06xx(*this, "06xx"), // HBMAME + m_maincpu(*this, "maincpu"), + m_subcpu(*this, "sub"), + m_subcpu2(*this, "sub2"), + m_namco_sound(*this, "namco"), + m_gfxdecode(*this, "gfxdecode"), + m_screen(*this, "screen"), + m_palette(*this, "palette") { } + + /* memory pointers */ + optional_shared_ptr<UINT8> m_videoram; + optional_shared_ptr<UINT8> m_galaga_ram1; + optional_shared_ptr<UINT8> m_galaga_ram2; + optional_shared_ptr<UINT8> m_galaga_ram3; + optional_shared_ptr<UINT8> m_galaga_starcontrol; // 6 addresses + optional_device<samples_device> m_samples; // HBMAME + optional_device<namco_06xx_device> m_06xx; // HBMAME + required_device<cpu_device> m_maincpu; + required_device<cpu_device> m_subcpu; + required_device<cpu_device> m_subcpu2; + required_device<namco_device> m_namco_sound; + required_device<gfxdecode_device> m_gfxdecode; + required_device<screen_device> m_screen; + required_device<palette_device> m_palette; + emu_timer *m_cpu3_interrupt_timer; + UINT8 m_custom_mod; + DECLARE_WRITE8_MEMBER(galaga_sample_w); //HBMAME + + /* machine state */ + UINT32 m_stars_scrollx; + UINT32 m_stars_scrolly; + + UINT32 m_galaga_gfxbank; // used by catsbee + + /* devices */ + + /* bank support */ + + /* shared */ + tilemap_t *m_fg_tilemap; + tilemap_t *m_bg_tilemap; + + UINT8 m_main_irq_mask; + UINT8 m_sub_irq_mask; + UINT8 m_sub2_nmi_mask; + DECLARE_READ8_MEMBER(bosco_dsw_r); + DECLARE_WRITE8_MEMBER(galaga_flip_screen_w); + DECLARE_WRITE8_MEMBER(bosco_latch_w); + DECLARE_WRITE8_MEMBER(galaga_videoram_w); + DECLARE_WRITE8_MEMBER(gatsbee_bank_w); + DECLARE_WRITE8_MEMBER(out_0); + DECLARE_WRITE8_MEMBER(out_1); + DECLARE_READ8_MEMBER(namco_52xx_rom_r); + DECLARE_READ8_MEMBER(namco_52xx_si_r); + DECLARE_READ8_MEMBER(custom_mod_r); + DECLARE_DRIVER_INIT(galaga); + DECLARE_DRIVER_INIT(gatsbee); + TILEMAP_MAPPER_MEMBER(tilemap_scan); + TILE_GET_INFO_MEMBER(get_tile_info); + DECLARE_MACHINE_START(galaga); + DECLARE_MACHINE_RESET(galaga); + DECLARE_VIDEO_START(galaga); + DECLARE_PALETTE_INIT(galaga); + UINT32 screen_update_galaga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_galaga(screen_device &screen, bool state); + INTERRUPT_GEN_MEMBER(main_vblank_irq); + INTERRUPT_GEN_MEMBER(sub_vblank_irq); + TIMER_CALLBACK_MEMBER(cpu3_interrupt_callback); + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_stars(bitmap_ind16 &bitmap, const rectangle &cliprect ); + void bosco_latch_reset(); + struct star + { + UINT16 x,y; + UINT8 col,set; + }; + + static struct star m_star_seed_tab[]; +}; + +DISCRETE_SOUND_EXTERN( galaga ); +DISCRETE_SOUND_EXTERN( bosco ); diff --git a/docs/release/src/hbmame/includes/galaxian.h b/docs/release/src/hbmame/includes/galaxian.h new file mode 100644 index 00000000000..7653d8f403f --- /dev/null +++ b/docs/release/src/hbmame/includes/galaxian.h @@ -0,0 +1,335 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles, Couriersud +/*************************************************************************** + + Galaxian hardware family + +***************************************************************************/ + +#include "machine/i8255.h" +#include "sound/ay8910.h" +#include "sound/dac.h" +#include "sound/digitalk.h" + +/* we scale horizontally by 3 to render stars correctly */ +#define GALAXIAN_XSCALE 3 + +/* master clocks */ +#define GALAXIAN_MASTER_CLOCK (18432000) +#define GALAXIAN_PIXEL_CLOCK (GALAXIAN_XSCALE*GALAXIAN_MASTER_CLOCK/3) + +/* H counts from 128->511, HBLANK starts at 130 and ends at 250 */ +/* we normalize this here so that we count 0->383 with HBLANK */ +/* from 264-383 */ +#define GALAXIAN_HTOTAL (384*GALAXIAN_XSCALE) +#define GALAXIAN_HBEND (0*GALAXIAN_XSCALE) +//#define GALAXIAN_H0START (6*GALAXIAN_XSCALE) +//#define GALAXIAN_HBSTART (264*GALAXIAN_XSCALE) +#define GALAXIAN_H0START (0*GALAXIAN_XSCALE) +#define GALAXIAN_HBSTART (256*GALAXIAN_XSCALE) + +#define GALAXIAN_VTOTAL (264) +#define GALAXIAN_VBEND (16) +#define GALAXIAN_VBSTART (224+16) + + +class galaxian_state : public driver_device +{ +public: + galaxian_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_audiocpu(*this, "audiocpu"), + m_audio2(*this, "audio2"), + m_dac(*this, "dac"), + m_ay8910_0(*this, "8910.0"), + m_ay8910_1(*this, "8910.1"), + m_ay8910_2(*this, "8910.2"), + m_ay8910_cclimber(*this, "cclimber_audio:aysnd"), + m_digitalker(*this, "digitalker"), + m_ppi8255_0(*this, "ppi8255_0"), + m_ppi8255_1(*this, "ppi8255_1"), + m_ppi8255_2(*this, "ppi8255_2"), + m_spriteram(*this, "spriteram"), + m_videoram(*this, "videoram"), + m_gfxdecode(*this, "gfxdecode"), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_decrypted_opcodes(*this, "decrypted_opcodes") { } + + required_device<cpu_device> m_maincpu; + optional_device<cpu_device> m_audiocpu; + optional_device<cpu_device> m_audio2; + optional_device<dac_device> m_dac; + optional_device<ay8910_device> m_ay8910_0; + optional_device<ay8910_device> m_ay8910_1; + optional_device<ay8910_device> m_ay8910_2; + optional_device<ay8910_device> m_ay8910_cclimber; + optional_device<digitalker_device> m_digitalker; + optional_device<i8255_device> m_ppi8255_0; + optional_device<i8255_device> m_ppi8255_1; + optional_device<i8255_device> m_ppi8255_2; + required_shared_ptr<UINT8> m_spriteram; + required_shared_ptr<UINT8> m_videoram; + required_device<gfxdecode_device> m_gfxdecode; + required_device<screen_device> m_screen; + required_device<palette_device> m_palette; + optional_shared_ptr<UINT8> m_decrypted_opcodes; + + int m_bullets_base; + int m_sprites_base; + int m_numspritegens; + int m_counter_74ls161[2]; + int m_direction[2]; + UINT8 m_gmgalax_selected_game; + UINT8 m_zigzag_ay8910_latch; + UINT8 m_kingball_speech_dip; + UINT8 m_kingball_sound; + UINT8 m_mshuttle_ay8910_cs; + UINT16 m_protection_state; + UINT8 m_protection_result; + UINT8 m_konami_sound_control; + UINT8 m_sfx_sample_control; + UINT8 m_moonwar_port_select; + UINT8 m_irq_enabled; + int m_irq_line; + int m_tenspot_current_game; + UINT8 m_frogger_adjust; + UINT8 m_sfx_tilemap; + + /* video extension callbacks */ + typedef void (galaxian_state::*galaxian_extend_tile_info_func)(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + typedef void (galaxian_state::*galaxian_extend_sprite_info_func)(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + typedef void (galaxian_state::*galaxian_draw_bullet_func)(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y); + typedef void (galaxian_state::*galaxian_draw_background_func)(bitmap_rgb32 &bitmap, const rectangle &cliprect); + + galaxian_extend_tile_info_func m_extend_tile_info_ptr; + galaxian_extend_sprite_info_func m_extend_sprite_info_ptr; + galaxian_draw_bullet_func m_draw_bullet_ptr; + galaxian_draw_background_func m_draw_background_ptr; + + tilemap_t *m_bg_tilemap; + UINT8 m_flipscreen_x; + UINT8 m_flipscreen_y; + UINT8 m_background_enable; + UINT8 m_background_red; + UINT8 m_background_green; + UINT8 m_background_blue; + UINT32 m_star_rng_origin; + UINT32 m_star_rng_origin_frame; + rgb_t m_star_color[64]; + std::unique_ptr<UINT8[]> m_stars; + UINT8 m_stars_enabled; + UINT8 m_stars_blink_state; + rgb_t m_bullet_color[8]; + UINT8 m_gfxbank[5]; + DECLARE_WRITE8_MEMBER(galaxian_videoram_w); + DECLARE_WRITE8_MEMBER(galaxian_objram_w); + DECLARE_WRITE8_MEMBER(galaxian_flip_screen_x_w); + DECLARE_WRITE8_MEMBER(galaxian_flip_screen_y_w); + DECLARE_WRITE8_MEMBER(galaxian_flip_screen_xy_w); + DECLARE_WRITE8_MEMBER(galaxian_stars_enable_w); + DECLARE_WRITE8_MEMBER(scramble_background_enable_w); + DECLARE_WRITE8_MEMBER(scramble_background_red_w); + DECLARE_WRITE8_MEMBER(scramble_background_green_w); + DECLARE_WRITE8_MEMBER(scramble_background_blue_w); + DECLARE_WRITE8_MEMBER(galaxian_gfxbank_w); + DECLARE_CUSTOM_INPUT_MEMBER(scramble_protection_alt_r); + DECLARE_CUSTOM_INPUT_MEMBER(gmgalax_port_r); + DECLARE_CUSTOM_INPUT_MEMBER(azurian_port_r); + DECLARE_CUSTOM_INPUT_MEMBER(kingball_muxbit_r); + DECLARE_CUSTOM_INPUT_MEMBER(kingball_noise_r); + DECLARE_CUSTOM_INPUT_MEMBER(moonwar_dial_r); + DECLARE_WRITE8_MEMBER(irq_enable_w); + DECLARE_WRITE8_MEMBER(start_lamp_w); + DECLARE_WRITE8_MEMBER(coin_lock_w); + DECLARE_WRITE8_MEMBER(coin_count_0_w); + DECLARE_WRITE8_MEMBER(coin_count_1_w); + DECLARE_READ8_MEMBER(konami_ay8910_r); + DECLARE_WRITE8_MEMBER(konami_ay8910_w); + DECLARE_WRITE8_MEMBER(konami_sound_filter_w); + DECLARE_READ8_MEMBER(theend_ppi8255_r); + DECLARE_WRITE8_MEMBER(theend_ppi8255_w); + DECLARE_WRITE8_MEMBER(explorer_sound_control_w); + DECLARE_READ8_MEMBER(sfx_sample_io_r); + DECLARE_WRITE8_MEMBER(sfx_sample_io_w); + DECLARE_READ8_MEMBER(monsterz_protection_r); + DECLARE_READ8_MEMBER(frogger_ppi8255_r); + DECLARE_WRITE8_MEMBER(frogger_ppi8255_w); + DECLARE_READ8_MEMBER(frogger_ay8910_r); + DECLARE_WRITE8_MEMBER(frogger_ay8910_w); + IRQ_CALLBACK_MEMBER(froggermc_audiocpu_irq_ack); + DECLARE_WRITE8_MEMBER(froggermc_sound_control_w); + DECLARE_READ8_MEMBER(frogf_ppi8255_r); + DECLARE_WRITE8_MEMBER(frogf_ppi8255_w); + DECLARE_READ8_MEMBER(turtles_ppi8255_0_r); + DECLARE_READ8_MEMBER(turtles_ppi8255_1_r); + DECLARE_WRITE8_MEMBER(turtles_ppi8255_0_w); + DECLARE_WRITE8_MEMBER(turtles_ppi8255_1_w); + DECLARE_READ8_MEMBER(scorpion_ay8910_r); + DECLARE_WRITE8_MEMBER(scorpion_ay8910_w); + DECLARE_READ8_MEMBER(scorpion_digitalker_intr_r); + DECLARE_WRITE8_MEMBER(zigzag_bankswap_w); + DECLARE_WRITE8_MEMBER(zigzag_ay8910_w); + DECLARE_WRITE8_MEMBER(kingball_speech_dip_w); + DECLARE_WRITE8_MEMBER(kingball_sound1_w); + DECLARE_WRITE8_MEMBER(kingball_sound2_w); + DECLARE_WRITE8_MEMBER(mshuttle_ay8910_cs_w); + DECLARE_WRITE8_MEMBER(mshuttle_ay8910_control_w); + DECLARE_WRITE8_MEMBER(mshuttle_ay8910_data_w); + DECLARE_READ8_MEMBER(mshuttle_ay8910_data_r); + DECLARE_READ8_MEMBER(jumpbug_protection_r); + DECLARE_WRITE8_MEMBER(checkman_sound_command_w); + DECLARE_READ8_MEMBER(checkmaj_protection_r); + DECLARE_READ8_MEMBER(dingo_3000_r); + DECLARE_READ8_MEMBER(dingo_3035_r); + DECLARE_READ8_MEMBER(dingoe_3001_r); + DECLARE_WRITE8_MEMBER(tenspot_unk_6000_w); + DECLARE_WRITE8_MEMBER(tenspot_unk_8000_w); + DECLARE_WRITE8_MEMBER(tenspot_unk_e000_w); + DECLARE_WRITE8_MEMBER(artic_gfxbank_w); + DECLARE_READ8_MEMBER(tenspot_dsw_read); + DECLARE_INPUT_CHANGED_MEMBER(gmgalax_game_changed); + DECLARE_WRITE8_MEMBER(konami_sound_control_w); + DECLARE_READ8_MEMBER(konami_sound_timer_r); + DECLARE_WRITE8_MEMBER(konami_portc_0_w); + DECLARE_WRITE8_MEMBER(konami_portc_1_w); + DECLARE_WRITE8_MEMBER(theend_coin_counter_w); + DECLARE_WRITE8_MEMBER(scramble_protection_w); + DECLARE_READ8_MEMBER(scramble_protection_r); + DECLARE_READ8_MEMBER(explorer_sound_latch_r); + DECLARE_WRITE8_MEMBER(sfx_sample_control_w); + DECLARE_WRITE8_MEMBER(monsterz_porta_1_w); + DECLARE_WRITE8_MEMBER(monsterz_portb_1_w); + DECLARE_WRITE8_MEMBER(monsterz_portc_1_w); + DECLARE_READ8_MEMBER(frogger_sound_timer_r); + DECLARE_READ8_MEMBER(scorpion_protection_r); + DECLARE_WRITE8_MEMBER(scorpion_protection_w); + DECLARE_WRITE8_MEMBER(scorpion_digitalker_control_w); + DECLARE_WRITE8_MEMBER(kingball_dac_w); + DECLARE_WRITE8_MEMBER(moonwar_port_select_w); + DECLARE_DRIVER_INIT(galaxian); + DECLARE_DRIVER_INIT(nolock); + DECLARE_DRIVER_INIT(azurian); + DECLARE_DRIVER_INIT(gmgalax); + DECLARE_DRIVER_INIT(pisces); + DECLARE_DRIVER_INIT(batman2); + DECLARE_DRIVER_INIT(frogg); + DECLARE_DRIVER_INIT(mooncrst); + DECLARE_DRIVER_INIT(mooncrsu); + DECLARE_DRIVER_INIT(mooncrgx); + DECLARE_DRIVER_INIT(moonqsr); + DECLARE_DRIVER_INIT(pacmanbl); + DECLARE_DRIVER_INIT(tenspot); + DECLARE_DRIVER_INIT(devilfsg); + DECLARE_DRIVER_INIT(zigzag); + DECLARE_DRIVER_INIT(jumpbug); + DECLARE_DRIVER_INIT(checkman); + DECLARE_DRIVER_INIT(checkmaj); + DECLARE_DRIVER_INIT(dingo); + DECLARE_DRIVER_INIT(dingoe); + DECLARE_DRIVER_INIT(skybase); + DECLARE_DRIVER_INIT(kong); + DECLARE_DRIVER_INIT(mshuttle); + DECLARE_DRIVER_INIT(mshuttlj); + DECLARE_DRIVER_INIT(fantastc); + DECLARE_DRIVER_INIT(timefgtr); + DECLARE_DRIVER_INIT(kingball); + DECLARE_DRIVER_INIT(scorpnmc); + DECLARE_DRIVER_INIT(thepitm); + DECLARE_DRIVER_INIT(theend); + DECLARE_DRIVER_INIT(scramble); + DECLARE_DRIVER_INIT(explorer); + DECLARE_DRIVER_INIT(sfx); + DECLARE_DRIVER_INIT(atlantis); + DECLARE_DRIVER_INIT(scobra); + DECLARE_DRIVER_INIT(scobrae); + DECLARE_DRIVER_INIT(losttomb); + DECLARE_DRIVER_INIT(frogger); + DECLARE_DRIVER_INIT(froggermc); + DECLARE_DRIVER_INIT(froggers); + DECLARE_DRIVER_INIT(quaak); + DECLARE_DRIVER_INIT(turtles); + DECLARE_DRIVER_INIT(scorpion); + DECLARE_DRIVER_INIT(anteater); + DECLARE_DRIVER_INIT(anteateruk); + DECLARE_DRIVER_INIT(superbon); + DECLARE_DRIVER_INIT(calipso); + DECLARE_DRIVER_INIT(moonwar); + DECLARE_DRIVER_INIT(ghostmun); + DECLARE_DRIVER_INIT(froggrs); + DECLARE_DRIVER_INIT(warofbugg); + TILE_GET_INFO_MEMBER(bg_get_tile_info); + virtual void video_start() override; + DECLARE_PALETTE_INIT(galaxian); + DECLARE_PALETTE_INIT(moonwar); + void tenspot_set_game_bank(int bank, int from_game); + UINT32 screen_update_galaxian(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(interrupt_gen); + INTERRUPT_GEN_MEMBER(fakechange_interrupt_gen); + TIMER_DEVICE_CALLBACK_MEMBER(checkmaj_irq0_gen); + TIMER_DEVICE_CALLBACK_MEMBER(galaxian_stars_blink_timer); + TIMER_DEVICE_CALLBACK_MEMBER(timefgtr_scanline); + void state_save_register(); + void sprites_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, const UINT8 *spritebase); + void bullets_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, const UINT8 *base); + void stars_init(); + void stars_update_origin(); + void stars_draw_row(bitmap_rgb32 &bitmap, int maxx, int y, UINT32 star_offs, UINT8 starmask); + void galaxian_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void background_draw_colorsplit(bitmap_rgb32 &bitmap, const rectangle &cliprect, rgb_t color, int split, int split_flipped); + void scramble_draw_stars(bitmap_rgb32 &bitmap, const rectangle &cliprect, int maxx); + void scramble_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void anteater_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void jumpbug_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void turtles_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void frogger_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void quaak_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect); + inline void galaxian_draw_pixel(bitmap_rgb32 &bitmap, const rectangle &cliprect, int y, int x, rgb_t color); + void galaxian_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y); + void mshuttle_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y); + void scramble_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y); + void theend_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y); + void upper_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void upper_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void frogger_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void frogger_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void gmgalax_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void gmgalax_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void pisces_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void pisces_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void batman2_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void mooncrst_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void mooncrst_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void moonqsr_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void moonqsr_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void mshuttle_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void mshuttle_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void calipso_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void jumpbug_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void jumpbug_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + void monsterz_set_latch(); + void decode_mooncrst(int length, UINT8 *dest); + void decode_checkman(); + void decode_dingoe(); + void decode_frogger_sound(); + void decode_froggermc_sound(); + void decode_frogger_gfx(); + void decode_anteater_gfx(); + void decode_losttomb_gfx(); + void decode_superbon(); + void unmap_galaxian_sound(offs_t base); + void mshuttle_decode(const UINT8 convtable[8][16]); + void common_init(galaxian_draw_bullet_func draw_bullet,galaxian_draw_background_func draw_background, + galaxian_extend_tile_info_func extend_tile_info,galaxian_extend_sprite_info_func extend_sprite_info); +//HBMAME start + DECLARE_WRITE8_MEMBER(fourplay_rombank_w); + DECLARE_WRITE8_MEMBER(videight_rombank_w); + DECLARE_WRITE8_MEMBER(videight_gfxbank_w); + DECLARE_DRIVER_INIT(fourplay); + DECLARE_DRIVER_INIT(trukker); + DECLARE_DRIVER_INIT(videight); + void videight_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); + void videight_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); +//HBMAME end +}; diff --git a/docs/release/src/hbmame/includes/neogeo.h b/docs/release/src/hbmame/includes/neogeo.h new file mode 100644 index 00000000000..a8b33e045f2 --- /dev/null +++ b/docs/release/src/hbmame/includes/neogeo.h @@ -0,0 +1,527 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari +// thanks-to:Fuzz +/************************************************************************* + + Neo-Geo hardware + +*************************************************************************/ + +#include "machine/upd1990a.h" +#include "machine/ng_memcard.h" +#include "video/neogeo_spr.h" +#include "bus/neogeo/neogeo_slot.h" +#include "bus/neogeo/neogeo_carts.h" +#include "bus/neogeo/cmc_prot.h" +#include "bus/neogeo/pcm2_prot.h" +#include "bus/neogeo/pvc_prot.h" +#include "bus/neogeo/bootleg_prot.h" +#include "bus/neogeo/kof2002_prot.h" +#include "bus/neogeo/fatfury2_prot.h" +#include "bus/neogeo/kof98_prot.h" +#include "bus/neogeo/sbp_prot.h" +#include "bus/neogeo/kog_prot.h" + +#include "bus/neogeo_ctrl/ctrl.h" + +// On scanline 224, /VBLANK goes low 56 mclks (14 pixels) from the rising edge of /HSYNC. +// Two mclks after /VBLANK goes low, the hardware sets a pending IRQ1 flip-flop. +#define NEOGEO_VBLANK_IRQ_HTIM (attotime::from_ticks(56+2, NEOGEO_MASTER_CLOCK)) + + +class neogeo_state : public driver_device +{ +public: + neogeo_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_banked_cart(*this, "banked_cart"), + m_maincpu(*this, "maincpu"), + m_audiocpu(*this, "audiocpu"), + m_region_maincpu(*this, "maincpu"), + m_region_sprites(*this, "sprites"), + m_region_fixed(*this, "fixed"), + m_region_fixedbios(*this, "fixedbios"), + //m_bank_vectors(*this, "vectors"), + //m_bank_cartridge(*this, "cartridge"), + m_bank_audio_main(*this, "audio_main"), + m_upd4990a(*this, "upd4990a"), + m_save_ram(*this, "saveram"), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_memcard(*this, "memcard"), + m_dsw(*this, "DSW"), + m_trackx(*this, "TRACK_X"), + m_tracky(*this, "TRACK_Y"), + m_edge(*this, "edge"), + m_ctrl1(*this, "ctrl1"), + m_ctrl2(*this, "ctrl2"), + m_sprgen(*this, "spritegen"), + m_use_cart_vectors(0), + m_use_cart_audio(0), + m_cartslot1(*this, "cartslot1"), + m_cartslot2(*this, "cartslot2"), + m_cartslot3(*this, "cartslot3"), + m_cartslot4(*this, "cartslot4"), + m_cartslot5(*this, "cartslot5"), + m_cartslot6(*this, "cartslot6"), + m_currentslot(-1) + { } + + DECLARE_WRITE8_MEMBER(io_control_w); + DECLARE_READ16_MEMBER(memcard_r); + DECLARE_WRITE16_MEMBER(memcard_w); + DECLARE_WRITE8_MEMBER(audio_command_w); + DECLARE_READ8_MEMBER(audio_command_r); + DECLARE_READ8_MEMBER(audio_cpu_bank_select_r); + DECLARE_WRITE8_MEMBER(audio_cpu_enable_nmi_w); + DECLARE_WRITE8_MEMBER(system_control_w); + DECLARE_READ16_MEMBER(neogeo_unmapped_r); + DECLARE_READ16_MEMBER(neogeo_paletteram_r); + DECLARE_WRITE16_MEMBER(neogeo_paletteram_w); + DECLARE_READ16_MEMBER(neogeo_video_register_r); + DECLARE_WRITE16_MEMBER(neogeo_video_register_w); + READ16_MEMBER(banked_vectors_r); + DECLARE_READ16_MEMBER(in0_r); + DECLARE_READ16_MEMBER(in1_r); + + void set_slot_number(int slot); + + DECLARE_CUSTOM_INPUT_MEMBER(get_memcard_status); + DECLARE_CUSTOM_INPUT_MEMBER(get_audio_result); + + TIMER_CALLBACK_MEMBER(display_position_interrupt_callback); + TIMER_CALLBACK_MEMBER(display_position_vblank_callback); + TIMER_CALLBACK_MEMBER(vblank_interrupt_callback); + + // MVS-specific + DECLARE_WRITE16_MEMBER(save_ram_w); + DECLARE_CUSTOM_INPUT_MEMBER(kizuna4p_start_r); + DECLARE_INPUT_CHANGED_MEMBER(select_bios); + + UINT32 screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + DECLARE_DRIVER_INIT(neogeo); + DECLARE_DRIVER_INIT(mvs); + + optional_device<neogeo_banked_cart_device> m_banked_cart; + +protected: + void neogeo_postload(); + void update_interrupts(); + void create_interrupt_timers(); + void start_interrupt_timers(); + void neogeo_acknowledge_interrupt(UINT16 data); + + void neogeo_main_cpu_banking_init(); + void neogeo_audio_cpu_banking_init(int set_entry); + void adjust_display_position_interrupt_timer(); + void neogeo_set_display_position_interrupt_control(UINT16 data); + void neogeo_set_display_counter_msb(UINT16 data); + void neogeo_set_display_counter_lsb(UINT16 data); + void set_video_control( UINT16 data ); + + void create_rgb_lookups(); + void set_pens(); + void neogeo_set_screen_shadow( int data ); + void neogeo_set_palette_bank( int data ); + + void audio_cpu_check_nmi(); + void set_save_ram_unlock( UINT8 data ); + void set_outputs( ); + void set_output_latch( UINT8 data ); + void set_output_data( UINT8 data ); + + + // device overrides + virtual void machine_start() override; + virtual void machine_reset() override; + + // devices + required_device<cpu_device> m_maincpu; + required_device<cpu_device> m_audiocpu; + + // memory + required_memory_region m_region_maincpu; + required_memory_region m_region_sprites; + required_memory_region m_region_fixed; + optional_memory_region m_region_fixedbios; + //required_memory_bank m_bank_vectors; + //optional_memory_bank m_bank_cartridge; // optional because of neocd + optional_memory_bank m_bank_audio_main; // optional because of neocd + memory_bank *m_bank_audio_cart[4]; + + // MVS-specific devices + optional_device<upd4990a_device> m_upd4990a; + optional_shared_ptr<UINT16> m_save_ram; + + required_device<screen_device> m_screen; + optional_device<palette_device> m_palette; + optional_device<ng_memcard_device> m_memcard; + + // configuration + enum {NEOGEO_MVS, NEOGEO_AES, NEOGEO_CD} m_type; + + // internal state + bool m_recurse; + bool m_audio_cpu_nmi_enabled; + bool m_audio_cpu_nmi_pending; + + // MVS-specific state + UINT8 m_save_ram_unlocked; + UINT8 m_output_data; + UINT8 m_output_latch; + UINT8 m_el_value; + UINT8 m_led1_value; + UINT8 m_led2_value; + + optional_ioport m_dsw; + optional_ioport m_trackx; + optional_ioport m_tracky; + optional_device<neogeo_ctrl_edge_port_device> m_edge; + optional_device<neogeo_control_port_device> m_ctrl1; + optional_device<neogeo_control_port_device> m_ctrl2; + + // video hardware, including maincpu interrupts + // TODO: make into a device + virtual void video_start() override; + virtual void video_reset() override; + + emu_timer *m_display_position_interrupt_timer; + emu_timer *m_display_position_vblank_timer; + emu_timer *m_vblank_interrupt_timer; + UINT32 m_display_counter; + UINT8 m_vblank_interrupt_pending; + UINT8 m_display_position_interrupt_pending; + UINT8 m_irq3_pending; + UINT8 m_display_position_interrupt_control; + UINT8 m_vblank_level; + UINT8 m_raster_level; + + required_device<neosprite_optimized_device> m_sprgen; + UINT16 get_video_control( ); + + // color/palette related + std::vector<UINT16> m_paletteram; + UINT8 m_palette_lookup[32][4]; + const pen_t *m_bg_pen; + int m_screen_shadow; + int m_palette_bank; + + + int m_use_cart_vectors; + int m_use_cart_audio; + + // cart slots + optional_device<neogeo_cart_slot_device> m_cartslot1; + optional_device<neogeo_cart_slot_device> m_cartslot2; + optional_device<neogeo_cart_slot_device> m_cartslot3; + optional_device<neogeo_cart_slot_device> m_cartslot4; + optional_device<neogeo_cart_slot_device> m_cartslot5; + optional_device<neogeo_cart_slot_device> m_cartslot6; + neogeo_cart_slot_device* m_cartslots[6]; + int m_currentslot; + + +public: + DECLARE_READ16_MEMBER(neogeo_slot_rom_low_r); + DECLARE_READ16_MEMBER(neogeo_slot_rom_low_bectors_r); + +}; + + +class neogeo_noslot_state : public neogeo_state +{ + public: + neogeo_noslot_state(const machine_config &mconfig, device_type type, const char *tag) + : neogeo_state(mconfig, type, tag), + /* legacy cartridge specifics */ + m_mslugx_prot(*this, "mslugx_prot"), + m_sma_prot(*this, "sma_prot"), + m_cmc_prot(*this, "cmc_prot"), + m_pcm2_prot(*this, "pcm2_prot"), + m_pvc_prot(*this, "pvc_prot"), + m_bootleg_prot(*this, "bootleg_prot"), + m_kof2002_prot(*this, "kof2002_prot"), + m_fatfury2_prot(*this, "fatfury2_prot"), + m_kof98_prot(*this, "kof98_prot"), + m_sbp_prot(*this, "sbp_prot") {} + + + DECLARE_DRIVER_INIT(fatfury2); + DECLARE_DRIVER_INIT(zupapa); + DECLARE_DRIVER_INIT(kof98); + DECLARE_DRIVER_INIT(mslugx); + DECLARE_DRIVER_INIT(kof99); + DECLARE_DRIVER_INIT(kof99k); + DECLARE_DRIVER_INIT(garou); + DECLARE_DRIVER_INIT(garouh); + DECLARE_DRIVER_INIT(garoubl); + DECLARE_DRIVER_INIT(mslug3); + DECLARE_DRIVER_INIT(mslug3h); + DECLARE_DRIVER_INIT(mslug3b6); + DECLARE_DRIVER_INIT(kof2000); + DECLARE_DRIVER_INIT(kof2000n); + DECLARE_DRIVER_INIT(kof2001); + DECLARE_DRIVER_INIT(cthd2003); + DECLARE_DRIVER_INIT(ct2k3sp); + DECLARE_DRIVER_INIT(ct2k3sa); + DECLARE_DRIVER_INIT(mslug4); + DECLARE_DRIVER_INIT(ms4plus); + DECLARE_DRIVER_INIT(ganryu); + DECLARE_DRIVER_INIT(s1945p); + DECLARE_DRIVER_INIT(preisle2); + DECLARE_DRIVER_INIT(bangbead); + DECLARE_DRIVER_INIT(nitd); + DECLARE_DRIVER_INIT(sengoku3); + DECLARE_DRIVER_INIT(rotd); + DECLARE_DRIVER_INIT(kof2002); + DECLARE_DRIVER_INIT(kof2002b); + DECLARE_DRIVER_INIT(kf2k2pls); + DECLARE_DRIVER_INIT(kf2k2mp); + DECLARE_DRIVER_INIT(kf2k2mp2); + DECLARE_DRIVER_INIT(kof10th); + DECLARE_DRIVER_INIT(kf10thep); + DECLARE_DRIVER_INIT(kf2k5uni); + DECLARE_DRIVER_INIT(kof2k4se); + DECLARE_DRIVER_INIT(matrim); + DECLARE_DRIVER_INIT(matrimbl); + DECLARE_DRIVER_INIT(pnyaa); + DECLARE_DRIVER_INIT(mslug5); + DECLARE_DRIVER_INIT(ms5pcb); + DECLARE_DRIVER_INIT(ms5plus); + DECLARE_DRIVER_INIT(svcpcb); + DECLARE_DRIVER_INIT(svc); + DECLARE_DRIVER_INIT(svcboot); + DECLARE_DRIVER_INIT(svcplus); + DECLARE_DRIVER_INIT(svcplusa); + DECLARE_DRIVER_INIT(svcsplus); + DECLARE_DRIVER_INIT(samsho5); + DECLARE_DRIVER_INIT(samsho5b); + DECLARE_DRIVER_INIT(kf2k3pcb); + DECLARE_DRIVER_INIT(kof2003); + DECLARE_DRIVER_INIT(kof2003h); + DECLARE_DRIVER_INIT(kf2k3bl); + DECLARE_DRIVER_INIT(kf2k3pl); + DECLARE_DRIVER_INIT(kf2k3upl); + DECLARE_DRIVER_INIT(samsh5sp); + DECLARE_DRIVER_INIT(jockeygp); + DECLARE_DRIVER_INIT(vliner); + DECLARE_DRIVER_INIT(kof97oro); + DECLARE_DRIVER_INIT(lans2004); + DECLARE_DRIVER_INIT(sbp); + DECLARE_DRIVER_INIT(irrmaze); + + void install_banked_bios(); + // non-carts + void svcpcb_gfx_decrypt(); + void svcpcb_s1data_decrypt(); + void kf2k3pcb_gfx_decrypt(); + void kf2k3pcb_decrypt_s1data(); + void kf2k3pcb_sp1_decrypt(); + + + // legacy + optional_device<mslugx_prot_device> m_mslugx_prot; + optional_device<sma_prot_device> m_sma_prot; + optional_device<cmc_prot_device> m_cmc_prot; + optional_device<pcm2_prot_device> m_pcm2_prot; + optional_device<pvc_prot_device> m_pvc_prot; + optional_device<ngbootleg_prot_device> m_bootleg_prot; + optional_device<kof2002_prot_device> m_kof2002_prot; + optional_device<fatfury2_prot_device> m_fatfury2_prot; + optional_device<kof98_prot_device> m_kof98_prot; + optional_device<sbp_prot_device> m_sbp_prot; +}; + +class neogeo_noslot_kog_state : public neogeo_state +{ +public: + neogeo_noslot_kog_state(const machine_config &mconfig, device_type type, const char *tag) + : neogeo_state(mconfig, type, tag), + /* legacy cartridge specifics */ + m_bootleg_prot(*this, "bootleg_prot"), + m_kog_prot(*this, "kog_prot") {} + + + DECLARE_DRIVER_INIT(kog); + + // legacy + optional_device<ngbootleg_prot_device> m_bootleg_prot; + optional_device<kog_prot_device> m_kog_prot; +}; + +/*----------- defined in drivers/neogeo.c -----------*/ + +MACHINE_CONFIG_EXTERN( neogeo_base ); +MACHINE_CONFIG_EXTERN( neogeo_arcade ); +INPUT_PORTS_EXTERN(neogeo); +ADDRESS_MAP_EXTERN(neogeo_main_map,16); + +/************************************* + * + * Neo-Geo bios + * + ************************************* + + These are the known Bios Roms, Set options.bios to the one you want. + + The Universe bios roms are supported because they're now used on enough PCBs + to be considered 'in active arcade use' rather than just homebrew hacks. + Some may be missing, there have been multiple CRCs reported for the same + revision in some cases (the Universe bios has an option for entering / displaying + a serial number; these should be noted as such if they're added). + Universe bios prior to version 1.3 was incompatible with AES. + + The 'japan-hotel' BIOS is a dump of an MVS which could be found in some japanese + hotels. it is a custom MVS mobo which uses MVS carts but it hasn't jamma + connector and it's similar to a console with a coin mechanism, so it's a sort + of little coin op console installed in hotels. + + The sp-45.sp1 bios is the latest 'ASIA' revision. Japan-j3.bin is the latest 'JAPAN' + revision. Both of them are also used in the sp-4x.sp1 bios of the Jamma PCB boards. + + The current Neo-Geo MVS system set (SFIX/SM1/000-LO) used is from a NEO-MVH MV1FS board. + Other boards (MV1xx / MV2x / MV4x /MV6x) other system sets? + + Zoom ROM (LO) 128K TC531000CP 1x 128Kx8 Zoom look-up table ROM + Fix ROM (SFIX) 128K 27C1000 1x 128Kx8 Text layer graphics ROM + Sound ROM (SM1) 128K 27C1000/23C1000 1x 128Kx8 Z80 program ROM + +*/ + +#define ROM_LOAD16_WORD_SWAP_BIOS(bios,name,offset,length,hash) \ + ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_OPTIONAL | ROM_BIOS(bios+1)) /* Note '+1' */ + +#define NEOGEO_UNIBIOS(x) \ + ROM_SYSTEM_BIOS( x+ 0, "unibios32", "Universe Bios (Hack, Ver. 3.2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 0, "uni-bios_3_2.rom", 0x00000, 0x020000, CRC(a4e8b9b3) SHA1(c92f18c3f1edda543d264ecd0ea915240e7c8258) ) /* Universe Bios v3.2 (hack) */ \ + ROM_SYSTEM_BIOS( x+ 1, "unibios31", "Universe Bios (Hack, Ver. 3.1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 1, "uni-bios_3_1.rom", 0x00000, 0x020000, CRC(0c58093f) SHA1(29329a3448c2505e1ff45ffa75e61e9693165153) ) /* Universe Bios v3.1 (hack) */ \ + ROM_SYSTEM_BIOS( x+ 2, "unibios30", "Universe Bios (Hack, Ver. 3.0)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 2, "uni-bios_3_0.rom", 0x00000, 0x020000, CRC(a97c89a9) SHA1(97a5eff3b119062f10e31ad6f04fe4b90d366e7f) ) /* Universe Bios v3.0 (hack) */ \ + ROM_SYSTEM_BIOS( x+ 3, "unibios23", "Universe Bios (Hack, Ver. 2.3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 3, "uni-bios_2_3.rom", 0x00000, 0x020000, CRC(27664eb5) SHA1(5b02900a3ccf3df168bdcfc98458136fd2b92ac0) ) /* Universe Bios v2.3 (hack) */ \ + ROM_SYSTEM_BIOS( x+ 4, "unibios23o", "Universe Bios (Hack, Ver. 2.3, older?)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 4, "uni-bios_2_3o.rom", 0x00000, 0x020000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) /* Universe Bios v2.3 (hack) alt version, withdrawn? */ \ + ROM_SYSTEM_BIOS( x+ 5, "unibios22", "Universe Bios (Hack, Ver. 2.2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 5, "uni-bios_2_2.rom", 0x00000, 0x020000, CRC(2d50996a) SHA1(5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c) ) /* Universe Bios v2.2 (hack) */ \ + ROM_SYSTEM_BIOS( x+ 6, "unibios21", "Universe Bios (Hack, Ver. 2.1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 6, "uni-bios_2_1.rom", 0x00000, 0x020000, CRC(8dabf76b) SHA1(c23732c4491d966cf0373c65c83c7a4e88f0082c) ) /* Universe Bios v2.1 (hack) */ \ + ROM_SYSTEM_BIOS( x+ 7, "unibios20", "Universe Bios (Hack, Ver. 2.0)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 7, "uni-bios_2_0.rom", 0x00000, 0x020000, CRC(0c12c2ad) SHA1(37bcd4d30f3892078b46841d895a6eff16dc921e) ) /* Universe Bios v2.0 (hack) */ \ + ROM_SYSTEM_BIOS( x+ 8, "unibios13", "Universe Bios (Hack, Ver. 1.3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 8, "uni-bios_1_3.rom", 0x00000, 0x020000, CRC(b24b44a0) SHA1(eca8851d30557b97c309a0d9f4a9d20e5b14af4e) ) /* Universe Bios v1.3 (hack) */ +#define NEOGEO_UNIBIOS_1_2_AND_OLDER(x) \ + ROM_SYSTEM_BIOS( x+ 9, "unibios12", "Universe Bios (Hack, Ver. 1.2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+ 9, "uni-bios_1_2.rom", 0x00000, 0x020000, CRC(4fa698e9) SHA1(682e13ec1c42beaa2d04473967840c88fd52c75a) ) /* Universe Bios v1.2 (hack) */ \ + ROM_SYSTEM_BIOS( x+10, "unibios12o", "Universe Bios (Hack, Ver. 1.2, older)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+10, "uni-bios_1_2o.rom", 0x00000, 0x020000, CRC(e19d3ce9) SHA1(af88ef837f44a3af2d7144bb46a37c8512b67770) ) /* Universe Bios v1.2 (hack) alt version */ \ + ROM_SYSTEM_BIOS( x+11, "unibios11", "Universe Bios (Hack, Ver. 1.1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+11, "uni-bios_1_1.rom", 0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) /* Universe Bios v1.1 (hack) */ \ + ROM_SYSTEM_BIOS( x+12, "unibios10", "Universe Bios (Hack, Ver. 1.0)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( x+12, "uni-bios_1_0.rom", 0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) /* Universe Bios v1.0 (hack) */ + +#define NEOGEO_BIOS \ + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) \ + ROM_SYSTEM_BIOS( 0, "euro", "Europe MVS (Ver. 2)" ) \ + ROMX_LOAD("euro_s1", 0, 0x20000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543), ROM_GROUPWORD | ROM_REVERSE | ROM_OPTIONAL | ROM_BIOS(1)) \ + ROM_SYSTEM_BIOS( 1, "euro-s1", "Europe MVS (Ver. 1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1", 0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* Europe, 4 Slot */ \ + ROM_SYSTEM_BIOS( 2, "us", "US MVS (Ver. 2?)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 2, "sp-u2.sp1", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* US, 2 Slot */ \ + ROM_SYSTEM_BIOS( 3, "us-e", "US MVS (Ver. 1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-e.sp1", 0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* US, 6 Slot (V5?) */ \ + ROM_SYSTEM_BIOS( 4, "us-v2", "US MVS (4 slot, Ver 2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 4, "v2.bin", 0x00000, 0x020000, CRC(62f021f4) SHA1(62d372269e1b3161c64ae21123655a0a22ffd1bb) ) /* US, 4 slot */ \ + ROM_SYSTEM_BIOS( 5, "asia", "Asia MVS (Ver. 3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 5, "asia-s3.rom", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \ + ROM_SYSTEM_BIOS( 6, "japan", "Japan MVS (Ver. 3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 6, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \ + ROM_SYSTEM_BIOS( 7, "japan-s2", "Japan MVS (Ver. 2)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp-j2.sp1", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \ + ROM_SYSTEM_BIOS( 8, "japan-s1", "Japan MVS (Ver. 1)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 8, "sp1.jipan.1024", 0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \ + ROM_SYSTEM_BIOS( 9, "mv1c", "NEO-MVH MV1C" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 9, "sp-45.sp1", 0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* Latest Asia bios */ \ + ROM_SYSTEM_BIOS( 10, "japan-j3", "Japan MVS (J3)" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 10, "japan-j3.bin", 0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* Latest Japan bios; correct chip label unknown */ \ + ROM_SYSTEM_BIOS( 11, "japan-hotel", "Custom Japanese Hotel" ) \ + ROM_LOAD16_WORD_SWAP_BIOS( 11, "sp-1v1_3db8c.bin", 0x00000, 0x020000, CRC(162f0ebe) SHA1(fe1c6dd3dfcf97d960065b1bb46c1e11cb7bf271) ) /* 'rare MVS found in japanese hotels' shows v1.3 in test mode */ \ + \ + NEOGEO_UNIBIOS(12) \ + NEOGEO_UNIBIOS_1_2_AND_OLDER(12) + + +#define NEO_BIOS_AUDIO_64K(name, hash) \ + NEOGEO_BIOS \ + ROM_REGION( 0x20000, "audiobios", 0 ) \ + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \ + ROM_REGION( 0x20000, "audiocpu", 0 ) \ + ROM_LOAD( name, 0x00000, 0x10000, hash ) \ + ROM_RELOAD( 0x10000, 0x10000 ) + +#define NEO_BIOS_AUDIO_128K(name, hash) \ + NEOGEO_BIOS \ + ROM_REGION( 0x20000, "audiobios", 0 ) \ + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \ + ROM_REGION( 0x30000, "audiocpu", 0 ) \ + ROM_LOAD( name, 0x00000, 0x20000, hash ) \ + ROM_RELOAD( 0x10000, 0x20000 ) + +#define NEO_BIOS_AUDIO_256K(name, hash) \ + NEOGEO_BIOS \ + ROM_REGION( 0x20000, "audiobios", 0 ) \ + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \ + ROM_REGION( 0x50000, "audiocpu", 0 ) \ + ROM_LOAD( name, 0x00000, 0x40000, hash ) \ + ROM_RELOAD( 0x10000, 0x40000 ) + +#define NEO_BIOS_AUDIO_512K(name, hash) \ + NEOGEO_BIOS \ + ROM_REGION( 0x20000, "audiobios", 0 ) \ + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \ + ROM_REGION( 0x90000, "audiocpu", 0 ) \ + ROM_LOAD( name, 0x00000, 0x80000, hash ) \ + ROM_RELOAD( 0x10000, 0x80000 ) + + +#define NEO_BIOS_AUDIO_ENCRYPTED_128K(name, hash) \ + NEOGEO_BIOS \ + ROM_REGION( 0x20000, "audiobios", 0 ) \ + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \ + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \ + ROM_REGION( 0x80000, "audiocrypt", 0 ) \ + ROM_LOAD( name, 0x00000, 0x20000, hash ) +#define NEO_BIOS_AUDIO_ENCRYPTED_256K(name, hash) \ + NEOGEO_BIOS \ + ROM_REGION( 0x20000, "audiobios", 0 ) \ + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \ + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \ + ROM_REGION( 0x80000, "audiocrypt", 0 ) \ + ROM_LOAD( name, 0x00000, 0x40000, hash ) +#define NEO_BIOS_AUDIO_ENCRYPTED_512K(name, hash) \ + NEOGEO_BIOS \ + ROM_REGION( 0x20000, "audiobios", 0 ) \ + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \ + ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \ + ROM_REGION( 0x80000, "audiocrypt", 0 ) \ + ROM_LOAD( name, 0x00000, 0x80000, hash ) + + +#define NEO_SFIX_64K(name, hash) \ + ROM_REGION( 0x20000, "fixed", 0 ) \ + ROM_LOAD( name, 0x000000, 0x10000, hash ) \ + ROM_REGION( 0x20000, "fixedbios", 0 ) \ + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \ + ROM_Y_ZOOM + +#define NEO_SFIX_128K(name, hash) \ + ROM_REGION( 0x20000, "fixed", 0 ) \ + ROM_LOAD( name, 0x000000, 0x20000, hash ) \ + ROM_REGION( 0x20000, "fixedbios", 0 ) \ + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \ + ROM_Y_ZOOM + +#define ROM_Y_ZOOM \ + ROM_REGION( 0x20000, "zoomy", 0 ) \ + ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) diff --git a/docs/release/src/hbmame/includes/pacman.h b/docs/release/src/hbmame/includes/pacman.h new file mode 100644 index 00000000000..ae4de9bd4bc --- /dev/null +++ b/docs/release/src/hbmame/includes/pacman.h @@ -0,0 +1,223 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "sound/namco.h" +#include "machine/watchdog.h" + +/************************************************************************* + + Namco PuckMan + +**************************************************************************/ + +class pacman_state : public driver_device +{ +public: + pacman_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_namco_sound(*this, "namco"), + m_spriteram(*this, "spriteram"), + m_spriteram2(*this, "spriteram2"), + m_s2650_spriteram(*this, "s2650_spriteram"), + m_videoram(*this, "videoram"), + m_colorram(*this, "colorram"), + m_s2650games_tileram(*this, "s2650_tileram"), + m_rocktrv2_prot_data(*this, "rocktrv2_prot"), + m_gfxdecode(*this, "gfxdecode"), + m_palette(*this, "palette"), + m_patched_opcodes(*this, "patched_opcodes") + { } + + required_device<cpu_device> m_maincpu; + optional_device<namco_device> m_namco_sound; + optional_shared_ptr<UINT8> m_spriteram; + optional_shared_ptr<UINT8> m_spriteram2; + optional_shared_ptr<UINT8> m_s2650_spriteram; + required_shared_ptr<UINT8> m_videoram; + optional_shared_ptr<UINT8> m_colorram; + optional_shared_ptr<UINT8> m_s2650games_tileram; + optional_shared_ptr<UINT8> m_rocktrv2_prot_data; + required_device<gfxdecode_device> m_gfxdecode; + required_device<palette_device> m_palette; + optional_shared_ptr<UINT8> m_patched_opcodes; + + UINT8 m_cannonb_bit_to_read; + int m_mystery; + UINT8 m_counter; + int m_bigbucks_bank; + UINT8 m_rocktrv2_question_bank; + tilemap_t *m_bg_tilemap; + UINT8 m_charbank; + UINT8 m_spritebank; + UINT8 m_palettebank; + UINT8 m_colortablebank; + UINT8 m_flipscreen; + UINT8 m_bgpriority; + int m_xoffsethack; + UINT8 m_inv_spr; + UINT8 m_irq_mask; + + DECLARE_WRITE8_MEMBER(pacman_interrupt_vector_w); + DECLARE_WRITE8_MEMBER(piranha_interrupt_vector_w); + DECLARE_WRITE8_MEMBER(nmouse_interrupt_vector_w); + DECLARE_WRITE8_MEMBER(pacman_leds_w); + DECLARE_WRITE8_MEMBER(pacman_coin_counter_w); + DECLARE_WRITE8_MEMBER(pacman_coin_lockout_global_w); + DECLARE_WRITE8_MEMBER(alibaba_sound_w); + DECLARE_READ8_MEMBER(alibaba_mystery_1_r); + DECLARE_READ8_MEMBER(alibaba_mystery_2_r); + DECLARE_READ8_MEMBER(maketrax_special_port2_r); + DECLARE_READ8_MEMBER(maketrax_special_port3_r); + DECLARE_READ8_MEMBER(korosuke_special_port2_r); + DECLARE_READ8_MEMBER(korosuke_special_port3_r); + DECLARE_READ8_MEMBER(mschamp_kludge_r); + DECLARE_WRITE8_MEMBER(bigbucks_bank_w); + DECLARE_READ8_MEMBER(bigbucks_question_r); + DECLARE_WRITE8_MEMBER(porky_banking_w); + DECLARE_READ8_MEMBER(drivfrcp_port1_r); + DECLARE_READ8_MEMBER(_8bpm_port1_r); + DECLARE_READ8_MEMBER(porky_port1_r); + DECLARE_READ8_MEMBER(rocktrv2_prot1_data_r); + DECLARE_READ8_MEMBER(rocktrv2_prot2_data_r); + DECLARE_READ8_MEMBER(rocktrv2_prot3_data_r); + DECLARE_READ8_MEMBER(rocktrv2_prot4_data_r); + DECLARE_WRITE8_MEMBER(rocktrv2_prot_data_w); + DECLARE_WRITE8_MEMBER(rocktrv2_question_bank_w); + DECLARE_READ8_MEMBER(rocktrv2_question_r); + DECLARE_READ8_MEMBER(pacman_read_nop); + DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x0038); + DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x03b0); + DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x1600); + DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x2120); + DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x3ff0); + DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x8000); + DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x97f0); + DECLARE_WRITE8_MEMBER(mspacman_disable_decode_w); + DECLARE_READ8_MEMBER(mspacman_enable_decode_r_0x3ff8); + DECLARE_WRITE8_MEMBER(mspacman_enable_decode_w); + DECLARE_WRITE8_MEMBER(irq_mask_w); + DECLARE_READ8_MEMBER(mspacii_protection_r); + DECLARE_READ8_MEMBER(cannonbp_protection_r); + DECLARE_WRITE8_MEMBER(pacman_videoram_w); + DECLARE_WRITE8_MEMBER(pacman_colorram_w); + DECLARE_WRITE8_MEMBER(pacman_flipscreen_w); + DECLARE_WRITE8_MEMBER(pengo_palettebank_w); + DECLARE_WRITE8_MEMBER(pengo_colortablebank_w); + DECLARE_WRITE8_MEMBER(pengo_gfxbank_w); + DECLARE_WRITE8_MEMBER(s2650games_videoram_w); + DECLARE_WRITE8_MEMBER(s2650games_colorram_w); + DECLARE_WRITE8_MEMBER(s2650games_scroll_w); + DECLARE_WRITE8_MEMBER(s2650games_tilesbank_w); + DECLARE_WRITE8_MEMBER(jrpacman_videoram_w); + DECLARE_WRITE8_MEMBER(jrpacman_charbank_w); + DECLARE_WRITE8_MEMBER(jrpacman_spritebank_w); + DECLARE_WRITE8_MEMBER(jrpacman_scroll_w); + DECLARE_WRITE8_MEMBER(jrpacman_bgpriority_w); + DECLARE_WRITE8_MEMBER(superabc_bank_w); + DECLARE_DRIVER_INIT(maketrax); + DECLARE_DRIVER_INIT(drivfrcp); + DECLARE_DRIVER_INIT(mspacmbe); + DECLARE_DRIVER_INIT(ponpoko); + DECLARE_DRIVER_INIT(eyes); + DECLARE_DRIVER_INIT(woodpek); + DECLARE_DRIVER_INIT(cannonbp); + DECLARE_DRIVER_INIT(jumpshot); + DECLARE_DRIVER_INIT(korosuke); + DECLARE_DRIVER_INIT(mspacii); + DECLARE_DRIVER_INIT(pacplus); + DECLARE_DRIVER_INIT(rocktrv2); + DECLARE_DRIVER_INIT(superabc); + DECLARE_DRIVER_INIT(8bpm); + DECLARE_DRIVER_INIT(porky); + DECLARE_DRIVER_INIT(mspacman); + TILEMAP_MAPPER_MEMBER(pacman_scan_rows); + TILE_GET_INFO_MEMBER(pacman_get_tile_info); + TILE_GET_INFO_MEMBER(s2650_get_tile_info); + TILEMAP_MAPPER_MEMBER(jrpacman_scan_rows); + TILE_GET_INFO_MEMBER(jrpacman_get_tile_info); + DECLARE_VIDEO_START(pacman); + DECLARE_PALETTE_INIT(pacman); + DECLARE_VIDEO_START(birdiy); + DECLARE_VIDEO_START(s2650games); + DECLARE_MACHINE_RESET(mschamp); + DECLARE_MACHINE_RESET(superabc); + DECLARE_VIDEO_START(pengo); + DECLARE_VIDEO_START(jrpacman); + UINT32 screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(vblank_irq); + INTERRUPT_GEN_MEMBER(vblank_nmi); + INTERRUPT_GEN_MEMBER(s2650_interrupt); + void init_save_state(); + void jrpacman_mark_tile_dirty( int offset ); + void maketrax_rom_decode(); + void korosuke_rom_decode(); + void eyes_decode(UINT8 *data); + void mspacman_install_patches(UINT8 *ROM); + + // theglopb.c + void theglobp_decrypt_rom_8(); + void theglobp_decrypt_rom_9(); + void theglobp_decrypt_rom_A(); + void theglobp_decrypt_rom_B(); + DECLARE_READ8_MEMBER(theglobp_decrypt_rom); + DECLARE_MACHINE_START(theglobp); + DECLARE_MACHINE_RESET(theglobp); + + // pacplus.c + UINT8 pacplus_decrypt(int addr, UINT8 e); + void pacplus_decode(); + + // jumpshot.c + UINT8 jumpshot_decrypt(int addr, UINT8 e); + void jumpshot_decode(); + + // acitya.c + void acitya_decrypt_rom_8(); + void acitya_decrypt_rom_9(); + void acitya_decrypt_rom_A(); + void acitya_decrypt_rom_B(); + DECLARE_READ8_MEMBER(acitya_decrypt_rom); + DECLARE_MACHINE_START(acitya); + DECLARE_MACHINE_RESET(acitya); +// HBMAME extras + DECLARE_VIDEO_START(pacmanx); + DECLARE_VIDEO_START(multipac); + UINT32 screen_update_pacmanx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_multipac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_pengo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_PALETTE_INIT(multipac); + DECLARE_PALETTE_INIT(pengo); + void m96in1b_gfxbank_w(UINT8 gfxbank); + void madpac_gfxbank_w(UINT8 gfxbank); + DECLARE_WRITE8_MEMBER(multipac_gfxbank_w); + DECLARE_WRITE8_MEMBER(multipac_palbank_w); + TILE_GET_INFO_MEMBER(multipac_get_tile_info); + UINT8 m_speedcheat; + UINT8 m_timerthing; + DECLARE_READ8_MEMBER(mspacii_prot_r); + DECLARE_READ8_MEMBER(zolatimer_r); + DECLARE_WRITE8_MEMBER(zolatimer_w); + DECLARE_MACHINE_RESET(mspacman); + DECLARE_WRITE8_MEMBER(m96in1_rombank_w); + DECLARE_WRITE8_MEMBER(m96in1b_rombank_w); + DECLARE_WRITE8_MEMBER(hackypac_rombank_w); + DECLARE_WRITE8_MEMBER(madpac_rombank_w); + DECLARE_WRITE8_MEMBER(multipac_rombank_w); + DECLARE_WRITE8_MEMBER(pm4n1_rombank_w); + DECLARE_WRITE8_MEMBER(pm4n1d_rombank_w); + DECLARE_WRITE8_MEMBER(superabc_rombank_w); + DECLARE_MACHINE_RESET(96in1); + DECLARE_MACHINE_RESET(hackypac); + DECLARE_MACHINE_RESET(madpac); + DECLARE_MACHINE_RESET(multipac); + DECLARE_MACHINE_RESET(mspaceur); + DECLARE_MACHINE_RESET(pm4n1); + DECLARE_DRIVER_INIT(96in1); + DECLARE_DRIVER_INIT(madpac); + DECLARE_DRIVER_INIT(mspaceur); + DECLARE_DRIVER_INIT(multipac); + DECLARE_DRIVER_INIT(pm4n1); + DECLARE_DRIVER_INIT(pengo); +// END HBMAME +}; diff --git a/docs/release/src/hbmame/layout/monaco.lay b/docs/release/src/hbmame/layout/monaco.lay new file mode 100644 index 00000000000..311d5b4572b --- /dev/null +++ b/docs/release/src/hbmame/layout/monaco.lay @@ -0,0 +1,92 @@ +<?xml version="1.0"?> +<mamelayout version="2"> +<element name="digit" defstate="10"> + <led7seg> + <color red="1.0" green="0.3" blue="0.0" /> + </led7seg> +</element> + +<view name="Lamps and Timer"> + <screen index="0"> + <bounds left="1" top="0" right="8" bottom="8" /> + </screen> + <bezel name="digit5" element="digit"> + <bounds x="0.49" y="2.1" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit4" element="digit"> + <bounds x="0.345" y="2.1" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit3" element="digit"> + <bounds x="0.635" y="1.8" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit2" element="digit"> + <bounds x="0.49" y="1.8" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit1" element="digit"> + <bounds x="0.345" y="1.8" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit0" element="digit"> + <bounds x="0.2" y="1.8" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit53" element="digit"> + <bounds x="0.635" y="1.3" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit52" element="digit"> + <bounds x="0.49" y="1.3" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit51" element="digit"> + <bounds x="0.345" y="1.3" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit50" element="digit"> + <bounds x="0.2" y="1.3" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit43" element="digit"> + <bounds x="0.635" y="1.0" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit42" element="digit"> + <bounds x="0.49" y="1.0" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit41" element="digit"> + <bounds x="0.345" y="1.0" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit40" element="digit"> + <bounds x="0.2" y="1.0" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit33" element="digit"> + <bounds x="0.635" y="0.7" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit32" element="digit"> + <bounds x="0.49" y="0.7" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit31" element="digit"> + <bounds x="0.345" y="0.7" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit30" element="digit"> + <bounds x="0.2" y="0.7" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit23" element="digit"> + <bounds x="0.635" y="0.4" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit22" element="digit"> + <bounds x="0.49" y="0.4" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit21" element="digit"> + <bounds x="0.345" y="0.4" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit20" element="digit"> + <bounds x="0.2" y="0.4" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit13" element="digit"> + <bounds x="0.635" y="0.1" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit12" element="digit"> + <bounds x="0.49" y="0.1" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit11" element="digit"> + <bounds x="0.345" y="0.1" width="0.145" height="0.2" /> + </bezel> + <bezel name="digit10" element="digit"> + <bounds x="0.2" y="0.1" width="0.145" height="0.2" /> + </bezel> + </view> +</mamelayout>
\ No newline at end of file diff --git a/docs/release/src/hbmame/layout/neogeo.lay b/docs/release/src/hbmame/layout/neogeo.lay new file mode 100644 index 00000000000..bdaa722b17d --- /dev/null +++ b/docs/release/src/hbmame/layout/neogeo.lay @@ -0,0 +1,40 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + <element name="blank"> + <rect> + <color red="0" green="0" blue="0" /> + </rect> + </element> + + <view name="Screen 0 Standard (4:3)"> + <screen index="0"> + <bounds left="0" top="0" right="4" bottom="3" /> + </screen> + </view> + + <view name="Screen 0 Cropped (304x224)"> + <bezel name="blank" element="blank"> + <bounds left="0" top="0" right="0.1" bottom="3" /> + </bezel> + <bezel name="blank" element="blank"> + <bounds left="3.9" top="0" right="4" bottom="3" /> + </bezel> + <screen index="0"> + <bounds left="0" top="0" right="4" bottom="3" /> + </screen> + </view> + + <view name="Screen 0 Stretched (304x224)"> + <bounds left="0" top="0" right="4" bottom="3" /> + <screen index="0"> + <bounds left="-0.105263" top="0" right="4.105263" bottom="3" /> + </screen> + </view> + + <view name="Screen 0 Stretched (272x224)"> + <bounds left="0" top="0" right="4" bottom="3" /> + <screen index="0"> + <bounds left="-0.210526" top="0" right="4.205263" bottom="3" /> + </screen> + </view> +</mamelayout> diff --git a/docs/release/src/hbmame/machine/arkanoid.cpp b/docs/release/src/hbmame/machine/arkanoid.cpp new file mode 100644 index 00000000000..6924a0f45b7 --- /dev/null +++ b/docs/release/src/hbmame/machine/arkanoid.cpp @@ -0,0 +1,634 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/*************************************************************************** + + machine.c + + Functions to emulate general aspects of the machine (RAM, ROM, interrupts, + I/O ports) + +***************************************************************************/ + +#include "emu.h" +#include "includes/arkanoid.h" + + +/* To log specific reads and writes of the bootlegs */ +#define ARKANOID_BOOTLEG_VERBOSE 1 + + +READ8_MEMBER(arkanoid_state::arkanoid_Z80_mcu_r) +{ + /* return the last value the 68705 wrote, and mark that we've read it */ + m_m68705write = 0; + return m_toz80; +} + +TIMER_CALLBACK_MEMBER(arkanoid_state::test) +{ + m_z80write = 1; + m_fromz80 = param; +} + +WRITE8_MEMBER(arkanoid_state::arkanoid_Z80_mcu_w) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(arkanoid_state::test),this), data); + /* boost the interleave for a few usecs to make sure it is read successfully */ + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10)); +} + +READ8_MEMBER(arkanoid_state::arkanoid_68705_port_a_r) +{ + return (m_port_a_out & m_ddr_a) | (m_port_a_in & ~m_ddr_a); +} + +WRITE8_MEMBER(arkanoid_state::arkanoid_68705_port_a_w) +{ + m_port_a_out = data; +} + +WRITE8_MEMBER(arkanoid_state::arkanoid_68705_ddr_a_w) +{ + m_ddr_a = data; +} + + +READ8_MEMBER(arkanoid_state::arkanoid_68705_port_c_r) +{ + int res = 0; + + /* bit 0 is high on a write strobe; clear it once we've detected it */ + if (m_z80write) + res |= 0x01; + + /* bit 1 is high if the previous write has been read */ + if (!m_m68705write) + res |= 0x02; + + return (m_port_c_out & m_ddr_c) | (res & ~m_ddr_c); +} + +WRITE8_MEMBER(arkanoid_state::arkanoid_68705_port_c_w) +{ + if ((m_ddr_c & 0x04) && (~data & 0x04) && (m_port_c_out & 0x04)) + { + /* return the last value the Z80 wrote */ + m_z80write = 0; + m_port_a_in = m_fromz80; + } + if ((m_ddr_c & 0x08) && (~data & 0x08) && (m_port_c_out & 0x08)) + { + /* a write from the 68705 to the Z80; remember its value */ + m_m68705write = 1; + m_toz80 = m_port_a_out; + } + + m_port_c_out = data; +} + +WRITE8_MEMBER(arkanoid_state::arkanoid_68705_ddr_c_w) +{ + m_ddr_c = data; +} + +CUSTOM_INPUT_MEMBER(arkanoid_state::arkanoid_68705_input_r) +{ + int res = 0; + + /* bit 0x40 of comes from the sticky bit */ + if (!m_z80write) + res |= 0x01; + + /* bit 0x80 comes from a write latch */ + if (m_mcu) // HBMAME fix for bootlegs + if (!m_m68705write) + res |= 0x02; + + return res; +} + +CUSTOM_INPUT_MEMBER(arkanoid_state::arkanoid_input_mux) +{ + const char *tag1 = (const char *)param; + const char *tag2 = tag1 + strlen(tag1) + 1; + return ioport((m_paddle_select == 0) ? tag1 : tag2)->read(); +} + +/* + +Bootlegs stuff + +The bootlegs simulate the missing MCU behaviour with writes to 0xd018 and reads value back from 0xf002. +Fortunately, 'arkangc', 'arkangc2', 'block2', 'arkbloc2' and 'arkblock' has patched code not to bother with that. +So I've fixed 'arkbl3' and 'paddle2' to return the expected values (code is strongly similar). +However, 'block2' is the only bootleg that writes some values to 0xd018 and reads them back from 0xf000. + +Some bootlegs also test some bits from 0xd008 after reading the paddle value at 0xd018. +Their effect is completely unknown but I need to set some bits to 1 so the games are playable : + + - 'arkangc' : NO read from 0xd008 ! + - 'arkangc2' : + * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start : + . you can't select your starting level (it always starts at level 1) + . you can't control the paddle (it automoves by following the ball) + . you can use the "fire" button (the game never shoots) + . you are awarded points as in a normal game + . sounds are played + - 'block2' : + * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start : + . you can't control the paddle (it automoves by following the ball) + . you can use the "fire" button (the game never shoots) + . you are awarded points as in a normal game + . sounds are played + - 'arkblock' : NO read from 0xd008 ! + - 'arkbloc2' : + * bit 5 must sometimes be set to 1 or you can't reach right side of the screen + nor select all levels at the beginning of the game + - 'arkgcbl' : + * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start : + . you can't select your starting level (it always starts at level 1) + . you can't control the paddle (it automoves by following the ball) + . you can use the "fire" button (the game never shoots) + . you are awarded points as in a normal game + . sounds are played + * bit 5 must sometimes be set to 1 or you can't reach right side of the screen + nor select all levels at the beginning of the game + - 'paddle2' : + * bits 0 and 1 must be set to 1 or the paddle goes up (joystick issue ?) + * bits 2 and 3 must be set to 1 or the paddle goes down (joystick issue ?) + * bit 5 must sometimes be set to 1 or you can't reach right side of the screen + nor select all levels at the beginning of the game + + +TO DO (2006.09.12) : + + - understand reads from 0xd008 (even if the games are playable) + - try to document writes to 0xd018 with unknown effect + +*/ + + +#define LOG_F000_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_f000_r - cmd = %02x - val = %02x\n", space.device().safe_pc(), m_bootleg_cmd, arkanoid_bootleg_val); +#define LOG_F002_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_f002_r - cmd = %02x - val = %02x\n", space.device().safe_pc(), m_bootleg_cmd, arkanoid_bootleg_val); +#define LOG_D018_W if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_d018_w - data = %02x - cmd = %02x\n", space.device().safe_pc(), data, m_bootleg_cmd); +#define LOG_D008_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_d008_r - val = %02x\n", space.device().safe_pc(), arkanoid_bootleg_d008_val); + + +/* Kludge for some bootlegs that read this address */ +READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f000_r) +{ + UINT8 arkanoid_bootleg_val = 0x00; + + switch (m_bootleg_id) + { + case ARKANGC: /* There are no reads from 0xf000 in these bootlegs */ + case ARKBLOCK: + case ARKANGC2: + case ARKBLOC2: + case ARKGCBL: + case PADDLE2: + switch (m_bootleg_cmd) + { + default: + break; + } + LOG_F000_R + break; + case BLOCK2: + switch (m_bootleg_cmd) + { + case 0x05: /* Check 1 */ + arkanoid_bootleg_val = 0x05; + break; + case 0x0a: /* Check 2 */ + arkanoid_bootleg_val = 0x0a; + break; + default: + break; + } + LOG_F000_R + break; + default: + logerror("%04x: arkanoid_bootleg_f000_r - cmd = %02x - unknown bootleg !\n", space.device().safe_pc(), m_bootleg_cmd); + break; + } + + return arkanoid_bootleg_val; +} + +/* Kludge for some bootlegs that read this address */ +READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f002_r) +{ + UINT8 arkanoid_bootleg_val = 0x00; + + switch (m_bootleg_id) + { + case ARKANGC: + case ARKBLOCK: + switch (m_bootleg_cmd) + { + default: + break; + } + LOG_F002_R + break; + case ARKANGC2: /* There are no reads from 0xf002 in these bootlegs */ + case BLOCK2: + switch (m_bootleg_cmd) + { + default: + break; + } + LOG_F002_R + break; + case ARKBLOC2: + switch (m_bootleg_cmd) + { + default: + break; + } + LOG_F002_R + break; + case ARKGCBL: + switch (m_bootleg_cmd) + { + case 0x8a: /* Current level (fixed routine) */ + arkanoid_bootleg_val = 0xa5; + break; + case 0xff: /* Avoid "BAD HARDWARE " message (fixed routine) */ + arkanoid_bootleg_val = 0xe2; + break; + default: + break; + } + LOG_F002_R + break; + case PADDLE2: + switch (m_bootleg_cmd) + { + case 0x24: /* Avoid bad jump to 0x0066 */ + arkanoid_bootleg_val = 0x9b; + break; + case 0x36: /* Avoid "BAD HARDWARE " message */ + arkanoid_bootleg_val = 0x2d; + break; + case 0x38: /* Start of levels table (fixed offset) */ + arkanoid_bootleg_val = 0xf3; + break; + case 0x8a: /* Current level (fixed routine) */ + arkanoid_bootleg_val = 0xa5; + break; + case 0xc3: /* Avoid bad jump to 0xf000 */ + arkanoid_bootleg_val = 0x1d; + break; + case 0xe3: /* Number of bricks left (fixed offset) */ + arkanoid_bootleg_val = 0x61; + break; + case 0xf7: /* Avoid "U69" message */ + arkanoid_bootleg_val = 0x00; + break; + case 0xff: /* Avoid "BAD HARDWARE " message (fixed routine) */ + arkanoid_bootleg_val = 0xe2; + break; + default: + break; + } + LOG_F002_R + break; + default: + logerror("%04x: arkanoid_bootleg_f002_r - cmd = %02x - unknown bootleg !\n", space.device().safe_pc(), m_bootleg_cmd); + break; + } + + return arkanoid_bootleg_val; +} + +/* Kludge for some bootlegs that write this address */ +WRITE8_MEMBER(arkanoid_state::arkanoid_bootleg_d018_w) +{ + m_bootleg_cmd = 0x00; + + switch (m_bootleg_id) + { + case ARKANGC: + case ARKBLOCK: + switch (data) + { + case 0x36: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x0313 -> 0x0340) */ + if (space.device().safe_pc() == 0x7c47) + m_bootleg_cmd = 0x00; + break; + case 0x38: /* unneeded value : no call 0x2050, unused A and fixed HL (0x7bd5) */ + if (space.device().safe_pc() == 0x7b87) + m_bootleg_cmd = 0x00; + break; + case 0x8a: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x7b77 -> 0x7c1c) */ + if (space.device().safe_pc() == 0x9661) + m_bootleg_cmd = 0x00; + break; + case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x00) and fixed HL (0xed83) */ + if (space.device().safe_pc() == 0x67e3) + m_bootleg_cmd = 0x00; + break; + case 0xf7: /* unneeded value : 3 * 'NOP' at 0x034f + 2 * 'NOP' at 0x35b */ + if (space.device().safe_pc() == 0x0349) + m_bootleg_cmd = 0x00; + break; + case 0xff: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x7c4f -> 0x7d31) */ + if (space.device().safe_pc() == 0x9670) + m_bootleg_cmd = 0x00; + break; + default: + m_bootleg_cmd = 0x00; + break; + } + LOG_D018_W + break; + case ARKANGC2: + switch (data) + { + case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */ + if (space.device().safe_pc() == 0x7c4c) + m_bootleg_cmd = 0x00; + break; + case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */ + if (space.device().safe_pc() == 0x7b87) + m_bootleg_cmd = 0x00; + break; + case 0x88: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e3) + m_bootleg_cmd = 0x00; + if (space.device().safe_pc() == 0x7c47) + m_bootleg_cmd = 0x00; + break; + case 0x89: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e5) + m_bootleg_cmd = 0x00; + break; + case 0x8a: /* unneeded value : call 0x2050 but fixed A (0xa5) */ + if (space.device().safe_pc() == 0x9661) + m_bootleg_cmd = 0x00; + break; + case 0xc0: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e7) + m_bootleg_cmd = 0x00; + break; + case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */ + if (space.device().safe_pc() == 0x67e9) + m_bootleg_cmd = 0x00; + break; + case 0xff: /* unneeded value : call 0x2050 but fixed A (0xe2) */ + if (space.device().safe_pc() == 0x9670) + m_bootleg_cmd = 0x00; + break; + default: + m_bootleg_cmd = 0x00; + break; + } + LOG_D018_W + break; + case BLOCK2: + switch (data) + { + case 0x05: /* Check 1 */ + if (space.device().safe_pc() == 0x0363) + m_bootleg_cmd = 0x05; + break; + case 0x0a: /* Check 2 */ + if (space.device().safe_pc() == 0x0372) + m_bootleg_cmd = 0x0a; + break; + default: + m_bootleg_cmd = 0x00; + break; + } + LOG_D018_W + break; + case ARKBLOC2: + switch (data) + { + case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */ + if (space.device().safe_pc() == 0x7c4c) + m_bootleg_cmd = 0x00; + break; + case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */ + if (space.device().safe_pc() == 0x7b87) + m_bootleg_cmd = 0x00; + break; + case 0x88: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e3) + m_bootleg_cmd = 0x00; + if (space.device().safe_pc() == 0x7c47) + m_bootleg_cmd = 0x00; + break; + case 0x89: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e5) + m_bootleg_cmd = 0x00; + break; + case 0x8a: /* unneeded value : call 0x2050 but unused HL and fixed DE (0x7c1c) */ + if (space.device().safe_pc() == 0x9661) + m_bootleg_cmd = 0x00; + break; + case 0xc0: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e7) + m_bootleg_cmd = 0x00; + break; + case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */ + if (space.device().safe_pc() == 0x67e9) + m_bootleg_cmd = 0x00; + break; + case 0xf7: /* unneeded value : call 0x2050 but never called (check code at 0x0340) */ + if (space.device().safe_pc() == 0x0349) + m_bootleg_cmd = 0x00; + break; + case 0xff: /* unneeded value : no call 0x2050, unused A and fixed HL (0x7d31) */ + if (space.device().safe_pc() == 0x9670) + m_bootleg_cmd = 0x00; + break; + default: + m_bootleg_cmd = 0x00; + break; + } + LOG_D018_W + break; + case ARKGCBL: + switch (data) + { + case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */ + if (space.device().safe_pc() == 0x7c4c) + m_bootleg_cmd = 0x00; + break; + case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */ + if (space.device().safe_pc() == 0x7b87) + m_bootleg_cmd = 0x00; + break; + case 0x88: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e3) + m_bootleg_cmd = 0x00; + if (space.device().safe_pc() == 0x7c47) + m_bootleg_cmd = 0x00; + case 0x89: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e5) + m_bootleg_cmd = 0x00; + break; + case 0x8a: /* call 0x2050 with A read from 0xf002 and wrong HL */ + if (space.device().safe_pc() == 0x9661) + m_bootleg_cmd = data; + break; + case 0xc0: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e7) + m_bootleg_cmd = 0x00; + break; + case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */ + if (space.device().safe_pc() == 0x67e9) + m_bootleg_cmd = 0x00; + break; + case 0xf7: /* unneeded value : 3 * 'NOP' at 0x034f + 'JR NZ,$035D' at 0x35b */ + if (space.device().safe_pc() == 0x0349) + m_bootleg_cmd = 0x00; + break; + case 0xff: /* call 0x2050 with A read from 0xf002 and wrong HL */ + if (space.device().safe_pc() == 0x9670) + m_bootleg_cmd = data; + break; + default: + m_bootleg_cmd = 0x00; + break; + } + LOG_D018_W + break; + case PADDLE2: + switch (data) + { + case 0x24: /* A read from 0xf002 (expected to be 0x9b) */ + if (space.device().safe_pc() == 0xbd7a) + m_bootleg_cmd = data; + break; + case 0x36: /* call 0x2050 with A read from 0xf002 and wrong HL */ + if (space.device().safe_pc() == 0x7c4c) + m_bootleg_cmd = data; + break; + case 0x38: /* call 0x2050 with A read from 0xf002 and wrong HL */ + if (space.device().safe_pc() == 0x7b87) + m_bootleg_cmd = data; + break; + case 0x88: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e3) + m_bootleg_cmd = 0x00; + if (space.device().safe_pc() == 0x7c47) + m_bootleg_cmd = 0x00; + case 0x89: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e5) + m_bootleg_cmd = 0x00; + break; + case 0x8a: /* call 0x2050 with A read from 0xf002 and wrong HL */ + if (space.device().safe_pc() == 0x9661) + m_bootleg_cmd = data; + break; + case 0xc0: /* unneeded value : no read back */ + if (space.device().safe_pc() == 0x67e7) + m_bootleg_cmd = 0x00; + break; + case 0xc3: /* A read from 0xf002 (expected to be 0x1d) */ + if (space.device().safe_pc() == 0xbd8a) + m_bootleg_cmd = data; + break; + case 0xe3: /* call 0x2050 with A read from 0xf002 and wrong HL */ + if (space.device().safe_pc() == 0x67e9) + m_bootleg_cmd = data; + break; + case 0xf7: /* call 0x2050 with A read from 0xf002 and wrong HL */ + if (space.device().safe_pc() == 0x0349) + m_bootleg_cmd = data; + break; + case 0xff: /* call 0x2050 with A read from 0xf002 and wrong HL */ + if (space.device().safe_pc() == 0x9670) + m_bootleg_cmd = data; + break; + default: + m_bootleg_cmd = 0x00; + break; + } + LOG_D018_W + break; + + default: + logerror("%04x: arkanoid_bootleg_d018_w - data = %02x - unknown bootleg !\n", space.device().safe_pc(), data); + break; + } +} + +#ifdef UNUSED_CODE +READ8_MEMBER(arkanoid_state::block2_bootleg_f000_r) +{ + return m_bootleg_cmd; +} +#endif + +/* Kludge for some bootlegs that read this address */ +READ8_MEMBER(arkanoid_state::arkanoid_bootleg_d008_r) +{ + UINT8 arkanoid_bootleg_d008_bit[8]; + UINT8 arkanoid_bootleg_d008_val; + UINT8 arkanoid_paddle_value = ioport("MUX")->read(); + int b; + + arkanoid_bootleg_d008_bit[4] = arkanoid_bootleg_d008_bit[6] = arkanoid_bootleg_d008_bit[7] = 0; /* untested bits */ + + switch (m_bootleg_id) + { + case ARKANGC: + case ARKBLOCK: + arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */ + break; + case ARKANGC2: + case BLOCK2: + arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x0cad */ + arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */ + break; + case ARKBLOC2: + arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */ + break; + case ARKGCBL: + arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x0cad */ + arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */ + break; + case PADDLE2: + arkanoid_bootleg_d008_bit[0] = 1; /* check code at 0x7d65 */ + arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x7d65 */ + arkanoid_bootleg_d008_bit[2] = 1; /* check code at 0x7d65 */ + arkanoid_bootleg_d008_bit[3] = 1; /* check code at 0x7d65 */ + arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */ + break; + default: + arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */ + arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */ + logerror("%04x: arkanoid_bootleg_d008_r - unknown bootleg !\n",space.device().safe_pc()); + break; + } + + arkanoid_bootleg_d008_val = 0; + for (b = 0; b < 8; b++) + arkanoid_bootleg_d008_val |= (arkanoid_bootleg_d008_bit[b] << b); + + LOG_D008_R + + return arkanoid_bootleg_d008_val; +} diff --git a/docs/release/src/hbmame/machine/neocrypt.cpp b/docs/release/src/hbmame/machine/neocrypt.cpp new file mode 100644 index 00000000000..13828aa8c45 --- /dev/null +++ b/docs/release/src/hbmame/machine/neocrypt.cpp @@ -0,0 +1,215 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari +// thanks-to:Fuzz + +/*************************************************************************** + + Neo-Geo hardware encryption devices + + NeoGeo 'C' (Graphics) Rom encryption + CMC42 and CMC50 protection chips + Also contains 'S' (Text Layer) data on these games + M1 (Z80) rom is also encrypted for CMC50 + + The M1 roms contain some additional data at 0xf800. Some of this + is said to be related to the C rom encryption. + If CMC50 is used, data located at 0xff00 - 0xffff is required for + m1 encryption checksum?. + + Later games use additional basic scrambling on top of the standard + CMC scramble. + + NeoGeo 'P' Rom Encryption + Used on various games + + kof98 + - unique early encryption + kof99, garou, garouh, mslug3, kof2000 + - complex SMA chip which appears to contain part of the game rom + internally and decrypts the 68k code on the board. Also has a + random number generator and custom bankswitching + (see machine/neoprot.c) + kof2002, matrim, samsho5, samsh5p + - some basic block / bank swapping + svc, kof2003, mslug5 + - different scrambling with additional xor + + NeoGeo 'V' Rom encryption + NEO-PCM2 chip used on various games + type1 used on pnyaa, rotd, mslug4 + type2 used on kof2002, matrim, mslug5, svc, + samsho5, samsh5s, kof2003 + +***************************************************************************/ + +#include "emu.h" +#include "includes/neogeo.h" + + + + +/* ms5pcb and svcpcb have an additional scramble on top of the standard CMC scrambling */ +void neogeo_noslot_state::svcpcb_gfx_decrypt() +{ + static const UINT8 xorval[ 4 ] = { 0x34, 0x21, 0xc4, 0xe9 }; + int i; + int ofst; + int rom_size = memregion( "sprites" )->bytes(); + UINT8 *rom = memregion( "sprites" )->base(); + dynamic_buffer buf( rom_size ); + + for( i = 0; i < rom_size; i++ ) + { + rom[ i ] ^= xorval[ (i % 4) ]; + } + for( i = 0; i < rom_size; i += 4 ) + { + UINT32 rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24; + rom32 = BITSWAP32( rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12, 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16 ); + buf[i] = rom32 & 0xff; + buf[i+1] = (rom32>>8) & 0xff; + buf[i+2] = (rom32>>16) & 0xff; + buf[i+3] = (rom32>>24) & 0xff; + } + for( i = 0; i < rom_size / 4; i++ ) + { + ofst = BITSWAP24( (i & 0x1fffff), 0x17, 0x16, 0x15, 0x04, 0x0b, 0x0e, 0x08, 0x0c, 0x10, 0x00, 0x0a, 0x13, 0x03, 0x06, 0x02, 0x07, 0x0d, 0x01, 0x11, 0x09, 0x14, 0x0f, 0x12, 0x05 ); + ofst ^= 0x0c8923; + ofst += (i & 0xffe00000); + memcpy( &rom[ i * 4 ], &buf[ ofst * 4 ], 0x04 ); + } +} + + +/* and a further swap on the s1 data */ +void neogeo_noslot_state::svcpcb_s1data_decrypt() +{ + int i; + UINT8 *s1 = memregion( "fixed" )->base(); + size_t s1_size = memregion( "fixed" )->bytes(); + + for( i = 0; i < s1_size; i++ ) // Decrypt S + { + s1[ i ] = BITSWAP8( s1[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 ); + } +} + + +/* kf2k3pcb has an additional scramble on top of the standard CMC scrambling */ +/* Thanks to Razoola & Halrin for the info */ +void neogeo_noslot_state::kf2k3pcb_gfx_decrypt() +{ + static const UINT8 xorval[ 4 ] = { 0x34, 0x21, 0xc4, 0xe9 }; + int i; + int ofst; + int rom_size = memregion( "sprites" )->bytes(); + UINT8 *rom = memregion( "sprites" )->base(); + dynamic_buffer buf( rom_size ); + + for ( i = 0; i < rom_size; i++ ) + { + rom[ i ] ^= xorval[ (i % 4) ]; + } + for ( i = 0; i < rom_size; i +=4 ) + { + UINT32 rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24; + rom32 = BITSWAP32( rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12, 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16 ); + buf[i] = rom32 & 0xff; + buf[i+1] = (rom32>>8) & 0xff; + buf[i+2] = (rom32>>16) & 0xff; + buf[i+3] = (rom32>>24) & 0xff; + } + for ( i = 0; i < rom_size; i+=4 ) + { + ofst = BITSWAP24( (i & 0x7fffff), 0x17, 0x15, 0x0a, 0x14, 0x13, 0x16, 0x12, 0x11, 0x10, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00 ); + ofst ^= 0x000000; + ofst += (i & 0xff800000); + memcpy( &rom[ ofst ], &buf[ i ], 0x04 ); + } +} + + +/* and a further swap on the s1 data */ +void neogeo_noslot_state::kf2k3pcb_decrypt_s1data() +{ + UINT8 *src; + UINT8 *dst; + int i; + int tx_size = memregion( "fixed" )->bytes(); + int srom_size = memregion( "sprites" )->bytes(); + + src = memregion( "sprites" )->base() + srom_size - 0x1000000 - 0x80000; // Decrypt S + dst = memregion( "fixed" )->base(); + + for( i = 0; i < tx_size / 2; i++ ) + { + dst[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ]; + } + + src = memregion( "sprites" )->base() + srom_size - 0x80000; + dst = memregion( "fixed" )->base() + 0x80000; + + for( i = 0; i < tx_size / 2; i++ ) + { + dst[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ]; + } + + dst = memregion( "fixed" )->base(); + + for( i = 0; i < tx_size; i++ ) + { + dst[ i ] = BITSWAP8( dst[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 ); + } +} + + + + + +/*************************************************************************** + +NeoGeo 'SP1' (BIOS) ROM encryption + +***************************************************************************/ + + +/* only found on kf2k3pcb */ +void neogeo_noslot_state::kf2k3pcb_sp1_decrypt() +{ + static const UINT8 address[0x40] = { + 0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a, + 0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04, + 0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07, + 0x09,0x09,0x04,0x04,0x09,0x09,0x04,0x04, + 0x0b,0x0d,0x0b,0x0d,0x03,0x05,0x03,0x05, + 0x0e,0x0e,0x03,0x03,0x0e,0x0e,0x03,0x03, + 0x03,0x05,0x0b,0x0d,0x03,0x05,0x0b,0x0d, + 0x04,0x00,0x04,0x00,0x0e,0x0a,0x0e,0x0a + }; + + UINT16 *rom = (UINT16 *)memregion("mainbios")->base(); + std::vector<UINT16> buf(0x80000/2); + int i, addr; + + for (i = 0; i < 0x80000/2; i++) + { + // address xor + addr = i ^ 0x0020; + if ( i & 0x00020) addr ^= 0x0010; + if (~i & 0x00010) addr ^= 0x0040; + if (~i & 0x00004) addr ^= 0x0080; + if ( i & 0x00200) addr ^= 0x0100; + if (~i & 0x02000) addr ^= 0x0400; + if (~i & 0x10000) addr ^= 0x1000; + if ( i & 0x02000) addr ^= 0x8000; + addr ^= address[((i >> 1) & 0x38) | (i & 7)]; + buf[i] = rom[addr]; + + // data xor + if (buf[i] & 0x0004) buf[i] ^= 0x0001; + if (buf[i] & 0x0010) buf[i] ^= 0x0002; + if (buf[i] & 0x0020) buf[i] ^= 0x0008; + } + + memcpy(rom, &buf[0], 0x80000); +} diff --git a/docs/release/src/hbmame/machine/ng_memcard.cpp b/docs/release/src/hbmame/machine/ng_memcard.cpp new file mode 100644 index 00000000000..f4c816c6f1c --- /dev/null +++ b/docs/release/src/hbmame/machine/ng_memcard.cpp @@ -0,0 +1,95 @@ +// license:BSD-3-Clause +// copyright-holders:Miodrag Milanovic +/********************************************************************* + + ng_memcard.c + + NEOGEO Memory card functions. + +*********************************************************************/ + +#include "emu.h" +#include "emuopts.h" +#include "ng_memcard.h" + +// device type definition +const device_type NG_MEMCARD = &device_creator<ng_memcard_device>; + +//------------------------------------------------- +// ng_memcard_device - constructor +//------------------------------------------------- + +ng_memcard_device::ng_memcard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, NG_MEMCARD, "NeoGeo Memory Card", tag, owner, clock, "ng_memcard", __FILE__), + device_image_interface(mconfig, *this) +{ +} + + +//------------------------------------------------- +// device_config_complete - perform any +// operations now that the configuration is +// complete +//------------------------------------------------- + +void ng_memcard_device::device_config_complete() +{ + // set brief and instance name + update_names(); +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void ng_memcard_device::device_start() +{ + save_item(NAME(m_memcard_data)); +} + +/*------------------------------------------------- + memcard_insert - insert an existing memory card + with the given index +-------------------------------------------------*/ + +bool ng_memcard_device::call_load() +{ + if(length() != 0x800) + return IMAGE_INIT_FAIL; + + fseek(0, SEEK_SET); + size_t ret = fread(m_memcard_data, 0x800); + if(ret != 0x800) + return IMAGE_INIT_FAIL; + + return IMAGE_INIT_PASS; +} + +void ng_memcard_device::call_unload() +{ + fseek(0, SEEK_SET); + fwrite(m_memcard_data, 0x800); +} + +bool ng_memcard_device::call_create(int format_type, option_resolution *format_options) +{ + memset(m_memcard_data, 0, 0x800); + + size_t ret = fwrite(m_memcard_data, 0x800); + if(ret != 0x800) + return IMAGE_INIT_FAIL; + + return IMAGE_INIT_PASS; +} + + +READ8_MEMBER(ng_memcard_device::read) +{ + return m_memcard_data[offset]; +} + +WRITE8_MEMBER(ng_memcard_device::write) +{ + m_memcard_data[offset] = data; +} diff --git a/docs/release/src/hbmame/machine/ng_memcard.h b/docs/release/src/hbmame/machine/ng_memcard.h new file mode 100644 index 00000000000..4752c1d1a67 --- /dev/null +++ b/docs/release/src/hbmame/machine/ng_memcard.h @@ -0,0 +1,68 @@ +// license:BSD-3-Clause +// copyright-holders:Miodrag Milanovic +/********************************************************************* + + ng_memcard.h + + NEOGEO Memory card functions. + +*********************************************************************/ + +#pragma once + +#ifndef __NG_MEMCARD_H__ +#define __NG_MEMCARD_H__ + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_NEOGEO_MEMCARD_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, NG_MEMCARD, 0) + +/*************************************************************************** + FUNCTION PROTOTYPES +***************************************************************************/ + +// ======================> ng_memcard_device + +class ng_memcard_device : public device_t, + public device_image_interface +{ +public: + // construction/destruction + ng_memcard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual iodevice_t image_type() const override { return IO_MEMCARD; } + + virtual bool is_readable() const override { return true; } + virtual bool is_writeable() const override { return true; } + virtual bool is_creatable() const override { return true; } + virtual bool must_be_loaded() const override { return false; } + virtual bool is_reset_on_load() const override { return false; } + virtual const char *file_extensions() const override { return "neo"; } + virtual const option_guide *create_option_guide() const override { return nullptr; } + + virtual bool call_load() override; + virtual void call_unload() override; + virtual bool call_create(int format_type, option_resolution *format_options) override; + + // device-level overrides + virtual void device_start() override; + virtual void device_config_complete() override; + + DECLARE_READ8_MEMBER(read); + DECLARE_WRITE8_MEMBER(write); + + /* returns the index of the current memory card, or -1 if none */ + int present() { return is_loaded() ? 0 : -1; } +private: + UINT8 m_memcard_data[0x800]; +}; + + +// device type definition +extern const device_type NG_MEMCARD; + + +#endif /* __NG_MEMCARD_H__ */ diff --git a/docs/release/src/hbmame/osd/windows/hbmame.man b/docs/release/src/hbmame/osd/windows/hbmame.man new file mode 100644 index 00000000000..cd8abb329c5 --- /dev/null +++ b/docs/release/src/hbmame/osd/windows/hbmame.man @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> + <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAME" type="win32" /> + <description>Homebrew M.A.M.E.</description> + <dependency> + <dependentAssembly> + <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> + </dependentAssembly> + </dependency> +</assembly> diff --git a/docs/release/src/hbmame/osd/windows/hbmame.rc b/docs/release/src/hbmame/osd/windows/hbmame.rc new file mode 100644 index 00000000000..e9fd900c163 --- /dev/null +++ b/docs/release/src/hbmame/osd/windows/hbmame.rc @@ -0,0 +1,49 @@ +//============================================================ +// +// mess.rc - Minimal resource file for Win32 MAME +// +//============================================================ +// +// Copyright Aaron Giles +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or +// without modification, are permitted provided that the +// following conditions are met: +// +// * Redistributions of source code must retain the above +// copyright notice, this list of conditions and the +// following disclaimer. +// * Redistributions in binary form must reproduce the +// above copyright notice, this list of conditions and +// the following disclaimer in the documentation and/or +// other materials provided with the distribution. +// * Neither the name 'MAME' nor the names of its +// contributors may be used to endorse or promote +// products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGE (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//============================================================ + +#define NOWINRES +#include "windows.h" +#include "commctrl.h" +//#include "hbmamevers.rc" + +1 24 MOVEABLE PURE "hbmame.man" + +2 ICON DISCARDABLE "../../osd/winui/res/hbmame.ico" diff --git a/docs/release/src/hbmame/osd/windows/hbmame/hbmame.ico b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.ico Binary files differnew file mode 100644 index 00000000000..845ec9aedd7 --- /dev/null +++ b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.ico diff --git a/docs/release/src/hbmame/osd/windows/hbmame/hbmame.man b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.man new file mode 100644 index 00000000000..dea8c25868e --- /dev/null +++ b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.man @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> + <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> + <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAME" type="win32" /> + <description>Home Brew Multiple Arcade Machine Emulator</description> + <dependency> + <dependentAssembly> + <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> + </dependentAssembly> + </dependency> + <asmv3:application> + <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> + <dpiAware>true</dpiAware> + </asmv3:windowsSettings> + </asmv3:application> +</assembly> diff --git a/docs/release/src/hbmame/osd/windows/hbmame/hbmame.rc b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.rc new file mode 100644 index 00000000000..ca578cfb58c --- /dev/null +++ b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.rc @@ -0,0 +1,11 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert + +//#define NOWINRES +#include "windows.h" +//#include "commctrl.h" +//#include "hbmamevers.rc" + +1 24 MOVEABLE PURE "hbmame.man" + +2 ICON DISCARDABLE "hbmame.ico" diff --git a/docs/release/src/hbmame/video/cps1.cpp b/docs/release/src/hbmame/video/cps1.cpp new file mode 100644 index 00000000000..c2be38c168c --- /dev/null +++ b/docs/release/src/hbmame/video/cps1.cpp @@ -0,0 +1,3264 @@ +// license:BSD-3-Clause +// copyright-holders:Paul Leaman +/*************************************************************************** + +The CPS1 system is made of 3 boards: A, B and C. The first two games also exist +a 2-board setups, where the C-board is integrated into the B-board. + +There are several revisions of the A-board, but they are functionally equivalent +and interchangeable except for 89626A-4 DASH used by sf2ce which has a 12MHz xtal +replacing the 10MHz one. Note that it's likely that from one point onwards Capcom +simply switched to make only 89626A-4 DASH board, that is all games after a +certain point should use the 12MHz xtal not just sf2ce. + +Known A-board revisions: + +88617A-4 +88617A-5 +88617A-7 +88617A-7b +89626A-4 +89626A-4 DASH + +Game Year B-board # B-board PALs C-board # CPS-B # C-board PALs +----------------------------------------------------------- ---- --------- --------------------- ----------- ----------------------- ------------ +Forgotten Worlds (World, newer) 1988 88621B-2 LW621 LWIO None CPS-B-01 DL-0411-10001 N/A +Forgotten Worlds (World) 88621B-2 LW621 LWIO None CPS-B-01 DL-0411-10001 N/A +Forgotten Worlds (USA, B-Board 88618B-2, Rev. A) 88618B-2 LWCHR LWIO None CPS-B-01 DL-0411-10001 N/A +Forgotten Worlds (USA, B-Board 88618B-2, Rev. AA) 88618B-2 LWCHR LWIO None CPS-B-01 DL-0411-10001 N/A +Forgotten Worlds (USA, B-Board 88618B-2, Rev. C) 88618B-2 LWCHR LWIO None CPS-B-01 DL-0411-10001 N/A +Forgotten Worlds (USA, B-Board 88621B-2, Rev. C) 88621B-2 LW621 LWIO None CPS-B-01 DL-0411-10001 N/A +Lost Worlds (Japan Old Ver.) 88618B-2 LWCHR LWIO None CPS-B-01 DL-0411-10001 N/A +Lost Worlds (Japan) 88618B-2 LWCHR LWIO None CPS-B-01 DL-0411-10001 N/A + +Ghouls'n Ghosts (World) 1988 88620-B-? DM620 LWIO None CPS-B-01 DL-0411-10001 N/A +Ghouls'n Ghosts (USA) 88620-B-2 DM620 LWIO None CPS-B-01 DL-0411-10001 N/A +Daimakaimura (Japan) 88622B-2 DM22A LWIO 88622-C-1 CPS-B-01 DL-0411-10001 None +Daimakaimura (Japan Resale Ver.) 91634B-2 DAM63B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Strider (USA, B-Board 89624B-2) 1989 89624B-2 ST24M1 LWIO 88622-C-1/2 CPS-B-01 DL-0411-10001 None +Strider (USA, B-Board 89624B-3) 89624B-3 ST24B2 LWIO 88622-C-2 CPS-B-01 DL-0411-10001 None +Strider Hiryu (Japan) 88622B-3 ST22B LWIO 88622-C-2 CPS-B-01 DL-0411-10001 None +Strider Hiryu (Japan Resale Ver.) 91634B-2 STH63B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Dynasty Wars (USA, B-Board 88622B-3) 1989 88622B-3 TK22B LWIO 88622-C-2 CPS-B-02 DL-0411-10002 None +Dynasty Wars (USA, B-Board 89624B-?) 89624B-? TK24B1 LWIO? ? CPS-B-02 DL-0411-10002 +Tenchi wo Kurau (Japan) 88622B-3 TK22B LWIO 88622-C-2 CPS-B-02 DL-0411-10002 None +Tenchi wo Kurau (Japan Resale Ver.) 91634B-2 TK163B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Willow (World) 1989 89624B-3 WL24B LWIO 88622-C-4 CPS-B-03 DL-0411-10003 None +Willow (USA Old Ver.) 89624B-3 WL24B LWIO 88622-C-2 CPS-B-03 DL-0411-10003 None +Willow (USA) 89624B-3 WL24B LWIO 88622-C-2/4 CPS-B-03 DL-0411-10003 None +Willow (Japan) 88622B-3 WL22B LWIO 88622-C-2 CPS-B-03 DL-0411-10003 None + +U.N. Squadron (USA) 1989 89624B-2 AR24B LWIO 88622-C-4 CPS-B-11 DL-0411-10004 None +Area 88 (Japan) 88622B-3 AR22B LWIO 88622-C-4 CPS-B-11 DL-0411-10004 None +Area 88 (Japan Resale Ver.) 91634B-2 ARA63B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Final Fight (World, set 1) 1989 89624B-3 S224B IOB1 88622-C-5 CPS-B-04 DL-0411-10005 None +Final Fight (World, set 2) 89624B-3 S224B LWIO 88622-C-5 CPS-B-04 DL-0411-10005 None +Final Fight (USA, set 1) 89624B-3 S224B IOB1 88622-C-5 CPS-B-04 DL-0411-10005 None +Final Fight (USA, set 2) 89624B-3 S224B IOB1 88622-C-5 CPS-B-04 DL-0411-10005 None +Final Fight (USA 900112) 89624B-3 S224B IOB1 88622-C-5 CPS-B-04@ DL-0411-10001 None +Final Fight (USA 900424) 89624B-3 S224B IOB1 88622-C-5 CPS-B-03 DL-0411-10003 None +Final Fight (USA 900613) 89624B-3 S224B IOB1 88622-C-5 CPS-B-05 DL-0411-10006 None +Final Fight (Japan) ? S222B ? ? CPS-B-04 DL-0411-10005 +Final Fight (Japan 900112) 89625B-1 S222B LWIO 88622-C-5 CPS-B-01 DL-0411-10001 None +Final Fight (Japan 900305) 88622B-3 S222B LWIO 88622-C-5 CPS-B-02 DL-0411-10002 None +Final Fight (Japan 900613) 89625B-1 S222B LWIO 88622-C-5 CPS-B-05 DL-0411-10006 None + +1941: Counter Attack (World) 1990 89624B-3 YI24B IOB1 88622-C-5 CPS-B-05 DL-0411-10006 None +1941: Counter Attack (World 900227) 89624B-3 YI24B IOB1 88622-C-5 CPS-B-05 DL-0411-10006 None +1941: Counter Attack (USA 900227) 89624B-3 YI24B IOB1 88622-C-5 CPS-B-05 DL-0411-10006 None +1941: Counter Attack (Japan) 89625B-1 YI22B LWIO? 88622-C-5 CPS-B-05 DL-0411-10006 None + +Mercs (World 900302) 1990 89624B-3 O224B IOB1 90628-C-1 CPS-B-12 DL-0411-10007 C628 +Mercs (USA 900302) 89624B-3 O224B IOB1 90628-C-1/2 CPS-B-12 DL-0411-10007 C628 +Mercs (USA 900608) 89624B-3 O224B IOB1 90628-C-1 CPS-B-12 DL-0411-10007 C628 +Senjou no Ookami II (Japan 900302) 89625B-1 O222B LWIO? 90628-C-1 CPS-B-12 DL-0411-10007 C628 + +Mega Twins (World 900619) 1990 89624B-3 CK24B IOB1 88622-C-5 CPS-B-14 DL-0411-10009 None +Chiki Chiki Boys (Japan 900619) 89625B-1 CK22B ? ? CPS-B-14 DL-0411-10009 None + +Magic Sword: Heroic Fantasy (World 900623) 1990 89624B-3 MS24B IOB1 88622-C-5 CPS-B-13 DL-0411-10008 None +Magic Sword: Heroic Fantasy (World 900725) 89624B-3 MS24B IOB1 88622-C-5 CPS-B-13 DL-0411-10008 None +Magic Sword: Heroic Fantasy (USA 900725) 89624B-3 MS24B IOB1 88622-C-5 CPS-B-13 DL-0411-10008 None +Magic Sword: Heroic Fantasy (Japan 900623) 89625B-1 MS22B IOB1 88622-C-5 CPS-B-13 DL-0411-10008 None + +Carrier Air Wing (World 901009) 1990 89624B-3 CA24B IOB1 88622-C-5 CPS-B-16 DL-0411-10011 None +Carrier Air Wing (World 901012) 89624B-3 CA24B IOB1 88622-C-5 CPS-B-16 DL-0411-10011 None +Carrier Air Wing (USA 901012) 89624B-3 CA24B IOB1 88622-C-5 CPS-B-16 DL-0411-10011 None +U.S. Navy (Japan 901012) 89625B-1 CA22B IOB1 88622-C-5 CPS-B-16 DL-0411-10011 None + +Nemo (World 901109) 1990 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None +Nemo (World 901130) 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None +Nemo (Japan 901120) 89625B-1 NM22B ? ? CPS-B-15 DL-0411-10010 + +Street Fighter II: The World Warrior (World 910214) 1991 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 +Street Fighter II: The World Warrior (World 910228) 90629B-3 STF29 IOB2 90632C-1 CPS-B-18 DL-0411-10013 C632B +Street Fighter II: The World Warrior (World 910318) 90629B-3 STF29 IOB1 90632C-1 CPS-B-05 DL-0411-10006 C632 +Street Fighter II: The World Warrior (World 910522) 90629B-3 STF29 IOB1 90632C-1 CPS-B-11 DL-0411-10004 C632 +Street Fighter II: The World Warrior (USA 910206) 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 +Street Fighter II: The World Warrior (USA 910214) 90629B-3 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 +Street Fighter II: The World Warrior (USA 910228) 90629B-3 STF29 IOB2 90632C-1 CPS-B-18 DL-0411-10013 C632B +Street Fighter II: The World Warrior (USA 910306) 90629B-3 STF29 IOB1 90632C-1 CPS-B-12 DL-0411-10007 C632 +Street Fighter II: The World Warrior (USA 910318) 90629B-3 STF29 IOB1 90632C-1 CPS-B-05 DL-0411-10006 C632 +Street Fighter II: The World Warrior (USA 910411) 90629B-3 STF29 IOB1 90632C-1 CPS-B-15 DL-0411-10010 C632 +Street Fighter II: The World Warrior (USA 910522, Rev. G) 90629B-3 STF29 IOB1 90632C-1 CPS-B-11 DL-0411-10004 C632 +Street Fighter II: The World Warrior (USA 910522, Rev. I) 90629B-3 STF29 IOB1 90632C-1 CPS-B-14 DL-0411-10009 C632 +Street Fighter II: The World Warrior (USA 911101) 90629B-3 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 +Street Fighter II: The World Warrior (Japan 910214) 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 +Street Fighter II: The World Warrior (Japan 910306) 90629B-3 STF29 IOB1 90632C-1 CPS-B-12 DL-0411-10007 C632 +Street Fighter II: The World Warrior (Japan 910411) 90629B-3 STF29 IOB1 90632C-1 CPS-B-15 DL-0411-10010 C632 +Street Fighter II: The World Warrior (Japan 910522) 90629B-3 STF29 IOB1 90632C-1 CPS-B-13 DL-0411-10008 C632 +Street Fighter II: The World Warrior (Japan 911210) 90629B-? STF29 IOB1 ? CPS-B-13 DL-0411-10008 C632 +Street Fighter II: The World Warrior (Japan 920312) 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 + +Three Wonders* (World 910513) 1991 89624B-3 RT24B IOB1 90630C-4 CPS-B-21 DL-0921-10014 IOC1 +Three Wonders* (World 910520) 89624B-3 RT24B IOB1 90630C-4 CPS-B-21 DL-0921-10014 IOC1 +Three Wonders* (USA 910520) 89624B-3 RT24B IOB1 90630C-4 CPS-B-21 DL-0921-10014 IOC1 +Wonder 3* (Japan 910520) 89625B-1 RT22B IOB1 90630C-4 CPS-B-21 DL-0921-10014 IOC1 + +The King of Dragons* (World 910711) 1991 90629B-3 KD29B IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +The King of Dragons* (World 910805) 90629B-3 KD29B IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +The King of Dragons* (USA 910910) 90629B-3 KD29B IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +The King of Dragons* (Japan 910805, B-Board 89625B-1) 89625B-1 KD22B IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +The King of Dragons* (Japan 910805, B-Board 90629B-3) 90629B-3 KD29B IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 + +Captain Commando* (World 911014) 1991 91635B-2 CC63B CCPRG IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +Captain Commando* (World 911202) 91635B-2 CC63B CCPRG1 IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632B IOC1 +Captain Commando* (USA 910928) 91635B-2 CC63B CCPRG1 IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +Captain Commando* (Japan 910928) 91634B-2 CC63B CCPRG IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +Captain Commando* (Japan 911202) 91634B-2 CC63B CCPRG1 IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632B IOC1 + +Knights of the Round* (World 911127) 1991 91635B-2 KR63B BPRG1 IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +Knights of the Round* (USA 911127) 91635B-2 KR63B BPRG1 IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +Knights of the Round* (Japan 911127, B-Board 89625B-1) 89625B-1 KR22B LWIO 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 +Knights of the Round* (Japan 911127, B-Board 91634B-2) 91634B-2 KR63B BPRG1 IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1 + +Street Fighter II': Champion Edition (World 920313) 1992 91635B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II': Champion Edition (World 920513) 91635B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II': Champion Edition (USA 920313) 91635B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II': Champion Edition (USA 920513) 91635B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II': Champion Edition (USA 920803) 91635B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II': Champion Edition (Japan 920322) 91634B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II': Champion Edition (Japan 920513) 91634B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II': Champion Edition (Japan 920803) 91634B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Adventure Quiz Capcom World 2* (Japan 920611) 1992 89625B-1 Q522B LWIO 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Adventure Quiz Capcom World 2* (Japan 920611) 91634B-2 Q563B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Adventure Quiz Capcom World 2 (Japan 920611) 90629B-3 Q529B IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 + +Varth: Operation Thunderstorm (World 920612) 1992 89624B-? VA24B IOB1 ? CPS-B-04 DL-0411-10005 +Varth: Operation Thunderstorm (World 920714) 89624B-3 VA24B IOB1 88622-C-5 CPS-B-04 DL-0411-10005 None +Varth: Operation Thunderstorm (USA 920612) 91635B-2 VA63B BPRG1 IOB1 88622-C-5 CPS-B-04 DL-0411-10005 None +Varth: Operation Thunderstorm* (Japan 920714) 88622B-3 VA22B LWIO 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Varth: Operation Thunderstorm* (Japan Resale Ver. 920714) 91634B-2 VA63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 + +Quiz & Dragons: Capcom Quiz Game* (USA 920701) 1992 89625B-1 QD22B IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921) 1994 91634B-2 QAD63B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Warriors of Fate* (World 921002) 1992 91635B-2 TK263B BPRG1 IOB1 ? CPS-B-21 DL-0921-10014 IOC1 +Warriors of Fate* (World 921031) 91635B-2 TK263B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Warriors of Fate* (USA 921031) 91635B-2 TK263B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Sangokushi II* (Asia 921005) 91634B-2 TK263B BPRG1 IOB1 ? CPS-B-21 DL-0921-10014 IOC1 +Tenchi wo Kurau II: Sekiheki no Tatakai* (Japan 921031) 91634B-2 TK263B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 + +Street Fighter II': Hyper Fighting (World 921209) 1992 91635B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II': Hyper Fighting (USA 921209) 91635B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Street Fighter II' Turbo: Hyper Fighting (Japan 921209) 91634B-2 S9263B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Cadillacs and Dinosaurs* (World 930201) 1993 91635B-2 CD63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Cadillacs and Dinosaurs* (USA 930201) 91635B-2 CD63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Cadillacs: Kyouryuu Shin Seiki* (Japan 930201) 91634B-2 CD63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 + +The Punisher* (World 930422) 1993 91635B-2 PS63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +The Punisher* (USA 930422) 91635B-2 PS63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +The Punisher* (Hispanic 930422) 91635B-2 PS63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +The Punisher* (Japan 930422) 91634B-2 PS63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 + +Saturday Night Slam Masters* (World 930713) 1993 91635B-2 MB63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Saturday Night Slam Masters* (USA 930713) 91635B-2 MB63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 +Muscle Bomber: The Body Explosion* (Japan 930713) 91634B-2 MB63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 + +Muscle Bomber Duo: Ultimate Team Battle* (World 931206) 1993 91635B-? MB63B BPRG1 IOB1 ? CPS-B-21 DL-0921-10014 IOC1 +Muscle Bomber Duo: Heat Up Warriors* (Japan 931206) 91634B-2 MB63B BPRG1 IOB1 92641C-1 CPS-B-21 DL-0921-10014 IOC1 + +Ken Sei Mogura: Street Fighter II (Japan 940418, Ver 1.00) 1994 91634B-2 KNM10B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Pnickies (Japan 940608) 1994 89625B-1 PKB10B IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Quiz Tonosama no Yabou 2: Zenkoku-ban (Japan 950123) 1995 90629B-3 TN2292 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Pang! 3 (Euro 950511) 1995 94916-10 CP1B1F,CP1B8K,CP1B9K 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Pang! 3 (Euro 950601) 94916-10 CP1B1F,CP1B8K,CP1B9KA 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Pang! 3: Kaitou Tachi no Karei na Gogo (Japan 950511) 94916-10 CP1B1F,CP1B8K,CP1B9K 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Mega Man: The Power Battle (CPS1, USA 951006) 1995 91635B-2 RCM63B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Mega Man: The Power Battle (CPS1, Asia 951006) 91634B-2 RCM63B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 +Rockman: The Power Battle (CPS1, Japan 950922) 91634B-2 RCM63B BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + +Ganbare! Marine Kun (Japan 2K0411) 2000 91634B-2 GBPR2 BPRG1 IOB1 92631C-6 CPS-B-21 DL-0921-10014 C632 IOC1 + + +@the original number (CPS-B-01) was scratched out and "04" stamped over it. +*denotes Suicide Battery + +The C628/C632 PALs on some C-boards probably handle the extra inputs (6 buttons/third player). + +You can set the suicide CPS-B-21 chips to their default layer register and priority bit values +if you pull pins 45 and 46 high (floating the pins seems to work, too). The default is the same +values as Street Fighter 2 CE/Turbo. + + + +CPS-A Registers +--------------- +0x00-0x01 OBJ RAM base (/256) +0x02-0x03 Scroll1 (8x8) RAM base (/256) +0x04-0x05 Scroll2 (16x16) RAM base (/256) +0x06-0x07 Scroll3 (32x32) RAM base (/256) +0x08-0x09 rowscroll RAM base (/256) +0x0a-0x0b Palette base (/256) after this register is written to, the palette + is copied from gfxram to the dedicated ram. The palette control + register (see below) determines how the copy should happen. + Tests on a msword pcb show that the minimum alignment for the palette + is 0x400 bytes. The hardware seems to ignore bit 1, while when bit 0 + is set the palette doesn't seem to be copied. However, some games set + bit 0 during boot (ghouls, strider, 1941) so it still isn't clear + what bit 0 should actually do. +0x0c-0x0d Scroll 1 X +0x0e-0x0f Scroll 1 Y +0x10-0x11 Scroll 2 X +0x12-0x13 Scroll 2 Y +0x14-0x15 Scroll 3 X +0x16-0x17 Scroll 3 Y +0x18-0x19 Starfield 1 X +0x1a-0x1b Starfield 1 Y +0x1c-0x1d Starfield 2 X +0x1e-0x1f Starfield 2 Y +0x20-0x21 start offset for the rowscroll matrix +0x22-0x23 video control. Usually 0x0e. + bit 0 enables rowscroll on layer 2. + bit 15 is flip screen. + ghouls sets bit 14. Purpose unknown. + 1941 uses bits 1-3 by setting them to 0 on screen transitions, + however it also uses the normal layer control register so there + doesn't seem to be an obvious effect. + + Games known to use rowscroll: + SF2 + Mega Twins (underwater, cave) + Carrier Air Wing (hazy background at beginning of mission 8, put 07 at ff8501 to jump there) + Magic Sword (fire on floor 3; screen distort after continue) + Varth (title screen, end of stage 4) + Captain Commando (end game sequence) + + Tests done on msword at the beginning of gameplay (many thanks to Corrado Tomaselli for these): + 3e is the default value set by the game (not 0e like most games) + 3c the last two rows of scroll1 are repeated on the whole screen + 3a scroll2 is disabled + 36 scroll3 is disabled + 2e no visible differences + 1e no visible differences + one might suspect that bits 4&5 should disable the star layers, but + Strider sets this register to 0x0e so that's not possible. + + TODO: + the scroll2/scroll3 disable bits are supported by the emulation, + while the scroll1 weird effect is not (it doesn't seem to make a + difference in any game). + + +CPS-B Registers +--------------- +Unlike CPS-A registers, which are at fixed addresses, CPS-B registers move from game to game. +Following example strider + +0x66-0x67 Layer control register + bits 14-15 seem to be unused + ghouls sets bits 15 in service mode when you press button 2 in + the input test, with no apparent effect on the pcb. + qtono2j sets them both at the game over screen. + bits 6-13 (4 groups of 2 bits) select layer draw order + bits 1-5 enable the three tilemap layers and the two starfield + layers (the bit order changes from game to game). + Only Forgotten Worlds and Strider use the starfield. + bit 0 could be rowscroll related. It is set by captain commando, + varth, mtwins, mssword, cawing while rowscroll is active. However + kodj and sf2 do NOT set this bit while they are using rowscroll. + Tests on the msword pcb show that even if this bit is not set, + rowscroll still works. Therefore, the purpose of this bit is unclear. +0x68-0x69 Priority mask \ Tiles in the layer just below sprites can have +0x6a-0x6b Priority mask | four priority levels, each one associated with one +0x6c-0x6d Priority mask | of these masks. The masks indicate pens in the tile +0x6e-0x6f Priority mask / that have priority over sprites. +0x70-0x71 Palette control register. This indicates which palette + pages to copy when the palette base register is written to. + There is one CPS2 game (Slammasters II) setting this to 0x2f; all the other + games normally set it to 0x3f, though in some cases different values are + used during boot: + ghouls 0x02 (and palette base is set to 9105; palette base is 9100 normally) + strider 0x02 (and palette base is set to 9145; palette base is 9140 normally) + 1941 0x02 (and palette base is set to 9145; palette base is 9140 normally) + unsquad 0x0f + kod 0x0f + mtwins 0x0f + + bit 0: copy page 0 (sprites) + bit 1: copy page 1 (scroll1) + bit 2: copy page 2 (scroll2) + bit 3: copy page 3 (scroll3) + bit 4: copy page 4 (stars1) + bit 5: copy page 5 (stars2) + + An important quirk is that if the first bits are not set, page 0 in + gfxram is not skipped but instead is copied to the first enabled page. + For the other pages, if the bit is not set the gfxram page is skipped. + Example: 0x0a + bit 0 is not set so palette page 0 (sprites) is not updated + bit 1 is set so palette page 1 (scroll1) is updated; since bit 0 was + not set, it is taken from gfxram page 0 + bit 2 is not set so palette page 2 (scroll2) is not updated; gfxram + page 1 is skipped + bit 3 is set so palette page 3 (scroll3) is updated; it is taken from + gfxram page 2 + + bits 0-3 have been verified on a msword pcb, while bits 4-5 are only + supposed. + + +A special note has to be made about tile/sprite codes. Even if all graphics are +stored together in the same ROMs, the hardware knows which part of the ROM space +is 8x8 tiles, 16x16 tiles, 16x16 spites, 32x32 tiles, and all games tested only +draw tiles if their code falls in the valid range. If a tile is out of range, it +is replaced by transparent pixels. +Ideally, this shouldn't be important as far as the emulation is concerned, since +games should only request tiles from valid ranges. In practice, many games contain +bugs which make them try to display out of range tiles. The masking applied by +the hardware therefore needs to be emulated properly, otherwise glitches appear. + +There are various versions of the ROM board (B-board), so the implementation +details may vary, but in general the tile ranges are controlled by a PAL found +on the B-board (see the table at the top of this file). + +The A-board passes 23 bits of address to the B-board when requesting gfx ROM data. +The B-board selects 64 bits of data, that is 16 4bpp pixels, and returns half of +them depending on a signal from the C board. +The 23 address bits are laid out this way (note that the top 3 bits select the +tile type; the purpose of the top bit is unknown): + +sprite 000ccccccccccccccccyyyy +scroll1 001?ccccccccccccccccyyy +scroll2 010ccccccccccccccccyyyy +scroll3 011ccccccccccccccyyyyyx +stars 100000000sxxxxxyyyyyyyy (to be verified) + +where +c is the tile code +y is the y position in the tile +x is the x position in the tile (only applicable to 32x32 tiles) + +E.g. on the 89624B-3 board, used by cawing and others, the top 13 bits of the +address are passed to the 16L8B PAL @1A, which outputs the /OE signal for roms +1,3,5,7 (together), 2,4,6,8 (together), 10,12,14,16,20,22,24,26 (together) or +11,13,15,17,21,23,25,27 (together). +Note that in cawing only sockets 1,3,5,7 are populated, so effectively there is +only one bank. + +The above would mean that +1) 8x8 and 16x16 tiles have a 16-bit tile code, while + 32x32 tiles have a 14-bit tile code +2) which ROM bank to use is determined by + bits 15-7 of a 8x8 tile code, + bits 15-6 of a 16x16 tile code, + bits 13-4 of a 32x32 tile code + +If the PAL decides that the tile code is out of range and doesn't output any /OE +signal, no ROM is read and pullup resistors force the result to all 1 (which +means a transparent tile). + +Note that there are several known cases (nemo, cawing, 3wonders, varth, etc.) where +16x16 tiles are used for BOTH sprites and scroll2. + +Ideally, the PALs should be dumped and loaded like the ROMs, and the mapping should +be derived from the loaded PALs at run time. +In practice, this is unlikely to happen, so we'll have to tolerate using hardcoded +maps for every game. + + +Known Bug List +============== +CPS2: +* CPS2 can do raster effects, certainly used by ssf2 (Cammy, DeeJay, T.Hawk levels), + msh (lava level, early in attract mode) and maybe others (xmcotaj, vsavj). + IRQ4 is some sort of scanline interrupt used for that purpose. + +* Its unknown what CPS2_OBJ_BASE register (0x400000) does but it is not a object base + register. The base is 0x7000 for all games even if 0x7080 is written to this register + (checked on real HW). Maybe it sets the object bank used when cps2_objram_bank is set. + +* Sprites are currently lagged by one frame to keep sync with backgrounds. This causes + sprites to stay on screen one frame longer (visible in VSAV attract mode). + +Marvel Vs. Capcom +* Sometimes corrupt gfx are displayed on the 32x32 layer as the screen flashes at the + start of super combo moves. The problem seems to be due to tiles being fetched before + the first 32x32 tile offset and results in data coming from 16x16 or 8x8 tiles instead. + +CPS1: +SF2 +* Missing chain in the foreground in Ken's level, and sign in Chun Li's level. + Those graphics are in the backmost layer. Probably they are leftover from game + development and aren't supposed to be visible. + +3wonders +* writes to output ports 42, 44, 46. + +qad +* layer enable mask incomplete + + +Unknown issues +============== + +There are often some redundant high bits in the scroll layer's attributes. +I think that these are spare bits that the game uses to store additional +information, not used by the hardware. +The games seem to use them to mark platforms, kill zones and no-go areas. + +***************************************************************************/ + +#include "emu.h" +#include "includes/cps1.h" + +#define VERBOSE 0 + +/******************************************************************** + + Configuration table: + +********************************************************************/ + +/* Game specific data */ + +#define GFXTYPE_SPRITES (1<<0) +#define GFXTYPE_SCROLL1 (1<<1) +#define GFXTYPE_SCROLL2 (1<<2) +#define GFXTYPE_SCROLL3 (1<<3) +#define GFXTYPE_STARS (1<<4) + + +#define __not_applicable__ -1,-1,-1,-1,-1,-1,-1 + +/* CPSB ID multiply protection unknown ctrl priority masks palctrl layer enable masks */ +#define CPS_B_01 -1, 0x0000, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30} +#define CPS_B_02 0x20,0x0002, __not_applicable__, 0x2c,{0x2a,0x28,0x26,0x24},0x22, {0x02,0x04,0x08,0x00,0x00} +#define CPS_B_03 -1, 0x0000, __not_applicable__, 0x30,{0x2e,0x2c,0x2a,0x28},0x26, {0x20,0x10,0x08,0x00,0x00} +#define CPS_B_04 0x20,0x0004, __not_applicable__, 0x2e,{0x26,0x30,0x28,0x32},0x2a, {0x02,0x04,0x08,0x00,0x00} +#define CPS_B_05 0x20,0x0005, __not_applicable__, 0x28,{0x2a,0x2c,0x2e,0x30},0x32, {0x02,0x08,0x20,0x14,0x14} +#define CPS_B_11 0x32,0x0401, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x08,0x10,0x20,0x00,0x00} +#define CPS_B_12 0x20,0x0402, __not_applicable__, 0x2c,{0x2a,0x28,0x26,0x24},0x22, {0x02,0x04,0x08,0x00,0x00} +#define CPS_B_13 0x2e,0x0403, __not_applicable__, 0x22,{0x24,0x26,0x28,0x2a},0x2c, {0x20,0x02,0x04,0x00,0x00} +#define CPS_B_14 0x1e,0x0404, __not_applicable__, 0x12,{0x14,0x16,0x18,0x1a},0x1c, {0x08,0x20,0x10,0x00,0x00} +#define CPS_B_15 0x0e,0x0405, __not_applicable__, 0x02,{0x04,0x06,0x08,0x0a},0x0c, {0x04,0x02,0x20,0x00,0x00} +#define CPS_B_16 0x00,0x0406, __not_applicable__, 0x0c,{0x0a,0x08,0x06,0x04},0x02, {0x10,0x0a,0x0a,0x00,0x00} +#define CPS_B_17 0x08,0x0407, __not_applicable__, 0x14,{0x12,0x10,0x0e,0x0c},0x0a, {0x08,0x14,0x02,0x00,0x00} // the sf2 -> strider conversion needs 0x04 for the 2nd layer enable on one level, gfx confirmed to appear on the PCB, register at the time is 0x8e, so 0x10 is not set. +#define CPS_B_18 0x10,0x0408, __not_applicable__, 0x1c,{0x1a,0x18,0x16,0x14},0x12, {0x10,0x08,0x02,0x00,0x00} +#define CPS_B_21_DEF 0x32, -1, 0x00,0x02,0x04,0x06, 0x08, -1, -1, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30} // pang3 sets layer enable to 0x26 on startup +#define CPS_B_21_BT1 0x32,0x0800, 0x0e,0x0c,0x0a,0x08, 0x06,0x04,0x02, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x20,0x04,0x08,0x12,0x12} +#define CPS_B_21_BT2 -1, -1, 0x1e,0x1c,0x1a,0x18, -1, 0x0c,0x0a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x30,0x08,0x30,0x00,0x00} +#define CPS_B_21_BT3 -1, -1, 0x06,0x04,0x02,0x00, 0x0e,0x0c,0x0a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x12,0x12,0x00,0x00} +#define CPS_B_21_BT4 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x20,0x10,0x02,0x00,0x00} +#define CPS_B_21_BT5 0x32, -1, 0x0e,0x0c,0x0a,0x08, 0x1e,0x1c,0x1a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x04,0x02,0x00,0x00} +#define CPS_B_21_BT6 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x14,0x14,0x00,0x00} +#define CPS_B_21_BT7 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x2c,{ -1, -1, -1, -1 },0x12, {0x14,0x02,0x14,0x00,0x00} +#define CPS_B_21_QS1 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x22,{0x24,0x26,0x28,0x2a},0x2c, {0x10,0x08,0x04,0x00,0x00} +#define CPS_B_21_QS2 -1, -1, -1, -1, -1, -1, -1, 0x2e,0x20, 0x0a,{0x0c,0x0e,0x00,0x02},0x04, {0x16,0x16,0x16,0x00,0x00} +#define CPS_B_21_QS3 0x0e,0x0c00, -1, -1, -1, -1, 0x2c, -1, -1, 0x12,{0x14,0x16,0x08,0x0a},0x0c, {0x04,0x02,0x20,0x00,0x00} +#define CPS_B_21_QS4 0x2e,0x0c01, -1, -1, -1, -1, 0x1c,0x1e,0x08, 0x16,{0x00,0x02,0x28,0x2a},0x2c, {0x04,0x08,0x10,0x00,0x00} +#define CPS_B_21_QS5 0x1e,0x0c02, -1, -1, -1, -1, 0x0c, -1, -1, 0x2a,{0x2c,0x2e,0x30,0x32},0x1c, {0x04,0x08,0x10,0x00,0x00} +#define HACK_B_1 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x14,{0x12,0x10,0x0e,0x0c},0x0a, {0x0e,0x0e,0x0e,0x30,0x30} +#define HACK_B_2 -1, -1, 0x0e,0x0c,0x0a,0x08, 0x06,0x04,0x02, 0x28,{0x26,0x24,0x22,0x20},0x22, {0x20,0x04,0x08,0x12,0x12} + +// HBMAME extras + +#define HACK_H_2 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{ -1, -1, -1, -1 },0x2a, {0x02,0x02,0x02,0x00,0x00} // wofh etc +#define HACK_H_3 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x04,{0x12,0x10,0x0e,0x0c},0x0a, {0x02,0x02,0x02,0x00,0x00} // not used +#define HACK_H_4 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x30,{0x2e,0x2c,0x2a,0x28},0x26, {0x02,0x04,0x08,0x00,0x00} // not used +#define HACK_H_5 -1, 0x0000, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x40,0x40,0x40,0x00,0x00} // daimakb +#define HACK_H_6 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x40,0x10,0x02,0x00,0x00} // knightsb2 +#define HACK_H_7 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x20,0x10,0x02,0x00,0x00} // knightsha +#define HACK_H_8 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{0x00,0x00,0x00,0x00},0x00, {0x80,0x80,0x80,0x00,0x00} + +/* +CPS_B_21_DEF is CPS-B-21 at default settings (no battery) +CPS_B_21_BTx are various battery configurations +CPS_B_21_QSx are various battery configurations in Q-Sound games +*/ + + +// LWCHR and LW621 are equivalent as far as the game is concerned, though the +// equations are different + +#define mapper_LWCHR { 0x8000, 0x8000, 0, 0 }, mapper_LWCHR_table +static const struct gfx_range mapper_LWCHR_table[] = +{ + // verified from PAL dump (PAL16P8B @ 3A): + // bank 0 = pin 19 (ROMs 1,5,8,12) + // bank 1 = pin 16 (ROMs 2,6,9,13) + // pin 12 and pin 14 are always enabled (except for stars) + // note that allowed codes go up to 0x1ffff but physical ROM is half that size + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 }, + { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 }, + + { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 }, + { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 }, + { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 }, + { 0 } +}; + +#define mapper_LW621 { 0x8000, 0x8000, 0, 0 }, mapper_LW621_table +static const struct gfx_range mapper_LW621_table[] = +{ + // verified from PAL dump (PAL @ 1A): + // bank 0 = pin 18 + // bank 1 = pin 14 + // pins 19, 16, 17, and 12 give an alternate half-size mapping which would + // allow to use smaller ROMs: + // pin 19 + // 0 00000-03fff + // pin 16 + // 0 04000-07fff + // 1 00000-1ffff + // pin 17 + // 2 00000-1ffff + // 3 00000-1ffff + // 4 00000-1ffff + // pin 12 + // 3 00000-1ffff + // + // note that allowed codes go up to 0x1ffff but physical ROM is half that size + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 }, + { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 }, + + { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 }, + { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 }, + { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 }, + { 0 } +}; + + +// DM620, DM22A and DAM63B are equivalent as far as the game is concerned, though +// the equations are quite different + +#define mapper_DM620 { 0x8000, 0x2000, 0x2000, 0 }, mapper_DM620_table +static const struct gfx_range mapper_DM620_table[] = +{ + // verified from PAL dump (PAL16P8B @ 2A): + // bank 0 = pin 19 (ROMs 5,6,7,8) + // bank 1 = pin 16 (ROMs 9,11,13,15,18,20,22,24) + // bank 2 = pin 14 (ROMs 10,12,14,16,19,21,23,25) + // pin 12 is never enabled + // note that bank 0 is enabled whenever banks 1 or 2 are not enabled, + // which would make it highly redundant, so I'm relying on the table + // to be scanned top to bottom and using a catch-all clause at the end. + + /* type start end bank */ + { GFXTYPE_SCROLL3, 0x8000, 0xbfff, 1 }, + + { GFXTYPE_SPRITES, 0x2000, 0x3fff, 2 }, + + { GFXTYPE_STARS | GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 }, + { 0 } +}; + +#define mapper_DM22A { 0x4000, 0x4000, 0x2000, 0x2000 }, mapper_DM22A_table +static const struct gfx_range mapper_DM22A_table[] = +{ + // verified from PAL dump + // bank 0 = pin 19 + // bank 1 = pin 16 + // bank 2 = pin 14 + // bank 3 = pin 12 + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x00000, 0x01fff, 0 }, + { GFXTYPE_SCROLL1, 0x02000, 0x03fff, 0 }, + + { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 1 }, + + { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 2 }, + + { GFXTYPE_SPRITES, 0x02000, 0x03fff, 3 }, + { 0 } +}; + +#define mapper_DAM63B { 0x8000, 0x8000, 0, 0 }, mapper_DAM63B_table +static const struct gfx_range mapper_DAM63B_table[] = +{ + // verified from PAL dump: + // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4) + // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8) + // pins 12,13,14,15 are always enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x00000, 0x01fff, 0 }, + { GFXTYPE_SCROLL1, 0x02000, 0x02fff, 0 }, + { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 0 }, + + { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 }, + { GFXTYPE_SPRITES, 0x02000, 0x03fff, 1 }, + { 0 } +}; + + +// ST24M1 and ST22B are equivalent except for the stars range which is +// different. This has no practical effect. + +#define mapper_ST24M1 { 0x8000, 0x8000, 0, 0 }, mapper_ST24M1_table +static const struct gfx_range mapper_ST24M1_table[] = +{ + // verified from PAL dump + // bank 0 = pin 19 (ROMs 2,4,6,8) + // bank 1 = pin 16 (ROMs 1,3,5,7) + // pin 12 and pin 14 are never enabled + + /* type start end bank */ + { GFXTYPE_STARS, 0x00000, 0x003ff, 0 }, + { GFXTYPE_SPRITES, 0x00000, 0x04fff, 0 }, + { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 0 }, + + { GFXTYPE_SCROLL3, 0x00000, 0x07fff, 1 }, + { GFXTYPE_SCROLL1, 0x07000, 0x07fff, 1 }, + { 0 } +}; + +#define mapper_ST22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_ST22B_table +static const struct gfx_range mapper_ST22B_table[] = +{ + // verified from PAL dump + // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38) + // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39) + // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28) + // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29) + + /* type start end bank */ + { GFXTYPE_STARS, 0x00000, 0x1ffff, 0 }, + { GFXTYPE_SPRITES, 0x00000, 0x03fff, 0 }, + + { GFXTYPE_SPRITES, 0x04000, 0x04fff, 1 }, + { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 1 }, + + { GFXTYPE_SCROLL3, 0x00000, 0x03fff, 2 }, + + { GFXTYPE_SCROLL3, 0x04000, 0x07fff, 3 }, + { GFXTYPE_SCROLL1, 0x07000, 0x07fff, 3 }, + { 0 } +}; + + +#define mapper_TK22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_TK22B_table +static const struct gfx_range mapper_TK22B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38) + // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39) + // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28) + // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29) + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 }, + + { GFXTYPE_SPRITES, 0x4000, 0x5fff, 1 }, + { GFXTYPE_SCROLL1, 0x6000, 0x7fff, 1 }, + + { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 2 }, + + { GFXTYPE_SCROLL2, 0x4000, 0x7fff, 3 }, + { 0 } +}; + + +#define mapper_WL24B { 0x8000, 0x8000, 0, 0 }, mapper_WL24B_table +static const struct gfx_range mapper_WL24B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 16 (ROMs 1,3,5,7) + // bank 1 = pin 12 (ROMs 10,12,14,16,20,22,24,26) + // pin 14 and pin 19 are never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x4fff, 0 }, + { GFXTYPE_SCROLL3, 0x5000, 0x6fff, 0 }, + { GFXTYPE_SCROLL1, 0x7000, 0x7fff, 0 }, + + { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 1 }, + { 0 } +}; + + +#define mapper_S224B { 0x8000, 0, 0, 0 }, mapper_S224B_table +static const struct gfx_range mapper_S224B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 16 (ROMs 1,3,5,7) + // pin 12 & pin 14 give an alternate half-size mapping which would allow to + // populate the 8-bit ROM sockets instead of the 16-bit ones: + // pin 12 + // 0 00000 - 03fff + // pin 14 + // 0 04000 - 043ff + // 1 04400 - 04bff + // 2 06000 - 07fff + // 3 04c00 - 05fff + // pin 19 is never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x43ff, 0 }, + { GFXTYPE_SCROLL1, 0x4400, 0x4bff, 0 }, + { GFXTYPE_SCROLL3, 0x4c00, 0x5fff, 0 }, + { GFXTYPE_SCROLL2, 0x6000, 0x7fff, 0 }, + { 0 } +}; + + +#define mapper_YI24B { 0x8000, 0, 0, 0 }, mapper_YI24B_table +static const struct gfx_range mapper_YI24B_table[] = +{ + // verified from JED: + // bank 0 = pin 16 (ROMs 1,3,5,7) + // pin 12 & pin 14 give an alternate half-size mapping which would allow to + // populate the 8-bit ROM sockets instead of the 16-bit ones: + // pin 12 + // 0 0000-1fff + // 3 2000-3fff + // pin 14 + // 1 4000-47ff + // 2 4800-7fff + // pin 19 is never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x1fff, 0 }, + { GFXTYPE_SCROLL3, 0x2000, 0x3fff, 0 }, + { GFXTYPE_SCROLL1, 0x4000, 0x47ff, 0 }, + { GFXTYPE_SCROLL2, 0x4800, 0x7fff, 0 }, + { 0 } +}; + + +// AR24B and AR22B are equivalent, but since we could dump both PALs we are +// documenting both. + +#define mapper_AR24B { 0x8000, 0, 0, 0 }, mapper_AR24B_table +static const struct gfx_range mapper_AR24B_table[] = +{ + // verified from JED: + // bank 0 = pin 16 (ROMs 1,3,5,7) + // pin 12 & pin 14 give an alternate half-size mapping which would allow to + // populate the 8-bit ROM sockets instead of the 16-bit ones: + // pin 12 + // 0 0000-2fff + // 1 3000-3fff + // pin 14 + // 2 4000-5fff + // 3 6000-7fff + // pin 19 is never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 }, + { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 }, + { GFXTYPE_SCROLL2, 0x4000, 0x5fff, 0 }, + { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 0 }, + { 0 } +}; + +#define mapper_AR22B { 0x4000, 0x4000, 0, 0 }, mapper_AR22B_table +static const struct gfx_range mapper_AR22B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38) + // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39) + // pins 12 and 14 are tristated + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 }, + { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 }, + + { GFXTYPE_SCROLL2, 0x4000, 0x5fff, 1 }, + { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 1 }, + { 0 } +}; + + +#define mapper_O224B { 0x8000, 0x4000, 0, 0 }, mapper_O224B_table +static const struct gfx_range mapper_O224B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 (ROMs 2,4,6,8) + // bank 1 = pin 12 (ROMs 10,12,14,16,20,22,24,26) + // pin 16 & pin 14 appear to be an alternate half-size mapping for bank 0 + // but scroll1 is missing: + // pin 16 + // 2 00c00 - 03bff + // 3 03c00 - 03fff + // pin 14 + // 3 04000 - 04bff + // 0 04c00 - 07fff + + /* type start end bank */ + { GFXTYPE_SCROLL1, 0x0000, 0x0bff, 0 }, + { GFXTYPE_SCROLL2, 0x0c00, 0x3bff, 0 }, + { GFXTYPE_SCROLL3, 0x3c00, 0x4bff, 0 }, + { GFXTYPE_SPRITES, 0x4c00, 0x7fff, 0 }, + + { GFXTYPE_SPRITES, 0x8000, 0xa7ff, 1 }, + { GFXTYPE_SCROLL2, 0xa800, 0xb7ff, 1 }, + { GFXTYPE_SCROLL3, 0xb800, 0xbfff, 1 }, + { 0 } +}; + + +#define mapper_MS24B { 0x8000, 0, 0, 0 }, mapper_MS24B_table +static const struct gfx_range mapper_MS24B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 16 (ROMs 1,3,5,7) + // pin 14 duplicates pin 16 allowing to populate the 8-bit ROM sockets + // instead of the 16-bit ones. + // pin 12 is enabled only for sprites: + // 0 0000-3fff + // pin 19 is never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 }, + { GFXTYPE_SCROLL1, 0x4000, 0x4fff, 0 }, + { GFXTYPE_SCROLL2, 0x5000, 0x6fff, 0 }, + { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 }, + { 0 } +}; + + +#define mapper_CK24B { 0x8000, 0, 0, 0 }, mapper_CK24B_table +static const struct gfx_range mapper_CK24B_table[] = +{ + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 }, + { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 }, + { GFXTYPE_SCROLL2, 0x4000, 0x6fff, 0 }, + { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 }, + { 0 } +}; + + +#define mapper_NM24B { 0x8000, 0, 0, 0 }, mapper_NM24B_table +static const struct gfx_range mapper_NM24B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 16 (ROMs 1,3,5,7) + // pin 12 & pin 14 give an alternate half-size mapping which would allow to + // populate the 8-bit ROM sockets instead of the 16-bit ones: + // pin 12 + // 0 00000 - 03fff + // 2 00000 - 03fff + // pin 14 + // 1 04000 - 047ff + // 0 04800 - 067ff + // 2 04800 - 067ff + // 3 06800 - 07fff + // pin 19 is never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 }, + { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 0 }, + { GFXTYPE_SCROLL1, 0x4000, 0x47ff, 0 }, + { GFXTYPE_SPRITES, 0x4800, 0x67ff, 0 }, + { GFXTYPE_SCROLL2, 0x4800, 0x67ff, 0 }, + { GFXTYPE_SCROLL3, 0x6800, 0x7fff, 0 }, + { 0 } +}; + + +// CA24B and CA22B are equivalent, but since we could dump both PALs we are +// documenting both. + +#define mapper_CA24B { 0x8000, 0, 0, 0 }, mapper_CA24B_table +static const struct gfx_range mapper_CA24B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 16 (ROMs 1,3,5,7) + // pin 12 & pin 14 give an alternate half-size mapping which would allow to + // populate the 8-bit ROM sockets instead of the 16-bit ones: + // pin 12 + // 0 0000-2fff + // 2 0000-2fff + // 3 3000-3fff + // pin 14 + // 3 4000-4fff + // 1 5000-57ff + // 0 5800-7fff + // 2 5800-7fff + // pin 19 is never enabled (actually it is always enabled when PAL pin 1 is 1, purpose unknown) + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 }, + { GFXTYPE_SCROLL2, 0x0000, 0x2fff, 0 }, + { GFXTYPE_SCROLL3, 0x3000, 0x4fff, 0 }, + { GFXTYPE_SCROLL1, 0x5000, 0x57ff, 0 }, + { GFXTYPE_SPRITES, 0x5800, 0x7fff, 0 }, + { GFXTYPE_SCROLL2, 0x5800, 0x7fff, 0 }, + { 0 } +}; + +#define mapper_CA22B { 0x4000, 0x4000, 0, 0 }, mapper_CA22B_table +static const struct gfx_range mapper_CA22B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38) + // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39) + // pin 12 and pin 14 are never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 }, + { GFXTYPE_SCROLL2, 0x0000, 0x2fff, 0 }, + { GFXTYPE_SCROLL3, 0x3000, 0x3fff, 0 }, + + { GFXTYPE_SCROLL3, 0x4000, 0x4fff, 1 }, + { GFXTYPE_SCROLL1, 0x5000, 0x57ff, 1 }, + { GFXTYPE_SPRITES, 0x5800, 0x7fff, 1 }, + { GFXTYPE_SCROLL2, 0x5800, 0x7fff, 1 }, + { 0 } +}; + + +#define mapper_STF29 { 0x8000, 0x8000, 0x8000, 0 }, mapper_STF29_table +static const struct gfx_range mapper_STF29_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 (ROMs 5,6,7,8) + // bank 1 = pin 14 (ROMs 14,15,16,17) + // bank 2 = pin 12 (ROMS 24,25,26,27) + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 }, + + { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 }, + + { GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 }, + { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 }, + { GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 }, + { GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 }, + { 0 } +}; + + +// RT24B and RT22B are equivalent, but since we could dump both PALs we are +// documenting both. + +#define mapper_RT24B { 0x8000, 0x8000, 0, 0 }, mapper_RT24B_table +static const struct gfx_range mapper_RT24B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 16 (ROMs 1,3,5,7) + // bank 1 = pin 19 (ROMs 2,4,6,8) + // pin 12 & pin 14 are never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x53ff, 0 }, + { GFXTYPE_SCROLL1, 0x5400, 0x6fff, 0 }, + { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 }, + + { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 1 }, + { GFXTYPE_SCROLL2, 0x2800, 0x7fff, 1 }, + { GFXTYPE_SPRITES, 0x5400, 0x7fff, 1 }, + { 0 } +}; + +#define mapper_RT22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_RT22B_table +static const struct gfx_range mapper_RT22B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38) + // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39) + // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28) + // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29) + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 }, + + { GFXTYPE_SPRITES, 0x4000, 0x53ff, 1 }, + { GFXTYPE_SCROLL1, 0x5400, 0x6fff, 1 }, + { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 1 }, + + { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 2 }, + { GFXTYPE_SCROLL2, 0x2800, 0x3fff, 2 }, + + { GFXTYPE_SCROLL2, 0x4000, 0x7fff, 3 }, + { GFXTYPE_SPRITES, 0x5400, 0x7fff, 3 }, + { 0 } +}; + + +#define mapper_KD29B { 0x8000, 0x8000, 0, 0 }, mapper_KD29B_table +static const struct gfx_range mapper_KD29B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 (ROMs 1,2,3,4) + // bank 1 = pin 14 (ROMs 10,11,12,13) + // pin 12 is never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 }, + + { GFXTYPE_SPRITES, 0x8000, 0x8fff, 1 }, + { GFXTYPE_SCROLL2, 0x9000, 0xbfff, 1 }, + { GFXTYPE_SCROLL1, 0xc000, 0xd7ff, 1 }, + { GFXTYPE_SCROLL3, 0xd800, 0xffff, 1 }, + { 0 } +}; + + +#define mapper_CC63B { 0x8000, 0x8000, 0, 0 }, mapper_CC63B_table +static const struct gfx_range mapper_CC63B_table[] = +{ + // verified from PAL dump: + // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4) + // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8) + // pins 12,13,14,15 are always enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 }, + { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 }, + + { GFXTYPE_SPRITES, 0x8000, 0xffff, 1 }, + { GFXTYPE_SCROLL1, 0x8000, 0xffff, 1 }, + { GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 }, + { GFXTYPE_SCROLL3, 0x8000, 0xffff, 1 }, + { 0 } +}; + + +#define mapper_KR63B { 0x8000, 0x8000, 0, 0 }, mapper_KR63B_table +static const struct gfx_range mapper_KR63B_table[] = +{ + // verified from PAL dump: + // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4) + // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8) + // pins 12,13,14,15 are always enabled + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 }, + { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 }, + + { GFXTYPE_SCROLL1, 0x8000, 0x9fff, 1 }, + { GFXTYPE_SPRITES, 0x8000, 0xcfff, 1 }, + { GFXTYPE_SCROLL2, 0x8000, 0xcfff, 1 }, + { GFXTYPE_SCROLL3, 0xd000, 0xffff, 1 }, + { 0 } +}; + + +#define mapper_S9263B { 0x8000, 0x8000, 0x8000, 0 }, mapper_S9263B_table +static const struct gfx_range mapper_S9263B_table[] = +{ + // verified from PAL dump: + // FIXME there is some problem with this dump since pin 14 is never enabled + // instead of being the same as pin 15 as expected + // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4) + // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8) + // bank2 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13) + // pins 12 and 13 are the same as 14 and 15 + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 }, + + { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 }, + + { GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 }, + { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 }, + { GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 }, + { GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 }, + { 0 } +}; + + +// VA22B and VA63B are equivalent, but since we could dump both PALs we are +// documenting both. + +#define mapper_VA22B { 0x4000, 0x4000, 0, 0 }, mapper_VA22B_table +static const struct gfx_range mapper_VA22B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38) + // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39) + // pin 12 and pin 14 are never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x03fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x04000, 0x07fff, 1 }, + { 0 } +}; + +#define mapper_VA63B { 0x8000, 0, 0, 0 }, mapper_VA63B_table +static const struct gfx_range mapper_VA63B_table[] = +{ + // verified from PAL dump (PAL # uncertain): + // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4) + // pins 12,13,14,15,16,17 are never enabled + + /* type start end bank */ + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 }, + { 0 } +}; + + +#define mapper_Q522B { 0x8000, 0, 0, 0 }, mapper_Q522B_table +static const struct gfx_range mapper_Q522B_table[] = +{ + /* type start end bank */ + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x6fff, 0 }, + { GFXTYPE_SCROLL3, 0x7000, 0x77ff, 0 }, + { GFXTYPE_SCROLL1, 0x7800, 0x7fff, 0 }, + { 0 } +}; + + +#define mapper_TK263B { 0x8000, 0x8000, 0, 0 }, mapper_TK263B_table +static const struct gfx_range mapper_TK263B_table[] = +{ + // verified from PAL dump: + // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4) + // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8) + // pins 12,13,14,15 are always enabled + + /* type start end bank */ + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 }, + { 0 } +}; + + +#define mapper_CD63B { 0x8000, 0x8000, 0, 0 }, mapper_CD63B_table +static const struct gfx_range mapper_CD63B_table[] = +{ + /* type start end bank */ + { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 }, + { GFXTYPE_SPRITES, 0x1000, 0x7fff, 0 }, + + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xdfff, 1 }, + { GFXTYPE_SCROLL3, 0xe000, 0xffff, 1 }, + { 0 } +}; + + +#define mapper_PS63B { 0x8000, 0x8000, 0, 0 }, mapper_PS63B_table +static const struct gfx_range mapper_PS63B_table[] = +{ + /* type start end bank */ + { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 }, + { GFXTYPE_SPRITES, 0x1000, 0x7fff, 0 }, + + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xdbff, 1 }, + { GFXTYPE_SCROLL3, 0xdc00, 0xffff, 1 }, + { 0 } +}; + + +#define mapper_MB63B { 0x8000, 0x8000, 0x8000, 0 }, mapper_MB63B_table +static const struct gfx_range mapper_MB63B_table[] = +{ + /* type start end bank */ + { GFXTYPE_SCROLL1, 0x00000, 0x00fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x01000, 0x07fff, 0 }, + + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x08000, 0x0ffff, 1 }, + + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x10000, 0x167ff, 2 }, + { GFXTYPE_SCROLL3, 0x16800, 0x17fff, 2 }, + { 0 } +}; + + +#define mapper_QD22B { 0x4000, 0, 0, 0 }, mapper_QD22B_table +static const struct gfx_range mapper_QD22B_table[] = +{ + // verified from PAL dump: + // bank 0 = pin 19 + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 }, + { GFXTYPE_SCROLL1, 0x0000, 0x3fff, 0 }, + { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 0 }, + { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 0 }, + { 0 } +}; + + +#define mapper_QAD63B { 0x8000, 0, 0, 0 }, mapper_QAD63B_table +static const struct gfx_range mapper_QAD63B_table[] = +{ + /* type start end bank */ + { GFXTYPE_SCROLL1, 0x0000, 0x07ff, 0 }, + { GFXTYPE_SCROLL3, 0x0800, 0x1fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x2000, 0x7fff, 0 }, + { 0 } +}; + + +#define mapper_TN2292 { 0x8000, 0x8000, 0, 0 }, mapper_TN2292_table +static const struct gfx_range mapper_TN2292_table[] = +{ + /* type start end bank */ + { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 }, + { GFXTYPE_SCROLL3, 0x1000, 0x3fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x4000, 0x7fff, 0 }, + + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 }, + { 0 } +}; + + +#define mapper_RCM63B { 0x8000, 0x8000, 0x8000, 0x8000 }, mapper_RCM63B_table +static const struct gfx_range mapper_RCM63B_table[] = +{ + // verified from PAL dump: + // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4) + // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8) + // bank0 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13) + // bank1 = pin 13 (ROMs 14,16) & pin 12 (ROMs 15,17) + + /* type start end bank */ + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x10000, 0x17fff, 2 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x18000, 0x1ffff, 3 }, + { 0 } +}; + + +#define mapper_PKB10B { 0x8000, 0, 0, 0 }, mapper_PKB10B_table +static const struct gfx_range mapper_PKB10B_table[] = +{ + /* type start end bank */ + { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 }, + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x1000, 0x5fff, 0 }, + { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 0 }, + { 0 } +}; + + +#define mapper_pang3 { 0x8000, 0x8000, 0, 0 }, mapper_pang3_table +static const struct gfx_range mapper_pang3_table[] = +{ + /* type start end bank */ + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 }, + + { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0x9fff, 1 }, + { GFXTYPE_SCROLL1, 0xa000, 0xbfff, 1 }, + { GFXTYPE_SCROLL3, 0xc000, 0xffff, 1 }, + { 0 } +}; + + +#define mapper_sfzch { 0x20000, 0, 0, 0 }, mapper_sfzch_table +static const struct gfx_range mapper_sfzch_table[] = +{ + /* type start end bank */ + { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 }, + { 0 } +}; + +//HBMAME start +#define mapper_frog { 0x8000, 0, 0, 0 }, mapper_frog_table +static const struct gfx_range mapper_frog_table[] = +{ + /* type start end bank */ + { GFXTYPE_SPRITES, 0x04e0, 0x050f, 0 }, // frogs and bugs + { GFXTYPE_SCROLL1, 0x0000, 0x003f, 0 }, // text + { GFXTYPE_SCROLL2, 0x0140, 0x025f, 0 }, // frog feast title + { GFXTYPE_SCROLL3, 0x0040, 0x04df, 0 }, // logo and background + { 0 } +}; + +#define mapper_demo { 0x8000, 0, 0, 0 }, mapper_demo_table +static const struct gfx_range mapper_demo_table[] = +{ + /* type start end bank */ + { GFXTYPE_SPRITES, 0x0000, 0x003f, 0 }, // moveable chaos + { GFXTYPE_SCROLL1, 0x4400, 0x445f, 0 }, // text + { GFXTYPE_SCROLL2, 0x0040, 0x00ff, 0 }, // logo, blue box, 10th + { GFXTYPE_SCROLL3, 0x0100, 0x011f, 0 }, // must not allow access to 0000, otherwise not used + { 0 } +}; +//HBMAME end + + +/* + I don't know if CPS2 ROM boards use PALs as well; since all games seem to be + well behaved, I'll just assume that there is no strong checking of gfx type. + (sprites are not listed here because they are addressed linearly by the CPS2 + sprite code) + */ +#define mapper_cps2 { 0x20000, 0x20000, 0, 0 }, mapper_cps2_table +static const struct gfx_range mapper_cps2_table[] = +{ + /* type start end bank */ + { GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 }, // 20000-3ffff physical + { 0 } +}; + + + +/* +Name knm10b; +PartNo ; +Date ; +Revision ; +Designer ; +Company ; +Assembly ; +Location ; +Device g16v8; + + Dedicated input pins + +pin 1 = I0; Input +pin 2 = I1; Input +pin 3 = I2; Input +pin 4 = I3; Input +pin 5 = I4; Input +pin 6 = I5; Input +pin 7 = I6; Input +pin 8 = I7; Input +pin 9 = I8; Input +pin 11 = I9; Input + + Programmable output pins + +pin 12 = B0; Combinatorial output +pin 13 = B1; Combinatorial output +pin 14 = B2; Combinatorial output +pin 15 = B3; Combinatorial output +pin 16 = B4; Combinatorial output +pin 17 = B5; Combinatorial output +pin 18 = B6; Combinatorial output +pin 19 = B7; Combinatorial output + + Output equations + +!B7 = !I0 & !I1 & !I2 & !I3 & !I4 & !I5 & !I9 + # I0 & !I1 & !I2 & !I3 & !I4 & !I5 & I9; +!B6 = !I0 & !I1 & !I2 & !I3 & !I4 & !I5 & !I9 + # I0 & !I1 & !I2 & !I3 & !I4 & !I5 & I9; +!B5 = !I0 & !I1 & !I2 & !I3 & !I4 & I5 & !I9 + # I0 & !I1 & !I2 & !I3 & !I4 & I5 & I9; +!B4 = !I0 & !I1 & !I2 & !I3 & !I4 & I5 & !I9 + # I0 & !I1 & !I2 & !I3 & !I4 & I5 & I9; +!B3 = !I0 & !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 & !I9 + # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 & !I9 + # !I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 & !I9 + # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 & !I9 + # !I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 & !I9 + # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 & !I9 + # !I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 & !I9 + # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8 & !I9 + # I0 & !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 & I9 + # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 & I9 + # I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 & I9 + # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 & I9 + # I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 & I9 + # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 & I9 + # I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 & I9 + # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8 & I9; +!B2 = !I0 & !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 & !I9 + # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 & !I9 + # !I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 & !I9 + # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 & !I9 + # !I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 & !I9 + # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 & !I9 + # !I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 & !I9 + # !I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8 & !I9 + # I0 & !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 & I9 + # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 & I9 + # I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 & I9 + # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 & I9 + # I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 & I9 + # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 & I9 + # I0 & !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 & I9 + # I0 & !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8 & I9; +!B1 = !I1 & !I2 & !I3 & I4 & !I5 & !I6 & !I7 & !I8 + # !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & !I8 + # !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & !I8 + # !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & !I8 + # !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 & I8 + # !I1 & I2 & !I3 & !I4 & !I5 & I6 & !I7 & I8 + # !I1 & I2 & I3 & !I4 & !I5 & !I6 & I7 & I8 + # !I1 & I2 & !I3 & !I4 & !I5 & I6 & I7 & I8; +!B0 = I0 & I9; + +*/ +// wrong, need to figure this out from the PAL + +#define mapper_KNM10B { 0x8000, 0x8000, 0x8000, 0 }, mapper_KNM10B_table +static const struct gfx_range mapper_KNM10B_table[] = +{ + /* type start end bank */ + + { GFXTYPE_SPRITES , 0x00000, 0x07fff, 0 }, + { GFXTYPE_SPRITES , 0x08000, 0x0ffff, 1 }, + { GFXTYPE_SPRITES , 0x10000, 0x17fff, 2 }, + { GFXTYPE_SCROLL2 , 0x04000, 0x07fff, 2 }, + { GFXTYPE_SCROLL1, 0x01000, 0x01fff, 2 }, + { GFXTYPE_SCROLL3 , 0x02000, 0x03fff, 2 }, + { 0 } +}; + + + +static const struct CPS1config cps1_config_table[]= +{ + /* name CPSB gfx mapper in2 in3 out2 kludge */ + {"forgottn", CPS_B_01, mapper_LW621 }, + {"forgottna", CPS_B_01, mapper_LW621 }, + {"forgottnu", CPS_B_01, mapper_LW621 }, + {"forgottnu1", CPS_B_01, mapper_LWCHR }, + {"forgottnua", CPS_B_01, mapper_LWCHR }, + {"forgottnuaa", CPS_B_01, mapper_LWCHR }, + {"lostwrld", CPS_B_01, mapper_LWCHR }, + {"lostwrldo", CPS_B_01, mapper_LWCHR }, + {"ghouls", CPS_B_01, mapper_DM620 }, + {"ghoulsu", CPS_B_01, mapper_DM620 }, + {"daimakai", CPS_B_01, mapper_DM22A }, // equivalent to DM620 + {"daimakair", CPS_B_21_DEF, mapper_DAM63B }, // equivalent to DM620, also CPS_B_21_DEF is equivalent to CPS_B_01 + {"strider", CPS_B_01, mapper_ST24M1 }, + {"striderua", CPS_B_01, mapper_ST24M1 }, // wrong, this set uses ST24B2, still not dumped + {"strideruc", CPS_B_17, mapper_ST24M1 }, // wrong? + {"striderj", CPS_B_01, mapper_ST22B }, // equivalent to ST24M1 + {"striderjr", CPS_B_21_DEF, mapper_ST24M1 }, // wrong, this set uses STH63B, still not dumped + {"dynwar", CPS_B_02, mapper_TK22B }, // wrong, this set uses TK24B1, dumped but equations still not added + {"dynwara", CPS_B_02, mapper_TK22B }, + {"dynwarj", CPS_B_02, mapper_TK22B }, + {"dynwarjr", CPS_B_21_DEF, mapper_TK22B }, // wrong, this set uses TK163B, still not dumped + {"willow", CPS_B_03, mapper_WL24B }, + {"willowu", CPS_B_03, mapper_WL24B }, + {"willowuo", CPS_B_03, mapper_WL24B }, + {"willowj", CPS_B_03, mapper_WL24B }, // wrong, this set uses WL22B, still not dumped + {"ffight", CPS_B_04, mapper_S224B }, + {"ffighta", CPS_B_04, mapper_S224B }, + {"ffightu", CPS_B_04, mapper_S224B }, + {"ffightu1", CPS_B_04, mapper_S224B }, + {"ffightua", CPS_B_01, mapper_S224B }, + {"ffightub", CPS_B_03, mapper_S224B }, // had 04 handwritten on the CPS_B chip, but clearly isn't. + {"ffightuc", CPS_B_05, mapper_S224B }, + {"ffightj", CPS_B_04, mapper_S224B }, // wrong, this set uses S222B + {"ffightj1", CPS_B_01, mapper_S224B }, // wrong, this set uses S222B + {"ffightj2", CPS_B_02, mapper_S224B }, // wrong, this set uses S222B + {"ffightj3", CPS_B_05, mapper_S224B }, // wrong, this set uses S222B + {"ffightjh", CPS_B_01, mapper_S224B }, // wrong, ffightjh hack doesn't even use the S222B PAL, since replaced with a GAL. + {"1941", CPS_B_05, mapper_YI24B }, + {"1941r1", CPS_B_05, mapper_YI24B }, + {"1941u", CPS_B_05, mapper_YI24B }, + {"1941j", CPS_B_05, mapper_YI24B }, // wrong, this set uses YI22B, still not dumped + {"unsquad", CPS_B_11, mapper_AR24B }, + {"area88", CPS_B_11, mapper_AR22B }, // equivalent to AR24B + {"area88r", CPS_B_21_DEF, mapper_AR22B }, // wrong, this set uses ARA63B, still not dumped + {"mercs", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 }, + {"mercsu", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 }, + {"mercsur1", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 }, + {"mercsj", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 }, // wrong, this set uses O222B, still not dumped + {"msword", CPS_B_13, mapper_MS24B }, + {"mswordr1", CPS_B_13, mapper_MS24B }, + {"mswordu", CPS_B_13, mapper_MS24B }, + {"mswordj", CPS_B_13, mapper_MS24B }, // wrong, this set uses MS22B, dumped but equations still not added + {"mtwins", CPS_B_14, mapper_CK24B }, + {"chikij", CPS_B_14, mapper_CK24B }, // wrong, this set uses CK22B, dumped but equations still not added + {"nemo", CPS_B_15, mapper_NM24B }, + {"nemor1", CPS_B_15, mapper_NM24B }, + {"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B, still not dumped + {"cawing", CPS_B_16, mapper_CA24B }, + {"cawingr1", CPS_B_16, mapper_CA24B }, + {"cawingu", CPS_B_16, mapper_CA24B }, + {"cawingj", CPS_B_16, mapper_CA22B }, // equivalent to CA24B + {"cawingbl", CPS_B_16, mapper_CA22B }, // equivalent to CA24B + {"sf2", CPS_B_11, mapper_STF29, 0x36 }, + {"sf2eb", CPS_B_17, mapper_STF29, 0x36 }, + {"sf2ed", CPS_B_05, mapper_STF29, 0x36 }, + {"sf2ee", CPS_B_18, mapper_STF29, 0x3c }, + {"sf2ebbl", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 }, + {"sf2ebbl2", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 }, + {"sf2ebbl3", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 }, + {"sf2stt", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 }, + {"sf2rk", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 }, + {"sf2ua", CPS_B_17, mapper_STF29, 0x36 }, + {"sf2ub", CPS_B_17, mapper_STF29, 0x36 }, + {"sf2uc", CPS_B_12, mapper_STF29, 0x36 }, + {"sf2ud", CPS_B_05, mapper_STF29, 0x36 }, + {"sf2ue", CPS_B_18, mapper_STF29, 0x3c }, + {"sf2uf", CPS_B_15, mapper_STF29, 0x36 }, + {"sf2ug", CPS_B_11, mapper_STF29, 0x36 }, + {"sf2ui", CPS_B_14, mapper_STF29, 0x36 }, + {"sf2uk", CPS_B_17, mapper_STF29, 0x36 }, + {"sf2j", CPS_B_13, mapper_STF29, 0x36 }, + {"sf2ja", CPS_B_17, mapper_STF29, 0x36 }, + {"sf2jc", CPS_B_12, mapper_STF29, 0x36 }, + {"sf2jf", CPS_B_15, mapper_STF29, 0x36 }, + {"sf2jh", CPS_B_13, mapper_STF29, 0x36 }, + {"sf2jl", CPS_B_17, mapper_STF29, 0x36 }, + {"sf2qp1", CPS_B_17, mapper_STF29, 0x36 }, + {"sf2thndr", CPS_B_17, mapper_STF29, 0x36 }, + + /* from here onwards the CPS-B board has suicide battery and multiply protection */ + + {"3wonders", CPS_B_21_BT1, mapper_RT24B }, + {"3wondersr1", CPS_B_21_BT1, mapper_RT24B }, + {"3wondersu", CPS_B_21_BT1, mapper_RT24B }, + {"wonder3", CPS_B_21_BT1, mapper_RT22B }, // equivalent to RT24B + {"3wondersb", CPS_B_21_BT1, mapper_RT24B, 0x36, 0, 0, 0x88 }, // same as 3wonders except some registers are hard wired rather than written to + {"3wondersh", HACK_B_2, mapper_RT24B }, // one port is changed from 3wonders, and no protection + {"kod", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, + {"kodr1", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, + {"kodu", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, + {"kodj", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, + {"kodja", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, // wrong, this set uses KD22B, still not dumped + {"kodb", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, /* bootleg, doesn't use multiply protection */ + {"captcomm", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, + {"captcommr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, + {"captcommu", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, + {"captcommj", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, + {"captcommjr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, + {"captcommb", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34, 3 }, + {"knights", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, + {"knightsu", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, + {"knightsj", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, + {"knightsja", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, this set uses KR22B, still not dumped + //{"knightsb", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, knightsb bootleg doesn't use the KR63B PAL + {"sf2ce", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2ceea", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2ceua", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2ceub", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2ceuc", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2ceja", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2cejb", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2cejc", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2bhh", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2rb", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2rb2", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2rb3", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2red", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2v004", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2acc", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2ceblp", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2cebltw", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2acca", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2accp2", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2amf", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, // probably wrong but this set is not completely dumped anyway + {"sf2amf2", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2dkot2", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2m1", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2m2", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2m3", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 }, + {"sf2m4", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2m5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2m6", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2m7", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2m8", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 }, + {"sf2m9", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2m10", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2dongb", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2yyc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2koryu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2mdt", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2mdta", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2mdtb", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, + {"sf2b", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 }, + {"varth", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added + {"varthr1", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added + {"varthu", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */ + {"varthj", CPS_B_21_BT5, mapper_VA22B }, /* CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */ + {"varthjr", CPS_B_21_BT5, mapper_VA63B }, /* CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */ + {"cworld2j", CPS_B_21_BT6, mapper_Q522B, 0x36, 0, 0x34 }, /* (ports 36, 34 probably leftover input code from another game) */ + {"cworld2ja", CPS_B_21_DEF, mapper_Q522B }, // patched set, no battery, could be desuicided // wrong, this set uses Q529B, still not dumped + {"cworld2jb", CPS_B_21_BT6, mapper_Q522B, 0x36, 0, 0x34 }, // wrong, this set uses Q563B, still not dumped + {"wof", CPS_B_21_QS1, mapper_TK263B }, + {"wofr1", CPS_B_21_DEF, mapper_TK263B }, // patched set coming from a desuicided board? + {"wofa", CPS_B_21_DEF, mapper_TK263B }, // patched set coming from a desuicided board? + {"wofu", CPS_B_21_QS1, mapper_TK263B }, + {"wofj", CPS_B_21_QS1, mapper_TK263B }, + {"wofhfh", CPS_B_21_DEF, mapper_TK263B, 0x36 }, /* Chinese bootleg */ + {"dino", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */ + {"dinou", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */ + {"dinoj", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */ + {"dinopic", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */ + {"dinopic2", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */ + {"dinohunt", CPS_B_21_DEF, mapper_CD63B }, /* Chinese bootleg */ + {"punisher", CPS_B_21_QS3, mapper_PS63B }, + {"punisheru", CPS_B_21_QS3, mapper_PS63B }, + {"punisherh", CPS_B_21_QS3, mapper_PS63B }, + {"punisherj", CPS_B_21_QS3, mapper_PS63B }, + {"punipic", CPS_B_21_QS3, mapper_PS63B }, + {"punipic2", CPS_B_21_QS3, mapper_PS63B }, + {"punipic3", CPS_B_21_QS3, mapper_PS63B }, + {"punisherbz", CPS_B_21_DEF, mapper_PS63B }, /* Chinese bootleg */ + {"slammast", CPS_B_21_QS4, mapper_MB63B }, + {"slammastu", CPS_B_21_QS4, mapper_MB63B }, + {"slampic", CPS_B_21_QS4, mapper_MB63B }, + {"mbomberj", CPS_B_21_QS4, mapper_MB63B }, + {"mbombrd", CPS_B_21_QS5, mapper_MB63B }, + {"mbombrdj", CPS_B_21_QS5, mapper_MB63B }, + {"sf2hf", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2hfu", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"sf2hfj", CPS_B_21_DEF, mapper_S9263B, 0x36 }, + {"qad", CPS_B_21_BT7, mapper_QD22B, 0x36 }, /* TODO: layer enable (port 36 probably leftover input code from another game) */ + {"qadjr", CPS_B_21_DEF, mapper_QAD63B, 0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */ + {"qtono2j", CPS_B_21_DEF, mapper_TN2292, 0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */ + {"megaman", CPS_B_21_DEF, mapper_RCM63B }, + {"megamana", CPS_B_21_DEF, mapper_RCM63B }, + {"rockmanj", CPS_B_21_DEF, mapper_RCM63B }, + {"pnickj", CPS_B_21_DEF, mapper_PKB10B }, + {"pang3", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9KA + {"pang3r1", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K + {"pang3j", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K + {"pang3b", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K + {"ganbare", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses GBPR2, dumped but equations still not added + + /* CPS Changer */ + + {"sfach", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped + {"sfzbch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped + {"sfzch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped + {"wofch", CPS_B_21_DEF, mapper_TK263B }, + + /* CPS2 games */ + + {"cps2", CPS_B_21_DEF, mapper_cps2 }, + + /* CPS1 board + extra support boards */ + + {"kenseim", CPS_B_21_DEF, mapper_KNM10B }, // wrong, need to convert equations from PAL + +// HBMAME + {"3wondrud", CPS_B_21_DEF, mapper_RT24B }, //works + {"captcocc", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, // nw + {"captcoud", CPS_B_21_DEF, mapper_CC63B, 0x36, 0x38, 0x34 }, //works + {"captcovs", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, // nw + {"captcomc", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works + {"captcomh", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works + {"captcommb2", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works + //{"cawingb", CPS_B_16, mapper_CA24B, 0, 0, 0, 0x8F }, // no sprites here, ok in fcrash.cpp + {"cps1demo", CPS_B_04, mapper_demo, 0, 0, 0, 0x80 }, //works + {"cps1frog", CPS_B_04, mapper_frog, 0, 0, 0, 0x80 }, //works + {"cps1test", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works + {"cps1testa", CPS_B_21_DEF, mapper_RCM63B }, //works + {"daimakb", HACK_H_5, mapper_DM22A }, //works + {"dino08h2", CPS_B_21_QS2, mapper_CD63B }, //works + {"dino08h3", CPS_B_21_QS2, mapper_CD63B }, //works + {"dino08hp", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinob", CPS_B_21_QS2, mapper_CD63B, 0, 0, 0, 0x0F }, //works + {"dinobt", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinobtpp", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinocgba", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinocgbb", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinocgbc", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinoeh", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinoex", CPS_B_21_DEF, mapper_CD63B }, //works + {"dinoh", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works + {"dinoha", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works + {"dinohb", CPS_B_21_QS2, mapper_CD63B, 0, 0, 0, 0x0F }, //works + {"dinohp", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinohx", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works + {"dinojp", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinorp", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinoslice", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinouphp", CPS_B_21_QS2, mapper_CD63B }, //works + {"dinoz", CPS_B_21_QS2, mapper_CD63B }, //works + {"ffightb", CPS_B_01, mapper_S224B }, //works + {"knight21", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, //works + //{"knightsa", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // a rom is unobtainable + {"knightsb2", HACK_H_6, mapper_KR63B, 0x36, 0, 0x34, 0x44 }, //works + {"knightsh", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works (intro screen is crap) + {"knightsha", HACK_H_7, mapper_KR63B, 0x36, 0, 0x34 }, //works + {"knightsjb", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works + {"knightsro", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, //works + {"knightud", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works + {"kodd", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, // nw + {"kodh", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, //works + {"kodsp", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, //works + {"kodud", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, // nw + {"pnicku", CPS_B_21_DEF, mapper_PKB10B }, //works + {"punisherb", CPS_B_21_QS3, mapper_PS63B, 0, 0, 0, 0x0E }, //works + {"punisherf", CPS_B_21_QS3, mapper_PS63B }, //works + {"punisherje1", CPS_B_21_QS3, mapper_PS63B }, //works + {"punisherjh", CPS_B_21_QS3, mapper_PS63B }, //works + {"punisherjh1", CPS_B_21_QS3, mapper_PS63B }, //works + {"punisherjha", CPS_B_21_QS3, mapper_PS63B }, //works + {"punisherud1", CPS_B_21_DEF, mapper_PS63B }, //works + {"punisherud2", CPS_B_21_DEF, mapper_PS63B }, //works + {"sf2c", CPS_B_13, mapper_STF29, 0x36 }, //works + {"sf2cebr", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works + {"sf2ced", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works + {"sf2ceda", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works + {"sf2ceh", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works + {"sf2koryuh", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2h9", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2h10", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2h11", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2h12", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2h13", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2pun", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works + {"sf2sl73a", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works + {"sf2th", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2tha", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2tlona", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2tlonb", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2tlonc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2turyu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2yyc3d5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2yyc3g", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sf2yyc6", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works + {"sk2h1", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities + {"sk2h1q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities + {"sk2h2", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities + {"sk2h2q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities + {"sk2h3", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities + {"sk2h11", CPS_B_21_DEF, mapper_TK263B }, //works + {"sk2h12", CPS_B_21_DEF, mapper_TK263B }, //works + {"sk2h13", CPS_B_21_DEF, mapper_TK263B }, //works + {"sk2h14", CPS_B_21_DEF, mapper_TK263B }, //works + {"sk2h15", CPS_B_21_DEF, mapper_TK263B }, //works + {"sk2h16", CPS_B_21_DEF, mapper_TK263B }, //works + {"sk2h21", CPS_B_21_DEF, mapper_TK263B, 0x36 }, //works + {"sk2h22", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h31", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h31q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h32", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h32q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h33", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h33q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h34", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h34q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities + {"sk2h35", CPS_B_21_DEF, mapper_TK263B, 0x36 }, //works + {"slammastud", CPS_B_21_DEF, mapper_MB63B }, //works + {"stridergf", CPS_B_01, mapper_ST24M1 }, //works + {"stridergh", CPS_B_01, mapper_ST24M1 }, //works + {"varthb", CPS_B_04, mapper_VA63B, 0, 0, 0, 0x0F }, //works + {"wofb", CPS_B_21_DEF, mapper_TK263B }, //works + {"wofch_v3", CPS_B_21_DEF, mapper_sfzch }, //works + {"wofchdx", CPS_B_21_DEF, mapper_sfzch }, //works + {"wofchdx1", CPS_B_21_DEF, mapper_TK263B }, //works + {"wofchdx2", CPS_B_21_DEF, mapper_TK263B }, //works + {"wofchspp", CPS_B_21_DEF, mapper_TK263B }, //works + {"wofjcn", CPS_B_21_QS1, mapper_TK263B }, // problem with chinese language roms + {"woffr", CPS_B_21_DEF, mapper_sfzch }, //works + {"wofjh", CPS_B_21_QS1, mapper_TK263B }, //works + {"wofjhb", CPS_B_21_QS1, mapper_TK263B }, //works + {"wofjhc", CPS_B_21_QS1, mapper_TK263B }, //works + {"wofjm", CPS_B_21_QS1, mapper_TK263B }, //works + {"wofjzero", CPS_B_21_QS1, mapper_TK263B }, //works + {"wofr1h", CPS_B_21_DEF, mapper_TK263B }, //works + {"wofsf2", CPS_B_21_QS1, mapper_TK263B, 0x36 }, //works + + // HBMAME end + {nullptr} /* End of table */ +}; + + + + +/* Offset of each palette entry */ +#define cps1_palette_entries (32*6) /* Number colour schemes in palette */ + + +/* CPS-A registers */ +#define CPS1_OBJ_BASE (0x00/2) /* Base address of objects */ +#define CPS1_SCROLL1_BASE (0x02/2) /* Base address of scroll 1 */ +#define CPS1_SCROLL2_BASE (0x04/2) /* Base address of scroll 2 */ +#define CPS1_SCROLL3_BASE (0x06/2) /* Base address of scroll 3 */ +#define CPS1_OTHER_BASE (0x08/2) /* Base address of other video */ +#define CPS1_PALETTE_BASE (0x0a/2) /* Base address of palette */ +#define CPS1_SCROLL1_SCROLLX (0x0c/2) /* Scroll 1 X */ +#define CPS1_SCROLL1_SCROLLY (0x0e/2) /* Scroll 1 Y */ +#define CPS1_SCROLL2_SCROLLX (0x10/2) /* Scroll 2 X */ +#define CPS1_SCROLL2_SCROLLY (0x12/2) /* Scroll 2 Y */ +#define CPS1_SCROLL3_SCROLLX (0x14/2) /* Scroll 3 X */ +#define CPS1_SCROLL3_SCROLLY (0x16/2) /* Scroll 3 Y */ +#define CPS1_STARS1_SCROLLX (0x18/2) /* Stars 1 X */ +#define CPS1_STARS1_SCROLLY (0x1a/2) /* Stars 1 Y */ +#define CPS1_STARS2_SCROLLX (0x1c/2) /* Stars 2 X */ +#define CPS1_STARS2_SCROLLY (0x1e/2) /* Stars 2 Y */ +#define CPS1_ROWSCROLL_OFFS (0x20/2) /* base of row scroll offsets in other RAM */ +#define CPS1_VIDEOCONTROL (0x22/2) /* flip screen, rowscroll enable */ + + +/* +CPS1 VIDEO RENDERER + +*/ +#define CPS2_OBJ_BASE 0x00 /* Unknown (not base address of objects). Could be bass address of bank used when object swap bit set? */ +#define CPS2_OBJ_UK1 0x02 /* Unknown (nearly always 0x807d, or 0x808e when screen flipped) */ +#define CPS2_OBJ_PRI 0x04 /* Layers priorities */ +#define CPS2_OBJ_UK2 0x06 /* Unknown (usually 0x0000, 0x1101 in ssf2, 0x0001 in 19XX) */ +#define CPS2_OBJ_XOFFS 0x08 /* X offset (usually 0x0040) */ +#define CPS2_OBJ_YOFFS 0x0a /* Y offset (always 0x0010) */ + + +MACHINE_RESET_MEMBER(cps_state,cps) +{ + const char *gamename = machine().system().name; + const struct CPS1config *pCFG = &cps1_config_table[0]; + + while (pCFG->name) + { + if (strcmp(pCFG->name, gamename) == 0) + break; + + pCFG++; + } + + m_game_config = pCFG; + + if (!m_game_config->name) + { + gamename = "cps2"; + pCFG = &cps1_config_table[0]; + + while(pCFG->name) + { + if (strcmp(pCFG->name, gamename) == 0) + break; + + pCFG++; + } + + m_game_config = pCFG; + } + +#if 0 + if (strcmp(gamename, "sf2accp2") == 0) + { + /* Patch out a odd branch which would be incorrectly interpreted + by the cpu core as a 32-bit branch. This branch would make the + game crash (address error, since it would branch to an odd address) + if location 180ca6 (outside ROM space) isn't 0. Protection check? */ + UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); + rom[0x11756 / 2] = 0x4e71; + } + else if (strcmp(gamename, "ghouls") == 0) + { + /* Patch out self-test... it takes forever */ + UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); + rom[0x61964 / 2] = 0x4ef9; + rom[0x61966 / 2] = 0x0000; + rom[0x61968 / 2] = 0x0400; + } +#endif +} + + +inline UINT16 *cps_state::cps1_base( int offset, int boundary ) +{ + int base = m_cps_a_regs[offset] * 256; + + /* + The scroll RAM must start on a 0x4000 boundary. + Some games do not do this. + For example: + Captain commando - continue screen will not display + Muscle bomber games - will animate garbage during gameplay + Mask out the irrelevant bits. + */ + base &= ~(boundary - 1); + return &m_gfxram[(base & 0x3ffff) / 2]; +} + + + +WRITE16_MEMBER(cps_state::cps1_cps_a_w) +{ + data = COMBINE_DATA(&m_cps_a_regs[offset]); + + /* + The main CPU writes the palette to gfxram, and the CPS-B custom copies it + to the real palette RAM, which is separated from gfxram. + This is done ONLY after the palette base register is written to. It is not + known what the exact timing should be, how long it should take and when it + should happen. We are assuming that the copy happens immediately, since it + fixes glitches in the ghouls intro, but it might happen at next vblank. + */ + if (offset == CPS1_PALETTE_BASE) + cps1_build_palette(cps1_base(CPS1_PALETTE_BASE, m_palette_align)); + + // pzloop2 write to register 24 on startup. This is probably just a bug. + if (offset == 0x24 / 2 && m_cps_version == 2) + return; + +#ifdef MAME_DEBUG + if (offset > CPS1_VIDEOCONTROL) + popmessage("write to CPS-A register %02x contact MAMEDEV", offset * 2); +#endif +} + + +READ16_MEMBER(cps_state::cps1_cps_b_r) +{ + /* Some games interrogate a couple of registers on bootup. */ + /* These are CPS1 board B self test checks. They wander from game to */ + /* game. */ + if (offset == m_game_config->cpsb_addr / 2) + return m_game_config->cpsb_value; + + /* some games use as a protection check the ability to do 16-bit multiplications */ + /* with a 32-bit result, by writing the factors to two ports and reading the */ + /* result from two other ports. */ + if (offset == m_game_config->mult_result_lo / 2) + return (m_cps_b_regs[m_game_config->mult_factor1 / 2] * + m_cps_b_regs[m_game_config->mult_factor2 / 2]) & 0xffff; + + if (offset == m_game_config->mult_result_hi / 2) + return (m_cps_b_regs[m_game_config->mult_factor1 / 2] * + m_cps_b_regs[m_game_config->mult_factor2 / 2]) >> 16; + + if (offset == m_game_config->in2_addr / 2) /* Extra input ports (on C-board) */ + return cps1_in2_r(space, 0, 0); // HBMAME ioport("IN2")->read(); + + if (offset == m_game_config->in3_addr / 2) /* Player 4 controls (on C-board) ("Captain Commando") */ + return cps1_in3_r(space, 0, 0); // HBMAME ioport("IN3")->read(); + + if (m_cps_version == 2) + { + if (offset == 0x10/2) + { + // UNKNOWN--only mmatrix appears to read this, and I'm not sure if the result is actually used + return m_cps_b_regs[0x10 / 2]; + } + if (offset == 0x12/2) + return m_cps_b_regs[0x12 / 2]; + } +#ifdef MAME_DEBUG + popmessage("CPS-B read port %02x contact MAMEDEV", offset * 2); +#endif + return 0xffff; +} + + +WRITE16_MEMBER(cps_state::cps1_cps_b_w) +{ + data = COMBINE_DATA(&m_cps_b_regs[offset]); + + if (m_cps_version == 2) + { + /* To mark scanlines for raster effects */ + if (offset == 0x0e/2) + { + // UNKNOWN + return; + } + if (offset == 0x10/2) + { + m_scanline1 = (data & 0x1ff); + return; + } + if (offset == 0x12/2) + { + m_scanline2 = (data & 0x1ff); + return; + } + } + + + // additional outputs on C-board + if (offset == m_game_config->out2_addr / 2) + { + if (ACCESSING_BITS_0_7) + { + if (m_game_config->cpsb_value == 0x0402) // Mercs (CN2 connector) + { + machine().bookkeeping().coin_lockout_w(2, ~data & 0x01); + output().set_led_value(0, data & 0x02); + output().set_led_value(1, data & 0x04); + output().set_led_value(2, data & 0x08); + } + else // kod, captcomm, knights + { + machine().bookkeeping().coin_lockout_w(2, ~data & 0x02); + machine().bookkeeping().coin_lockout_w(3, ~data & 0x08); + } + } + } + +#ifdef MAME_DEBUG + if (offset != m_game_config->cpsb_addr / 2 && // only varth writes here + offset != m_game_config->mult_factor1 / 2 && + offset != m_game_config->mult_factor2 / 2 && + offset != m_game_config->layer_control / 2 && + offset != m_game_config->unknown1 / 2 && + offset != m_game_config->unknown2 / 2 && + offset != m_game_config->unknown3 / 2 && + offset != m_game_config->priority[0] / 2 && + offset != m_game_config->priority[1] / 2 && + offset != m_game_config->priority[2] / 2 && + offset != m_game_config->priority[3] / 2 && + offset != m_game_config->palette_control / 2 && + offset != m_game_config->out2_addr / 2 && + !m_game_config->bootleg_kludge) + popmessage("CPS-B write %04x to port %02x contact MAMEDEV", data, offset * 2); +#endif +} + + +void cps_state::unshuffle( UINT64 *buf, int len ) +{ + int i; + UINT64 t; + + if (len == 2) + return; + + assert(len % 4 == 0); /* must not happen */ + + len /= 2; + + unshuffle(buf, len); + unshuffle(buf + len, len); + + for (i = 0; i < len / 2; i++) + { + t = buf[len / 2 + i]; + buf[len / 2 + i] = buf[len + i]; + buf[len + i] = t; + } +} + + +void cps_state::cps2_gfx_decode() +{ + const int banksize = 0x200000; + int size = memregion("gfx")->bytes(); + int i; + + for (i = 0; i < size; i += banksize) + unshuffle((UINT64 *)(memregion("gfx")->base() + i), banksize / 8); +} + + +DRIVER_INIT_MEMBER(cps_state,cps1) +{ + m_scanline1 = 0; + m_scanline2 = 0; + m_scancalls = 0; + m_last_sprite_offset = 0; + m_pri_ctrl = 0; + m_objram_bank = 0; +} + + + +DRIVER_INIT_MEMBER(cps_state,cps2_video) +{ + cps2_gfx_decode(); + + m_scanline1 = 262; + m_scanline2 = 262; + m_scancalls = 0; + m_last_sprite_offset = 0; + m_cps2_last_sprite_offset = 0; + m_pri_ctrl = 0; + m_objram_bank = 0; +} + + +void cps_state::cps1_get_video_base() +{ + int layercontrol=0, videocontrol=0, scroll1xoff=0, scroll2xoff=0, scroll3xoff=0; + + //HBMAME + UINT8 kludge = m_game_config->bootleg_kludge & 15; + + /* Re-calculate the VIDEO RAM base */ + if (m_scroll1 != cps1_base(CPS1_SCROLL1_BASE, m_scroll_size)) + { + m_scroll1 = cps1_base(CPS1_SCROLL1_BASE, m_scroll_size); + m_bg_tilemap[0]->mark_all_dirty(); + } + if (m_scroll2 != cps1_base(CPS1_SCROLL2_BASE, m_scroll_size)) + { + m_scroll2 = cps1_base(CPS1_SCROLL2_BASE, m_scroll_size); + m_bg_tilemap[1]->mark_all_dirty(); + } + if (m_scroll3 != cps1_base(CPS1_SCROLL3_BASE, m_scroll_size)) + { + m_scroll3 = cps1_base(CPS1_SCROLL3_BASE, m_scroll_size); + m_bg_tilemap[2]->mark_all_dirty(); + } + + /* Some of the sf2 hacks use only sprite port 0x9100 and the scroll layers are offset */ + if (kludge == 0x01) // HBMAME + { + m_cps_a_regs[CPS1_OBJ_BASE] = 0x9100; + scroll1xoff = -0x0c; + scroll2xoff = -0x0e; + scroll3xoff = -0x10; + } +// HBMAME start + else + if (kludge == 0x0E) + { + scroll1xoff = 0xffba; + scroll2xoff = 0xffc0; + scroll3xoff = 0xffba; + } + else + if (kludge == 0x0F) + { + scroll1xoff = 0xffc0; + scroll2xoff = 0xffc0; + scroll3xoff = 0xffc0; + } +// HBMAME end + else + if (m_game_config->bootleg_kludge == 2) + { + m_cps_a_regs[CPS1_OBJ_BASE] = 0x9100; + scroll1xoff = -0x0c; + scroll2xoff = -0x10; + scroll3xoff = -0x10; + } + else + if (m_game_config->bootleg_kludge == 3) + { + scroll1xoff = -0x08; + scroll2xoff = -0x0b; + scroll3xoff = -0x0c; + } + else + if (m_game_config->bootleg_kludge == 0x88) // 3wondersb + { + scroll1xoff = 0x4; + scroll2xoff = 0x6; + scroll3xoff = 0xa; + m_cps_b_regs[0x30/2] = 0x3f; + m_cps_a_regs[CPS1_VIDEOCONTROL] = 0x3e; + m_cps_a_regs[CPS1_SCROLL2_BASE] = 0x90c0; + m_cps_a_regs[CPS1_SCROLL3_BASE] = 0x9100; + m_cps_a_regs[CPS1_PALETTE_BASE] = 0x9140; + } + + m_obj = cps1_base(CPS1_OBJ_BASE, m_obj_size); + m_other = cps1_base(CPS1_OTHER_BASE, m_other_size); + + /* Get scroll values */ + m_scroll1x = m_cps_a_regs[CPS1_SCROLL1_SCROLLX] + scroll1xoff; + m_scroll1y = m_cps_a_regs[CPS1_SCROLL1_SCROLLY]; + m_scroll2x = m_cps_a_regs[CPS1_SCROLL2_SCROLLX] + scroll2xoff; + m_scroll2y = m_cps_a_regs[CPS1_SCROLL2_SCROLLY]; + m_scroll3x = m_cps_a_regs[CPS1_SCROLL3_SCROLLX] + scroll3xoff; + m_scroll3y = m_cps_a_regs[CPS1_SCROLL3_SCROLLY]; + m_stars1x = m_cps_a_regs[CPS1_STARS1_SCROLLX]; + m_stars1y = m_cps_a_regs[CPS1_STARS1_SCROLLY]; + m_stars2x = m_cps_a_regs[CPS1_STARS2_SCROLLX]; + m_stars2y = m_cps_a_regs[CPS1_STARS2_SCROLLY]; + + /* Get layer enable bits */ + layercontrol = m_cps_b_regs[m_game_config->layer_control / 2]; + videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL]; + m_bg_tilemap[0]->enable(layercontrol & m_game_config->layer_enable_mask[0]); + m_bg_tilemap[1]->enable((layercontrol & m_game_config->layer_enable_mask[1]) && (videocontrol & 4)); + m_bg_tilemap[2]->enable((layercontrol & m_game_config->layer_enable_mask[2]) && (videocontrol & 8)); + m_stars_enabled[0] = layercontrol & m_game_config->layer_enable_mask[3]; + m_stars_enabled[1] = layercontrol & m_game_config->layer_enable_mask[4]; + +#ifdef MAME_DEBUG +{ + int enablemask = 0; + + if (m_game_config->layer_enable_mask[0] == m_game_config->layer_enable_mask[1]) + enablemask = m_game_config->layer_enable_mask[0]; + + if (m_game_config->layer_enable_mask[0] == m_game_config->layer_enable_mask[2]) + enablemask = m_game_config->layer_enable_mask[0]; + + if (m_game_config->layer_enable_mask[1] == m_game_config->layer_enable_mask[2]) + enablemask = m_game_config->layer_enable_mask[1]; + + if (enablemask) + { + if (((layercontrol & enablemask) && (layercontrol & enablemask) != enablemask)) + popmessage("layer %02x contact MAMEDEV", layercontrol & 0xc03f); + } + + enablemask = m_game_config->layer_enable_mask[0] | m_game_config->layer_enable_mask[1] + | m_game_config->layer_enable_mask[2] + | m_game_config->layer_enable_mask[3] | m_game_config->layer_enable_mask[4]; + + if (((layercontrol & ~enablemask) & 0x003e) != 0) + popmessage("layer %02x contact MAMEDEV", layercontrol & 0xc03f); +} +#endif + +} + + +WRITE16_MEMBER(cps_state::cps1_gfxram_w) +{ + int page = (offset >> 7) & 0x3c0; + COMBINE_DATA(&m_gfxram[offset]); + + if (page == (m_cps_a_regs[CPS1_SCROLL1_BASE] & 0x3c0)) + m_bg_tilemap[0]->mark_tile_dirty(offset / 2 & 0x0fff); + + if (page == (m_cps_a_regs[CPS1_SCROLL2_BASE] & 0x3c0)) + m_bg_tilemap[1]->mark_tile_dirty(offset / 2 & 0x0fff); + + if (page == (m_cps_a_regs[CPS1_SCROLL3_BASE] & 0x3c0)) + m_bg_tilemap[2]->mark_tile_dirty(offset / 2 & 0x0fff); +} + + + +int cps_state::gfxrom_bank_mapper( int type, int code ) +{ + const struct gfx_range *range = m_game_config->bank_mapper; + int shift = 0; + + assert(range); + + switch (type) + { + case GFXTYPE_SPRITES: shift = 1; break; + case GFXTYPE_SCROLL1: shift = 0; break; + case GFXTYPE_SCROLL2: shift = 1; break; + case GFXTYPE_SCROLL3: shift = 3; break; + } + + code <<= shift; + + while (range->type) + { + if (code >= range->start && code <= range->end) + { + if (range->type & type) + { + int base = 0; + int i; + + for (i = 0; i < range->bank; ++i) + base += m_game_config->bank_sizes[i]; + + return (base + (code & (m_game_config->bank_sizes[range->bank] - 1))) >> shift; + } + } + + ++range; + } + +#ifdef MAME_DEBUG +// popmessage("tile %02x/%04x out of range", type, code >> shift); +#endif + + return -1; +} + + +/*************************************************************************** + + Start the video hardware emulation. + +***************************************************************************/ + +TILEMAP_MAPPER_MEMBER(cps_state::tilemap0_scan) +{ + /* logical (col,row) -> memory offset */ + return (row & 0x1f) + ((col & 0x3f) << 5) + ((row & 0x20) << 6); +} + +TILEMAP_MAPPER_MEMBER(cps_state::tilemap1_scan) +{ + /* logical (col,row) -> memory offset */ + return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x30) << 6); +} + +TILEMAP_MAPPER_MEMBER(cps_state::tilemap2_scan) +{ + /* logical (col,row) -> memory offset */ + return (row & 0x07) + ((col & 0x3f) << 3) + ((row & 0x38) << 6); +} + +TILE_GET_INFO_MEMBER(cps_state::get_tile0_info) +{ + int code = m_scroll1[2 * tile_index]; + int attr = m_scroll1[2 * tile_index + 1]; + int gfxset; + + code = gfxrom_bank_mapper(GFXTYPE_SCROLL1, code); + + /* allows us to reproduce a problem seen with a ffight board where USA and Japanese + roms have been mixed to be reproduced (ffightub) -- it looks like each column + should alternate between the left and right side of the 16x16 tiles */ + gfxset = (tile_index & 0x20) >> 5; + + SET_TILE_INFO_MEMBER(gfxset, + code, + (attr & 0x1f) + 0x20, + TILE_FLIPYX((attr & 0x60) >> 5)); + tileinfo.group = (attr & 0x0180) >> 7; + + // for out of range tiles, switch to fully transparent data + // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad) + if (code == -1) + tileinfo.pen_data = m_empty_tile; +} + +TILE_GET_INFO_MEMBER(cps_state::get_tile1_info) +{ + int code = m_scroll2[2 * tile_index]; + int attr = m_scroll2[2 * tile_index + 1]; + + code = gfxrom_bank_mapper(GFXTYPE_SCROLL2, code); + + SET_TILE_INFO_MEMBER(2, + code, + (attr & 0x1f) + 0x40, + TILE_FLIPYX((attr & 0x60) >> 5)); + tileinfo.group = (attr & 0x0180) >> 7; + + // for out of range tiles, switch to fully transparent data + if (code == -1) + tileinfo.pen_data = m_empty_tile; +} + +TILE_GET_INFO_MEMBER(cps_state::get_tile2_info) +{ + int code = m_scroll3[2 * tile_index] & 0x3fff; + int attr = m_scroll3[2 * tile_index + 1]; + + code = gfxrom_bank_mapper(GFXTYPE_SCROLL3, code); + + SET_TILE_INFO_MEMBER(3, + code, + (attr & 0x1f) + 0x60, + TILE_FLIPYX((attr & 0x60) >> 5)); + tileinfo.group = (attr & 0x0180) >> 7; + + // for out of range tiles, switch to fully transparent data + // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad) + if (code == -1) + tileinfo.pen_data = m_empty_tile; +} + + + +void cps_state::cps1_update_transmasks() +{ + int i; + + for (i = 0; i < 4; i++) + { + int mask; + + /* Get transparency registers */ + if (m_game_config->priority[i] != -1) + mask = m_cps_b_regs[m_game_config->priority[i] / 2] ^ 0xffff; + else + mask = 0xffff; /* completely transparent if priority masks not defined (qad) */ + + m_bg_tilemap[0]->set_transmask(i, mask, 0x8000); + m_bg_tilemap[1]->set_transmask(i, mask, 0x8000); + m_bg_tilemap[2]->set_transmask(i, mask, 0x8000); + } +} + +VIDEO_START_MEMBER(cps_state,cps) +{ + int i; + + MACHINE_RESET_CALL_MEMBER(cps); + + /* Put in some const */ + m_scroll_size = 0x4000; /* scroll1, scroll2, scroll3 */ + m_obj_size = 0x0800; + m_cps2_obj_size = 0x2000; + m_other_size = 0x0800; + m_palette_align = 0x0400; /* minimum alignment is a single palette page (512 colors). Verified on pcb. */ + m_palette_size = cps1_palette_entries * 32; /* Size of palette RAM */ + m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */ + + /* create tilemaps */ + m_bg_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile0_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap0_scan),this), 8, 8, 64, 64); + m_bg_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile1_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap1_scan),this), 16, 16, 64, 64); + m_bg_tilemap[2] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile2_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap2_scan),this), 32, 32, 64, 64); + + /* create empty tiles */ + memset(m_empty_tile, 0x0f, sizeof(m_empty_tile)); + + /* front masks will change at runtime to handle sprite occluding */ + cps1_update_transmasks(); + + for (i = 0; i < cps1_palette_entries * 16; i++) + m_palette->set_pen_color(i, rgb_t(0,0,0)); + + m_buffered_obj = make_unique_clear<UINT16[]>(m_obj_size / 2); + + if (m_cps_version == 2) + m_cps2_buffered_obj = make_unique_clear<UINT16[]>(m_cps2_obj_size / 2); + + /* clear RAM regions */ + memset(m_gfxram, 0, m_gfxram.bytes()); /* Clear GFX RAM */ + memset(m_cps_a_regs, 0, 0x40); /* Clear CPS-A registers */ + memset(m_cps_b_regs, 0, 0x40); /* Clear CPS-B registers */ + + m_cps_b_regs[m_game_config->palette_control/2] = 0x3F; // HBMAME + + if (m_cps_version == 2) + { + memset(m_objram1, 0, m_cps2_obj_size); + memset(m_objram2, 0, m_cps2_obj_size); + } + + /* Put in some defaults */ + m_cps_a_regs[CPS1_OBJ_BASE] = 0x9200; + m_cps_a_regs[CPS1_SCROLL1_BASE] = 0x9000; + m_cps_a_regs[CPS1_SCROLL2_BASE] = 0x9040; + m_cps_a_regs[CPS1_SCROLL3_BASE] = 0x9080; + m_cps_a_regs[CPS1_OTHER_BASE] = 0x9100; + + /* This should never be hit, since game_config is set in machine_reset */ + assert_always(m_game_config, "state_game_config hasn't been set up yet"); + + + /* Set up old base */ + m_scroll1 = nullptr; + m_scroll2 = nullptr; + m_scroll3 = nullptr; + m_obj = nullptr; + m_other = nullptr; + cps1_get_video_base(); /* Calculate base pointers */ + cps1_get_video_base(); /* Calculate old base pointers */ + + /* state save register */ + save_item(NAME(m_scanline1)); + save_item(NAME(m_scanline2)); + save_item(NAME(m_scancalls)); +#if 0 + /* these do not need to be saved, because they are recovered from cps_a_regs in cps1_postload */ + save_item(NAME(m_scroll1x)); + save_item(NAME(m_scroll1y)); + save_item(NAME(m_scroll2x)); + save_item(NAME(m_scroll2y)); + save_item(NAME(m_scroll3x)); + save_item(NAME(m_scroll3y)); + save_item(NAME(m_stars1x)); + save_item(NAME(m_stars1y)); + save_item(NAME(m_stars2x)); + save_item(NAME(m_stars2y)); + save_item(NAME(m_stars_enabled)); +#endif + save_item(NAME(m_last_sprite_offset)); + save_item(NAME(m_pri_ctrl)); + save_item(NAME(m_objram_bank)); + + save_pointer(NAME(m_buffered_obj.get()), m_obj_size / 2); + if (m_cps_version == 2) + { + save_item(NAME(m_cps2_last_sprite_offset)); + save_pointer(NAME(m_cps2_buffered_obj.get()), m_cps2_obj_size / 2); + } + + machine().save().register_postload(save_prepost_delegate(FUNC(cps_state::cps1_get_video_base), this)); +} + +VIDEO_START_MEMBER(cps_state,cps1) +{ + m_cps_version = 1; + VIDEO_START_CALL_MEMBER(cps); +} + +VIDEO_START_MEMBER(cps_state,cps2) +{ + m_cps_version = 2; + VIDEO_START_CALL_MEMBER(cps); +} + +/*************************************************************************** + + Build palette from palette RAM + + 12 bit RGB with a 4 bit brightness value. + +***************************************************************************/ + +void cps_state::cps1_build_palette( const UINT16* const palette_base ) +{ + int offset, page; + const UINT16 *palette_ram = palette_base; + int ctrl = m_cps_b_regs[m_game_config->palette_control/2]; + + /* + The palette is copied only for pages that are enabled in the ctrl + register. Note that if the first palette pages are skipped, all + the following pages are scaled down. + */ + for (page = 0; page < 6; ++page) + { + if (BIT(ctrl, page)) + { + for (offset = 0; offset < 0x200; ++offset) + { + int palette = *(palette_ram++); + int r, g, b, bright; + + // from my understanding of the schematics, when the 'brightness' + // component is set to 0 it should reduce brightness to 1/3 + + bright = 0x0f + ((palette >> 12) << 1); + + r = ((palette >> 8) & 0x0f) * 0x11 * bright / 0x2d; + g = ((palette >> 4) & 0x0f) * 0x11 * bright / 0x2d; + b = ((palette >> 0) & 0x0f) * 0x11 * bright / 0x2d; + + m_palette->set_pen_color (0x200 * page + offset, rgb_t(r, g, b)); + } + } + else + { + // skip page in gfxram, but only if we have already copied at least one page + if (palette_ram != palette_base) + palette_ram += 0x200; + } + } +} + + + +/*************************************************************************** + + Sprites + ======= + + Sprites are represented by a number of 8 byte values + + xx xx yy yy nn nn aa aa + + where xxxx = x position + yyyy = y position + nnnn = tile number + aaaa = attribute word + 0x0001 colour + 0x0002 colour + 0x0004 colour + 0x0008 colour + 0x0010 colour + 0x0020 X Flip + 0x0040 Y Flip + 0x0080 X & Y offset toggle (used in Marvel vs. Capcom.) + 0x0100 X block size (in sprites) + 0x0200 X block size + 0x0400 X block size + 0x0800 X block size + 0x1000 Y block size (in sprites) + 0x2000 Y block size + 0x4000 Y block size + 0x8000 Y block size + + The end of the table (may) be marked by an attribute value of 0xff00. + +***************************************************************************/ + +void cps_state::cps1_find_last_sprite() /* Find the offset of last sprite */ +{ + int offset = 0; + /* Locate the end of table marker */ + while (offset < m_obj_size / 2) + { + if (m_game_config->bootleg_kludge == 3) { + /* captcommb - same end of sprite marker as CPS-2 */ + int colour = m_buffered_obj[offset + 1]; + if (colour >= 0x8000) + { + /* Marker found. This is the last sprite. */ + m_last_sprite_offset = offset - 4; + return; + } + } + else + { + int colour = m_buffered_obj[offset + 3]; + if ((colour & 0xff00) == 0xff00) + { + /* Marker found. This is the last sprite. */ + m_last_sprite_offset = offset - 4; + return; + } + } + + offset += 4; + } + /* Sprites must use full sprite RAM */ + m_last_sprite_offset = m_obj_size / 2 - 4; +} + + +void cps_state::cps1_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) +{ +#define DRAWSPRITE(CODE,COLOR,FLIPX,FLIPY,SX,SY) \ +{ \ + if (flip_screen()) \ + m_gfxdecode->gfx(2)->prio_transpen(bitmap,\ + cliprect, \ + CODE, \ + COLOR, \ + !(FLIPX),!(FLIPY), \ + 512-16-(SX),256-16-(SY), screen.priority(),0x02,15); \ + else \ + m_gfxdecode->gfx(2)->prio_transpen(bitmap,\ + cliprect, \ + CODE, \ + COLOR, \ + FLIPX,FLIPY, \ + SX,SY, screen.priority(),0x02,15); \ +} + + + int i, baseadd; + UINT16 *base = m_buffered_obj.get(); + + /* some sf2 hacks draw the sprites in reverse order */ + if BIT(m_game_config->bootleg_kludge, 6) // HBMAME + { + base += m_last_sprite_offset; + baseadd = -4; + } + else + { + baseadd = 4; + } + + for (i = m_last_sprite_offset; i >= 0; i -= 4) + { + int x = *(base + 0); + int y = *(base + 1); + int code = *(base + 2); + int colour = *(base + 3); + int col = colour & 0x1f; + +// x -= 0x20; +// y += 0x20; + + code = gfxrom_bank_mapper(GFXTYPE_SPRITES, code); + + if (code != -1) + { + if (colour & 0xff00 ) + { + /* handle blocked sprites */ + int nx = (colour & 0x0f00) >> 8; + int ny = (colour & 0xf000) >> 12; + int nxs, nys, sx, sy; + nx++; + ny++; + + if (colour & 0x40) + { + /* Y flip */ + if (colour & 0x20) + { + for (nys = 0; nys < ny; nys++) + { + for (nxs = 0; nxs < nx; nxs++) + { + sx = (x + nxs * 16) & 0x1ff; + sy = (y + nys * 16) & 0x1ff; + + DRAWSPRITE( +// code + (nx - 1) - nxs + 0x10 * (ny - 1 - nys), + (code & ~0xf) + ((code + (nx - 1) - nxs) & 0xf) + 0x10 * (ny - 1 - nys), + (col & 0x1f), + 1,1, + sx,sy); + } + } + } + else + { + for (nys = 0; nys < ny; nys++) + { + for (nxs = 0; nxs < nx; nxs++) + { + sx = (x + nxs * 16) & 0x1ff; + sy = (y + nys * 16) & 0x1ff; + + DRAWSPRITE( +// code + nxs + 0x10 * (ny - 1 - nys), + (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * (ny - 1 - nys), + (col & 0x1f), + 0,1, + sx,sy); + } + } + } + } + else + { + if (colour & 0x20) + { + for (nys = 0; nys < ny; nys++) + { + for (nxs = 0; nxs<nx; nxs++) + { + sx = (x + nxs * 16) & 0x1ff; + sy = (y + nys * 16) & 0x1ff; + + DRAWSPRITE( +// code + (nx - 1) - nxs + 0x10 * nys, + (code & ~0xf) + ((code + (nx - 1) - nxs) & 0xf) + 0x10 * nys, + (col & 0x1f), + 1,0, + sx,sy); + } + } + } + else + { + for (nys = 0; nys < ny; nys++) + { + for (nxs = 0; nxs < nx; nxs++) + { + sx = (x + nxs * 16) & 0x1ff; + sy = (y + nys * 16) & 0x1ff; + + DRAWSPRITE( +// code + nxs + 0x10 * nys, + (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * nys, // fix 00406: qadjr: When playing as the ninja, there is one broken frame in his animation loop when walking. + (col & 0x1f), + 0,0, + sx,sy); + } + } + } + } + } + else + { + /* Simple case... 1 sprite */ + DRAWSPRITE( + code, + (col & 0x1f), + colour&0x20,colour&0x40, + x & 0x1ff,y & 0x1ff); + } + } + base += baseadd; + } +#undef DRAWSPRITE +} + + + + +WRITE16_MEMBER(cps_state::cps2_objram_bank_w) +{ + if (ACCESSING_BITS_0_7) + m_objram_bank = data & 1; +} + +READ16_MEMBER(cps_state::cps2_objram1_r) +{ + if (m_objram_bank & 1) + return m_objram2[offset]; + else + return m_objram1[offset]; +} + +READ16_MEMBER(cps_state::cps2_objram2_r) +{ + if (m_objram_bank & 1) + return m_objram1[offset]; + else + return m_objram2[offset]; +} + +WRITE16_MEMBER(cps_state::cps2_objram1_w) +{ + if (m_objram_bank & 1) + COMBINE_DATA(&m_objram2[offset]); + else + COMBINE_DATA(&m_objram1[offset]); +} + +WRITE16_MEMBER(cps_state::cps2_objram2_w) +{ + if (m_objram_bank & 1) + COMBINE_DATA(&m_objram1[offset]); + else + COMBINE_DATA(&m_objram2[offset]); +} + +UINT16 *cps_state::cps2_objbase() +{ + int baseptr; + baseptr = 0x7000; + + if (m_objram_bank & 1) + baseptr ^= 0x0080; + +//popmessage("%04x %d", cps2_port(machine, CPS2_OBJ_BASE), m_objram_bank & 1); + + if (baseptr == 0x7000) + return m_objram1; + else //if (baseptr == 0x7080) + return m_objram2; +} + + +void cps_state::cps2_find_last_sprite() /* Find the offset of last sprite */ +{ + int offset = 0; + UINT16 *base = m_cps2_buffered_obj.get(); + + /* Locate the end of table marker */ + while (offset < m_cps2_obj_size / 2) + { + if (base[offset + 1] >= 0x8000 || base[offset + 3] >= 0xff00) + { + /* Marker found. This is the last sprite. */ + m_cps2_last_sprite_offset = offset - 4; + return; + } + + offset += 4; + } + /* Sprites must use full sprite RAM */ + m_cps2_last_sprite_offset = m_cps2_obj_size / 2 - 4; +} + +void cps_state::cps2_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks ) +{ +#define DRAWSPRITE(CODE,COLOR,FLIPX,FLIPY,SX,SY) \ +{ \ + if (flip_screen()) \ + m_gfxdecode->gfx(2)->prio_transpen(bitmap,\ + cliprect, \ + CODE, \ + COLOR, \ + !(FLIPX),!(FLIPY), \ + 512-16-(SX),256-16-(SY), screen.priority(),primasks[priority],15); \ + else \ + m_gfxdecode->gfx(2)->prio_transpen(bitmap,\ + cliprect, \ + CODE, \ + COLOR, \ + FLIPX,FLIPY, \ + SX,SY, screen.priority(),primasks[priority],15); \ +} + + int i; + UINT16 *base = m_cps2_buffered_obj.get(); + int xoffs = 64 - m_output[CPS2_OBJ_XOFFS /2]; + int yoffs = 16 - m_output[CPS2_OBJ_YOFFS /2]; + +#ifdef MAME_DEBUG + if (machine().input().code_pressed(KEYCODE_Z) && machine().input().code_pressed(KEYCODE_R)) + { + return; + } +#endif + + for (i = m_cps2_last_sprite_offset; i >= 0; i -= 4) + { + int x = base[i + 0]; + int y = base[i + 1]; + int priority = (x >> 13) & 0x07; + int code = base[i + 2] + ((y & 0x6000) << 3); + int colour = base[i + 3]; + int col = colour & 0x1f; + + if (colour & 0x80) + { + x += m_output[CPS2_OBJ_XOFFS /2]; /* fix the offset of some games */ + y += m_output[CPS2_OBJ_YOFFS /2]; /* like Marvel vs. Capcom ending credits */ + } + + if (colour & 0xff00) + { + /* handle blocked sprites */ + int nx = (colour & 0x0f00) >> 8; + int ny = (colour & 0xf000) >> 12; + int nxs, nys, sx, sy; + nx++; + ny++; + + if (colour & 0x40) + { + /* Y flip */ + if (colour & 0x20) + { + for (nys = 0; nys < ny; nys++) + { + for (nxs = 0; nxs < nx; nxs++) + { + sx = (x + nxs * 16 + xoffs) & 0x3ff; + sy = (y + nys * 16 + yoffs) & 0x3ff; + DRAWSPRITE( + code + (nx - 1) - nxs + 0x10 * (ny - 1 - nys), + (col & 0x1f), + 1,1, + sx,sy); + } + } + } + else + { + for (nys = 0; nys < ny; nys++) + { + for (nxs = 0; nxs < nx; nxs++) + { + sx = (x + nxs * 16 + xoffs) & 0x3ff; + sy = (y + nys * 16 + yoffs) & 0x3ff; + + DRAWSPRITE( + code + nxs + 0x10 * (ny - 1 - nys), + (col & 0x1f), + 0,1, + sx,sy); + } + } + } + } + else + { + if (colour & 0x20) + { + for (nys = 0; nys < ny; nys++) + { + for (nxs = 0; nxs < nx; nxs++) + { + sx = (x + nxs * 16 + xoffs) & 0x3ff; + sy = (y + nys * 16 + yoffs) & 0x3ff; + + DRAWSPRITE( + code + (nx - 1) - nxs + 0x10 * nys, + (col & 0x1f), + 1,0, + sx,sy); + } + } + } + else + { + for (nys = 0; nys < ny; nys++) + { + for (nxs = 0; nxs < nx; nxs++) + { + sx = (x + nxs * 16 + xoffs) & 0x3ff; + sy = (y + nys * 16 + yoffs) & 0x3ff; + + DRAWSPRITE( +// code + nxs + 0x10 * nys, + (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * nys, // pgear fix + (col & 0x1f), + 0,0, + sx,sy); + } + } + } + } + } + else + { + /* Simple case... 1 sprite */ + DRAWSPRITE( + code, + (col & 0x1f), + colour&0x20,colour&0x40, + (x+xoffs) & 0x3ff,(y+yoffs) & 0x3ff); + } + } +} + + + + +void cps_state::cps1_render_stars( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) +{ + int offs; + UINT8 *stars_rom = m_region_stars->base(); + + if (!stars_rom && (m_stars_enabled[0] || m_stars_enabled[1])) + { +#ifdef MAME_DEBUG +// popmessage("stars enabled but no stars ROM"); +#endif + return; + } + + if (m_stars_enabled[0]) + { + for (offs = 0; offs < m_stars_rom_size / 2; offs++) + { + int col = stars_rom[8 * offs + 4]; + if (col != 0x0f) + { + int sx = (offs / 256) * 32; + int sy = (offs % 256); + sx = (sx - m_stars2x + (col & 0x1f)) & 0x1ff; + sy = (sy - m_stars2y) & 0xff; + if (flip_screen()) + { + sx = 512 - sx; + sy = 256 - sy; + } + + col = ((col & 0xe0) >> 1) + (screen.frame_number() / 16 & 0x0f); + + if (cliprect.contains(sx, sy)) + bitmap.pix16(sy, sx) = 0xa00 + col; + } + } + } + + if (m_stars_enabled[1]) + { + for (offs = 0; offs < m_stars_rom_size / 2; offs++) + { + int col = stars_rom[8*offs]; + if (col != 0x0f) + { + int sx = (offs / 256) * 32; + int sy = (offs % 256); + sx = (sx - m_stars1x + (col & 0x1f)) & 0x1ff; + sy = (sy - m_stars1y) & 0xff; + if (flip_screen()) + { + sx = 512 - sx; + sy = 256 - sy; + } + + col = ((col & 0xe0) >> 1) + (screen.frame_number() / 16 & 0x0f); + + if (cliprect.contains(sx, sy)) + bitmap.pix16(sy, sx) = 0x800 + col; + } + } + } +} + + +void cps_state::cps1_render_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask ) +{ + switch (layer) + { + case 0: + cps1_render_sprites(screen, bitmap, cliprect); + break; + case 1: + case 2: + case 3: + m_bg_tilemap[layer - 1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask); + break; + } +} + +void cps_state::cps1_render_high_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer ) +{ + bitmap_ind16 dummy_bitmap; + switch (layer) + { + case 0: + /* there are no high priority sprites */ + break; + case 1: + case 2: + case 3: + m_bg_tilemap[layer - 1]->draw(screen, dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + break; + } +} + + +/*************************************************************************** + + Refresh screen + +***************************************************************************/ + +UINT32 cps_state::screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + int layercontrol, l0, l1, l2, l3; + int videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL]; + + flip_screen_set(videocontrol & 0x8000); + + layercontrol = m_cps_b_regs[m_game_config->layer_control / 2]; + + /* Get video memory base registers */ + cps1_get_video_base(); + + /* Find the offset of the last sprite in the sprite table */ + cps1_find_last_sprite(); + + if (m_cps_version == 2) + cps2_find_last_sprite(); + + cps1_update_transmasks(); + + m_bg_tilemap[0]->set_scrollx(0, m_scroll1x); + m_bg_tilemap[0]->set_scrolly(0, m_scroll1y); + + if (videocontrol & 0x01) /* linescroll enable */ + { + int scrly = -m_scroll2y; + + m_bg_tilemap[1]->set_scroll_rows(1024); + + int otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS]; + + for (int i = 0; i < 256; i++) + m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]); + } + else + { + m_bg_tilemap[1]->set_scroll_rows(1); + m_bg_tilemap[1]->set_scrollx(0, m_scroll2x); + } + m_bg_tilemap[1]->set_scrolly(0, m_scroll2y); + m_bg_tilemap[2]->set_scrollx(0, m_scroll3x); + m_bg_tilemap[2]->set_scrolly(0, m_scroll3y); + + + /* Blank screen */ + if (m_cps_version == 1) + { + // CPS1 games use pen 0xbff as background color; this is used in 3wonders, + // mtwins (explosion during attract), mercs (intermission). + bitmap.fill(0xbff, cliprect); + } + else + { + // CPS2 apparently always force the background to black. Several games would + // should a blue screen during boot if we used the same code as CPS1. + // Maybe Capcom changed the background handling due to the problems that + // it caused on several monitors (because the background extended into the + // blanking area instead of going black, causing the monitor to clip). + bitmap.fill(m_palette->black_pen(), cliprect); + } + + if (m_region_stars) + { + cps1_render_stars(screen, bitmap, cliprect); + } + + /* Draw layers (0 = sprites, 1-3 = tilemaps) */ + l0 = (layercontrol >> 0x06) & 03; + l1 = (layercontrol >> 0x08) & 03; + l2 = (layercontrol >> 0x0a) & 03; + l3 = (layercontrol >> 0x0c) & 03; + screen.priority().fill(0, cliprect); + + if (m_cps_version == 1) + { + if BIT(m_game_config->bootleg_kludge, 7) + cps1_build_palette(cps1_base(CPS1_PALETTE_BASE, m_palette_align)); + + cps1_render_layer(screen, bitmap, cliprect, l0, 0); + + if (l1 == 0) + cps1_render_high_layer(screen, bitmap, cliprect, l0); /* prepare mask for sprites */ + + cps1_render_layer(screen, bitmap, cliprect, l1, 0); + + if (l2 == 0) + cps1_render_high_layer(screen, bitmap, cliprect, l1); /* prepare mask for sprites */ + + cps1_render_layer(screen, bitmap, cliprect, l2, 0); + + if (l3 == 0) + cps1_render_high_layer(screen, bitmap, cliprect, l2); /* prepare mask for sprites */ + + cps1_render_layer(screen, bitmap, cliprect, l3, 0); + } + else + { + int l0pri, l1pri, l2pri, l3pri; + int primasks[8], i; + l0pri = (m_pri_ctrl >> 4 * l0) & 0x0f; + l1pri = (m_pri_ctrl >> 4 * l1) & 0x0f; + l2pri = (m_pri_ctrl >> 4 * l2) & 0x0f; + l3pri = (m_pri_ctrl >> 4 * l3) & 0x0f; + +#if 0 +if ( (m_output[CPS2_OBJ_BASE /2] != 0x7080 && m_output[CPS2_OBJ_BASE /2] != 0x7000) || + m_output[CPS2_OBJ_UK1 /2] != 0x807d || + (m_output[CPS2_OBJ_UK2 /2] != 0x0000 && m_output[CPS2_OBJ_UK2 /2] != 0x1101 && m_output[CPS2_OBJ_UK2 /2] != 0x0001)) + popmessage("base %04x uk1 %04x uk2 %04x", + m_output[CPS2_OBJ_BASE /2], + m_output[CPS2_OBJ_UK1 /2], + m_output[CPS2_OBJ_UK2 /2]); + +if (0 && machine().input().code_pressed(KEYCODE_Z)) + popmessage("order: %d (%d) %d (%d) %d (%d) %d (%d)",l0,l0pri,l1,l1pri,l2,l2pri,l3,l3pri); +#endif + + /* take out the CPS1 sprites layer */ + if (l0 == 0) { l0 = l1; l1 = 0; l0pri = l1pri; } + if (l1 == 0) { l1 = l2; l2 = 0; l1pri = l2pri; } + if (l2 == 0) { l2 = l3; l3 = 0; l2pri = l3pri; } + + { + int mask0 = 0xaa; + int mask1 = 0xcc; + if (l0pri > l1pri) mask0 &= ~0x88; + if (l0pri > l2pri) mask0 &= ~0xa0; + if (l1pri > l2pri) mask1 &= ~0xc0; + + primasks[0] = 0xff; + for (i = 1; i < 8; i++) + { + if (i <= l0pri && i <= l1pri && i <= l2pri) + { + primasks[i] = 0xfe; + continue; + } + primasks[i] = 0; + if (i <= l0pri) primasks[i] |= mask0; + if (i <= l1pri) primasks[i] |= mask1; + if (i <= l2pri) primasks[i] |= 0xf0; + } + } + + cps1_render_layer(screen, bitmap, cliprect, l0, 1); + cps1_render_layer(screen, bitmap, cliprect, l1, 2); + cps1_render_layer(screen, bitmap, cliprect, l2, 4); + cps2_render_sprites(screen, bitmap, cliprect, primasks); + } + + return 0; +} + +void cps_state::screen_eof_cps1(screen_device &screen, bool state) +{ + // rising edge + if (state) + { + /* Get video memory base registers */ + cps1_get_video_base(); + + if (m_cps_version == 1) + { + /* CPS1 sprites have to be delayed one frame */ + memcpy(m_buffered_obj.get(), m_obj, m_obj_size); + } + } +} + +void cps_state::cps2_set_sprite_priorities() +{ + m_pri_ctrl = m_output[CPS2_OBJ_PRI /2]; +} + +void cps_state::cps2_objram_latch() +{ + cps2_set_sprite_priorities(); + memcpy(m_cps2_buffered_obj.get(), cps2_objbase(), m_cps2_obj_size); +} diff --git a/docs/release/src/hbmame/video/galaxian.cpp b/docs/release/src/hbmame/video/galaxian.cpp new file mode 100644 index 00000000000..205d44685ac --- /dev/null +++ b/docs/release/src/hbmame/video/galaxian.cpp @@ -0,0 +1,87 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/video/galaxian.cpp" + + +/*************************************************************************** + + HBMAME Video support for extra games + +***************************************************************************/ + + + + + +/************************************* + * + * Four Play extensions + * + *************************************/ + +/* gfxbank[4] is used as a cpu bank number, and gfxbank[0] for graphics banking */ +WRITE8_MEMBER( galaxian_state::fourplay_rombank_w ) +{ + m_gfxbank[4] = (m_gfxbank[4] & (2 - offset)) | (data << offset); + + m_gfxbank[0] = (m_gfxbank[4] == 3); // 1 = true, 0 = false + + membank("bank1")->set_entry( m_gfxbank[4] ); +} + + + +/************************************* + * + * Video Eight extensions + * + *************************************/ + +void galaxian_state::videight_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x) +{ + *code |= (m_gfxbank[0] << 8); + *color |= (m_gfxbank[4] << 3); +} + +void galaxian_state::videight_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color) +{ + *code |= (m_gfxbank[0] << 6); + *color |= (m_gfxbank[4] << 3); +} + + +/* This handles the main bankswitching for code and one-bank gfx games */ +WRITE8_MEMBER( galaxian_state::videight_rombank_w ) +{ + UINT8 gfxbanks[] = { 0, 10, 2, 8, 1, 9, 4, 11 }; + if (offset == 2) + galaxian_stars_enable_w( space, 0, data ); + else + { + m_gfxbank[4] = (m_gfxbank[4] & (6 - offset)) | (data << ((offset + 1) >> 1)); + galaxian_gfxbank_w (space, 0, gfxbanks[m_gfxbank[4]]); + membank("bank1")->set_entry( m_gfxbank[4] ); + } +} + +/* This handles those games with multiple gfx banks */ +WRITE8_MEMBER( galaxian_state::videight_gfxbank_w ) +{ + /* Moon Cresta (mooncrgx) */ + if (( data < 2 ) && (m_gfxbank[4] == 3)) + { + UINT8 gfxbanks[] = { 8, 12, 8, 14, 8, 13, 8, 15 }; + if (!offset) m_gfxbank[3] = (m_gfxbank[3] & 6) | data; + if (offset == 1) m_gfxbank[3] = (m_gfxbank[3] & 5) | (data << 1); + if (offset == 2) m_gfxbank[3] = (m_gfxbank[3] & 3) | (data << 2); + galaxian_gfxbank_w(space, 0, gfxbanks[m_gfxbank[3]]); + } + + /* Uniwar S */ + if (( data < 2 ) && (m_gfxbank[4] == 2) && (offset == 2)) + galaxian_gfxbank_w( space, 0, data+2 ); + + /* Pisces (piscesb) */ + if (( data < 2 ) && (m_gfxbank[4] == 6) && (offset == 2)) + galaxian_gfxbank_w( space, 0, data+4 ); +} diff --git a/docs/release/src/hbmame/video/neogeo.cpp b/docs/release/src/hbmame/video/neogeo.cpp new file mode 100644 index 00000000000..1384166a3b3 --- /dev/null +++ b/docs/release/src/hbmame/video/neogeo.cpp @@ -0,0 +1,279 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari +// thanks-to:Fuzz +/*************************************************************************** + + Neo-Geo hardware + +****************************************************************************/ + +#include "emu.h" +#include "includes/neogeo.h" +#include "video/resnet.h" + +#define NUM_PENS (0x1000) + + + + +/************************************* + * + * Palette handling + * + *************************************/ + +void neogeo_state::create_rgb_lookups() +{ + static const int resistances[] = {3900, 2200, 1000, 470, 220}; + + /* compute four sets of weights - with or without the pulldowns - + ensuring that we use the same scaler for all */ + double weights_normal[5]; + double scaler = compute_resistor_weights(0, 255, -1, + 5, resistances, weights_normal, 0, 0, + 0, nullptr, nullptr, 0, 0, + 0, nullptr, nullptr, 0, 0); + + double weights_dark[5]; + compute_resistor_weights(0, 255, scaler, + 5, resistances, weights_dark, 8200, 0, + 0, nullptr, nullptr, 0, 0, + 0, nullptr, nullptr, 0, 0); + + double weights_shadow[5]; + compute_resistor_weights(0, 255, scaler, + 5, resistances, weights_shadow, 150, 0, + 0, nullptr, nullptr, 0, 0, + 0, nullptr, nullptr, 0, 0); + + double weights_dark_shadow[5]; + compute_resistor_weights(0, 255, scaler, + 5, resistances, weights_dark_shadow, 1.0 / ((1.0 / 8200) + (1.0 / 150)), 0, + 0, nullptr, nullptr, 0, 0, + 0, nullptr, nullptr, 0, 0); + + for (int i = 0; i < 32; i++) + { + int i4 = (i >> 4) & 1; + int i3 = (i >> 3) & 1; + int i2 = (i >> 2) & 1; + int i1 = (i >> 1) & 1; + int i0 = (i >> 0) & 1; + m_palette_lookup[i][0] = combine_5_weights(weights_normal, i0, i1, i2, i3, i4); + m_palette_lookup[i][1] = combine_5_weights(weights_dark, i0, i1, i2, i3, i4); + m_palette_lookup[i][2] = combine_5_weights(weights_shadow, i0, i1, i2, i3, i4); + m_palette_lookup[i][3] = combine_5_weights(weights_dark_shadow, i0, i1, i2, i3, i4); + } +} + +void neogeo_state::set_pens() +{ + const pen_t *pen_base = m_palette->pens() + m_palette_bank + (m_screen_shadow ? 0x2000 : 0); + m_sprgen->set_pens(pen_base); + m_bg_pen = pen_base + 0xfff; +} + + +void neogeo_state::neogeo_set_screen_shadow( int data ) +{ + m_screen_shadow = data; + set_pens(); +} + + +void neogeo_state::neogeo_set_palette_bank( int data ) +{ + m_palette_bank = data ? 0x1000 : 0; + set_pens(); +} + + +READ16_MEMBER(neogeo_state::neogeo_paletteram_r) +{ + return m_paletteram[m_palette_bank + offset]; +} + + +WRITE16_MEMBER(neogeo_state::neogeo_paletteram_w) +{ + offset += m_palette_bank; + data = COMBINE_DATA(&m_paletteram[offset]); + + int dark = data >> 15; + int r = ((data >> 14) & 0x1) | ((data >> 7) & 0x1e); + int g = ((data >> 13) & 0x1) | ((data >> 3) & 0x1e); + int b = ((data >> 12) & 0x1) | ((data << 1) & 0x1e); + + m_palette->set_pen_color(offset, + m_palette_lookup[r][dark], + m_palette_lookup[g][dark], + m_palette_lookup[b][dark]); // normal + + m_palette->set_pen_color(offset + 0x2000, + m_palette_lookup[r][dark+2], + m_palette_lookup[g][dark+2], + m_palette_lookup[b][dark+2]); // shadow +} + + + +/************************************* + * + * Video system start + * + *************************************/ + +void neogeo_state::video_start() +{ + create_rgb_lookups(); + + m_paletteram.resize(0x1000 * 2); + memset(&m_paletteram[0], 0, 0x1000 * 2 * sizeof(m_paletteram[0])); + + m_screen_shadow = 0; + m_palette_bank = 0; + + save_item(NAME(m_paletteram)); + save_item(NAME(m_screen_shadow)); + save_item(NAME(m_palette_bank)); + machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::set_pens), this)); + + set_pens(); +} + + + +/************************************* + * + * Video system reset + * + *************************************/ + +void neogeo_state::video_reset() +{ +} + + + +/************************************* + * + * Video update + * + *************************************/ + +UINT32 neogeo_state::screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + // fill with background color first + bitmap.fill(*m_bg_pen, cliprect); + + m_sprgen->draw_sprites(bitmap, cliprect.min_y); + + m_sprgen->draw_fixed_layer(bitmap, cliprect.min_y); + + return 0; +} + + + +/************************************* + * + * Video control + * + *************************************/ + +UINT16 neogeo_state::get_video_control( ) +{ + UINT16 ret; + UINT16 v_counter; + + /* + The format of this very important location is: AAAA AAAA A??? BCCC + + A is the raster line counter. mosyougi relies solely on this to do the + raster effects on the title screen; sdodgeb loops waiting for the top + bit to be 1; zedblade heavily depends on it to work correctly (it + checks the top bit in the IRQ2 handler). + B is definitely a PAL/NTSC flag. (LSPC2 only) Evidence: + 1) trally changes the position of the speed indicator depending on + it (0 = lower 1 = higher). + 2) samsho3 sets a variable to 60 when the bit is 0 and 50 when it's 1. + This is obviously the video refresh rate in Hz. + 3) samsho3 sets another variable to 256 or 307. This could be the total + screen height (including vblank), or close to that. + Some games (e.g. lstbld2, samsho3) do this (or similar): + bclr #$0, $3c000e.l + when the bit is set, so 3c000e (whose function is unknown) has to be + related + C animation counter lower 3 bits + */ + + /* the vertical counter chain goes from 0xf8 - 0x1ff */ + v_counter = m_screen->vpos() + 0x100; + + if (v_counter >= 0x200) + v_counter = v_counter - NEOGEO_VTOTAL; + + ret = (v_counter << 7) | (m_sprgen->neogeo_get_auto_animation_counter() & 0x0007); + + if (VERBOSE) logerror("%s: video_control read (%04x)\n", machine().describe_context(), ret); + + return ret; +} + + +void neogeo_state::set_video_control( UINT16 data ) +{ + if (VERBOSE) logerror("%s: video control write %04x\n", machine().describe_context(), data); + + m_sprgen->set_auto_animation_speed(data >> 8); + m_sprgen->set_auto_animation_disabled(data & 0x0008); + + neogeo_set_display_position_interrupt_control(data & 0x00f0); +} + + +READ16_MEMBER(neogeo_state::neogeo_video_register_r) +{ + UINT16 ret; + + /* accessing the LSB only is not mapped */ + if (mem_mask == 0x00ff) + ret = neogeo_unmapped_r(space, 0, 0xffff) & 0x00ff; + else + { + switch (offset) + { + default: + case 0x00: + case 0x01: ret = m_sprgen->get_videoram_data(); break; + case 0x02: ret = m_sprgen->get_videoram_modulo(); break; + case 0x03: ret = get_video_control(); break; + } + } + + return ret; +} + + +WRITE16_MEMBER(neogeo_state::neogeo_video_register_w) +{ + /* accessing the LSB only is not mapped */ + if (mem_mask != 0x00ff) + { + /* accessing the MSB only stores same data in MSB and LSB */ + if (mem_mask == 0xff00) + data = (data & 0xff00) | (data >> 8); + + switch (offset) + { + case 0x00: m_sprgen->set_videoram_offset(data); break; + case 0x01: m_sprgen->set_videoram_data(data); break; + case 0x02: m_sprgen->set_videoram_modulo(data); break; + case 0x03: set_video_control(data); break; + case 0x04: neogeo_set_display_counter_msb(data); break; + case 0x05: neogeo_set_display_counter_lsb(data); break; + case 0x06: neogeo_acknowledge_interrupt(data); break; + case 0x07: break; // d0: pause timer for 32 lines when in PAL mode (LSPC2 only) + } + } +} diff --git a/docs/release/src/hbmame/video/neogeo_spr.cpp b/docs/release/src/hbmame/video/neogeo_spr.cpp new file mode 100644 index 00000000000..7de4d12ac06 --- /dev/null +++ b/docs/release/src/hbmame/video/neogeo_spr.cpp @@ -0,0 +1,811 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari +// thanks-to:Fuzz +/* NeoGeo sprites (and fixed text layer) */ + +#include "emu.h" +#include "neogeo_spr.h" +#include "bus/neogeo/neogeo_helper.h" + +// pure virtual functions +//const device_type NEOGEO_SPRITE_BASE = &device_creator<neosprite_base_device>; + +/* +neosprite_base_device::neosprite_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, NEOGEO_SPRITE_BASE, "NeoGeo Sprites", tag, owner, clock, "neospritebase", __FILE__), + m_bppshift(4) +{ + +} +*/ + +neosprite_base_device::neosprite_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock, device_type type) + : device_t(mconfig, type, "Neogeo Sprites", tag, owner, clock, "neosprite", __FILE__), + m_bppshift(4) +{ +} + +void neosprite_base_device::device_start() +{ + m_videoram = std::make_unique<UINT16[]>(0x8000 + 0x800); + m_videoram_drawsource = m_videoram.get(); + + /* clear allocated memory */ + memset(m_videoram.get(), 0x00, (0x8000 + 0x800) * sizeof(UINT16)); + + create_sprite_line_timer(); + create_auto_animation_timer(); + + + + /* initialize values that are not modified on a reset */ + m_vram_offset = 0; + m_vram_read_buffer = 0; + m_vram_modulo = 0; + m_auto_animation_speed = 0; + m_auto_animation_disabled = 0; + m_auto_animation_counter = 0; + m_auto_animation_frame_counter = 0; + + /* register for state saving */ + save_pointer(NAME(m_videoram.get()), 0x8000 + 0x800); + save_item(NAME(m_vram_offset)); + save_item(NAME(m_vram_read_buffer)); + save_item(NAME(m_vram_modulo)); + save_item(NAME(m_fixed_layer_source)); + + save_item(NAME(m_auto_animation_speed)); + save_item(NAME(m_auto_animation_disabled)); + save_item(NAME(m_auto_animation_counter)); + save_item(NAME(m_auto_animation_frame_counter)); + + + m_region_zoomy = memregion(":zoomy")->base(); +} + +void neosprite_base_device::device_reset() +{ + //m_sprite_gfx_address_mask = 0; + optimize_sprite_data(); + + start_sprite_line_timer(); + start_auto_animation_timer(); +} + + + +/************************************* + * + * Video RAM access + * + *************************************/ + +void neosprite_base_device::set_videoram_offset( UINT16 data ) +{ + m_vram_offset = (data & 0x8000 ? data & 0x87ff : data); + + /* the read happens right away */ + m_vram_read_buffer = m_videoram[m_vram_offset]; +} + + +UINT16 neosprite_base_device::get_videoram_data( ) +{ + return m_vram_read_buffer; +} + + +void neosprite_base_device::set_videoram_data( UINT16 data) +{ + m_videoram[m_vram_offset] = data; + + /* auto increment/decrement the current offset - A15 is NOT affected */ + set_videoram_offset((m_vram_offset & 0x8000) | ((m_vram_offset + m_vram_modulo) & 0x7fff)); +} + + +void neosprite_base_device::set_videoram_modulo( UINT16 data) +{ + m_vram_modulo = data; +} + + +UINT16 neosprite_base_device::get_videoram_modulo( ) +{ + return m_vram_modulo; +} + + + +/************************************* + * + * Auto animation + * + *************************************/ + +void neosprite_base_device::set_auto_animation_speed( UINT8 data) +{ + m_auto_animation_speed = data; +} + + +void neosprite_base_device::set_auto_animation_disabled( UINT8 data) +{ + m_auto_animation_disabled = data; +} + + +UINT8 neosprite_base_device::neogeo_get_auto_animation_counter( ) +{ + return m_auto_animation_counter; +} + + +TIMER_CALLBACK_MEMBER(neosprite_base_device::auto_animation_timer_callback) +{ + if (m_auto_animation_frame_counter == 0) + { + m_auto_animation_frame_counter = m_auto_animation_speed; + m_auto_animation_counter += 1; + } + else + m_auto_animation_frame_counter = m_auto_animation_frame_counter - 1; + + m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); +} + + +void neosprite_base_device::create_auto_animation_timer( ) +{ + m_auto_animation_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neosprite_base_device::auto_animation_timer_callback),this)); +} + + +void neosprite_base_device::start_auto_animation_timer( ) +{ + m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); +} + + + +/************************************* + * + * Fixed layer + * + *************************************/ + +void neosprite_base_device::neogeo_set_fixed_layer_source( UINT8 data ) +{ + m_fixed_layer_source = data; +} + + +void neosprite_base_device::draw_fixed_layer( bitmap_rgb32 &bitmap, int scanline ) +{ + int x; + + UINT8* gfx_base = m_fixed_layer_source ? m_region_fixed : m_region_fixedbios->base(); + UINT32 addr_mask = ( m_fixed_layer_source ? m_region_fixed_size : m_region_fixedbios->bytes() ) - 1; + UINT16 *video_data = &m_videoram_drawsource[0x7000 | (scanline >> 3)]; + UINT32 *pixel_addr = &bitmap.pix32(scanline, NEOGEO_HBEND); + + int garouoffsets[32]; + int banked = m_fixed_layer_source && (addr_mask > 0x1ffff); + + /* thanks to Mr K for the garou & kof2000 banking info */ + /* Build line banking table for Garou & MS3 before starting render */ + if (banked && m_fixed_layer_bank_type == 1) + { + int garoubank = 0; + int k = 0; + int y = 0; + while (y < 32) + { + if (m_videoram_drawsource[0x7500 + k] == 0x0200 && (m_videoram_drawsource[0x7580 + k] & 0xff00) == 0xff00) + { + garoubank = m_videoram_drawsource[0x7580 + k] & 3; + garouoffsets[y++] = garoubank; + } + garouoffsets[y++] = garoubank; + k += 2; + } + } + + for (x = 0; x < 40; x++) + { + UINT16 code_and_palette = *video_data; + UINT16 code = code_and_palette & 0x0fff; + + if (banked) + { + int y = scanline >> 3; + switch (m_fixed_layer_bank_type) + { + case 1: + /* Garou, MSlug 3 */ + code += 0x1000 * (garouoffsets[(y - 2) & 31] ^ 3); + break; + case 2: + code += 0x1000 * (((m_videoram_drawsource[0x7500 + ((y - 1) & 31) + 32 * (x / 6)] >> (5 - (x % 6)) * 2) & 3) ^ 3); + break; + } + } + + { + int i; + int gfx_offset = ((code << 5) | (scanline & 0x07)) & addr_mask; + + const pen_t *char_pens; + + char_pens = &m_pens[code_and_palette >> 12 << m_bppshift]; + + + static const UINT32 pix_offsets[] = { 0x10, 0x18, 0x00, 0x08 }; + + for (i = 0; i < 4; i++) + { + draw_fixed_layer_2pixels(pixel_addr, gfx_offset + pix_offsets[i], gfx_base, char_pens); + } + } + + video_data = video_data + 0x20; + } +} + + +inline void neosprite_base_device::draw_fixed_layer_2pixels(UINT32*&pixel_addr, int offset, UINT8* gfx_base, const pen_t* char_pens) +{ + UINT8 data = gfx_base[offset]; + + if (data & 0x0f) + *pixel_addr = char_pens[data & 0x0f]; + pixel_addr++; + + if (data & 0xf0) + *pixel_addr = char_pens[(data & 0xf0) >> 4]; + pixel_addr++; + +} + +/************************************* + * + * Sprite hardware + * + *************************************/ + +#define MAX_SPRITES_PER_SCREEN (381) +// HBMAME +//#define MAX_SPRITES_PER_LINE (96) +// beast requires 236 sprites, also fixes neopong and lhcdb +#define MAX_SPRITES_PER_LINE (236) + + +/* horizontal zoom table - verified on real hardware */ +static const int zoom_x_tables[][16] = +{ + { 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 }, + { 0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0 }, + { 0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0 }, + { 0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0 }, + { 0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0 }, + { 0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0 }, + { 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 }, + { 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 }, + { 1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0 }, + { 1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0 }, + { 1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1 }, + { 1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1 }, + { 1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1 }, + { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1 }, + { 1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1 }, + { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 } +}; + + + +inline bool neosprite_base_device::sprite_on_scanline(int scanline, int y, int rows) +{ + return (rows == 0) || (rows >= 0x20) || ((scanline - y) & 0x1ff) < (rows * 0x10); +} + + + + +void neosprite_base_device::draw_sprites( bitmap_rgb32 &bitmap, int scanline ) +{ + int sprite_index; + int max_sprite_index; + + int y = 0; + int x = 0; + int rows = 0; + int zoom_y = 0; + int zoom_x = 0; + UINT16 *sprite_list; + + /* select the active list */ + if (scanline & 0x01) + sprite_list = &m_videoram_drawsource[0x8680]; + else + sprite_list = &m_videoram_drawsource[0x8600]; + + /* optimization -- find last non-zero entry and only draw that many +1 + sprite. This is not 100% correct as the hardware will keep drawing + the #0 sprite over and over, but we need the speed */ + for (max_sprite_index = (MAX_SPRITES_PER_LINE - 1); max_sprite_index >= 0; max_sprite_index--) + { + if (sprite_list[max_sprite_index] != 0) + break; + } + + /* add the +1 now, just in case the 0 at the end is real sprite */ + if (max_sprite_index != (MAX_SPRITES_PER_LINE - 1)) + max_sprite_index = max_sprite_index + 1; + + for (sprite_index = 0; sprite_index <= max_sprite_index; sprite_index++) + { + UINT16 sprite_number = sprite_list[sprite_index] & 0x01ff; + UINT16 y_control = m_videoram_drawsource[0x8200 | sprite_number]; + UINT16 zoom_control = m_videoram_drawsource[0x8000 | sprite_number]; + + /* if chained, go to next X coordinate and get new X zoom */ + if (y_control & 0x40) + { + x = (x + zoom_x + 1) & 0x01ff; + zoom_x = (zoom_control >> 8) & 0x0f; + } + /* new block */ + else + { + y = 0x200 - (y_control >> 7); + x = m_videoram_drawsource[0x8400 | sprite_number] >> 7; + + zoom_y = (zoom_control & 0xff); + + zoom_x = (zoom_control >> 8) & 0x0f; + rows = y_control & 0x3f; + } + + /* skip if falls completely outside the screen */ + if ((x >= 0x140) && (x <= 0x1f0)) + continue; + + /* double check the Y coordinate, in case somebody modified the sprite coordinate + since we buffered it */ + if (sprite_on_scanline(scanline, y, rows)) + { + int sprite_y; + int tile; + UINT8 sprite_y_and_tile; + offs_t attr_and_code_offs; + UINT16 attr; + UINT32 code; + const int *zoom_x_table; + const pen_t *line_pens; + int x_inc; + + int sprite_line = (scanline - y) & 0x1ff; + int zoom_line = sprite_line & 0xff; + int invert = sprite_line & 0x100; + + if (invert) + zoom_line ^= 0xff; + + if (rows > 0x20) + { + zoom_line = zoom_line % ((zoom_y + 1) << 1); + + if (zoom_line > zoom_y) + { + zoom_line = ((zoom_y + 1) << 1) - 1 - zoom_line; + invert = !invert; + } + } + + sprite_y_and_tile = m_region_zoomy[(zoom_y << 8) | zoom_line]; + + sprite_y = sprite_y_and_tile & 0x0f; + tile = sprite_y_and_tile >> 4; + + if (invert) + { + sprite_y ^= 0x0f; + tile ^= 0x1f; + } + + attr_and_code_offs = (sprite_number << 6) | (tile << 1); + attr = m_videoram_drawsource[attr_and_code_offs + 1]; + code = ((attr << 12) & 0x70000) | m_videoram_drawsource[attr_and_code_offs]; + + /* substitute auto animation bits */ + if (!m_auto_animation_disabled) + { + if (attr & 0x0008) + code = (code & ~0x07) | (m_auto_animation_counter & 0x07); + else if (attr & 0x0004) + code = (code & ~0x03) | (m_auto_animation_counter & 0x03); + } + + /* vertical flip? */ + if (attr & 0x0002) + sprite_y ^= 0x0f; + + zoom_x_table = zoom_x_tables[zoom_x]; + + /* compute offset in gfx ROM and mask it to the number of bits available */ + int gfx_base = ((code << 8) | (sprite_y << 4)) & m_sprite_gfx_address_mask; + + + line_pens = &m_pens[attr >> 8 << m_bppshift]; + + + /* horizontal flip? */ + if (attr & 0x0001) + { + gfx_base = gfx_base + 0x0f; + x_inc = -1; + } + else + x_inc = 1; + + /* draw the line - no wrap-around */ + if (x <= 0x01f0) + { + int i; + + UINT32 *pixel_addr = &bitmap.pix32(scanline, x + NEOGEO_HBEND); + + for (i = 0; i < 0x10; i++) + { + if (*zoom_x_table) + { + draw_pixel(gfx_base, pixel_addr, line_pens); + + pixel_addr++; + } + + zoom_x_table++; + gfx_base += x_inc; + } + } + /* wrap-around */ + else + { + int i; + + int x_save = x; + UINT32 *pixel_addr = &bitmap.pix32(scanline, NEOGEO_HBEND); + + for (i = 0; i < 0x10; i++) + { + if (*zoom_x_table) + { + if (x >= 0x200) + { + draw_pixel(gfx_base, pixel_addr, line_pens); + + pixel_addr++; + } + + x++; + } + + zoom_x_table++; + gfx_base += x_inc; + } + + x = x_save; + } + } + } +} + + +void neosprite_base_device::parse_sprites( int scanline ) +{ + UINT16 sprite_number; + int y = 0; + int rows = 0; + UINT16 *sprite_list; + + int active_sprite_count = 0; + + /* select the active list */ + if (scanline & 0x01) + sprite_list = &m_videoram_drawsource[0x8680]; + else + sprite_list = &m_videoram_drawsource[0x8600]; + + /* scan all sprites */ + for (sprite_number = 0; sprite_number < MAX_SPRITES_PER_SCREEN; sprite_number++) + { + UINT16 y_control = m_videoram_drawsource[0x8200 | sprite_number]; + + /* if not chained, get Y position and height, otherwise use previous values */ + if (~y_control & 0x40) + { + y = 0x200 - (y_control >> 7); + rows = y_control & 0x3f; + } + + /* skip sprites with 0 rows */ + if (rows == 0) + continue; + + if (!sprite_on_scanline(scanline, y, rows)) + continue; + + /* sprite is on this scanline, add it to active list */ + *sprite_list = sprite_number; + + sprite_list++; + + /* increment sprite count, and if we reached the max, bail out */ + active_sprite_count++; + + if (active_sprite_count == MAX_SPRITES_PER_LINE) + break; + } + + /* fill the rest of the sprite list with 0, including one extra entry */ + memset(sprite_list, 0, sizeof(sprite_list[0]) * (MAX_SPRITES_PER_LINE - active_sprite_count + 1)); +} + + +TIMER_CALLBACK_MEMBER(neosprite_base_device::sprite_line_timer_callback) +{ + int scanline = param; + + /* we are at the beginning of a scanline - + we need to draw the previous scanline and parse the sprites on the current one */ + if (scanline != 0) + m_screen->update_partial(scanline - 1); + + parse_sprites(scanline); + + /* let's come back at the beginning of the next line */ + scanline = (scanline + 1) % NEOGEO_VTOTAL; + + m_sprite_line_timer->adjust(m_screen->time_until_pos(scanline), scanline); +} + + +void neosprite_base_device::create_sprite_line_timer( ) +{ + m_sprite_line_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neosprite_base_device::sprite_line_timer_callback),this)); +} + + +void neosprite_base_device::start_sprite_line_timer( ) +{ + m_sprite_line_timer->adjust(m_screen->time_until_pos(0)); +} + + +UINT32 neosprite_base_device::get_region_mask(UINT8* rgn, UINT32 rgn_size) +{ + /* convert the sprite graphics data into a format that + allows faster blitting */ + UINT32 mask; + UINT32 len; + UINT32 bit; + + /* get mask based on the length rounded up to the nearest + power of 2 */ + mask = 0xffffffff; + + len = rgn_size; + + for (bit = 0x80000000; bit != 0; bit >>= 1) + { + if ((len * 2 - 1) & bit) + break; + + mask >>= 1; + } + + return mask; +} + +void neosprite_base_device::optimize_sprite_data() +{ + // this does nothing in this implementation, it's used by neosprite_optimized_device + // m_sprite_gfx_address_mask gets set when the GFX region is assigned + return; +} + +void neosprite_base_device::set_optimized_sprite_data(UINT8* sprdata, UINT32 mask) +{ + return; +} + + +// these are for passing in pointers from the main system +void neosprite_base_device::set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size) +{ + m_region_sprites = region_sprites; + m_region_sprites_size = region_sprites_size; +} + +void neosprite_base_device::set_fixed_regions(UINT8* fix_cart, UINT32 fix_cart_size, memory_region* fix_bios) +{ + m_region_fixed = fix_cart; + m_region_fixed_size = fix_cart_size; + m_region_fixedbios = fix_bios; +} + +void neosprite_base_device::set_screen(screen_device* screen) +{ + m_screen = screen; +} + +void neosprite_base_device::set_pens(const pen_t* pens) +{ + m_pens = pens; +} + + + +/*********************************************************************************************************************************/ +/* Regular NeoGeo sprite handling - drawing directly from ROM (or RAM on NeoCD) */ +/* */ +/* note, we don't currently use this implementation, reference only */ +/* if we do it will be important to ensure that all sprite regions are ^2 sizes - the optimized routine automatically allocates */ +/* ^2 sized regions when pre-decoding, but obviously we don't here, so if we want to be safe we'll have to adjust the actual */ +/* regions (alternatively I could add an additional size check in the draw routine, but that would be slower) */ +/*********************************************************************************************************************************/ + +const device_type NEOGEO_SPRITE_REGULAR = &device_creator<neosprite_regular_device>; + +neosprite_regular_device::neosprite_regular_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : neosprite_base_device(mconfig, tag, owner, clock, NEOGEO_SPRITE_REGULAR) +{ +} + + + +void neosprite_regular_device::set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size) +{ + m_region_sprites = region_sprites; + m_region_sprites_size = region_sprites_size; + + UINT32 mask = get_region_mask(m_region_sprites, m_region_sprites_size); + UINT32 proper_size = (mask + 1) >>1; + + printf("lengths %08x %08x m_region_sprites", region_sprites_size, proper_size); + + if (m_region_sprites_size != proper_size) + { + fatalerror("please use power of 2 region sizes with neosprite_base_device to ensure masking works correctly"); + } + + m_sprite_gfx_address_mask = mask; +} + +inline void neosprite_regular_device::draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) +{ + const UINT8* src = m_region_sprites + (((romaddr &~0xff)>>1) | (((romaddr&0x8)^0x8)<<3) | ((romaddr & 0xf0) >> 2)); + const int x = romaddr & 0x7; + + const UINT8 gfx = (((src[0x3] >> x) & 0x01) << 3) | + (((src[0x1] >> x) & 0x01) << 2) | + (((src[0x2] >> x) & 0x01) << 1) | + (((src[0x0] >> x) & 0x01) << 0); + + if (gfx) + *dst = line_pens[gfx]; +} + + + +/*********************************************************************************************************************************/ +/* Regular NeoGeo sprite handling with pre-decode optimization */ +/* */ +/* this is closer to the old MAME implementation where the 4bpp graphics have been expanded to an easier to draw 8bpp format */ +/* for additional speed */ +/*********************************************************************************************************************************/ + +const device_type NEOGEO_SPRITE_OPTIMZIED = &device_creator<neosprite_optimized_device>; + +neosprite_optimized_device::neosprite_optimized_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : neosprite_base_device(mconfig, tag, owner, clock, NEOGEO_SPRITE_OPTIMZIED), + m_spritegfx8(nullptr) +{ +} + + +void neosprite_optimized_device::optimize_sprite_data() +{ + m_sprite_gfx_address_mask = neogeohelper_optimize_sprite_data(m_sprite_gfx, m_region_sprites, m_region_sprites_size); + m_spritegfx8 = &m_sprite_gfx[0]; +} + +void neosprite_optimized_device::set_optimized_sprite_data(UINT8* sprdata, UINT32 mask) +{ + m_spritegfx8 = sprdata; + m_sprite_gfx_address_mask = mask; +} + +inline void neosprite_optimized_device::draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) +{ + const UINT8 gfx = m_spritegfx8[romaddr]; + + if (gfx) + *dst = line_pens[gfx]; +} + + +/*********************************************************************************************************************************/ +/* MIDAS specific sprite handling */ +/* */ +/* this is used by the midas.c hardware which is a reengineered NeoGeo, it has 8bbp tiles instead of 4bpp tiles */ +/* and uploads the zoom table. The additional videoram buffering is a guess because 'hammer' is very glitchy without it */ +/*********************************************************************************************************************************/ + +const device_type NEOGEO_SPRITE_MIDAS = &device_creator<neosprite_midas_device>; + + +neosprite_midas_device::neosprite_midas_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : neosprite_base_device(mconfig, tag, owner, clock, NEOGEO_SPRITE_MIDAS) +{ + m_bppshift = 8; +} + + +inline void neosprite_midas_device::draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) +{ + const UINT8* src = m_region_sprites + (((romaddr &~0xff)) | (((romaddr&0x8)^0x8)<<4) | ((romaddr & 0xf0) >> 1)); + const int x = romaddr & 0x7; + + const UINT8 gfx = (((src[0x7] >> x) & 0x01) << 7) | + (((src[0x6] >> x) & 0x01) << 6) | + (((src[0x5] >> x) & 0x01) << 5) | + (((src[0x4] >> x) & 0x01) << 4) | + (((src[0x3] >> x) & 0x01) << 3) | + (((src[0x2] >> x) & 0x01) << 2) | + (((src[0x1] >> x) & 0x01) << 1) | + (((src[0x0] >> x) & 0x01) << 0); + + if (gfx) + *dst = line_pens[gfx]; +} + + +void neosprite_midas_device::device_start() +{ + neosprite_base_device::device_start(); + + m_videoram_buffer = std::make_unique<UINT16[]>(0x8000 + 0x800); + m_videoram_drawsource = m_videoram_buffer.get(); + + memset(m_videoram_buffer.get(), 0x00, (0x8000 + 0x800) * sizeof(UINT16)); + +} + +void neosprite_midas_device::buffer_vram() +{ + memcpy(m_videoram_buffer.get(), m_videoram.get(), (0x8000 + 0x800) * sizeof(UINT16)); +} + +inline void neosprite_midas_device::draw_fixed_layer_2pixels(UINT32*&pixel_addr, int offset, UINT8* gfx_base, const pen_t* char_pens) +{ + UINT8 data; + + data = ((gfx_base[(offset * 2)+0] & 0x0f)<<0) | ((gfx_base[(offset * 2)+1] & 0x0f)<<4); + if (data) + *pixel_addr = char_pens[data]; + pixel_addr++; + + data = ((gfx_base[(offset * 2)+0] & 0xf0)>>4) | ((gfx_base[(offset * 2)+1] & 0xf0)<<0); + if (data) + *pixel_addr = char_pens[data]; + pixel_addr++; +} + +void neosprite_midas_device::set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size) +{ + m_region_sprites = region_sprites; + m_region_sprites_size = region_sprites_size; + UINT32 mask = get_region_mask(m_region_sprites, m_region_sprites_size); + m_sprite_gfx_address_mask = mask; +} diff --git a/docs/release/src/hbmame/video/neogeo_spr.h b/docs/release/src/hbmame/video/neogeo_spr.h new file mode 100644 index 00000000000..6c2f525544f --- /dev/null +++ b/docs/release/src/hbmame/video/neogeo_spr.h @@ -0,0 +1,146 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari +// thanks-to:Fuzz +#define VERBOSE (0) + +// todo, move these back, currently the sprite code needs some of the values tho +#define NEOGEO_MASTER_CLOCK (24000000) +#define NEOGEO_MAIN_CPU_CLOCK (NEOGEO_MASTER_CLOCK / 2) +#define NEOGEO_AUDIO_CPU_CLOCK (NEOGEO_MASTER_CLOCK / 6) +#define NEOGEO_YM2610_CLOCK (NEOGEO_MASTER_CLOCK / 3) +#define NEOGEO_PIXEL_CLOCK (NEOGEO_MASTER_CLOCK / 4) +#define NEOGEO_HTOTAL (0x180) +#define NEOGEO_HBEND (0x01e) /* this should really be 29.5 */ +#define NEOGEO_HBSTART (0x15e) /* this should really be 349.5 */ +#define NEOGEO_VTOTAL (0x108) +#define NEOGEO_VBEND (0x010) +#define NEOGEO_VBSTART (0x0f0) +#define NEOGEO_VSSTART (0x100) + +// todo, sort out what needs to be public and make the rest private/protected +class neosprite_base_device : public device_t +{ +public: + neosprite_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock, device_type type); +// neosprite_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual void optimize_sprite_data(); + virtual void set_optimized_sprite_data(UINT8* sprdata, UINT32 mask); + + virtual void draw_fixed_layer_2pixels(UINT32*&pixel_addr, int offset, UINT8* gfx_base, const pen_t* char_pens); + void draw_fixed_layer( bitmap_rgb32 &bitmap, int scanline ); + void set_videoram_offset( UINT16 data ); + UINT16 get_videoram_data( ); + void set_videoram_data( UINT16 data); + void set_videoram_modulo( UINT16 data); + UINT16 get_videoram_modulo( ); + void set_auto_animation_speed( UINT8 data); + void set_auto_animation_disabled( UINT8 data); + UINT8 neogeo_get_auto_animation_counter( ); + void create_auto_animation_timer( ); + void start_auto_animation_timer( ); + void neogeo_set_fixed_layer_source( UINT8 data ); + inline bool sprite_on_scanline(int scanline, int y, int rows); + virtual void draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) = 0; + void draw_sprites( bitmap_rgb32 &bitmap, int scanline ); + void parse_sprites( int scanline ); + void create_sprite_line_timer( ); + void start_sprite_line_timer( ); + virtual void set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size); + void set_fixed_regions(UINT8* fix_cart, UINT32 fix_cart_size, memory_region* fix_bios); + void set_screen(screen_device* screen); + void set_pens(const pen_t* pens); + + std::unique_ptr<UINT16[]> m_videoram; + UINT16 *m_videoram_drawsource; + + UINT16 m_vram_offset; + UINT16 m_vram_read_buffer; + UINT16 m_vram_modulo; + + const UINT8 *m_region_zoomy; + + UINT32 m_sprite_gfx_address_mask; + + UINT8 m_auto_animation_speed; + UINT8 m_auto_animation_disabled; + UINT8 m_auto_animation_counter; + UINT8 m_auto_animation_frame_counter; + + UINT8 m_fixed_layer_source; + UINT8 m_fixed_layer_bank_type; + + emu_timer *m_auto_animation_timer; + emu_timer *m_sprite_line_timer; + + TIMER_CALLBACK_MEMBER(auto_animation_timer_callback); + TIMER_CALLBACK_MEMBER(sprite_line_timer_callback); + + + int m_bppshift; // 4 for 4bpp gfx (NeoGeo) 8 for 8bpp gfx (Midas) + +protected: + virtual void device_start() override; + virtual void device_reset() override; + UINT32 get_region_mask(UINT8* rgn, UINT32 rgn_size); + UINT8* m_region_sprites; UINT32 m_region_sprites_size; + UINT8* m_region_fixed; UINT32 m_region_fixed_size; + memory_region* m_region_fixedbios; + screen_device* m_screen; + const pen_t *m_pens; + +private: + +}; + +//extern const device_type NEOGEO_SPRITE_BASE; + + +class neosprite_regular_device : public neosprite_base_device +{ +public: + neosprite_regular_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) override; + virtual void set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size) override; + +}; + +extern const device_type NEOGEO_SPRITE_REGULAR; + + +class neosprite_optimized_device : public neosprite_base_device +{ +public: + neosprite_optimized_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual void optimize_sprite_data() override; + virtual void set_optimized_sprite_data(UINT8* sprdata, UINT32 mask) override; + virtual void draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) override; + std::vector<UINT8> m_sprite_gfx; + UINT8* m_spritegfx8; + +}; + +extern const device_type NEOGEO_SPRITE_OPTIMZIED; + + + + + +class neosprite_midas_device : public neosprite_base_device +{ +public: + neosprite_midas_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual void draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) override; + + std::unique_ptr<UINT16[]> m_videoram_buffer; + void buffer_vram(); + virtual void draw_fixed_layer_2pixels(UINT32*&pixel_addr, int offset, UINT8* gfx_base, const pen_t* char_pens) override; + virtual void set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size) override; + + protected: + virtual void device_start() override; + +}; + +extern const device_type NEOGEO_SPRITE_MIDAS; diff --git a/docs/release/src/hbmame/video/pacman.cpp b/docs/release/src/hbmame/video/pacman.cpp new file mode 100644 index 00000000000..5dd57c71dc0 --- /dev/null +++ b/docs/release/src/hbmame/video/pacman.cpp @@ -0,0 +1,360 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/video/pacman.cpp" + + +VIDEO_START_MEMBER( pacman_state, pacmanx ) +{ + init_save_state(); + m_charbank = 0; + m_spritebank = 0; + m_palettebank = 0; + m_colortablebank = 0; + m_flipscreen = 0; + m_bgpriority = 0; + m_inv_spr = 0; + m_xoffsethack = 2; + + m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 16, 16, 36, 28 ); + + m_bg_tilemap->set_scrolldx(0, 384*2 - 288*2 ); + m_bg_tilemap->set_scrolldy(0, 264*2 - 224*2 ); +} + +UINT32 pacman_state::screen_update_pacmanx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + if (m_bgpriority) + bitmap.fill(0,cliprect); + else + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + + if( m_spriteram ) + { + UINT8 *spriteram = m_spriteram; + UINT8 *spriteram_2 = m_spriteram2; + int offs; + + rectangle spriteclip(2*2*8, 2*68*8-1, 0*8, 2*56*8-1); + spriteclip &= cliprect; + + /* Draw the sprites. Note that it is important to draw them exactly in this */ + /* order, to have the correct priorities. */ + for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2) + { + int color; + int sx,sy; + UINT8 fx,fy; + + if(m_inv_spr) + { + sx = spriteram_2[offs + 1]*2; + sy = 480 - (spriteram_2[offs]*2); + } + else + { + sx = 544 - spriteram_2[offs + 1]*2; + sy = (spriteram_2[offs] - 31)*2; + } + + fx = (spriteram[offs] & 1) ^ m_inv_spr; + fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1); + + color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 ); + + m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip, + ( spriteram[offs] >> 2 ) | (m_spritebank << 6), + color, + fx,fy, + sx,sy, + m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0)); + + /* also plot the sprite with wraparound (tunnel in Crush Roller) */ + m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip, + ( spriteram[offs] >> 2 ) | (m_spritebank << 6), + color, + fx,fy, + sx - 512,sy, + m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0)); + } + /* In the Pac Man based games (NOT Pengo) the first two sprites must be offset */ + /* one pixel to the left to get a more correct placement */ + for (offs = 2*2;offs >= 0;offs -= 2) + { + int color; + int sx,sy; + UINT8 fx,fy; + + if(m_inv_spr) + { + sx = spriteram_2[offs + 1]*2; + sy = 480 - (spriteram_2[offs]*2); + } + else + { + sx = 544 - spriteram_2[offs + 1]*2; + sy = (spriteram_2[offs] - 31)*2; + } + color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 ); + + fx = (spriteram[offs] & 1) ^ m_inv_spr; + fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1); + + m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip, + ( spriteram[offs] >> 2 ) | (m_spritebank << 6), + color, + fx,fy, + sx,sy + m_xoffsethack, + m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0)); + + /* also plot the sprite with wraparound (tunnel in Crush Roller) */ + m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip, + ( spriteram[offs] >> 2 ) | (m_spritebank << 6), + color, + fy,fx, //FIXME: flipping bits are really supposed to be inverted here? + sx - 512,sy + m_xoffsethack, + m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0)); + } + } + + if (m_bgpriority != 0) + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + return 0; +} + + + + + +/************************************************************************ + MULTIPAC adapted for HBMAME by Robbbert + ************************************************************************/ + +static void init_save_state_multipac(running_machine &machine) +{ + pacman_state *state = machine.driver_data<pacman_state>(); + state->save_item(NAME(state->m_charbank)); + state->save_item(NAME(state->m_spritebank)); + state->save_item(NAME(state->m_palettebank)); + state->save_item(NAME(state->m_colortablebank)); + state->save_item(NAME(state->m_flipscreen)); + state->save_item(NAME(state->m_bgpriority)); +} + +TILE_GET_INFO_MEMBER(pacman_state::multipac_get_tile_info ) +{ + int code = m_videoram[tile_index] | (m_charbank << 8); + int attr = (m_colorram[tile_index] & 0x1f) | (m_colortablebank << 5); + + SET_TILE_INFO_MEMBER(0,code,attr,0); +} + +VIDEO_START_MEMBER( pacman_state, multipac ) +{ + init_save_state_multipac(machine()); + + m_charbank = 0; + m_spritebank = 0; + m_colortablebank = 0; + m_flipscreen = 0; + m_bgpriority = 0; + m_inv_spr = 0; + m_xoffsethack = 1; + + m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::multipac_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 8, 8, 36, 28 ); + + m_bg_tilemap->set_scrolldx(0, 384 - 288 ); + m_bg_tilemap->set_scrolldy(0, 264 - 224 ); +} + +PALETTE_INIT_MEMBER( pacman_state, multipac ) +{ + UINT16 i; + static const int resistances[3] = { 1000, 470, 220 }; + double rweights[3], gweights[3], bweights[2]; + UINT8 bit0, bit1, bit2, r, g, b; + UINT16 entries = palette.indirect_entries(); + UINT16 bank,banks = entries >> 5; + const UINT8 *color_prom = machine().root_device().memregion("proms")->base(); + const UINT8 *m_p_prom = machine().root_device().memregion("proms")->base() + entries; + + /* compute the color output resistor weights */ + compute_resistor_weights(0, 255, -1.0, + 3, &resistances[0], rweights, 0, 0, + 3, &resistances[0], gweights, 0, 0, + 2, &resistances[1], bweights, 0, 0); + + for (bank = 0; bank < banks; bank++) + { + UINT16 obank = bank << 7; + UINT16 ibank = bank << 5; + + /* create a lookup table for the palette */ + for (i = ibank; i < (ibank+32); i++) + { + /* red component */ + bit0 = BIT(color_prom[i], 0); + bit1 = BIT(color_prom[i], 1); + bit2 = BIT(color_prom[i], 2); + r = combine_3_weights(rweights, bit0, bit1, bit2); + + /* green component */ + bit0 = BIT(color_prom[i], 3); + bit1 = BIT(color_prom[i], 4); + bit2 = BIT(color_prom[i], 5); + g = combine_3_weights(gweights, bit0, bit1, bit2); + + /* blue component */ + bit0 = BIT(color_prom[i], 6); + bit1 = BIT(color_prom[i], 7); + b = combine_2_weights(bweights, bit0, bit1); + + palette.set_indirect_color(i, rgb_t(r, g, b)); + } + + for (i = obank;i < (obank+128);i++) + { + if (m_p_prom[i] & 15) + palette.set_pen_indirect(i,(m_p_prom[i] & 15) | ibank); + else + palette.set_pen_indirect(i, 0); /* preserve transparency */ + } + } +} + +UINT32 pacman_state::screen_update_multipac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + if (m_bgpriority != 0) + bitmap.fill(0, cliprect); + else + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + + if( m_spriteram != NULL ) + { + UINT8 *spriteram = m_spriteram; + UINT8 *spriteram_2 = m_spriteram2; + int offs; + + rectangle spriteclip(2*8, 34*8-1, 0*8, 28*8-1); + spriteclip &= cliprect; + + /* Draw the sprites. Note that it is important to draw them exactly in this */ + /* order, to have the correct priorities. */ + for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2) + { + int color; + int sx,sy; + UINT8 fx,fy; + + if(m_inv_spr) + { + sx = spriteram_2[offs + 1]; + sy = 240 - (spriteram_2[offs]); + } + else + { + sx = 272 - spriteram_2[offs + 1]; + sy = spriteram_2[offs] - 31; + } + + fx = (spriteram[offs] & 1) ^ m_inv_spr; + fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1); + + color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 ); + + m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip, + ( spriteram[offs] >> 2 ) | (m_spritebank << 6), + color, + fx,fy, + sx,sy, + m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0)); + + /* also plot the sprite with wraparound (tunnel in Crush Roller) */ + m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip, + ( spriteram[offs] >> 2 ) | (m_spritebank << 6), + color, + fx,fy, + sx - 256,sy, + m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0)); + } + /* In the Pac Man based games (NOT Pengo) the first two sprites must be offset */ + /* one pixel to the left to get a more correct placement */ + for (offs = 2*2;offs >= 0;offs -= 2) + { + int color; + int sx,sy; + UINT8 fx,fy; + + if(m_inv_spr) + { + sx = spriteram_2[offs + 1]; + sy = 240 - (spriteram_2[offs]); + } + else + { + sx = 272 - spriteram_2[offs + 1]; + sy = spriteram_2[offs] - 31; + } + color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 ); + + fx = (spriteram[offs] & 1) ^ m_inv_spr; + fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1); + + m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip, + ( spriteram[offs] >> 2 ) | (m_spritebank << 6), + color, + fx,fy, + sx,sy, + m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0)); + + /* also plot the sprite with wraparound (tunnel in Crush Roller) */ + m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip, + ( spriteram[offs] >> 2 ) | (m_spritebank << 6), + color, + fx,fy, + sx - 256,sy, + m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0)); + } + } + + if (m_bgpriority != 0) + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + return 0; +} + + +WRITE8_MEMBER( pacman_state::multipac_gfxbank_w ) +{ + m_charbank = data; + m_spritebank = data; +} + +/* multipac passes bankselect info for the 4a and 7f roms on separate bytes. MAME can only use one of them */ +WRITE8_MEMBER( pacman_state::multipac_palbank_w ) +{ + if (offset) m_colortablebank = data; +} + + +/* ============================================= + 96in1 / Mad Pac by Robbbert, July 2007 + ============================================= */ + + +void pacman_state::m96in1b_gfxbank_w ( UINT8 gfxbank ) +{ + UINT8 banks[] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 4, 2, 3, 5, 6, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 }; + m_charbank = gfxbank; + m_spritebank = gfxbank; + m_colortablebank = banks[gfxbank]; +} + +void pacman_state::madpac_gfxbank_w ( UINT8 gfxbank ) +{ + m_charbank = gfxbank; + m_spritebank = gfxbank; + + if (gfxbank > 15) + m_colortablebank = gfxbank - 15; + else + m_colortablebank = 0; +} diff --git a/docs/release/src/mame/drivers/jrpacman.cpp b/docs/release/src/mame/drivers/jrpacman.cpp new file mode 100644 index 00000000000..30df4996a6d --- /dev/null +++ b/docs/release/src/mame/drivers/jrpacman.cpp @@ -0,0 +1,443 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria +/*************************************************************************** + + Bally/Midway Jr. Pac-Man + + Games supported: + * Jr. Pac-Man + + Known issues: + * none + +**************************************************************************** + + Jr. Pac Man memory map (preliminary) + + 0000-3fff ROM + 4000-47ff Video RAM (also color RAM) + 4800-4fff RAM + 8000-dfff ROM + + memory mapped ports: + + read: + 5000 P1 + 5040 P2 + 5080 DSW + + * + * IN0 (all bits are inverted) + * bit 7 : CREDIT + * bit 6 : COIN 2 + * bit 5 : COIN 1 + * bit 4 : RACK TEST + * bit 3 : DOWN player 1 + * bit 2 : RIGHT player 1 + * bit 1 : LEFT player 1 + * bit 0 : UP player 1 + * + * + * IN1 (all bits are inverted) + * bit 7 : TABLE or UPRIGHT cabinet select (1 = UPRIGHT) + * bit 6 : START 2 + * bit 5 : START 1 + * bit 4 : TEST SWITCH + * bit 3 : DOWN player 2 (TABLE only) + * bit 2 : RIGHT player 2 (TABLE only) + * bit 1 : LEFT player 2 (TABLE only) + * bit 0 : UP player 2 (TABLE only) + * + * + * DSW1 (all bits are inverted) + * bit 7 : ? + * bit 6 : difficulty level + * 1 = Normal 0 = Harder + * bit 5 :\ bonus pac at xx000 pts + * bit 4 :/ 00 = 10000 01 = 15000 10 = 20000 11 = 30000 + * bit 3 :\ nr of lives + * bit 2 :/ 00 = 1 01 = 2 10 = 3 11 = 5 + * bit 1 :\ play mode + * bit 0 :/ 00 = free play 01 = 1 coin 1 credit + * 10 = 1 coin 2 credits 11 = 2 coins 1 credit + * + + write: + 4ff2-4ffd 6 pairs of two bytes: + the first byte contains the sprite image number (bits 2-7), Y flip (bit 0), + X flip (bit 1); the second byte the color + 5000 interrupt enable + 5001 sound enable + 5002 unused + 5003 flip screen + 5004 unused + 5005 unused + 5006 unused + 5007 coin counter + 5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only) + 5045 sound voice 1 waveform (nibble) + 5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only) + 504a sound voice 2 waveform (nibble) + 504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only) + 504f sound voice 3 waveform (nibble) + 5050-5054 sound voice 1 frequency (nibbles) + 5055 sound voice 1 volume (nibble) + 5056-5059 sound voice 2 frequency (nibbles) + 505a sound voice 2 volume (nibble) + 505b-505e sound voice 3 frequency (nibbles) + 505f sound voice 3 volume (nibble) + 5062-506d Sprite coordinates, x/y pairs for 6 sprites + 5070 palette bank + 5071 colortable bank + 5073 background priority over sprites + 5074 char gfx bank + 5075 sprite gfx bank + 5080 scroll + 50c0 Watchdog reset + + I/O ports: + OUT on port $0 sets the interrupt vector + +***************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "includes/pacman.h" + + +class jrpacman_state : public pacman_state +{ +public: + jrpacman_state(const machine_config &mconfig, device_type type, const char *tag) + : pacman_state(mconfig, type, tag) { } + DECLARE_WRITE8_MEMBER(jrpacman_interrupt_vector_w); + DECLARE_WRITE8_MEMBER(irq_mask_w); + DECLARE_DRIVER_INIT(jrpacman); + INTERRUPT_GEN_MEMBER(vblank_irq); +}; + + + +WRITE8_MEMBER(jrpacman_state::jrpacman_interrupt_vector_w) +{ + m_maincpu->set_input_line_vector(0, data); + m_maincpu->set_input_line(0, CLEAR_LINE); +} + +WRITE8_MEMBER(jrpacman_state::irq_mask_w) +{ + m_irq_mask = data & 1; +} + +/************************************* + * + * Main CPU memory handlers + * + *************************************/ + +static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jrpacman_state ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4800, 0x4fef) AM_RAM + AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x5000, 0x503f) AM_READ_PORT("P1") + AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w) + AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w) + AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) + AM_RANGE(0x5040, 0x507f) AM_READ_PORT("P2") + AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) + AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2") + AM_RANGE(0x5070, 0x5070) AM_WRITE(pengo_palettebank_w) + AM_RANGE(0x5071, 0x5071) AM_WRITE(pengo_colortablebank_w) + AM_RANGE(0x5073, 0x5073) AM_WRITE(jrpacman_bgpriority_w) + AM_RANGE(0x5074, 0x5074) AM_WRITE(jrpacman_charbank_w) + AM_RANGE(0x5075, 0x5075) AM_WRITE(jrpacman_spritebank_w) + AM_RANGE(0x5080, 0x50bf) AM_READ_PORT("DSW") + AM_RANGE(0x5080, 0x5080) AM_WRITE(jrpacman_scroll_w) + AM_RANGE(0x50c0, 0x50c0) AM_WRITENOP + AM_RANGE(0x8000, 0xdfff) AM_ROM +// HBMAME extras + AM_RANGE(0x5002, 0x5002) AM_WRITENOP + AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w) + AM_RANGE(0x5006, 0x5006) AM_WRITENOP + AM_RANGE(0x5007, 0x5007) AM_WRITENOP + AM_RANGE(0x5072, 0x5072) AM_WRITENOP + AM_RANGE(0x5076, 0x507f) AM_WRITENOP + AM_RANGE(0xfffc, 0xffff) AM_RAM /* for jrfast and fastjr */ +ADDRESS_MAP_END + + +static ADDRESS_MAP_START( port_map, AS_IO, 8, jrpacman_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0, 0) AM_WRITE(jrpacman_interrupt_vector_w) +ADDRESS_MAP_END + + + +/************************************* + * + * Port definitions + * + *************************************/ + +static INPUT_PORTS_START( jrpacman ) + PORT_START("P1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + /* Press this to instantly finish the level - HBMAME */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) + + PORT_START("P2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL + PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + + PORT_START("DSW") + PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2") + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:3,4") + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x04, "2" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPSETTING( 0x0c, "5" ) + PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:5,6") + PORT_DIPSETTING( 0x00, "10000" ) + PORT_DIPSETTING( 0x10, "15000" ) + PORT_DIPSETTING( 0x20, "20000" ) + PORT_DIPSETTING( 0x30, "30000" ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7") + PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + +// HBMAME extras + PORT_START ("FAKE") + /* This fake input port is used to get the status of the fire button */ + /* and activate the speedup cheat. */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" ) + PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" ) + PORT_DIPSETTING( 0x00, "Disabled" ) + PORT_DIPSETTING( 0x02, "Enabled with Button" ) + PORT_DIPSETTING( 0x04, "Enabled Always" ) + + PORT_START ("CONFIG") + PORT_CONFNAME( 0x01, 0x01, "Level" ) + PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x01, DEF_STR( On ) ) +INPUT_PORTS_END + + + +/************************************* + * + * Graphics layouts + * + *************************************/ + +static const gfx_layout tilelayout = +{ + 8,8, + RGN_FRAC(1,2), + 2, + { 0, 4 }, + { STEP4(8*8,1), STEP4(0*8,1) }, + { STEP8(0*8,8) }, + 16*8 +}; + + +static const gfx_layout spritelayout = +{ + 16,16, + RGN_FRAC(1,2), + 2, + { 0, 4 }, + { STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1), STEP4(0*8,1) }, + { STEP8(0*8,8), STEP8(32*8,8) }, + 64*8 +}; + + +static GFXDECODE_START( jrpacman ) + GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 128 ) + GFXDECODE_ENTRY( "gfx1", 0x2000, spritelayout, 0, 128 ) +GFXDECODE_END + + + +/************************************* + * + * Machine drivers + * + *************************************/ + +INTERRUPT_GEN_MEMBER(jrpacman_state::vblank_irq) +{ + if(m_irq_mask) + device.execute().set_input_line(0, HOLD_LINE); +} + +static MACHINE_CONFIG_START( jrpacman, jrpacman_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ + MCFG_CPU_PROGRAM_MAP(main_map) + MCFG_CPU_IO_MAP(port_map) +// MCFG_CPU_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq) + MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, pacman_interrupt) // HBMAME + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60.606060) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) + MCFG_SCREEN_SIZE(36*8, 28*8) + MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) + MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman) + MCFG_SCREEN_PALETTE("palette") + + MCFG_GFXDECODE_ADD("gfxdecode", "palette", jrpacman) + MCFG_PALETTE_ADD("palette", 128*4) + MCFG_PALETTE_INDIRECT_ENTRIES(32) + MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman) + MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_SOUND_ADD("namco", NAMCO, 3072000/32) + MCFG_NAMCO_AUDIO_VOICES(3) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) +MACHINE_CONFIG_END + + + +/************************************* + * + * ROM definitions + * + *************************************/ + +ROM_START( jrpacman ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) ) + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */ + ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */ + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + +ROM_START( jrpacmanf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "fast_jr.8d", 0x0000, 0x2000, CRC(461e8b57) SHA1(42e25d384e653efb95a97bd64f55a8c3b3f71239) ) // only 1 byte difference + ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) ) + ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) ) + ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) ) + ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) ) + + ROM_REGION( 0x4000, "gfx1", 0 ) + ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */ + ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */ + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */ + ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */ + ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */ + + ROM_REGION( 0x0200, "namco", 0 ) + ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */ + ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ +ROM_END + + + +/************************************* + * + * Driver initialization + * + *************************************/ + +DRIVER_INIT_MEMBER(jrpacman_state,jrpacman) +{ + /* The encryption PALs garble bits 0, 2 and 7 of the ROMs. The encryption */ + /* scheme is complex (basically it's a state machine) and can only be */ + /* faithfully emulated at run time. To avoid the performance hit that would */ + /* cause, here we have a table of the values which must be XORed with */ + /* each memory region to obtain the decrypted bytes. */ + /* Decryption table provided by David Caldwell (david@indigita.com) */ + /* For an accurate reproduction of the encryption, see jrcrypt.c */ + static const struct { + int count; + int value; + } table[] = + { + { 0x00C1, 0x00 },{ 0x0002, 0x80 },{ 0x0004, 0x00 },{ 0x0006, 0x80 }, + { 0x0003, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0004, 0x80 }, + { 0x9968, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 }, + { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0001, 0x80 }, + { 0x00AF, 0x00 },{ 0x000E, 0x04 },{ 0x0002, 0x00 },{ 0x0004, 0x04 }, + { 0x001E, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 }, + { 0x0002, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0002, 0x80 }, + { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0083, 0x00 },{ 0x0001, 0x04 }, + { 0x0001, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x05 },{ 0x0001, 0x00 }, + { 0x0003, 0x04 },{ 0x0003, 0x01 },{ 0x0002, 0x00 },{ 0x0001, 0x04 }, + { 0x0003, 0x01 },{ 0x0003, 0x00 },{ 0x0003, 0x04 },{ 0x0001, 0x01 }, + { 0x002E, 0x00 },{ 0x0078, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 }, + { 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 }, + { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 }, + { 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 }, + { 0x0001, 0x05 },{ 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 }, + { 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 }, + { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 },{ 0x0001, 0x00 }, + { 0x01B0, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x01 },{ 0x00AD, 0x00 }, + { 0x0031, 0x01 },{ 0x005C, 0x00 },{ 0x0005, 0x01 },{ 0x604E, 0x00 }, + { 0,0 } + }; + + UINT8 *RAM = memregion("maincpu")->base(); + int i, j, A; + + for (i = A = 0; table[i].count; i++) + for (j = 0; j < table[i].count; j++) + RAM[A++] ^= table[i].value; +} + + + +/************************************* + * + * Game drivers + * + *************************************/ + +GAME( 1983, jrpacman, 0, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man (11/9/83)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jrpacmanf, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "hack", "Jr. Pac-Man (speedup hack)", MACHINE_SUPPORTS_SAVE ) diff --git a/docs/release/src/mame/includes/cps3.h b/docs/release/src/mame/includes/cps3.h new file mode 100644 index 00000000000..1d2dc303a55 --- /dev/null +++ b/docs/release/src/mame/includes/cps3.h @@ -0,0 +1,160 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood, Andreas Naive, Tomasz Slanina, ElSemi +/*************************************************************************** + + Capcom CPS-3 Hardware + +****************************************************************************/ + +#include "machine/intelfsh.h" +#include "cpu/sh2/sh2.h" +#include "audio/cps3.h" + + +class cps3_state : public driver_device +{ +public: + cps3_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_gfxdecode(*this, "gfxdecode") + , m_palette(*this, "palette") + , m_cps3sound(*this, "cps3sound") + , m_mainram(*this, "mainram") + , m_spriteram(*this, "spriteram") + , m_colourram(*this, "colourram") + , m_tilemap20_regs_base(*this, "tmap20_regs") + , m_tilemap30_regs_base(*this, "tmap30_regs") + , m_tilemap40_regs_base(*this, "tmap40_regs") + , m_tilemap50_regs_base(*this, "tmap50_regs") + , m_fullscreenzoom(*this, "fullscreenzoom") + , m_0xc0000000_ram(*this, "0xc0000000_ram") + , m_decrypted_gamerom(*this, "decrypted_gamerom") + , m_0xc0000000_ram_decrypted(*this, "0xc0000000_ram_decrypted") + , m_user4_region(*this, "user4") + , m_user5_region(*this, "user5") + { + } + + required_device<sh2_device> m_maincpu; + required_device<gfxdecode_device> m_gfxdecode; + required_device<palette_device> m_palette; + required_device<cps3_sound_device> m_cps3sound; + + required_shared_ptr<UINT32> m_mainram; + required_shared_ptr<UINT32> m_spriteram; + required_shared_ptr<UINT32> m_colourram; + required_shared_ptr<UINT32> m_tilemap20_regs_base; + required_shared_ptr<UINT32> m_tilemap30_regs_base; + required_shared_ptr<UINT32> m_tilemap40_regs_base; + required_shared_ptr<UINT32> m_tilemap50_regs_base; + required_shared_ptr<UINT32> m_fullscreenzoom; + required_shared_ptr<UINT32> m_0xc0000000_ram; + required_shared_ptr<UINT32> m_decrypted_gamerom; + required_shared_ptr<UINT32> m_0xc0000000_ram_decrypted; + + optional_memory_region m_user4_region; + optional_memory_region m_user5_region; + + fujitsu_29f016a_device *m_simm[7][8]; + UINT32 m_cram_gfxflash_bank; + std::unique_ptr<UINT32[]> m_char_ram; + std::unique_ptr<UINT32[]> m_eeprom; + UINT32 m_ss_pal_base; + UINT32 m_unk_vidregs[0x20/4]; + UINT32 m_ss_bank_base; + UINT32 m_screenwidth; + std::unique_ptr<UINT32[]> m_mame_colours; + bitmap_rgb32 m_renderbuffer_bitmap; + rectangle m_renderbuffer_clip; + UINT8* m_user4; + UINT32 m_key1; + UINT32 m_key2; + int m_altEncryption; + std::unique_ptr<UINT32[]> m_ss_ram; + UINT32 m_cram_bank; + UINT16 m_current_eeprom_read; + UINT32 m_paldma_source; + UINT32 m_paldma_realsource; + UINT32 m_paldma_dest; + UINT32 m_paldma_fade; + UINT32 m_paldma_other2; + UINT32 m_paldma_length; + UINT32 m_chardma_source; + UINT32 m_chardma_other; + UINT32 m_current_table_address; + int m_rle_length; + int m_last_normal_byte; + unsigned short m_lastb; + unsigned short m_lastb2; + UINT8* m_user5; + + DECLARE_READ32_MEMBER(cps3_ssram_r); + DECLARE_WRITE32_MEMBER(cps3_ssram_w); + DECLARE_WRITE32_MEMBER(cps3_0xc0000000_ram_w); + DECLARE_WRITE32_MEMBER(cram_bank_w); + DECLARE_READ32_MEMBER(cram_data_r); + DECLARE_WRITE32_MEMBER(cram_data_w); + DECLARE_READ32_MEMBER(cps3_gfxflash_r); + DECLARE_WRITE32_MEMBER(cps3_gfxflash_w); + DECLARE_READ32_MEMBER(cps3_flash1_r); + DECLARE_READ32_MEMBER(cps3_flash2_r); + DECLARE_WRITE32_MEMBER(cps3_flash1_w); + DECLARE_WRITE32_MEMBER(cps3_flash2_w); + DECLARE_WRITE32_MEMBER(cram_gfxflash_bank_w); + DECLARE_READ32_MEMBER(cps3_vbl_r); + DECLARE_READ32_MEMBER(cps3_unk_io_r); + DECLARE_READ32_MEMBER(cps3_40C0000_r); + DECLARE_READ32_MEMBER(cps3_40C0004_r); + DECLARE_READ32_MEMBER(cps3_eeprom_r); + DECLARE_WRITE32_MEMBER(cps3_eeprom_w); + DECLARE_WRITE32_MEMBER(cps3_ss_bank_base_w); + DECLARE_WRITE32_MEMBER(cps3_ss_pal_base_w); + DECLARE_WRITE32_MEMBER(cps3_palettedma_w); + DECLARE_WRITE32_MEMBER(cps3_characterdma_w); + DECLARE_WRITE32_MEMBER(cps3_irq10_ack_w); + DECLARE_WRITE32_MEMBER(cps3_irq12_ack_w); + DECLARE_WRITE32_MEMBER(cps3_unk_vidregs_w); + DECLARE_READ32_MEMBER(cps3_colourram_r); + DECLARE_WRITE32_MEMBER(cps3_colourram_w); + DECLARE_DRIVER_INIT(sfiii3); + DECLARE_DRIVER_INIT(sfiii); + DECLARE_DRIVER_INIT(redearth); + DECLARE_DRIVER_INIT(jojo); + DECLARE_DRIVER_INIT(jojoba); + DECLARE_DRIVER_INIT(sfiii2); + DECLARE_DRIVER_INIT(cps3boot); + SH2_DMA_KLUDGE_CB(dma_callback); + virtual void machine_reset() override; + virtual void video_start() override; + UINT32 screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(cps3_vbl_interrupt); + INTERRUPT_GEN_MEMBER(cps3_other_interrupt); + UINT16 rotate_left(UINT16 value, int n); + UINT16 rotxor(UINT16 val, UINT16 xorval); + UINT32 cps3_mask(UINT32 address, UINT32 key1, UINT32 key2); + void cps3_decrypt_bios(); + void init_common(void); + void init_crypt(UINT32 key1, UINT32 key2, int altEncryption); + void cps3_set_mame_colours(int colournum, UINT16 data, UINT32 fadeval); + void cps3_draw_tilemapsprite_line(int tmnum, int drawline, bitmap_rgb32 &bitmap, const rectangle &cliprect ); + UINT32 cps3_flashmain_r(address_space &space, int which, UINT32 offset, UINT32 mem_mask); + void cps3_flashmain_w(int which, UINT32 offset, UINT32 data, UINT32 mem_mask); + UINT32 process_byte( UINT8 real_byte, UINT32 destination, int max_length ); + void cps3_do_char_dma( UINT32 real_source, UINT32 real_destination, UINT32 real_length ); + UINT32 ProcessByte8(UINT8 b,UINT32 dst_offset); + void cps3_do_alt_char_dma( UINT32 src, UINT32 real_dest, UINT32 real_length ); + void cps3_process_character_dma(UINT32 address); + void copy_from_nvram(); + inline void cps3_drawgfxzoom(bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, + unsigned int code, unsigned int color, int flipx, int flipy, int sx, int sy, + int transparency, int transparent_color, + int scalex, int scaley, bitmap_ind8 *pri_buffer, UINT32 pri_mask); + +// HBMAME start + DECLARE_MACHINE_RESET(redeartn); + emu_timer* m_fastboot_timer; + TIMER_CALLBACK_MEMBER(fastboot_timer_callback); +// HBMAME end + +}; diff --git a/docs/release/src/mame/video/neogeo_spr.cpp b/docs/release/src/mame/video/neogeo_spr.cpp new file mode 100644 index 00000000000..40bfcc289f8 --- /dev/null +++ b/docs/release/src/mame/video/neogeo_spr.cpp @@ -0,0 +1,844 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari +// thanks-to:Fuzz +/* NeoGeo sprites (and fixed text layer) */ + +#include "emu.h" +#include "neogeo_spr.h" + +// pure virtual functions +//const device_type NEOGEO_SPRITE_BASE = &device_creator<neosprite_base_device>; + +/* +neosprite_base_device::neosprite_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, NEOGEO_SPRITE_BASE, "NeoGeo Sprites", tag, owner, clock, "neospritebase", __FILE__), + m_bppshift(4) +{ + +} +*/ + +neosprite_base_device::neosprite_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock, device_type type) + : device_t(mconfig, type, "Neogeo Sprites", tag, owner, clock, "neosprite", __FILE__), + m_bppshift(4) +{ +} + +void neosprite_base_device::device_start() +{ + m_videoram = std::make_unique<UINT16[]>(0x8000 + 0x800); + m_videoram_drawsource = m_videoram.get(); + + /* clear allocated memory */ + memset(m_videoram.get(), 0x00, (0x8000 + 0x800) * sizeof(UINT16)); + + create_sprite_line_timer(); + create_auto_animation_timer(); + + /* initialize values that are not modified on a reset */ + m_vram_offset = 0; + m_vram_read_buffer = 0; + m_vram_modulo = 0; + m_auto_animation_speed = 0; + m_auto_animation_disabled = 0; + m_auto_animation_counter = 0; + m_auto_animation_frame_counter = 0; + + /* register for state saving */ + save_pointer(NAME(m_videoram.get()), 0x8000 + 0x800); + save_item(NAME(m_vram_offset)); + save_item(NAME(m_vram_read_buffer)); + save_item(NAME(m_vram_modulo)); + save_item(NAME(m_fixed_layer_source)); + + save_item(NAME(m_auto_animation_speed)); + save_item(NAME(m_auto_animation_disabled)); + save_item(NAME(m_auto_animation_counter)); + save_item(NAME(m_auto_animation_frame_counter)); + + + m_region_zoomy = memregion(":zoomy")->base(); +} + +void neosprite_base_device::device_reset() +{ + //m_sprite_gfx_address_mask = 0; + optimize_sprite_data(); + + start_sprite_line_timer(); + start_auto_animation_timer(); +} + + + +/************************************* + * + * Video RAM access + * + *************************************/ + +void neosprite_base_device::set_videoram_offset(UINT16 data) +{ + m_vram_offset = (data & 0x8000 ? data & 0x87ff : data); + + /* the read happens right away */ + m_vram_read_buffer = m_videoram[m_vram_offset]; +} + + +UINT16 neosprite_base_device::get_videoram_data() +{ + return m_vram_read_buffer; +} + + +void neosprite_base_device::set_videoram_data(UINT16 data) +{ + m_videoram[m_vram_offset] = data; + + /* auto increment/decrement the current offset - A15 is NOT affected */ + set_videoram_offset((m_vram_offset & 0x8000) | ((m_vram_offset + m_vram_modulo) & 0x7fff)); +} + + +void neosprite_base_device::set_videoram_modulo(UINT16 data) +{ + m_vram_modulo = data; +} + + +UINT16 neosprite_base_device::get_videoram_modulo() +{ + return m_vram_modulo; +} + + + +/************************************* + * + * Auto animation + * + *************************************/ + +void neosprite_base_device::set_auto_animation_speed(UINT8 data) +{ + m_auto_animation_speed = data; +} + + +void neosprite_base_device::set_auto_animation_disabled(UINT8 data) +{ + m_auto_animation_disabled = data; +} + + +UINT8 neosprite_base_device::neogeo_get_auto_animation_counter() +{ + return m_auto_animation_counter; +} + + +TIMER_CALLBACK_MEMBER(neosprite_base_device::auto_animation_timer_callback) +{ + if (m_auto_animation_frame_counter == 0) + { + m_auto_animation_frame_counter = m_auto_animation_speed; + m_auto_animation_counter += 1; + } + else + m_auto_animation_frame_counter = m_auto_animation_frame_counter - 1; + + m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); +} + + +void neosprite_base_device::create_auto_animation_timer() +{ + m_auto_animation_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neosprite_base_device::auto_animation_timer_callback),this)); +} + + +void neosprite_base_device::start_auto_animation_timer() +{ + m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); +} + + + +/************************************* + * + * Fixed layer + * + *************************************/ + +void neosprite_base_device::neogeo_set_fixed_layer_source(UINT8 data) +{ + m_fixed_layer_source = data; +} + + +void neosprite_base_device::draw_fixed_layer(bitmap_rgb32 &bitmap, int scanline) +{ + int x; + + UINT8* gfx_base = m_fixed_layer_source ? m_region_fixed : m_region_fixedbios->base(); + UINT32 addr_mask = ( m_fixed_layer_source ? m_region_fixed_size : m_region_fixedbios->bytes() ) - 1; + UINT16 *video_data = &m_videoram_drawsource[0x7000 | (scanline >> 3)]; + UINT32 *pixel_addr = &bitmap.pix32(scanline, NEOGEO_HBEND); + + int garouoffsets[32]; + int banked = m_fixed_layer_source && (addr_mask > 0x1ffff); + + /* thanks to Mr K for the garou & kof2000 banking info */ + /* Build line banking table for Garou & MS3 before starting render */ + if (banked && m_fixed_layer_bank_type == 1) + { + int garoubank = 0; + int k = 0; + int y = 0; + while (y < 32) + { + if (m_videoram_drawsource[0x7500 + k] == 0x0200 && (m_videoram_drawsource[0x7580 + k] & 0xff00) == 0xff00) + { + garoubank = m_videoram_drawsource[0x7580 + k] & 3; + garouoffsets[y++] = garoubank; + } + garouoffsets[y++] = garoubank; + k += 2; + } + } + + for (x = 0; x < 40; x++) + { + UINT16 code_and_palette = *video_data; + UINT16 code = code_and_palette & 0x0fff; + + if (banked) + { + int y = scanline >> 3; + switch (m_fixed_layer_bank_type) + { + case 1: + /* Garou, MSlug 3 */ + code += 0x1000 * (garouoffsets[(y - 2) & 31] ^ 3); + break; + case 2: + code += 0x1000 * (((m_videoram_drawsource[0x7500 + ((y - 1) & 31) + 32 * (x / 6)] >> (5 - (x % 6)) * 2) & 3) ^ 3); + break; + } + } + + { + int i; + int gfx_offset = ((code << 5) | (scanline & 0x07)) & addr_mask; + + const pen_t *char_pens; + + char_pens = &m_pens[code_and_palette >> 12 << m_bppshift]; + + + static const UINT32 pix_offsets[] = { 0x10, 0x18, 0x00, 0x08 }; + + for (i = 0; i < 4; i++) + { + draw_fixed_layer_2pixels(pixel_addr, gfx_offset + pix_offsets[i], gfx_base, char_pens); + } + } + + video_data = video_data + 0x20; + } +} + + +inline void neosprite_base_device::draw_fixed_layer_2pixels(UINT32*&pixel_addr, int offset, UINT8* gfx_base, const pen_t* char_pens) +{ + UINT8 data = gfx_base[offset]; + + if (data & 0x0f) + *pixel_addr = char_pens[data & 0x0f]; + pixel_addr++; + + if (data & 0xf0) + *pixel_addr = char_pens[(data & 0xf0) >> 4]; + pixel_addr++; + +} + +/************************************* + * + * Sprite hardware + * + *************************************/ + +#define MAX_SPRITES_PER_SCREEN (381) +// HBMAME +//#define MAX_SPRITES_PER_LINE (96) +// beast requires 236 sprites, also fixes neopong and lhcdb +#define MAX_SPRITES_PER_LINE (236) + + +/* horizontal zoom table - verified on real hardware */ +static const int zoom_x_tables[][16] = +{ + { 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 }, + { 0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0 }, + { 0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0 }, + { 0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0 }, + { 0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0 }, + { 0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0 }, + { 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 }, + { 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 }, + { 1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0 }, + { 1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0 }, + { 1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1 }, + { 1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1 }, + { 1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1 }, + { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1 }, + { 1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1 }, + { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 } +}; + + + +inline bool neosprite_base_device::sprite_on_scanline(int scanline, int y, int rows) +{ + return (rows == 0) || (rows >= 0x20) || ((scanline - y) & 0x1ff) < (rows * 0x10); +} + + + + +void neosprite_base_device::draw_sprites(bitmap_rgb32 &bitmap, int scanline) +{ + int sprite_index; + int max_sprite_index; + + int y = 0; + int x = 0; + int rows = 0; + int zoom_y = 0; + int zoom_x = 0; + UINT16 *sprite_list; + + /* select the active list */ + if (scanline & 0x01) + sprite_list = &m_videoram_drawsource[0x8680]; + else + sprite_list = &m_videoram_drawsource[0x8600]; + + /* optimization -- find last non-zero entry and only draw that many +1 + sprite. This is not 100% correct as the hardware will keep drawing + the #0 sprite over and over, but we need the speed */ + for (max_sprite_index = (MAX_SPRITES_PER_LINE - 1); max_sprite_index >= 0; max_sprite_index--) + { + if (sprite_list[max_sprite_index] != 0) + break; + } + + /* add the +1 now, just in case the 0 at the end is real sprite */ + if (max_sprite_index != (MAX_SPRITES_PER_LINE - 1)) + max_sprite_index = max_sprite_index + 1; + + for (sprite_index = 0; sprite_index <= max_sprite_index; sprite_index++) + { + UINT16 sprite_number = sprite_list[sprite_index] & 0x01ff; + UINT16 y_control = m_videoram_drawsource[0x8200 | sprite_number]; + UINT16 zoom_control = m_videoram_drawsource[0x8000 | sprite_number]; + + /* if chained, go to next X coordinate and get new X zoom */ + if (y_control & 0x40) + { + x = (x + zoom_x + 1) & 0x01ff; + zoom_x = (zoom_control >> 8) & 0x0f; + } + /* new block */ + else + { + y = 0x200 - (y_control >> 7); + x = m_videoram_drawsource[0x8400 | sprite_number] >> 7; + + zoom_y = (zoom_control & 0xff); + + zoom_x = (zoom_control >> 8) & 0x0f; + rows = y_control & 0x3f; + } + + /* skip if falls completely outside the screen */ + if ((x >= 0x140) && (x <= 0x1f0)) + continue; + + /* double check the Y coordinate, in case somebody modified the sprite coordinate + since we buffered it */ + if (sprite_on_scanline(scanline, y, rows)) + { + int sprite_y; + int tile; + UINT8 sprite_y_and_tile; + offs_t attr_and_code_offs; + UINT16 attr; + UINT32 code; + const int *zoom_x_table; + const pen_t *line_pens; + int x_inc; + + int sprite_line = (scanline - y) & 0x1ff; + int zoom_line = sprite_line & 0xff; + int invert = sprite_line & 0x100; + + if (invert) + zoom_line ^= 0xff; + + if (rows > 0x20) + { + zoom_line = zoom_line % ((zoom_y + 1) << 1); + + if (zoom_line > zoom_y) + { + zoom_line = ((zoom_y + 1) << 1) - 1 - zoom_line; + invert = !invert; + } + } + + sprite_y_and_tile = m_region_zoomy[(zoom_y << 8) | zoom_line]; + + sprite_y = sprite_y_and_tile & 0x0f; + tile = sprite_y_and_tile >> 4; + + if (invert) + { + sprite_y ^= 0x0f; + tile ^= 0x1f; + } + + attr_and_code_offs = (sprite_number << 6) | (tile << 1); + attr = m_videoram_drawsource[attr_and_code_offs + 1]; + code = ((attr << 12) & 0x70000) | m_videoram_drawsource[attr_and_code_offs]; + + /* substitute auto animation bits */ + if (!m_auto_animation_disabled) + { + if (attr & 0x0008) + code = (code & ~0x07) | (m_auto_animation_counter & 0x07); + else if (attr & 0x0004) + code = (code & ~0x03) | (m_auto_animation_counter & 0x03); + } + + /* vertical flip? */ + if (attr & 0x0002) + sprite_y ^= 0x0f; + + zoom_x_table = zoom_x_tables[zoom_x]; + + /* compute offset in gfx ROM and mask it to the number of bits available */ + int gfx_base = ((code << 8) | (sprite_y << 4)) & m_sprite_gfx_address_mask; + + + line_pens = &m_pens[attr >> 8 << m_bppshift]; + + + /* horizontal flip? */ + if (attr & 0x0001) + { + gfx_base = gfx_base + 0x0f; + x_inc = -1; + } + else + x_inc = 1; + + /* draw the line - no wrap-around */ + if (x <= 0x01f0) + { + int i; + + UINT32 *pixel_addr = &bitmap.pix32(scanline, x + NEOGEO_HBEND); + + for (i = 0; i < 0x10; i++) + { + if (*zoom_x_table) + { + draw_pixel(gfx_base, pixel_addr, line_pens); + + pixel_addr++; + } + + zoom_x_table++; + gfx_base += x_inc; + } + } + /* wrap-around */ + else + { + int i; + + int x_save = x; + UINT32 *pixel_addr = &bitmap.pix32(scanline, NEOGEO_HBEND); + + for (i = 0; i < 0x10; i++) + { + if (*zoom_x_table) + { + if (x >= 0x200) + { + draw_pixel(gfx_base, pixel_addr, line_pens); + + pixel_addr++; + } + + x++; + } + + zoom_x_table++; + gfx_base += x_inc; + } + + x = x_save; + } + } + } +} + + +void neosprite_base_device::parse_sprites(int scanline) +{ + UINT16 sprite_number; + int y = 0; + int rows = 0; + UINT16 *sprite_list; + + int active_sprite_count = 0; + + /* select the active list */ + if (scanline & 0x01) + sprite_list = &m_videoram_drawsource[0x8680]; + else + sprite_list = &m_videoram_drawsource[0x8600]; + + /* scan all sprites */ + for (sprite_number = 0; sprite_number < MAX_SPRITES_PER_SCREEN; sprite_number++) + { + UINT16 y_control = m_videoram_drawsource[0x8200 | sprite_number]; + + /* if not chained, get Y position and height, otherwise use previous values */ + if (~y_control & 0x40) + { + y = 0x200 - (y_control >> 7); + rows = y_control & 0x3f; + } + + /* skip sprites with 0 rows */ + if (rows == 0) + continue; + + if (!sprite_on_scanline(scanline, y, rows)) + continue; + + /* sprite is on this scanline, add it to active list */ + *sprite_list = sprite_number; + + sprite_list++; + + /* increment sprite count, and if we reached the max, bail out */ + active_sprite_count++; + + if (active_sprite_count == MAX_SPRITES_PER_LINE) + break; + } + + /* fill the rest of the sprite list with 0, including one extra entry */ + memset(sprite_list, 0, sizeof(sprite_list[0]) * (MAX_SPRITES_PER_LINE - active_sprite_count + 1)); +} + + +TIMER_CALLBACK_MEMBER(neosprite_base_device::sprite_line_timer_callback) +{ + int scanline = param; + + /* we are at the beginning of a scanline - + we need to draw the previous scanline and parse the sprites on the current one */ + if (scanline != 0) + m_screen->update_partial(scanline - 1); + + parse_sprites(scanline); + + /* let's come back at the beginning of the next line */ + scanline = (scanline + 1) % NEOGEO_VTOTAL; + + m_sprite_line_timer->adjust(m_screen->time_until_pos(scanline), scanline); +} + + +void neosprite_base_device::create_sprite_line_timer() +{ + m_sprite_line_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neosprite_base_device::sprite_line_timer_callback),this)); +} + + +void neosprite_base_device::start_sprite_line_timer() +{ + m_sprite_line_timer->adjust(m_screen->time_until_pos(0)); +} + + +UINT32 neosprite_base_device::get_region_mask(UINT8* rgn, UINT32 rgn_size) +{ + /* convert the sprite graphics data into a format that + allows faster blitting */ + UINT32 mask; + UINT32 len; + UINT32 bit; + + /* get mask based on the length rounded up to the nearest + power of 2 */ + mask = 0xffffffff; + + len = rgn_size; + + for (bit = 0x80000000; bit != 0; bit >>= 1) + { + if ((len * 2 - 1) & bit) + break; + + mask >>= 1; + } + + return mask; +} + +void neosprite_base_device::optimize_sprite_data() +{ + // this does nothing in this implementation, it's used by neosprite_optimized_device + // m_sprite_gfx_address_mask gets set when the GFX region is assigned + return; +} + +void neosprite_base_device::set_optimized_sprite_data(UINT8* sprdata, UINT32 mask) +{ + return; +} + +// these are for passing in pointers from the main system +void neosprite_base_device::set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size) +{ + m_region_sprites = region_sprites; + m_region_sprites_size = region_sprites_size; +} + +void neosprite_base_device::set_fixed_regions(UINT8* fix_cart, UINT32 fix_cart_size, memory_region* fix_bios) +{ + m_region_fixed = fix_cart; + m_region_fixed_size = fix_cart_size; + m_region_fixedbios = fix_bios; +} + +void neosprite_base_device::set_screen(screen_device* screen) +{ + m_screen = screen; +} + +void neosprite_base_device::set_pens(const pen_t* pens) +{ + m_pens = pens; +} + + + +/*********************************************************************************************************************************/ +/* Regular NeoGeo sprite handling - drawing directly from ROM (or RAM on NeoCD) */ +/* */ +/* note, we don't currently use this implementation, reference only */ +/* if we do it will be important to ensure that all sprite regions are ^2 sizes - the optimized routine automatically allocates */ +/* ^2 sized regions when pre-decoding, but obviously we don't here, so if we want to be safe we'll have to adjust the actual */ +/* regions (alternatively I could add an additional size check in the draw routine, but that would be slower) */ +/*********************************************************************************************************************************/ + +const device_type NEOGEO_SPRITE_REGULAR = &device_creator<neosprite_regular_device>; + +neosprite_regular_device::neosprite_regular_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : neosprite_base_device(mconfig, tag, owner, clock, NEOGEO_SPRITE_REGULAR) +{ +} + +void neosprite_regular_device::set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size) +{ + m_region_sprites = region_sprites; + m_region_sprites_size = region_sprites_size; + + UINT32 mask = get_region_mask(m_region_sprites, m_region_sprites_size); + UINT32 proper_size = (mask + 1) >>1; + + printf("lengths %08x %08x m_region_sprites", region_sprites_size, proper_size); + + if (m_region_sprites_size != proper_size) + { + fatalerror("please use power of 2 region sizes with neosprite_base_device to ensure masking works correctly"); + } + + m_sprite_gfx_address_mask = mask; +} + +inline void neosprite_regular_device::draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) +{ + const UINT8* src = m_region_sprites + (((romaddr &~0xff)>>1) | (((romaddr&0x8)^0x8)<<3) | ((romaddr & 0xf0) >> 2)); + const int x = romaddr & 0x7; + + const UINT8 gfx = (((src[0x3] >> x) & 0x01) << 3) | + (((src[0x1] >> x) & 0x01) << 2) | + (((src[0x2] >> x) & 0x01) << 1) | + (((src[0x0] >> x) & 0x01) << 0); + + if (gfx) + *dst = line_pens[gfx]; +} + + + +/*********************************************************************************************************************************/ +/* Regular NeoGeo sprite handling with pre-decode optimization */ +/* */ +/* this is closer to the old MAME implementation where the 4bpp graphics have been expanded to an easier to draw 8bpp format */ +/* for additional speed */ +/*********************************************************************************************************************************/ + +const device_type NEOGEO_SPRITE_OPTIMZIED = &device_creator<neosprite_optimized_device>; + +neosprite_optimized_device::neosprite_optimized_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : neosprite_base_device(mconfig, tag, owner, clock, NEOGEO_SPRITE_OPTIMZIED), + m_spritegfx8(nullptr) +{ +} + +UINT32 neosprite_optimized_device::optimize_helper(std::vector<UINT8> &spritegfx, UINT8* region_sprites, UINT32 region_sprites_size) +{ + // convert the sprite graphics data into a format that allows faster blitting + UINT8 *src; + UINT8 *dest; + + UINT32 mask = get_region_mask(region_sprites, region_sprites_size); + + spritegfx.resize(mask + 1); + UINT32 spritegfx_address_mask = mask; + + src = region_sprites; + dest = &spritegfx[0]; + + for (unsigned i = 0; i < region_sprites_size; i += 0x80, src += 0x80) + { + for (unsigned y = 0; y < 0x10; y++) + { + for (unsigned x = 0; x < 8; x++) + { + *(dest++) = (((src[0x43 | (y << 2)] >> x) & 0x01) << 3) | + (((src[0x41 | (y << 2)] >> x) & 0x01) << 2) | + (((src[0x42 | (y << 2)] >> x) & 0x01) << 1) | + (((src[0x40 | (y << 2)] >> x) & 0x01) << 0); + } + + for (unsigned x = 0; x < 8; x++) + { + *(dest++) = (((src[0x03 | (y << 2)] >> x) & 0x01) << 3) | + (((src[0x01 | (y << 2)] >> x) & 0x01) << 2) | + (((src[0x02 | (y << 2)] >> x) & 0x01) << 1) | + (((src[0x00 | (y << 2)] >> x) & 0x01) << 0); + } + } + } + + return spritegfx_address_mask; +} + + +void neosprite_optimized_device::optimize_sprite_data() +{ + m_sprite_gfx_address_mask = optimize_helper(m_sprite_gfx, m_region_sprites, m_region_sprites_size); + m_spritegfx8 = &m_sprite_gfx[0]; +} + +void neosprite_optimized_device::set_optimized_sprite_data(UINT8* sprdata, UINT32 mask) +{ + m_sprite_gfx_address_mask = mask; + m_spritegfx8 = &sprdata[0]; +} + +inline void neosprite_optimized_device::draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) +{ + const UINT8 gfx = m_spritegfx8[romaddr]; + + if (gfx) + *dst = line_pens[gfx]; +} + + +/*********************************************************************************************************************************/ +/* MIDAS specific sprite handling */ +/* */ +/* this is used by the midas.c hardware which is a reengineered NeoGeo, it has 8bbp tiles instead of 4bpp tiles */ +/* and uploads the zoom table. The additional videoram buffering is a guess because 'hammer' is very glitchy without it */ +/*********************************************************************************************************************************/ + +const device_type NEOGEO_SPRITE_MIDAS = &device_creator<neosprite_midas_device>; + + +neosprite_midas_device::neosprite_midas_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : neosprite_base_device(mconfig, tag, owner, clock, NEOGEO_SPRITE_MIDAS) +{ + m_bppshift = 8; +} + + +inline void neosprite_midas_device::draw_pixel(int romaddr, UINT32* dst, const pen_t *line_pens) +{ + const UINT8* src = m_region_sprites + (((romaddr &~0xff)) | (((romaddr&0x8)^0x8)<<4) | ((romaddr & 0xf0) >> 1)); + const int x = romaddr & 0x7; + + const UINT8 gfx = (((src[0x7] >> x) & 0x01) << 7) | + (((src[0x6] >> x) & 0x01) << 6) | + (((src[0x5] >> x) & 0x01) << 5) | + (((src[0x4] >> x) & 0x01) << 4) | + (((src[0x3] >> x) & 0x01) << 3) | + (((src[0x2] >> x) & 0x01) << 2) | + (((src[0x1] >> x) & 0x01) << 1) | + (((src[0x0] >> x) & 0x01) << 0); + + if (gfx) + *dst = line_pens[gfx]; +} + + +void neosprite_midas_device::device_start() +{ + neosprite_base_device::device_start(); + + m_videoram_buffer = std::make_unique<UINT16[]>(0x8000 + 0x800); + m_videoram_drawsource = m_videoram_buffer.get(); + + memset(m_videoram_buffer.get(), 0x00, (0x8000 + 0x800) * sizeof(UINT16)); + +} + +void neosprite_midas_device::buffer_vram() +{ + memcpy(m_videoram_buffer.get(), m_videoram.get(), (0x8000 + 0x800) * sizeof(UINT16)); +} + +inline void neosprite_midas_device::draw_fixed_layer_2pixels(UINT32*&pixel_addr, int offset, UINT8* gfx_base, const pen_t* char_pens) +{ + UINT8 data; + + data = ((gfx_base[(offset * 2)+0] & 0x0f)<<0) | ((gfx_base[(offset * 2)+1] & 0x0f)<<4); + if (data) + *pixel_addr = char_pens[data]; + pixel_addr++; + + data = ((gfx_base[(offset * 2)+0] & 0xf0)>>4) | ((gfx_base[(offset * 2)+1] & 0xf0)<<0); + if (data) + *pixel_addr = char_pens[data]; + pixel_addr++; +} + +void neosprite_midas_device::set_sprite_region(UINT8* region_sprites, UINT32 region_sprites_size) +{ + m_region_sprites = region_sprites; + m_region_sprites_size = region_sprites_size; + UINT32 mask = get_region_mask(m_region_sprites, m_region_sprites_size); + m_sprite_gfx_address_mask = mask; +} diff --git a/docs/release/src/osd/winui/bitmask.cpp b/docs/release/src/osd/winui/bitmask.cpp new file mode 100644 index 00000000000..8175e4a11d0 --- /dev/null +++ b/docs/release/src/osd/winui/bitmask.cpp @@ -0,0 +1,147 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +/* bitmask.c - Bitmask support routines - MSH 11/19/1998 */ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +// standard C headers +#include <stdlib.h> /* For malloc and free */ + +// MAME/MAMEUI headers +#include "bitmask.h" +#include "emu.h" +/* Bit routines */ +static UCHAR maskTable[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; + +/* Create a new LPBITS struct and return the new structure + * initialized to 'all bits cleared' + * + * nLength is the number of desired bits + */ +LPBITS NewBits(UINT nLength) +{ + UINT nSize = (nLength+7) / 8; + + LPBITS lpBits = (LPBITS)malloc(sizeof(BITS)); + if (lpBits) + { + lpBits->m_lpBits = (UCHAR *)malloc(nSize); + if (lpBits->m_lpBits) + { + memset(lpBits->m_lpBits, '\0', nSize); + lpBits->m_nSize = nSize; + } + else + { + free(lpBits); + lpBits = 0; + } + } + + return lpBits; +} + +void DeleteBits(LPBITS lpBits) +{ + if (!lpBits) + return; + + if (lpBits->m_nSize && lpBits->m_lpBits) + free(lpBits->m_lpBits); + + free(lpBits); +} + +/* Test the 'nBit'th bit */ +BOOL TestBit(LPBITS lpBits, UINT nBit) +{ + UINT offset; + UCHAR mask; + + if (!lpBits || !lpBits->m_lpBits) + return FALSE; + + offset = nBit >> 3; + + if (offset >= lpBits->m_nSize) + return FALSE; + + mask = maskTable[nBit & 7]; + return (lpBits->m_lpBits[offset] & mask) ? TRUE : FALSE; +} + +/* Set the 'nBit'th bit */ +void SetBit(LPBITS lpBits, UINT nBit) +{ + UINT offset; + UCHAR mask; + + if (!lpBits || !lpBits->m_lpBits) + return; + + offset = nBit >> 3; + + if (offset >= lpBits->m_nSize) + return; + + mask = maskTable[nBit & 7]; + lpBits->m_lpBits[offset] |= mask; +} + +/* Clear the 'nBit'th bit */ +void ClearBit(LPBITS lpBits, UINT nBit) +{ + UINT offset; + UCHAR mask; + + if (!lpBits || !lpBits->m_lpBits) + return; + + offset = nBit >> 3; + + if (offset >= lpBits->m_nSize) + return; + + mask = maskTable[nBit & 7]; + lpBits->m_lpBits[offset] &= ~mask; +} + +/* Set or Clear all bits as specified by 'bSet' */ +void SetAllBits(LPBITS lpBits, BOOL bSet) +{ + if (lpBits && lpBits->m_nSize != 0 && lpBits->m_lpBits) + memset(lpBits->m_lpBits, (!bSet) ? '\0' : '\xFF', lpBits->m_nSize); +} + +/* Find next bit that matches 'bSet' + * + * 'nStartPos' specifies the bit to start search after + * 'bSet' specifies to search for a set or unset bit + * + * Returns -1 if no bits are found + */ +int FindBit(LPBITS lpBits, int nStartPos, BOOL bSet) +{ + UINT i = 0; + + if (!lpBits || !lpBits->m_nSize || !lpBits->m_lpBits) + return -1; + + UINT end = lpBits->m_nSize << 3; + + if (nStartPos < 0) + nStartPos = 0; + + for (i = nStartPos; i < end; i++) + { + BOOL res = (TestBit(lpBits, i)) ? TRUE : FALSE; + if ((res && bSet) || (!res && !bSet)) + return i; + } + + return -1; +} + +/* End of source file */ diff --git a/docs/release/src/osd/winui/bitmask.h b/docs/release/src/osd/winui/bitmask.h new file mode 100644 index 00000000000..ad21e6ae7ae --- /dev/null +++ b/docs/release/src/osd/winui/bitmask.h @@ -0,0 +1,33 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef BITMASK_H +#define BITMASK_H + +/* Bit array type */ +typedef struct +{ + UINT m_nSize; + UCHAR* m_lpBits; +} BITS, * LPBITS; + +/* Bit functions */ +LPBITS NewBits(UINT nLength /* in bits */); +void DeleteBits(LPBITS lpBits); +BOOL TestBit(LPBITS lpBits, UINT nBit); +void SetBit(LPBITS lpBits, UINT nBit); +void ClearBit(LPBITS lpBits, UINT nBit); +void SetAllBits(LPBITS lpBits, BOOL bSet); +int FindBit(LPBITS lpBits, int nStartPos, BOOL bSet); + +/* Linked list type */ +typedef struct +{ + LPVOID data; + LPVOID next; + LPVOID prev; +} NODE, * LPNODE; + +/* Linked list functions */ + +#endif /* BITMASK_H */ diff --git a/docs/release/src/osd/winui/columnedit.cpp b/docs/release/src/osd/winui/columnedit.cpp new file mode 100644 index 00000000000..020ef7240ab --- /dev/null +++ b/docs/release/src/osd/winui/columnedit.cpp @@ -0,0 +1,440 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/*************************************************************************** + + columnedit.c + + Column Edit dialog + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> +#include <shellapi.h> +#include <commctrl.h> +#include <commdlg.h> +#include <stdlib.h> +#include <assert.h> + +// MAME/MAMEUI headers +#include <stdlib.h> +#include "resource.h" +#include "mui_opts.h" +#include "winui.h" + +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif + +// Returns TRUE if successful +static int DoExchangeItem(HWND hFrom, HWND hTo, int nMinItem) +{ + LV_ITEM lvi; + TCHAR buf[80]; + BOOL b_res = 0; + + lvi.iItem = ListView_GetNextItem(hFrom, -1, LVIS_SELECTED | LVIS_FOCUSED); + if (lvi.iItem < nMinItem) + { + if (lvi.iItem != -1) // Can't remove the first column + MessageBox(0, TEXT("Cannot Move Selected Item"), TEXT("Move Item"), IDOK); + SetFocus(hFrom); + return FALSE; + } + lvi.iSubItem = 0; + lvi.mask = LVIF_PARAM | LVIF_TEXT; + lvi.pszText = buf; + lvi.cchTextMax = ARRAY_LENGTH(buf); + if (ListView_GetItem(hFrom, &lvi)) + { + // Add this item to the Show and delete it from Available + b_res = ListView_DeleteItem(hFrom, lvi.iItem); + lvi.iItem = ListView_GetItemCount(hTo); + (void)ListView_InsertItem(hTo, &lvi); + ListView_SetItemState(hTo, lvi.iItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + SetFocus(hTo); + return lvi.iItem; + } + return FALSE; +} + +static void DoMoveItem( HWND hWnd, BOOL bDown) +{ + LV_ITEM lvi; + TCHAR buf[80]; + int nMaxpos = 0; + BOOL b_res = 0; + + lvi.iItem = ListView_GetNextItem(hWnd, -1, LVIS_SELECTED | LVIS_FOCUSED); + nMaxpos = ListView_GetItemCount(hWnd); + if (lvi.iItem == -1 || + (lvi.iItem < 2 && bDown == FALSE) || // Disallow moving First column + (lvi.iItem == 0 && bDown == TRUE) || // "" + (lvi.iItem == nMaxpos - 1 && bDown == TRUE)) + { + SetFocus(hWnd); + return; + } + lvi.iSubItem = 0; + lvi.mask = LVIF_PARAM | LVIF_TEXT; + lvi.pszText = buf; + lvi.cchTextMax = ARRAY_LENGTH(buf); + if (ListView_GetItem(hWnd, &lvi)) + { + // Add this item to the Show and delete it from Available + b_res = ListView_DeleteItem(hWnd, lvi.iItem); + lvi.iItem += (bDown) ? 1 : -1; + (void)ListView_InsertItem(hWnd,&lvi); + ListView_SetItemState(hWnd, lvi.iItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + if (lvi.iItem == nMaxpos - 1) + EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEDOWN), FALSE); + else + EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEDOWN), TRUE); + + if (lvi.iItem < 2) + EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEUP), FALSE); + else + EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEUP), TRUE); + + SetFocus(hWnd); + } +} + +INT_PTR InternalColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam, + int nColumnMax, int *shown, int *order, + const LPCTSTR *names, void (*pfnGetRealColumnOrder)(int *), + void (*pfnGetColumnInfo)(int *pnOrder, int *pnShown), + void (*pfnSetColumnInfo)(int *pnOrder, int *pnShown)) +{ + static HWND hShown; + static HWND hAvailable; + static BOOL showMsg = FALSE; + int nShown = 0; + int nAvail = 0; + int i, nCount = 0; + LV_ITEM lvi; + DWORD dwShowStyle, dwAvailableStyle, dwView = 0; + BOOL b_res = 0; + + switch (Msg) + { + case WM_INITDIALOG: + hShown = GetDlgItem(hDlg, IDC_LISTSHOWCOLUMNS); + hAvailable = GetDlgItem(hDlg, IDC_LISTAVAILABLECOLUMNS); + /*Change Style to Always Show Selection */ + dwShowStyle = GetWindowLong(hShown, GWL_STYLE); + dwAvailableStyle = GetWindowLong(hAvailable, GWL_STYLE); + dwView = LVS_SHOWSELALWAYS | LVS_LIST; + + /* Only set the window style if the view bits have changed. */ + if ((dwShowStyle & LVS_TYPEMASK) != dwView) + SetWindowLong(hShown, GWL_STYLE, (dwShowStyle & ~LVS_TYPEMASK) | dwView); + if ((dwAvailableStyle & LVS_TYPEMASK) != dwView) + SetWindowLong(hAvailable, GWL_STYLE, (dwAvailableStyle & ~LVS_TYPEMASK) | dwView); + + pfnGetColumnInfo(order, shown); + + showMsg = TRUE; + nShown = 0; + nAvail = 0; + + lvi.mask = LVIF_TEXT | LVIF_PARAM; + lvi.stateMask = 0; + lvi.iSubItem = 0; + lvi.iImage = -1; + + /* Get the Column Order and save it */ + pfnGetRealColumnOrder(order); + + for (i = 0 ; i < nColumnMax; i++) + { + lvi.pszText = (TCHAR *) names[order[i]]; + lvi.lParam = order[i]; + + if (shown[order[i]]) + { + lvi.iItem = nShown; + (void)ListView_InsertItem(hShown, &lvi); + nShown++; + } + else + { + lvi.iItem = nAvail; + (void)ListView_InsertItem(hAvailable, &lvi); + nAvail++; + } + } + if( nShown > 0) + { + /*Set to Second, because first is not allowed*/ + ListView_SetItemState(hShown, 1, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + } + if( nAvail > 0) + { + ListView_SetItemState(hAvailable, 0, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + } + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE); + return TRUE; + + case WM_NOTIFY: + { + NMHDR *nm = (NMHDR *)lParam; + NM_LISTVIEW *pnmv; + int nPos = 0; + + switch (nm->code) + { + case NM_DBLCLK: + // Do Data Exchange here, which ListView was double clicked? + switch (nm->idFrom) + { + case IDC_LISTAVAILABLECOLUMNS: + // Move selected Item from Available to Shown column + nPos = DoExchangeItem(hAvailable, hShown, 0); + if (nPos) + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + } + break; + + case IDC_LISTSHOWCOLUMNS: + // Move selected Item from Show to Available column + if (DoExchangeItem(hShown, hAvailable, 1)) + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + } + break; + } + return TRUE; + + case LVN_ITEMCHANGED: + // Don't handle this message for now + pnmv = (NM_LISTVIEW *)nm; + if (//!(pnmv->uOldState & LVIS_SELECTED) && + (pnmv->uNewState & LVIS_SELECTED)) + { + if (pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS) + { + // Don't allow selecting the first item + ListView_SetItemState(hShown, pnmv->iItem, + LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + if (showMsg) + { + MessageBox(0, TEXT("Changing this item is not permitted"), TEXT("Select Item"), IDOK); + showMsg = FALSE; + } + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + /*Leave Focus on Control*/ + //SetFocus(GetDlgItem(hDlg,IDOK)); + return TRUE; + } + else + showMsg = TRUE; + } + if( pnmv->uOldState & LVIS_SELECTED && pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS ) + { + /*we enable the buttons again, if the first Entry loses selection*/ + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE); + //SetFocus(GetDlgItem(hDlg,IDOK)); + } + break; + case NM_SETFOCUS: + { + switch (nm->idFrom) + { + case IDC_LISTAVAILABLECOLUMNS: + if (ListView_GetItemCount(nm->hwndFrom) != 0) + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE); + } + break; + case IDC_LISTSHOWCOLUMNS: + if (ListView_GetItemCount(nm->hwndFrom) != 0) + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE); + + if (ListView_GetNextItem(hShown, -1, LVIS_SELECTED | LVIS_FOCUSED) == 0 ) + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE); + } + else + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE); + } + } + break; + } + } + break; + case LVN_KEYDOWN: + case NM_CLICK: + pnmv = (NM_LISTVIEW *)nm; + if (//!(pnmv->uOldState & LVIS_SELECTED) && + (pnmv->uNewState & LVIS_SELECTED)) + { + if (pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS) + { + } + } + switch (nm->idFrom) + { + case IDC_LISTAVAILABLECOLUMNS: + if (ListView_GetItemCount(nm->hwndFrom) != 0) + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE); + } + break; + + case IDC_LISTSHOWCOLUMNS: + if (ListView_GetItemCount(nm->hwndFrom) != 0) + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE); + if (ListView_GetNextItem(hShown, -1, LVIS_SELECTED | LVIS_FOCUSED) == 0 ) + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE); + } + else + { + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE); + } + } + break; + } + //SetFocus( nm->hwndFrom ); + return TRUE; + } + } + return FALSE; + case WM_COMMAND: + { + WORD wID = GET_WM_COMMAND_ID(wParam, lParam); + HWND hWndCtrl = GET_WM_COMMAND_HWND(wParam, lParam); + int nPos = 0; + + switch (wID) + { + case IDC_LISTSHOWCOLUMNS: + break; + case IDC_BUTTONADD: + // Move selected Item in Available to Shown + nPos = DoExchangeItem(hAvailable, hShown, 0); + if (nPos) + { + EnableWindow(hWndCtrl,FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + } + break; + + case IDC_BUTTONREMOVE: + // Move selected Item in Show to Available + if (DoExchangeItem( hShown, hAvailable, 1)) + { + EnableWindow(hWndCtrl,FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE); + } + break; + + case IDC_BUTTONMOVEDOWN: + // Move selected item in the Show window up 1 item + DoMoveItem(hShown, TRUE); + break; + + case IDC_BUTTONMOVEUP: + // Move selected item in the Show window down 1 item + DoMoveItem(hShown, FALSE); + break; + + case IDOK: + // Save users choices + nShown = ListView_GetItemCount(hShown); + nAvail = ListView_GetItemCount(hAvailable); + nCount = 0; + for (i = 0; i < nShown; i++) + { + lvi.iSubItem = 0; + lvi.mask = LVIF_PARAM; + lvi.pszText = 0; + lvi.iItem = i; + b_res = ListView_GetItem(hShown, &lvi); + order[nCount++] = lvi.lParam; + shown[lvi.lParam] = TRUE; + } + for (i = 0; i < nAvail; i++) + { + lvi.iSubItem = 0; + lvi.mask = LVIF_PARAM; + lvi.pszText = 0; + lvi.iItem = i; + b_res = ListView_GetItem(hAvailable, &lvi); + order[nCount++] = lvi.lParam; + shown[lvi.lParam] = FALSE; + } + pfnSetColumnInfo(order, shown); + EndDialog(hDlg, 1); + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, 0); + return TRUE; + } + } + break; + } + return 0; +} + +static void GetColumnInfo(int *order, int *shown) +{ + GetColumnOrder(order); + GetColumnShown(shown); +} + +static void SetColumnInfo(int *order, int *shown) +{ + SetColumnOrder(order); + SetColumnShown(shown); +} + +INT_PTR CALLBACK ColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + static int shown[COLUMN_MAX]; + static int order[COLUMN_MAX]; + extern const LPCTSTR column_names[COLUMN_MAX]; // from winui.c, should improve + + return InternalColumnDialogProc(hDlg, Msg, wParam, lParam, COLUMN_MAX, + shown, order, column_names, GetRealColumnOrder, GetColumnInfo, SetColumnInfo); +} + + + diff --git a/docs/release/src/osd/winui/columnedit.h b/docs/release/src/osd/winui/columnedit.h new file mode 100644 index 00000000000..a3c499ed999 --- /dev/null +++ b/docs/release/src/osd/winui/columnedit.h @@ -0,0 +1,15 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef COLUMNEDIT_H +#define COLUMNEDIT_H + +INT_PTR InternalColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam, + int nColumnMax, int *shown, int *order, + const LPCTSTR *names, void (*pfnGetRealColumnOrder)(int *), + void (*pfnGetColumnInfo)(int *pnOrder, int *pnShown), + void (*pfnSetColumnInfo)(int *pnOrder, int *pnShown)); + +INT_PTR CALLBACK ColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); + +#endif diff --git a/docs/release/src/osd/winui/datafile.cpp b/docs/release/src/osd/winui/datafile.cpp new file mode 100644 index 00000000000..5d80b2d6540 --- /dev/null +++ b/docs/release/src/osd/winui/datafile.cpp @@ -0,0 +1,930 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +/**************************************************************************** + * datafile.c + * History database engine + * + * Token parsing by Neil Bradley + * Modifications and higher-level functions by John Butler + ****************************************************************************/ + +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +// MAME/MAMEUI headers +#include "emu.h" +#include "datafile.h" +#include "mui_opts.h" +#include "mui_util.h" +#include "sound/samples.h" +#include "drivenum.h" // MESSUI only + +#define MAX_TOKEN_LENGTH 256 +#define DATAFILE_TAG '$' + +/**************************************************************************** + * datafile constants + ****************************************************************************/ +static const char *DATAFILE_TAG_KEY = "$info"; +static const char *DATAFILE_TAG_BIO = "$bio"; +static const char *DATAFILE_TAG_MAME = "$mame"; +static const char *DATAFILE_TAG_DRIV = "$drv"; +static const char *DATAFILE_TAG_CMD = "$cmd"; +static const char *DATAFILE_TAG_SCORE = "$story"; +static const char *DATAFILE_TAG_END = "$end"; + +/**************************************************************************** + * private data for parsing functions + ****************************************************************************/ +static FILE *fp = nullptr; /* Our file pointer */ +static UINT64 dwFilePos = 0; /* file position */ +static char filename[MAX_PATH]; /* datafile name */ + +struct tDatafileIndex +{ + long offset; + const game_driver *driver; +}; + +static struct tDatafileIndex *gameinit_idx = nullptr; +static struct tDatafileIndex *hist_idx = nullptr; +static struct tDatafileIndex *mame_idx = nullptr; +static struct tDatafileIndex *driv_idx = nullptr; +static struct tDatafileIndex *sysinfo_idx = nullptr; +static struct tDatafileIndex *mess_idx = nullptr; +static struct tDatafileIndex *messdriv_idx = nullptr; +static struct tDatafileIndex *cmd_idx = nullptr; +static struct tDatafileIndex *score_idx = nullptr; + +/**************************************************************************** +* Create an array with sorted sourcedrivers for the function +* index_datafile_drivinfo to speed up the datafile access +****************************************************************************/ + +typedef struct +{ + const char *srcdriver; + int index; +} srcdriver_data_type; + +static srcdriver_data_type *sorted_srcdrivers = nullptr; + +static int SrcDriverDataCompareFunc(const void *arg1, const void *arg2) +{ + return strcmp(((srcdriver_data_type *)arg1)->srcdriver, ((srcdriver_data_type *)arg2)->srcdriver); +} + +static int GetSrcDriverIndex(const char *srcdriver) +{ + srcdriver_data_type *srcdriver_index_info; + srcdriver_data_type key; + key.srcdriver = srcdriver; + int num_games = driver_list::total(); + + if (sorted_srcdrivers == NULL) + { + /* initialize array of game names/indices */ + sorted_srcdrivers = (srcdriver_data_type *)malloc(sizeof(srcdriver_data_type) * num_games); + for (int i = 0; i < num_games; i++) + { + sorted_srcdrivers[i].srcdriver = driver_list::driver(i).source_file+32; + sorted_srcdrivers[i].index = i; + } + qsort(sorted_srcdrivers,num_games,sizeof(srcdriver_data_type),SrcDriverDataCompareFunc); + } + + srcdriver_index_info = (srcdriver_data_type *)bsearch(&key, sorted_srcdrivers, num_games, sizeof(srcdriver_data_type), SrcDriverDataCompareFunc); + + if (srcdriver_index_info) + return srcdriver_index_info->index; + else + return -1; +} + +/**************************************************************************** + * ParseClose - Closes the existing opened file (if any) + ****************************************************************************/ +static void ParseClose(void) +{ + /* If the file is open, time for fclose. */ + if (fp) + fclose(fp); +} + +/**************************************************************************** + * ParseOpen - Open up file for reading + ****************************************************************************/ +static BOOL ParseOpen(const char *pszFilename) +{ + /* MAME core file parsing functions fail in recognizing UNICODE chars in UTF-8 without BOM, + so it's better and faster use standard C fileio functions */ + fp = fopen(pszFilename, "r"); + + if (fp == NULL) + return FALSE; + + /* Otherwise, prepare! */ + dwFilePos = 0; + /* identify text file type first */ + fgetc(fp); + fseek(fp, dwFilePos, SEEK_SET); + return TRUE; +} + +/**************************************************************************** + * ParseSeek - Move the file position indicator + ****************************************************************************/ +static UINT8 ParseSeek(UINT64 offset, int whence) +{ + int result = fseek(fp, offset, whence); + + if (result == 0) + dwFilePos = ftell(fp); + + return (UINT8)result; +} + +/************************************************************************** + ************************************************************************** + * + * Datafile functions + * + ************************************************************************** + **************************************************************************/ + + /************************************************************************** + * index_datafile + * Create an index for the records in the currently open datafile. + * + * Returns 0 on error, or the number of index entries created. + **************************************************************************/ +static int index_datafile(struct tDatafileIndex **_index, int source) +{ + struct tDatafileIndex *idx; + int count = 0; + char readbuf[512]; + char name[40]; + int num_games = driver_list::total(); + + /* rewind file */ + if (ParseSeek (0L, SEEK_SET)) + return 0; + + /* allocate index */ + idx = *_index = global_alloc_array(tDatafileIndex, (num_games + 1) * sizeof (struct tDatafileIndex)); + + if (!idx) + return 0; + + while (fgets(readbuf, 512, fp)) + { + /* DATAFILE_TAG_KEY identifies the driver */ + if (!core_strnicmp(DATAFILE_TAG_KEY, readbuf, strlen(DATAFILE_TAG_KEY))) + { + int game_index = 0; + char *curpoint = &readbuf[strlen(DATAFILE_TAG_KEY) + 1]; + char *pch = NULL; + char *ends = &readbuf[strlen(readbuf) - 1]; + + while (curpoint < ends) + { + // search for comma + pch = strpbrk(curpoint, ","); + + // found it + if (pch) + { + // copy data and validate driver + int len = pch - curpoint; + strncpy(name, curpoint, len); + name[len] = '\0'; + + if (!source) + game_index = GetGameNameIndex(name); + else + game_index = GetSrcDriverIndex(name); + + if (game_index >= 0) + { + idx->driver = &driver_list::driver(game_index); + idx->offset = ftell(fp); + idx++; + count++; + } + + // update current point + curpoint = pch + 1; + } + // if comma not found, copy data while until reach the end of string + else if (!pch && curpoint < ends) + { + int len = ends - curpoint; + strncpy(name, curpoint, len); + name[len] = '\0'; + + if (!source) + game_index = GetGameNameIndex(name); + else + game_index = GetSrcDriverIndex(name); + + if (game_index >= 0) + { + idx->driver = &driver_list::driver(game_index); + idx->offset = ftell(fp); + idx++; + count++; + } + + // update current point + curpoint = ends; + } + } + } + } + + /* mark end of index */ + idx->offset = 0L; + idx->driver = 0; + return count; +} + +/************************************************************************** + * load_datafile_text + * + * Loads text field for a driver into the buffer specified. Specify the + * driver, a pointer to the buffer, the buffer size, the index created by + * index_datafile(), and the desired text field (e.g., DATAFILE_TAG_BIO). + * + * Returns 0 if successful. + **************************************************************************/ +static int load_datafile_text(const game_driver *drv, char *buffer, int bufsize, struct tDatafileIndex *idx, const char *tag, int source_file, int mameinfo) +{ + char readbuf[16384]; + + *buffer = '\0'; + + if (!source_file) + { + /* find driver in datafile index */ + while (idx->driver) + { + if (idx->driver == drv) + break; + + idx++; + } + } + else + { + /* find source file in datafile index */ + while (idx->driver) + { + if (idx->driver->source_file == drv->source_file) + break; + + idx++; + } + } + + if (idx->driver == 0) + return 1; /* driver not found in index */ + + /* seek to correct point in datafile */ + if (ParseSeek (idx->offset, SEEK_SET)) + return 1; + + /* read text until buffer is full or end of entry is encountered */ + while (fgets(readbuf, 16384, fp)) + { + if (!core_strnicmp(DATAFILE_TAG_END, readbuf, strlen(DATAFILE_TAG_END))) + break; + + if (!core_strnicmp(tag, readbuf, strlen(tag))) + continue; + + if (strlen(buffer) + strlen(readbuf) > bufsize) + break; + + if (mameinfo) + { + char *temp = strtok(readbuf, "\r\n\r\n"); + if (temp != nullptr) + strcat(buffer, temp); + else + strcat(buffer, readbuf); + } + else + strcat(buffer, readbuf); + } + + return 0; +} + +/************************************************************************** + * load_driver_history + * Load history text for the specified driver into the specified buffer. + * Combines $bio field of HISTORY.DAT with $mame field of MAMEINFO.DAT. + * + * Returns 0 if successful. + * + * NOTE: For efficiency the indices are never freed (intentional leak). + **************************************************************************/ +int load_driver_history(const game_driver *drv, char *buffer, int bufsize, int filenum) +{ + int history = 0; + + *buffer = 0; + + if (filenum) + snprintf(filename, ARRAY_LENGTH(filename), "%s\\sysinfo.dat", GetDatsDir()); + else + snprintf(filename, ARRAY_LENGTH(filename), "%s\\history.dat", GetDatsDir()); + + /* try to open history datafile */ + if (filenum) + { + if (ParseOpen(filename)) + { + /* create index if necessary */ + if (sysinfo_idx) + history = 1; + else + history = (index_datafile (&sysinfo_idx, 0) != 0); + + /* load history text (append)*/ + if (sysinfo_idx) + { + strcat(buffer, "\n**** SYSINFO: ****\n\n"); + int len = strlen(buffer); + int err = 0; + const game_driver *gdrv; + gdrv = drv; + + do + { + err = load_datafile_text(gdrv, buffer + len, bufsize - len, sysinfo_idx, DATAFILE_TAG_BIO, 0, 0); + int g = driver_list::clone(*gdrv); + + if (g!=-1) + gdrv = &driver_list::driver(g); + else + gdrv = NULL; + } while (err && gdrv); + + if (err) + history = 0; + } + + ParseClose(); + } + } + else + { + if (ParseOpen(filename)) + { + /* create index if necessary */ + if (hist_idx) + history = 1; + else + history = (index_datafile (&hist_idx, 0) != 0); + + /* load history text (append)*/ + if (hist_idx) + { + strcat(buffer, "\n**** HISTORY: ****\n\n"); + int len = strlen(buffer); + int err = 0; + const game_driver *gdrv; + gdrv = drv; + + do + { + err = load_datafile_text(gdrv, buffer + len, bufsize - len, hist_idx, DATAFILE_TAG_BIO, 0, 0); + int g = driver_list::clone(*gdrv); + + if (g!=-1) + gdrv = &driver_list::driver(g); + else + gdrv = NULL; + } while (err && gdrv); + + if (err) + history = 0; + } + + ParseClose(); + } + } + + strcat(buffer, "\n"); + return (history == 0); +} + +int load_driver_mameinfo(const game_driver *drv, char *buffer, int bufsize, int filenum) +{ + machine_config config(*drv, MameUIGlobal()); + const game_driver *parent = NULL; + char name[512]; + int mameinfo = 0; + int is_bios = 0; + + *buffer = 0; + + switch (filenum) + { + case 0: + snprintf(filename, ARRAY_LENGTH(filename), "%s\\mameinfo.dat", GetDatsDir()); + strcat(buffer, "\n**** MAMEINFO: ****\n\n"); + break; + case 1: + snprintf(filename, ARRAY_LENGTH(filename), "%s\\messinfo.dat", GetDatsDir()); + strcat(buffer, "\n**** MESSINFO: ****\n\n"); + break; + case 2: + snprintf(filename, ARRAY_LENGTH(filename), "%s\\gameinit.dat", GetDatsDir()); + strcat(buffer, "\n**** GAMEINIT: ****\n\n"); + break; + default: + break; + } + + if (filenum < 2) + { + /* List the game info 'flags' */ + if (drv->flags & MACHINE_NOT_WORKING) + strcat(buffer, "THIS GAME DOESN'T WORK PROPERLY\n"); + + if (drv->flags & MACHINE_UNEMULATED_PROTECTION) + strcat(buffer, "The game has protection which isn't fully emulated.\n"); + + if (drv->flags & MACHINE_IMPERFECT_GRAPHICS) + strcat(buffer, "The video emulation isn't 100% accurate.\n"); + + if (drv->flags & MACHINE_WRONG_COLORS) + strcat(buffer, "The colors are completely wrong.\n"); + + if (drv->flags & MACHINE_IMPERFECT_COLORS) + strcat(buffer, "The colors aren't 100% accurate.\n"); + + if (drv->flags & MACHINE_NO_SOUND) + strcat(buffer, "The game lacks sound.\n"); + + if (drv->flags & MACHINE_IMPERFECT_SOUND) + strcat(buffer, "The sound emulation isn't 100% accurate.\n"); + + if (drv->flags & MACHINE_SUPPORTS_SAVE) + strcat(buffer, "Save state support.\n"); + + if (drv->flags & MACHINE_MECHANICAL) + strcat(buffer, "The game contains mechanical parts.\n"); + + strcat(buffer, "\n"); + + if (drv->flags & MACHINE_IS_BIOS_ROOT) + is_bios = 1; + } + + /* try to open mameinfo datafile */ + if (ParseOpen(filename)) + { + if (filenum == 2) + { + /* create index if necessary */ + if (gameinit_idx) + mameinfo = 1; + else + mameinfo = (index_datafile (&gameinit_idx, 0) != 0); + + /* load informational text (append) */ + if (gameinit_idx) + { + int len = strlen(buffer); + int err = 0; + const game_driver *gdrv; + gdrv = drv; + + do + { + err = load_datafile_text(gdrv, buffer + len, bufsize - len, gameinit_idx, DATAFILE_TAG_MAME, 0, 1); + int g = driver_list::clone(*gdrv); + + if (g!=-1) + gdrv = &driver_list::driver(g); + else + gdrv = NULL; + } while (err && gdrv); + + if (err) + mameinfo = 0; + } + } + else + if (filenum == 1) + { + /* create index if necessary */ + if (mess_idx) + mameinfo = 1; + else + mameinfo = (index_datafile (&mess_idx, 0) != 0); + + /* load informational text (append) */ + if (mess_idx) + { + int len = strlen(buffer); + int err = 0; + const game_driver *gdrv; + gdrv = drv; + + do + { + err = load_datafile_text(gdrv, buffer + len, bufsize - len, mess_idx, DATAFILE_TAG_MAME, 0, 1); + int g = driver_list::clone(*gdrv); + + if (g!=-1) + gdrv = &driver_list::driver(g); + else + gdrv = NULL; + } while (err && gdrv); + + if (err) + mameinfo = 0; + } + } + else + if (filenum == 0) + { + /* create index if necessary */ + if (mame_idx) + mameinfo = 1; + else + mameinfo = (index_datafile (&mame_idx, 0) != 0); + + /* load informational text (append) */ + if (mame_idx) + { + int len = strlen(buffer); + int err = 0; + const game_driver *gdrv; + gdrv = drv; + + do + { + err = load_datafile_text(gdrv, buffer + len, bufsize - len, mame_idx, DATAFILE_TAG_MAME, 0, 1); + int g = driver_list::clone(*gdrv); + + if (g!=-1) + gdrv = &driver_list::driver(g); + else + gdrv = NULL; + } while (err && gdrv); + + if (err) + mameinfo = 0; + } + } + + ParseClose(); + } + + if (filenum > 1) + return (mameinfo == 0); + + /* GAME INFORMATIONS */ + snprintf(name, ARRAY_LENGTH(name), "\nGAME: %s\n", drv->name); + strcat(buffer, name); + snprintf(name, ARRAY_LENGTH(name), "%s", drv->description); + strcat(buffer, name); + snprintf(name, ARRAY_LENGTH(name), " (%s %s)\n\nCPU:\n", drv->manufacturer, drv->year); + strcat(buffer, name); + /* iterate over CPUs */ + for (device_execute_interface &cpu : execute_interface_iterator(config.root_device())) + { + if (cpu.device().clock() >= 1000000) + snprintf(name, ARRAY_LENGTH(name), "%s %d.%06d MHz\n", cpu.device().name(), cpu.device().clock() / 1000000, cpu.device().clock() % 1000000); + else + snprintf(name, ARRAY_LENGTH(name), "%s %d.%03d kHz\n", cpu.device().name(), cpu.device().clock() / 1000, cpu.device().clock() % 1000); + + strcat(buffer, name); + } + + strcat(buffer, "\nSOUND:\n"); + int has_sound = 0; + /* iterate over sound chips */ + + for (device_sound_interface &sound : sound_interface_iterator(config.root_device())) + { + char tmpname[1024]; + + snprintf(tmpname, ARRAY_LENGTH(tmpname), "%s", sound.device().name()); + int clock = sound.device().clock(); + has_sound = 1; + + strcat(buffer, tmpname); + + if (clock) + { + if (clock >= 1000000) + snprintf(name, ARRAY_LENGTH(name), " %d.%06d MHz", clock / 1000000, clock % 1000000); + else + snprintf(name, ARRAY_LENGTH(name), " %d.%03d kHz", clock / 1000, clock % 1000); + + strcat(buffer, name); + } + + strcat(buffer, "\n"); + } + + if (has_sound) + { + speaker_device_iterator iter(config.root_device()); + int channels = iter.count(); + + if(channels == 1) + snprintf(name, ARRAY_LENGTH(name), "%d Channel\n",channels); + else + snprintf(name, ARRAY_LENGTH(name), "%dx Channels\n",channels); + + strcat(buffer, name); + } + + strcat(buffer, "\nVIDEO:\n"); + screen_device_iterator screeniter(config.root_device()); + const screen_device *screen1 = screeniter.first(); + + if (screen1 == nullptr) + strcat(buffer, "Screenless\n"); + else if (screen1->screen_type() == SCREEN_TYPE_VECTOR) + strcat(buffer,"Vector\n"); + else + { + for (screen_device &screen : screen_device_iterator(config.root_device())) + { + if (drv->flags & ORIENTATION_SWAP_XY) + snprintf(name, ARRAY_LENGTH(name), "%d x %d (V)", screen.visible_area().height(), screen.visible_area().width()); + else + snprintf(name, ARRAY_LENGTH(name), "%d x %d (H)", screen.visible_area().width(), screen.visible_area().height()); + + strcat(buffer, name); + snprintf(name, ARRAY_LENGTH(name), " %f Hz", ATTOSECONDS_TO_HZ(screen.refresh_attoseconds())); + strcat(buffer, name); + strcat(buffer, "\n"); + } + } + + strcat(buffer, "\nROM REGION:\n"); + int g = driver_list::clone(*drv); + + if (g != -1) + parent = &driver_list::driver(g); + + for (device_t &device : device_iterator(config.root_device())) + { + for (const rom_entry *region = rom_first_region(device); region; region = rom_next_region(region)) + { + for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom)) + { + hash_collection hashes(ROM_GETHASHDATA(rom)); + + if (g != -1) + { + machine_config pconfig(*parent, MameUIGlobal()); + device_iterator deviter(pconfig.root_device()); + + for (device_t &device : device_iterator(pconfig.root_device())) + for (const rom_entry *pregion = rom_first_region(device); pregion; pregion = rom_next_region(pregion)) + for (const rom_entry *prom = rom_first_file(pregion); prom; prom = rom_next_file(prom)) + { + hash_collection phashes(ROM_GETHASHDATA(prom)); + + if (hashes == phashes) + break; + } + } + + snprintf(name, ARRAY_LENGTH(name), "%-16s \t", ROM_GETNAME(rom)); + strcat(buffer, name); + snprintf(name, ARRAY_LENGTH(name), "%09d \t", rom_file_size(rom)); + strcat(buffer, name); + snprintf(name, ARRAY_LENGTH(name), "%-10s", ROMREGION_GETTAG(region)); + strcat(buffer, name); + strcat(buffer, "\n"); + } + } + } + + for (samples_device &device : samples_device_iterator(config.root_device())) + { + samples_iterator sampiter(device); + + if (sampiter.altbasename() ) + { + snprintf(name, ARRAY_LENGTH(name), "\nSAMPLES (%s):\n", sampiter.altbasename()); + strcat(buffer, name); + } + + std::unordered_set<std::string> already_printed; + + for (const char *samplename = sampiter.first(); samplename; samplename = sampiter.next()) + { + // filter out duplicates + if (!already_printed.insert(samplename).second) + continue; + + // output the sample name + snprintf(name, ARRAY_LENGTH(name), "%s.wav\n", samplename); + strcat(buffer, name); + } + } + + if (!is_bios) + { + int g = driver_list::clone(*drv); + + if (g != -1) + drv = &driver_list::driver(g); + + strcat(buffer, "\nORIGINAL:\n"); + strcat(buffer, drv->description); + strcat(buffer, "\n\nCLONES:\n"); + + for (int i = 0; i < driver_list::total(); i++) + { + if (!strcmp (drv->name, driver_list::driver(i).parent)) + { + strcat(buffer, driver_list::driver(i).description); + strcat(buffer, "\n"); + } + } + } + + strcat(buffer, "\n"); + return (mameinfo == 0); +} + +int load_driver_driverinfo(const game_driver *drv, char *buffer, int bufsize, int filenum) +{ + int drivinfo = 0; + char source_file[40]; + char tmp[100]; + std::string temp = core_filename_extract_base(drv->source_file); + strcpy(source_file, temp.c_str()); + + *buffer = 0; + + if (filenum) + snprintf(filename, ARRAY_LENGTH(filename), "%s\\messinfo.dat", GetDatsDir()); + else + snprintf(filename, ARRAY_LENGTH(filename), "%s\\mameinfo.dat", GetDatsDir()); + + /* Print source code file */ + snprintf(tmp, ARRAY_LENGTH(tmp), "\n\nSOURCE: %s\n\n", source_file); + strcat(buffer, tmp); + + /* Try to open mameinfo datafile - driver section*/ + if (ParseOpen(filename)) + { + if (filenum) + { + /* create index if necessary */ + if (messdriv_idx) + drivinfo = 1; + else + drivinfo = (index_datafile (&messdriv_idx, 1) != 0); + + /* load informational text (append) */ + if (messdriv_idx) + { + int len = strlen(buffer); + int err = load_datafile_text(drv, buffer + len, bufsize - len, messdriv_idx, DATAFILE_TAG_DRIV, 1, 1); + + if (err) + drivinfo = 0; + } + } + else + { + /* create index if necessary */ + if (driv_idx) + drivinfo = 1; + else + drivinfo = (index_datafile (&driv_idx, 1) != 0); + + /* load informational text (append) */ + if (driv_idx) + { + int len = strlen(buffer); + int err = load_datafile_text(drv, buffer + len, bufsize - len, driv_idx, DATAFILE_TAG_DRIV, 1, 1); + + if (err) + drivinfo = 0; + } + } + ParseClose(); + } + + strcat(buffer, "\nGAMES SUPPORTED:\n"); + + for (int i = 0; i < driver_list::total(); i++) + { + if (!strcmp(source_file, GetDriverFilename(i)) && !(DriverIsBios(i))) + { + strcat(buffer, driver_list::driver(i).description); + strcat(buffer,"\n"); + } + } + + strcat(buffer, "\n\n"); + return (drivinfo == 0); +} + +int load_driver_command(const game_driver *drv, char *buffer, int bufsize) +{ + int command = 0; + + *buffer = 0; + snprintf(filename, ARRAY_LENGTH(filename), "%s\\command.dat", GetDatsDir()); + strcat(buffer, "\n**** COMMAND: ****\n\n"); + + /* try to open command datafile */ + if (ParseOpen(filename)) + { + /* create index if necessary */ + if (cmd_idx) + command = 1; + else + command = (index_datafile (&cmd_idx, 0) != 0); + + /* load informational text (append) */ + if (cmd_idx) + { + int len = strlen(buffer); + int err = 0; + const game_driver *gdrv; + gdrv = drv; + + do + { + err = load_datafile_text(gdrv, buffer + len, bufsize - len, cmd_idx, DATAFILE_TAG_CMD, 0, 0); + int g = driver_list::clone(*gdrv); + + if (g!=-1) + gdrv = &driver_list::driver(g); + else + gdrv = NULL; + } while (err && gdrv); + + if (err) + command = 0; + } + + ParseClose(); + } + + strcat(buffer, "\n\n"); + return (command == 0); +} + +int load_driver_scoreinfo(const game_driver *drv, char *buffer, int bufsize) +{ + int scoreinfo = 0; + + *buffer = 0; + snprintf(filename, ARRAY_LENGTH(filename), "%s\\story.dat", GetDatsDir()); + + /* try to open story datafile */ + if (ParseOpen(filename)) + { + /* create index if necessary */ + if (score_idx) + scoreinfo = 1; + else + scoreinfo = (index_datafile (&score_idx, 0) != 0); + + /* load informational text (append) */ + if (score_idx) + { + int len = strlen(buffer); + int err = 0; + const game_driver *gdrv; + gdrv = drv; + + do + { + err = load_datafile_text(gdrv, buffer + len, bufsize - len, score_idx, DATAFILE_TAG_SCORE, 0, 0); + int g = driver_list::clone(*gdrv); + + if (g!=-1) + gdrv = &driver_list::driver(g); + else + gdrv = NULL; + } while (err && gdrv); + + if (err) + scoreinfo = 0; + } + + ParseClose(); + } + + return (scoreinfo == 0); +} diff --git a/docs/release/src/osd/winui/datafile.h b/docs/release/src/osd/winui/datafile.h new file mode 100644 index 00000000000..a6ef9952e25 --- /dev/null +++ b/docs/release/src/osd/winui/datafile.h @@ -0,0 +1,15 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#pragma once + +#ifndef DATAFILE_H +#define DATAFILE_H + +int load_driver_history(const game_driver *drv, char *buffer, int bufsize, int filenum); +int load_driver_mameinfo(const game_driver *drv, char *buffer, int bufsize, int filenum); +int load_driver_driverinfo(const game_driver *drv, char *buffer, int bufsize, int filenum); +int load_driver_command(const game_driver *drv, char *buffer, int bufsize); +int load_driver_scoreinfo(const game_driver *drv, char *buffer, int bufsize); + +#endif diff --git a/docs/release/src/osd/winui/datamap.cpp b/docs/release/src/osd/winui/datamap.cpp new file mode 100644 index 00000000000..58873d356e8 --- /dev/null +++ b/docs/release/src/osd/winui/datamap.cpp @@ -0,0 +1,783 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +//============================================================ +// +// datamap.c - Win32 dialog and options bridge code +// +//============================================================ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> +#include <commctrl.h> +#include <tchar.h> + +// standard C headers +#include <stdlib.h> +#include <stdarg.h> +#include <ctype.h> +#include <assert.h> +#include <math.h> + +// MAME/MAMEUI headers +#include "mui_opts.h" +#include "corestr.h" +#include "strconv.h" +#include "datamap.h" +#include "winutf8.h" +#include "emu.h" + + +#ifdef _MSC_VER +#define snprintf _snprintf +#endif + +//============================================================ +// TYPE DEFINITIONS +//============================================================ + +enum _control_type +{ + CT_UNKNOWN, + CT_BUTTON, + CT_STATIC, + CT_EDIT, + CT_COMBOBOX, + CT_TRACKBAR, + CT_LISTVIEW +}; + +typedef enum _control_type control_type; + + +typedef struct _datamap_entry datamap_entry; +struct _datamap_entry +{ + // the basics about the entry + int dlgitem; + datamap_entry_type type; + const char *option_name; + + // callbacks + datamap_callback callbacks[DCT_COUNT]; + get_option_name_callback get_option_name; + + // formats + const char *int_format; + const char *float_format; + + // trackbar options + BOOL use_trackbar_options; + float trackbar_min; + float trackbar_max; + float trackbar_increments; +}; + + +struct _datamap +{ + int entry_count; + datamap_entry entries[256]; // 256 options entries seems enough for now... +}; + +typedef void (*datamap_default_callback)(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name); + + + +//============================================================ +// PROTOTYPES +//============================================================ + +static datamap_entry *find_entry(datamap *map, int dlgitem); +static control_type get_control_type(HWND control); +static int control_operation(datamap *map, HWND dialog, windows_options *opts, + datamap_entry *entry, datamap_callback_type callback_type); +static void read_control(datamap *map, HWND control, windows_options *opts, + datamap_entry *entry, const char *option_name); +static void populate_control(datamap *map, HWND control, windows_options *opts, + datamap_entry *entry, const char *option_name); +static char *tztrim(float float_value); + + +//============================================================ +// datamap_create +//============================================================ + +datamap *datamap_create(void) +{ + datamap *map = (datamap *)malloc(sizeof(*map)); + + if (!map) + return NULL; + + map->entry_count = 0; + return map; +} + + + +//============================================================ +// datamap_free +//============================================================ + +void datamap_free(datamap *map) +{ + free(map); +} + + + +//============================================================ +// datamap_add +//============================================================ + +void datamap_add(datamap *map, int dlgitem, datamap_entry_type type, const char *option_name) +{ + // sanity check for too many entries + assert(map->entry_count < ARRAY_LENGTH(map->entries)); + + // add entry to the datamap + memset(&map->entries[map->entry_count], 0, sizeof(map->entries[map->entry_count])); + map->entries[map->entry_count].dlgitem = dlgitem; + map->entries[map->entry_count].type = type; + map->entries[map->entry_count].option_name = option_name; + map->entry_count++; +} + + + +//============================================================ +// datamap_set_callback +//============================================================ + +void datamap_set_callback(datamap *map, int dlgitem, datamap_callback_type callback_type, datamap_callback callback) +{ + datamap_entry *entry; + + assert(callback_type >= 0); + assert(callback_type < DCT_COUNT); + + entry = find_entry(map, dlgitem); + entry->callbacks[callback_type] = callback; +} + + + +//============================================================ +// datamap_set_option_name_callback +//============================================================ + +void datamap_set_option_name_callback(datamap *map, int dlgitem, get_option_name_callback get_option_name) +{ + datamap_entry *entry; + entry = find_entry(map, dlgitem); + entry->get_option_name = get_option_name; +} + + + +//============================================================ +// datamap_set_trackbar_range +//============================================================ + +void datamap_set_trackbar_range(datamap *map, int dlgitem, float min, float max, float increments) +{ + datamap_entry *entry = find_entry(map, dlgitem); + entry->use_trackbar_options = TRUE; + entry->trackbar_min = min; + entry->trackbar_max = max; + entry->trackbar_increments = increments; +} + + + +//============================================================ +// datamap_set_int_format +//============================================================ + +void datamap_set_int_format(datamap *map, int dlgitem, const char *format) +{ + datamap_entry *entry = find_entry(map, dlgitem); + entry->int_format = format; +} + + + +//============================================================ +// datamap_set_float_format +//============================================================ + +void datamap_set_float_format(datamap *map, int dlgitem, const char *format) +{ + datamap_entry *entry = find_entry(map, dlgitem); + entry->float_format = format; +} + + + +//============================================================ +// datamap_read_control +//============================================================ + +BOOL datamap_read_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem) +{ + datamap_entry *entry = find_entry(map, dlgitem); + return control_operation(map, dialog, &opts, entry, DCT_READ_CONTROL); +} + + + +//============================================================ +// datamap_read_all_controls +//============================================================ + +void datamap_read_all_controls(datamap *map, HWND dialog, windows_options &opts) +{ + for (int i = 0; i < map->entry_count; i++) + control_operation(map, dialog, &opts, &map->entries[i], DCT_READ_CONTROL); +} + + + +//============================================================ +// datamap_populate_control +//============================================================ + +void datamap_populate_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem) +{ + datamap_entry *entry = find_entry(map, dlgitem); + control_operation(map, dialog, &opts, entry, DCT_POPULATE_CONTROL); +} + + + +//============================================================ +// datamap_populate_all_controls +//============================================================ + +void datamap_populate_all_controls(datamap *map, HWND dialog, windows_options &opts) +{ + for (int i = 0; i < map->entry_count; i++) + control_operation(map, dialog, &opts, &map->entries[i], DCT_POPULATE_CONTROL); +} + + + +//============================================================ +// datamap_update_control +//============================================================ + +void datamap_update_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem) +{ + datamap_entry *entry = find_entry(map, dlgitem); + control_operation(map, dialog, &opts, entry, DCT_UPDATE_STATUS); +} + + + +//============================================================ +// datamap_update_all_controls +//============================================================ + +void datamap_update_all_controls(datamap *map, HWND dialog, windows_options *opts) +{ + for (int i = 0; i < map->entry_count; i++) + control_operation(map, dialog, opts, &map->entries[i], DCT_UPDATE_STATUS); +} + + + +//============================================================ +// find_entry +//============================================================ + +static datamap_entry *find_entry(datamap *map, int dlgitem) +{ + for (int i = 0; i < map->entry_count; i++) + { + if (map->entries[i].dlgitem == dlgitem) + return &map->entries[i]; + } + + // should not reach here + assert(FALSE); + return NULL; +} + + + +//============================================================ +// get_control_type +//============================================================ + +static control_type get_control_type(HWND control) +{ + control_type type; + TCHAR class_name[256]; + + GetClassName(control, class_name, ARRAY_LENGTH(class_name)); + if (!_tcscmp(class_name, WC_BUTTON)) + type = CT_BUTTON; + else if (!_tcscmp(class_name, WC_STATIC)) + type = CT_STATIC; + else if (!_tcscmp(class_name, WC_EDIT)) + type = CT_EDIT; + else if (!_tcscmp(class_name, WC_COMBOBOX)) + type = CT_COMBOBOX; + else if (!_tcscmp(class_name, TRACKBAR_CLASS)) + type = CT_TRACKBAR; + else if (!_tcscmp(class_name, WC_LISTVIEW)) + type = CT_LISTVIEW; + else + type = CT_UNKNOWN; + + assert(type != CT_UNKNOWN); + return type; +} + + + +//============================================================ +// is_control_displayonly +//============================================================ + +static BOOL is_control_displayonly(HWND control) +{ + BOOL displayonly = 0; + switch(get_control_type(control)) + { + case CT_STATIC: + displayonly = TRUE; + break; + + case CT_EDIT: + displayonly = (GetWindowLong(control, GWL_STYLE) & ES_READONLY) ? TRUE : FALSE; + break; + + default: + displayonly = FALSE; + break; + } + + if (!IsWindowEnabled(control)) + displayonly = TRUE; + return displayonly; +} + + + +//============================================================ +// broadcast_changes +//============================================================ + +static void broadcast_changes(datamap *map, HWND dialog, windows_options *opts, datamap_entry *entry, const char *option_name) +{ + HWND other_control; + const char *that_option_name; + int i; + + for (i = 0; i < map->entry_count; i++) + { + // search for an entry with the same option_name, but is not the exact + // same entry + that_option_name = map->entries[i].option_name; + if (map->entries[i].option_name && (&map->entries[i] != entry) && !strcmp(that_option_name, option_name)) + { + // we've found a control sharing the same option; populate it + other_control = GetDlgItem(dialog, map->entries[i].dlgitem); + if (other_control != NULL) + populate_control(map, other_control, opts, &map->entries[i], that_option_name); + } + } +} + + + +//============================================================ +// control_operation +//============================================================ + +static int control_operation(datamap *map, HWND dialog, windows_options *opts, + datamap_entry *entry, datamap_callback_type callback_type) +{ + static const datamap_default_callback default_callbacks[DCT_COUNT] = + { + read_control, + populate_control, + NULL + }; + HWND control; + int result = 0; + const char *option_name; + char option_name_buffer[64]; + char option_value[1024] = {0, }; + + control = GetDlgItem(dialog, entry->dlgitem); + if (control != NULL) + { + // don't do anything if we're reading from a display-only control + if ((callback_type != DCT_READ_CONTROL) || !is_control_displayonly(control)) + { + // figure out the option_name + if (entry->get_option_name != NULL) + { + option_name_buffer[0] = '\0'; + entry->get_option_name(map, dialog, control, option_name_buffer, ARRAY_LENGTH(option_name_buffer)); + option_name = option_name_buffer; + } + else + { + option_name = entry->option_name; + } + + // if reading, get the option value, solely for the purposes of comparison + if ((callback_type == DCT_READ_CONTROL) && (option_name != NULL)) + snprintf(option_value, ARRAY_LENGTH(option_value), "%s", opts->value(option_name)); + + if (entry->callbacks[callback_type] != NULL) + { + // use custom callback + result = entry->callbacks[callback_type](map, dialog, control, opts, option_name); + } + else if (default_callbacks[callback_type] && (option_name != NULL)) + { + // use default callback + default_callbacks[callback_type](map, control, opts, entry, option_name); + } + + // the result is dependent on the type of control + switch(callback_type) + { + case DCT_READ_CONTROL: + // For callbacks that returned TRUE, do not broadcast_changes. + if (!result) { + // do a check to see if the control changed + result = (option_name != NULL) && (strcmp(option_value, opts->value(option_name)) != 0); + if (result) + { + // the value has changed; we may need to broadcast the change + broadcast_changes(map, dialog, opts, entry, option_name); + } + } + break; + + default: + // do nothing + break; + } + } + } + return result; +} + + + +//============================================================ +// trackbar_value_from_position +//============================================================ + +static float trackbar_value_from_position(datamap_entry *entry, int position) +{ + float position_f = position; + + if (entry->use_trackbar_options) + { + position_f = (position_f * entry->trackbar_increments) + entry->trackbar_min; + } + return position_f; +} + + + +//============================================================ +// trackbar_position_from_value +//============================================================ + +static int trackbar_position_from_value(datamap_entry *entry, float value) +{ + if (entry->use_trackbar_options) + { + value = floor((value - entry->trackbar_min) / entry->trackbar_increments + 0.5); + } + return (int) value; +} + + + +//============================================================ +// read_control +//============================================================ + +static void read_control(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name) +{ + BOOL bool_value = 0; + int int_value = 0; + float float_value = 0; + const char *string_value; + int selected_index = 0; + int trackbar_pos = 0; + std::string error; + // use default read value behavior + switch(get_control_type(control)) + { + case CT_BUTTON: + assert(entry->type == DM_BOOL); + bool_value = Button_GetCheck(control); + opts->set_value(option_name, bool_value, OPTION_PRIORITY_CMDLINE,error); + break; + + case CT_COMBOBOX: + selected_index = ComboBox_GetCurSel(control); + if (selected_index >= 0) + { + switch(entry->type) + { + case DM_INT: + int_value = (int) ComboBox_GetItemData(control, selected_index); + opts->set_value(option_name, int_value, OPTION_PRIORITY_CMDLINE,error); + break; + + case DM_STRING: + string_value = (const char *) ComboBox_GetItemData(control, selected_index); + opts->set_value(option_name, string_value ? string_value : "", OPTION_PRIORITY_CMDLINE,error); + break; + + default: + break; + } + } + break; + + case CT_TRACKBAR: + trackbar_pos = SendMessage(control, TBM_GETPOS, 0, 0); + float_value = trackbar_value_from_position(entry, trackbar_pos); + switch(entry->type) + { + case DM_INT: + int_value = (int) float_value; + if (int_value != opts->int_value(option_name)) { + opts->set_value(option_name, int_value, OPTION_PRIORITY_CMDLINE,error); + } + break; + + case DM_FLOAT: + // Use tztrim(float_value) or we get trailing zero's that break options_equal(). + if (float_value != opts->float_value(option_name)) { + opts->set_value(option_name, tztrim(float_value), OPTION_PRIORITY_CMDLINE,error); + } + break; + + default: + break; + } + break; + + case CT_EDIT: + // NYI + break; + + case CT_STATIC: + case CT_LISTVIEW: + case CT_UNKNOWN: + // non applicable + break; + } +} + + + +//============================================================ +// populate_control +//============================================================ + +static void populate_control(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name) +{ + int i = 0; + BOOL bool_value = 0; + int int_value = 0; + float float_value = 0; + const char *string_value; + const char *item_string; + int selected_index = 0; + char buffer[128]; + int trackbar_range = 0; + int trackbar_pos = 0; + double trackbar_range_d = 0; + + // use default populate control value + switch(get_control_type(control)) + { + case CT_BUTTON: + assert(entry->type == DM_BOOL); + bool_value = opts->bool_value(option_name); + Button_SetCheck(control, bool_value); + break; + + case CT_EDIT: + case CT_STATIC: + switch(entry->type) + { + case DM_STRING: + string_value = opts->value(option_name); + break; + + case DM_INT: + int_value = opts->int_value(option_name); + if (entry->int_format != NULL) + snprintf(buffer, ARRAY_LENGTH(buffer), entry->int_format, int_value); + else + snprintf(buffer, ARRAY_LENGTH(buffer), "%d", int_value); + string_value = buffer; + break; + + case DM_FLOAT: + float_value = opts->float_value(option_name); + if (entry->float_format != NULL) + snprintf(buffer, ARRAY_LENGTH(buffer), entry->float_format, float_value); + else + snprintf(buffer, ARRAY_LENGTH(buffer), "%f", float_value); + string_value = buffer; + break; + + default: + string_value = ""; + break; + } + if (string_value == NULL) + string_value = ""; + win_set_window_text_utf8(control, string_value); + break; + + case CT_COMBOBOX: + selected_index = 0; + switch(entry->type) + { + case DM_INT: + int_value = opts->int_value(option_name); + for (i = 0; i < ComboBox_GetCount(control); i++) + { + if (int_value == (int) ComboBox_GetItemData(control, i)) + { + selected_index = i; + break; + } + } + break; + + case DM_STRING: + string_value = opts->value(option_name); + for (i = 0; i < ComboBox_GetCount(control); i++) + { + item_string = (const char *) ComboBox_GetItemData(control, i); + if (!core_stricmp(string_value, item_string ? item_string : "")) + { + selected_index = i; + break; + } + } + break; + + default: + break; + } + (void)ComboBox_SetCurSel(control, selected_index); + break; + + case CT_TRACKBAR: + // do we need to set the trackbar options? +/* if (!entry->use_trackbar_options) + { + switch(options_get_range_type(opts, option_name)) + { + case OPTION_RANGE_NONE: + // do nothing + break; + + case OPTION_RANGE_INT: + options_get_range_int(opts, option_name, &minval_int, &maxval_int); + entry->use_trackbar_options = TRUE; + entry->trackbar_min = minval_int; + entry->trackbar_max = maxval_int; + entry->trackbar_increments = 1; + break; + + case OPTION_RANGE_FLOAT: + options_get_range_float(opts, option_name, &minval_float, &maxval_float); + entry->use_trackbar_options = TRUE; + entry->trackbar_min = minval_float; + entry->trackbar_max = maxval_float; + entry->trackbar_increments = (float)0.05; + break; + } + } + */ + + // do we specify default options for this control? if so, we need to specify + // the range + if (entry->use_trackbar_options) + { + trackbar_range_d = floor(((entry->trackbar_max - entry->trackbar_min) + / entry->trackbar_increments) + 0.5); + trackbar_range = (int) trackbar_range_d; + SendMessage(control, TBM_SETRANGEMIN, (WPARAM) FALSE, (LPARAM) 0); + SendMessage(control, TBM_SETRANGEMAX, (WPARAM) FALSE, (LPARAM) trackbar_range); + } + + switch(entry->type) + { + case DM_INT: + int_value = opts->int_value(option_name); + trackbar_pos = trackbar_position_from_value(entry, int_value); + break; + + case DM_FLOAT: + float_value = opts->float_value(option_name); + trackbar_pos = trackbar_position_from_value(entry, float_value); + break; + + default: + trackbar_pos = 0; + break; + } + SendMessage(control, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) trackbar_pos); + break; + + case CT_LISTVIEW: + case CT_UNKNOWN: + // non applicable + break; + } +} + +// Return a string from a float value with trailing zeros removed. +static char *tztrim(float float_value) +{ + static char tz_string[20]; + char float_string[20]; + char *ptr; + int i = 0; + + sprintf(float_string, "%f", float_value); + + ptr = float_string; + + // Copy before the '.' + while (*ptr && *ptr != '.') { + tz_string[i++] = *ptr++; + } + // add the '.' and the next digit + if (*ptr == '.') { + tz_string[i++] = *ptr++; + tz_string[i++] = *ptr++; + } + // Keep copying until we hit a '0' + while (*ptr && *ptr != '0') { + tz_string[i++] = *ptr++; + } + // Null terminate + tz_string[i] = '\0'; + return tz_string; +} + diff --git a/docs/release/src/osd/winui/datamap.h b/docs/release/src/osd/winui/datamap.h new file mode 100644 index 00000000000..045ae1245c4 --- /dev/null +++ b/docs/release/src/osd/winui/datamap.h @@ -0,0 +1,73 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +//============================================================ +// +// datamap.c - Win32 dialog and options bridge code +// +//============================================================ + +#ifndef _DATAMAP_H_ +#define _DATAMAP_H_ + +#include "emu.h" + + +//============================================================ +// TYPE DEFINITIONS +//============================================================ + +enum _datamap_entry_type +{ + DM_NONE = 0, + DM_BOOL, + DM_INT, + DM_FLOAT, + DM_STRING +}; +typedef enum _datamap_entry_type datamap_entry_type; + + +enum _datamap_callback_type +{ + DCT_READ_CONTROL, + DCT_POPULATE_CONTROL, + DCT_UPDATE_STATUS, + + DCT_COUNT +}; + +typedef enum _datamap_callback_type datamap_callback_type; + + +typedef struct _datamap datamap; +// MSH - Callback can now return TRUE, signifying that changes have been made, but should NOT be broadcast. +typedef BOOL (*datamap_callback)(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name); +typedef void (*get_option_name_callback)(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size); + + +//============================================================ +// PROTOTYPES +//============================================================ + +// datamap creation and disposal +datamap *datamap_create(void); +void datamap_free(datamap *map); + +// datamap setup +void datamap_add(datamap *map, int dlgitem, datamap_entry_type type, const char *option_name); +void datamap_set_callback(datamap *map, int dlgitem, datamap_callback_type callback_type, datamap_callback callback); +void datamap_set_option_name_callback(datamap *map, int dlgitem, get_option_name_callback get_option_name); +void datamap_set_trackbar_range(datamap *map, int dlgitem, float min, float max, float increments); +void datamap_set_int_format(datamap *map, int dlgitem, const char *format); +void datamap_set_float_format(datamap *map, int dlgitem, const char *format); + +// datamap operations +BOOL datamap_read_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem); +void datamap_read_all_controls(datamap *map, HWND dialog, windows_options &opts); +void datamap_populate_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem); +void datamap_populate_all_controls(datamap *map, HWND dialog, windows_options &opts); +void datamap_update_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem); +void datamap_update_all_controls(datamap *map, HWND dialog, windows_options *opts); + +#endif // _DATAMAP_H_ diff --git a/docs/release/src/osd/winui/dialogs.cpp b/docs/release/src/osd/winui/dialogs.cpp new file mode 100644 index 00000000000..6d38da23af4 --- /dev/null +++ b/docs/release/src/osd/winui/dialogs.cpp @@ -0,0 +1,872 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/*************************************************************************** + + dialogs.c + + Dialog box procedures go here + +***************************************************************************/ + +#define WIN32_LEAN_AND_MEAN + +#ifdef _MSC_VER +#ifndef NONAMELESSUNION +#define NONAMELESSUNION +#endif +#endif + +// standard windows headers +#include <windows.h> +#include <windowsx.h> +#include <shellapi.h> +#include <commctrl.h> +#include <commdlg.h> + +// standard C headers +#include <string.h> +#include <tchar.h> +#include <stdlib.h> +#include <assert.h> + +// MAMEUI headers +#include "bitmask.h" +#include "treeview.h" +#include "resource.h" +#include "mui_opts.h" +#include "help.h" +#include "winui.h" +#include "properties.h" // For GetHelpIDs + +// MAME headers +#include "strconv.h" +#include "winutf8.h" +#include "drivenum.h" + +#ifdef _MSC_VER +#define snprintf _snprintf +#endif + +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif + +#define FILTERTEXT_LEN 256 + +static char g_FilterText[FILTERTEXT_LEN]; + +#define NUM_EXCLUSIONS 12 + +/* Pairs of filters that exclude each other */ +static DWORD filterExclusion[NUM_EXCLUSIONS] = +{ + IDC_FILTER_CLONES, IDC_FILTER_ORIGINALS, + IDC_FILTER_NONWORKING, IDC_FILTER_WORKING, + IDC_FILTER_UNAVAILABLE, IDC_FILTER_AVAILABLE, + IDC_FILTER_RASTER, IDC_FILTER_VECTOR, + IDC_FILTER_HORIZONTAL, IDC_FILTER_VERTICAL, + IDC_FILTER_ARCADE, IDC_FILTER_MESS, +}; + +static void DisableFilterControls(HWND hWnd, LPCFOLDERDATA lpFilterRecord, LPCFILTER_ITEM lpFilterItem, DWORD dwFlags); +static void EnableFilterExclusions(HWND hWnd, DWORD dwCtrlID); +static DWORD ValidateFilters(LPCFOLDERDATA lpFilterRecord, DWORD dwFlags); +static void OnHScroll(HWND hWnd, HWND hwndCtl, UINT code, int pos); + +/***************************************************************************/ + +const char * GetFilterText(void) +{ + return g_FilterText; +} + +INT_PTR CALLBACK ResetDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + BOOL resetFilters = FALSE; + BOOL resetGames = FALSE; + BOOL resetUI = FALSE; + BOOL resetDefaults = FALSE; + + switch (Msg) + { + case WM_INITDIALOG: + return TRUE; + + case WM_HELP: + /* User clicked the ? from the upper right on a control */ + HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs()); + break; + + case WM_CONTEXTMENU: + HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs()); + + break; + + case WM_COMMAND : + switch (GET_WM_COMMAND_ID(wParam, lParam)) + { + case IDOK : + resetFilters = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_FILTERS)); + resetGames = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_GAMES)); + resetDefaults = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_DEFAULT)); + resetUI = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_UI)); + if (resetFilters || resetGames || resetUI || resetDefaults) + { + + TCHAR temp[400]; + _tcscpy(temp, (LPCTSTR)MAMEUINAME); + _tcscat(temp, TEXT(" will now reset the following\n")); + _tcscat(temp, TEXT("to the default settings:\n\n")); + + if (resetDefaults) + _tcscat(temp, TEXT("Global game options\n")); + if (resetGames) + _tcscat(temp, TEXT("Individual game options\n")); + if (resetFilters) + _tcscat(temp, TEXT("Custom folder filters\n")); + if (resetUI) + { + _tcscat(temp, TEXT("User interface settings\n\n")); + _tcscat(temp, TEXT("Resetting the User Interface options\n")); + _tcscat(temp, TEXT("requires exiting ")); + _tcscat(temp, (LPCTSTR)MAMEUINAME); + _tcscat(temp, TEXT(".\n")); + } + _tcscat(temp, TEXT("\nDo you wish to continue?")); + if (MessageBox(hDlg, temp, TEXT("Restore Settings"), IDOK) == IDOK) + { + if (resetFilters) + ResetFilters(); + + if (resetGames) + ResetAllGameOptions(); + + if (resetDefaults) + ResetGameDefaults(); + + // This is the only case we need to exit and restart for. + if (resetUI) + { + ResetGUI(); + EndDialog(hDlg, 1); + return TRUE; + } else { + EndDialog(hDlg, 0); + return TRUE; + } + } else { + // Give the user a chance to change what they want to reset. + break; + } + } + // Nothing was selected but OK, just fall through + case IDCANCEL : + EndDialog(hDlg, 0); + return TRUE; + } + break; + } + return 0; +} + +INT_PTR CALLBACK InterfaceDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + CHOOSECOLOR cc; + COLORREF choice_colors[16]; + TCHAR tmp[4]; + int i = 0; + BOOL bRedrawList = FALSE; + int nCurSelection = 0; + int nHistoryTab = 0; + int nTabCount = 0; + int nPatternCount = 0; + int value = 0; + const char* snapname = NULL; + + switch (Msg) + { + case WM_INITDIALOG: + Button_SetCheck(GetDlgItem(hDlg,IDC_START_GAME_CHECK),GetGameCheck()); + Button_SetCheck(GetDlgItem(hDlg,IDC_JOY_GUI),GetJoyGUI()); + Button_SetCheck(GetDlgItem(hDlg,IDC_KEY_GUI),GetKeyGUI()); + Button_SetCheck(GetDlgItem(hDlg,IDC_HIDE_MOUSE),GetHideMouseOnStartup()); + + // Get the current value of the control + SendDlgItemMessage(hDlg, IDC_CYCLETIMESEC, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(0, 60)); /* [0, 60] */ + value = GetCycleScreenshot(); + SendDlgItemMessage(hDlg,IDC_CYCLETIMESEC, TBM_SETPOS, TRUE, value); + _itot(value,tmp,10); + SendDlgItemMessage(hDlg,IDC_CYCLETIMESECTXT,WM_SETTEXT,0, (WPARAM)tmp); + + Button_SetCheck(GetDlgItem(hDlg,IDC_STRETCH_SCREENSHOT_LARGER), GetStretchScreenShotLarger()); + Button_SetCheck(GetDlgItem(hDlg,IDC_FILTER_INHERIT), GetFilterInherit()); + Button_SetCheck(GetDlgItem(hDlg,IDC_NOOFFSET_CLONES), GetOffsetClones()); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Snapshot")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_SCREENSHOT); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Flyer")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_FLYER); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Cabinet")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_CABINET); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Marquee")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_MARQUEE); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Title")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_TITLE); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Control Panel")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_CONTROL_PANEL); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("PCB")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_PCB); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("All")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_ALL); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("None")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_NONE); + if (GetHistoryTab() < MAX_TAB_TYPES) { + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_HISTORY_TAB), GetHistoryTab()); + } + else { + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_HISTORY_TAB), GetHistoryTab()-TAB_SUBTRACT); + } + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g"); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename + Increment")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g%i"); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Gamename")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g/%g"); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Gamename + Increment")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g/%g%i"); + (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Increment")); + (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount, "%g/%i"); + //Default to this setting + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++); + snapname = GetSnapName(); + if (core_stricmp(snapname,"%g" )==0) { + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 0); + } + if (core_stricmp(snapname,"%g%i" )==0) { + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 1); + } + if (core_stricmp(snapname,"%g/%g" )==0) { + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 2); + } + if (core_stricmp(snapname,"%g/%g%i" )==0) { + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 3); + } + if (core_stricmp(snapname,"%g/%i" )==0) { + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 4); + } + + SendDlgItemMessage(hDlg, IDC_SCREENSHOT_BORDERSIZE, TBM_SETRANGE, + (WPARAM)FALSE, + (LPARAM)MAKELONG(0, 100)); /* [0, 100] */ + value = GetScreenshotBorderSize(); + SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZE, TBM_SETPOS, TRUE, value); + _itot(value,tmp,10); + SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZETXT,WM_SETTEXT,0, (WPARAM)tmp); + + //return TRUE; + break; + + case WM_HELP: + /* User clicked the ? from the upper right on a control */ + HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs()); + break; + + case WM_CONTEXTMENU: + HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs()); + break; + case WM_HSCROLL: + HANDLE_WM_HSCROLL(hDlg, wParam, lParam, OnHScroll); + break; + case WM_COMMAND : + switch (GET_WM_COMMAND_ID(wParam, lParam)) + { + case IDC_SCREENSHOT_BORDERCOLOR: + { + for (i=0;i<16;i++) + choice_colors[i] = GetCustomColor(i); + + cc.lStructSize = sizeof(CHOOSECOLOR); + cc.hwndOwner = hDlg; + cc.rgbResult = GetScreenshotBorderColor(); + cc.lpCustColors = choice_colors; + cc.Flags = CC_ANYCOLOR | CC_RGBINIT | CC_SOLIDCOLOR; + if (!ChooseColor(&cc)) + return TRUE; + for (i=0;i<16;i++) + SetCustomColor(i,choice_colors[i]); + SetScreenshotBorderColor(cc.rgbResult); + UpdateScreenShot(); + return TRUE; + } + case IDOK : + { + BOOL checked = FALSE; + + SetGameCheck(Button_GetCheck(GetDlgItem(hDlg, IDC_START_GAME_CHECK))); + SetJoyGUI(Button_GetCheck(GetDlgItem(hDlg, IDC_JOY_GUI))); + SetKeyGUI(Button_GetCheck(GetDlgItem(hDlg, IDC_KEY_GUI))); + SetHideMouseOnStartup(Button_GetCheck(GetDlgItem(hDlg,IDC_HIDE_MOUSE))); + + if( Button_GetCheck(GetDlgItem(hDlg,IDC_RESET_PLAYCOUNT ) ) ) + { + ResetPlayCount( -1 ); + bRedrawList = TRUE; + } + if( Button_GetCheck(GetDlgItem(hDlg,IDC_RESET_PLAYTIME ) ) ) + { + ResetPlayTime( -1 ); + bRedrawList = TRUE; + } + value = SendDlgItemMessage(hDlg,IDC_CYCLETIMESEC, TBM_GETPOS, 0, 0); + if( GetCycleScreenshot() != value ) + { + SetCycleScreenshot(value); + } + value = SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZE, TBM_GETPOS, 0, 0); + if( GetScreenshotBorderSize() != value ) + { + SetScreenshotBorderSize(value); + UpdateScreenShot(); + } + value = SendDlgItemMessage(hDlg,IDC_HIGH_PRIORITY, TBM_GETPOS, 0, 0); + checked = Button_GetCheck(GetDlgItem(hDlg,IDC_STRETCH_SCREENSHOT_LARGER)); + if (checked != GetStretchScreenShotLarger()) + { + SetStretchScreenShotLarger(checked); + UpdateScreenShot(); + } + checked = Button_GetCheck(GetDlgItem(hDlg,IDC_FILTER_INHERIT)); + if (checked != GetFilterInherit()) + { + SetFilterInherit(checked); + // LineUpIcons does just a ResetListView(), which is what we want here + PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, FALSE),(LPARAM)NULL); + } + checked = Button_GetCheck(GetDlgItem(hDlg,IDC_NOOFFSET_CLONES)); + if (checked != GetOffsetClones()) + { + SetOffsetClones(checked); + // LineUpIcons does just a ResetListView(), which is what we want here + PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, FALSE),(LPARAM)NULL); + } + nCurSelection = ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_SNAPNAME)); + if (nCurSelection != CB_ERR) { + const char* snapname_selection = (const char*)ComboBox_GetItemData(GetDlgItem(hDlg,IDC_SNAPNAME), nCurSelection); + if (snapname_selection) { + SetSnapName(snapname_selection); + } + } + EndDialog(hDlg, 0); + + nCurSelection = ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_HISTORY_TAB)); + if (nCurSelection != CB_ERR) + nHistoryTab = ComboBox_GetItemData(GetDlgItem(hDlg,IDC_HISTORY_TAB), nCurSelection); + EndDialog(hDlg, 0); + if( GetHistoryTab() != nHistoryTab ) + { + SetHistoryTab(nHistoryTab, TRUE); + ResizePickerControls(GetMainWindow()); + UpdateScreenShot(); + } + if( bRedrawList ) + { + UpdateListView(); + } + return TRUE; + } + case IDCANCEL : + EndDialog(hDlg, 0); + return TRUE; + } + break; + } + return 0; +} + +INT_PTR CALLBACK FilterDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + static DWORD dwFilters; + static DWORD dwpFilters; + static LPCFOLDERDATA lpFilterRecord; + char strText[250]; + int i = 0; + + switch (Msg) + { + case WM_INITDIALOG: + { + LPTREEFOLDER folder = GetCurrentFolder(); + LPTREEFOLDER lpParent = NULL; + LPCFILTER_ITEM g_lpFilterList = GetFilterList(); + + dwFilters = 0; + + if (folder != NULL) + { + char tmp[80]; + + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_EDIT), g_FilterText); + Edit_SetSel(GetDlgItem(hDlg, IDC_FILTER_EDIT), 0, -1); + // Mask out non filter flags + dwFilters = folder->m_dwFlags & F_MASK; + // Display current folder name in dialog titlebar + snprintf(tmp,ARRAY_LENGTH(tmp),"Filters for %s Folder",folder->m_lpTitle); + win_set_window_text_utf8(hDlg, tmp); + if ( GetFilterInherit() ) + { + BOOL bShowExplanation = FALSE; + lpParent = GetFolder( folder->m_nParent ); + if( lpParent ) + { + /* Check the Parent Filters and inherit them on child, + * No need to promote all games to parent folder, works as is */ + dwpFilters = lpParent->m_dwFlags & F_MASK; + /*Check all possible Filters if inherited solely from parent, e.g. not being set explicitly on our folder*/ + if( (dwpFilters & F_CLONES) && !(dwFilters & F_CLONES) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_CLONES), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_CLONES), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_NONWORKING) && !(dwFilters & F_NONWORKING) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_NONWORKING), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_NONWORKING), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_UNAVAILABLE) && !(dwFilters & F_UNAVAILABLE) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_UNAVAILABLE), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_UNAVAILABLE), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_VECTOR) && !(dwFilters & F_VECTOR) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VECTOR), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VECTOR), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_RASTER) && !(dwFilters & F_RASTER) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_RASTER), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_RASTER), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_ORIGINALS) && !(dwFilters & F_ORIGINALS) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ORIGINALS), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ORIGINALS), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_WORKING) && !(dwFilters & F_WORKING) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_WORKING), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_WORKING), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_AVAILABLE) && !(dwFilters & F_AVAILABLE) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_AVAILABLE), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_AVAILABLE), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_HORIZONTAL) && !(dwFilters & F_HORIZONTAL) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_HORIZONTAL), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_HORIZONTAL), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_VERTICAL) && !(dwFilters & F_VERTICAL) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VERTICAL), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VERTICAL), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_ARCADE) && !(dwFilters & F_ARCADE) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ARCADE), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ARCADE), strText); + bShowExplanation = TRUE; + } + if( (dwpFilters & F_MESS) && !(dwFilters & F_MESS) ) + { + /*Add a Specifier to the Checkbox to show it was inherited from the parent*/ + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_MESS), strText, 250); + strcat(strText, " (*)"); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_MESS), strText); + bShowExplanation = TRUE; + } + /*Do not or in the Values of the parent, so that the values of the folder still can be set*/ + //dwFilters |= dwpFilters; + } + if( ! bShowExplanation ) + { + ShowWindow(GetDlgItem(hDlg, IDC_INHERITED), FALSE ); + } + } + else + { + ShowWindow(GetDlgItem(hDlg, IDC_INHERITED), FALSE ); + } + // Find the matching filter record if it exists + lpFilterRecord = FindFilter(folder->m_nFolderId); + + // initialize and disable appropriate controls + for (i = 0; g_lpFilterList[i].m_dwFilterType; i++) + { + DisableFilterControls(hDlg, lpFilterRecord, &g_lpFilterList[i], dwFilters); + } + } + SetFocus(GetDlgItem(hDlg, IDC_FILTER_EDIT)); + return FALSE; + } + case WM_HELP: + // User clicked the ? from the upper right on a control + HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, + HH_TP_HELP_WM_HELP, GetHelpIDs()); + break; + + case WM_CONTEXTMENU: + HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs()); + break; + + case WM_COMMAND: + { + WORD wID = GET_WM_COMMAND_ID(wParam, lParam); + WORD wNotifyCode = GET_WM_COMMAND_CMD(wParam, lParam); + LPTREEFOLDER folder = GetCurrentFolder(); + LPCFILTER_ITEM g_lpFilterList = GetFilterList(); + + switch (wID) + { + case IDOK: + dwFilters = 0; + + win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_EDIT), g_FilterText, FILTERTEXT_LEN); + + // see which buttons are checked + for (i = 0; g_lpFilterList[i].m_dwFilterType; i++) + { + if (Button_GetCheck(GetDlgItem(hDlg, g_lpFilterList[i].m_dwCtrlID))) + dwFilters |= g_lpFilterList[i].m_dwFilterType; + } + + // Mask out invalid filters + dwFilters = ValidateFilters(lpFilterRecord, dwFilters); + + // Keep non filter flags + folder->m_dwFlags &= ~F_MASK; + + // put in the set filters + folder->m_dwFlags |= dwFilters; + + EndDialog(hDlg, 1); + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, 0); + return TRUE; + + default: + // Handle unchecking mutually exclusive filters + if (wNotifyCode == BN_CLICKED) + EnableFilterExclusions(hDlg, wID); + } + } + break; + } + return 0; +} + +INT_PTR CALLBACK AboutDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + switch (Msg) + { + case WM_INITDIALOG: + { + HBITMAP hBmp; + hBmp = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_ABOUT), + IMAGE_BITMAP, 0, 0, LR_SHARED); + SendDlgItemMessage(hDlg, IDC_ABOUT, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmp); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_VERSION), GetVersionString()); + } + return 1; + + case WM_COMMAND: + EndDialog(hDlg, 0); + return 1; + } + return 0; +} + +INT_PTR CALLBACK AddCustomFileDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + static LPTREEFOLDER default_selection = NULL; + static int driver_index = 0; + BOOL res = 0; + + switch (Msg) + { + case WM_INITDIALOG: + { + TREEFOLDER **folders; + int num_folders = 0; + int i = 0; + TVINSERTSTRUCT tvis; + TVITEM tvi; + BOOL first_entry = TRUE; + HIMAGELIST treeview_icons = GetTreeViewIconList(); + + // current game passed in using DialogBoxParam() + driver_index = lParam; + + (void)TreeView_SetImageList(GetDlgItem(hDlg,IDC_CUSTOM_TREE), treeview_icons, LVSIL_NORMAL); + + GetFolders(&folders,&num_folders); + + // should add "New..." + + // insert custom folders into our tree view + for (i=0;i<num_folders;i++) + { + if (folders[i]->m_dwFlags & F_CUSTOM) + { + HTREEITEM hti; + int jj = 0; + + if (folders[i]->m_nParent == -1) + { + memset(&tvi, '\0', sizeof(tvi)); + tvis.hParent = TVI_ROOT; + tvis.hInsertAfter = TVI_SORT; + tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; + tvi.pszText = folders[i]->m_lptTitle; + tvi.lParam = (LPARAM)folders[i]; + tvi.iImage = GetTreeViewIconIndex(folders[i]->m_nIconId); + tvi.iSelectedImage = 0; +#if !defined(NONAMELESSUNION) + tvis.item = tvi; +#else + tvis.DUMMYUNIONNAME.item = tvi; +#endif + + hti = TreeView_InsertItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvis); + + /* look for children of this custom folder */ + for (jj=0;jj<num_folders;jj++) + { + if (folders[jj]->m_nParent == i) + { + HTREEITEM hti_child; + tvis.hParent = hti; + tvis.hInsertAfter = TVI_SORT; + tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; + tvi.pszText = folders[jj]->m_lptTitle; + tvi.lParam = (LPARAM)folders[jj]; + tvi.iImage = GetTreeViewIconIndex(folders[jj]->m_nIconId); + tvi.iSelectedImage = 0; +#if !defined(NONAMELESSUNION) + tvis.item = tvi; +#else + tvis.DUMMYUNIONNAME.item = tvi; +#endif + hti_child = TreeView_InsertItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvis); + if (folders[jj] == default_selection) + res = TreeView_SelectItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti_child); + } + } + + /*TreeView_Expand(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti,TVE_EXPAND);*/ + if (first_entry || folders[i] == default_selection) + { + res = TreeView_SelectItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti); + first_entry = FALSE; + } + } + } + } + + win_set_window_text_utf8(GetDlgItem(hDlg,IDC_CUSTOMFILE_GAME), + ModifyThe(driver_list::driver(driver_index).description)); + + return TRUE; + } + case WM_COMMAND: + switch (GET_WM_COMMAND_ID(wParam, lParam)) + { + case IDOK: + { + TVITEM tvi; + tvi.hItem = TreeView_GetSelection(GetDlgItem(hDlg,IDC_CUSTOM_TREE)); + tvi.mask = TVIF_PARAM; + if (TreeView_GetItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvi) == TRUE) + { + /* should look for New... */ + + default_selection = (LPTREEFOLDER)tvi.lParam; /* start here next time */ + + AddToCustomFolder((LPTREEFOLDER)tvi.lParam,driver_index); + } + + EndDialog(hDlg, 0); + return TRUE; + } + case IDCANCEL: + EndDialog(hDlg, 0); + return TRUE; + + } + break; + } + return 0; +} + +INT_PTR CALLBACK DirectXDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + HWND hEdit; + + const char *directx_help = + MAMEUINAME " requires DirectX version 9 or later, which is a set of operating\r\n" + "system extensions by Microsoft for Windows 9x, NT and 2000.\r\n\r\n" + "Visit Microsoft's DirectX web page at http://www.microsoft.com/directx\r\n" + "download DirectX, install it, and then run " MAMEUINAME " again.\r\n"; + + switch (Msg) + { + case WM_INITDIALOG: + hEdit = GetDlgItem(hDlg, IDC_DIRECTX_HELP); + Edit_SetSel(hEdit, Edit_GetTextLength(hEdit), Edit_GetTextLength(hEdit)); + Edit_ReplaceSel(hEdit, directx_help); + return 1; + + case WM_COMMAND: + if (LOWORD(wParam) == IDB_WEB_PAGE) + ShellExecute(GetMainWindow(), NULL, TEXT("http://www.microsoft.com/directx"), + NULL, NULL, SW_SHOWNORMAL); + + if (LOWORD(wParam) == IDCANCEL || LOWORD(wParam) == IDB_WEB_PAGE) + EndDialog(hDlg, 0); + return 1; + } + return 0; +} + +/*************************************************************************** + private functions + ***************************************************************************/ + +static void DisableFilterControls(HWND hWnd, LPCFOLDERDATA lpFilterRecord, LPCFILTER_ITEM lpFilterItem, DWORD dwFlags) +{ + HWND hWndCtrl = GetDlgItem(hWnd, lpFilterItem->m_dwCtrlID); + DWORD dwFilterType = lpFilterItem->m_dwFilterType; + + /* Check the appropriate control */ + if (dwFilterType & dwFlags) + Button_SetCheck(hWndCtrl, MF_CHECKED); + + /* No special rules for this folder? */ + if (!lpFilterRecord) + return; + + /* If this is an excluded filter */ + if (lpFilterRecord->m_dwUnset & dwFilterType) + { + /* uncheck it and disable the control */ + Button_SetCheck(hWndCtrl, MF_UNCHECKED); + EnableWindow(hWndCtrl, FALSE); + } + + /* If this is an implied filter, check it and disable the control */ + if (lpFilterRecord->m_dwSet & dwFilterType) + { + Button_SetCheck(hWndCtrl, MF_CHECKED); + EnableWindow(hWndCtrl, FALSE); + } +} + +// Handle disabling mutually exclusive controls +static void EnableFilterExclusions(HWND hWnd, DWORD dwCtrlID) +{ + int i = 0; + DWORD id = 0; + + for (i = 0; i < NUM_EXCLUSIONS; i++) + { + // is this control in the list? + if (filterExclusion[i] == dwCtrlID) + { + // found the control id + break; + } + } + + // if the control was found + if (i < NUM_EXCLUSIONS) + { + // find the opposing control id + if (i % 2) + id = filterExclusion[i - 1]; + else + id = filterExclusion[i + 1]; + + // Uncheck the other control + Button_SetCheck(GetDlgItem(hWnd, id), MF_UNCHECKED); + } +} + +// Validate filter setting, mask out inappropriate filters for this folder +static DWORD ValidateFilters(LPCFOLDERDATA lpFilterRecord, DWORD dwFlags) +{ + DWORD dwFilters = 0; + + if (lpFilterRecord != (LPFOLDERDATA)0) + { + // Mask out implied and excluded filters + dwFilters = lpFilterRecord->m_dwSet | lpFilterRecord->m_dwUnset; + return dwFlags & ~dwFilters; + } + + // No special cases - all filters apply + return dwFlags; +} + +static void OnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos) +{ + int value = 0; + TCHAR tmp[4]; + if (hwndCtl == GetDlgItem(hwnd, IDC_CYCLETIMESEC)) + { + value = SendDlgItemMessage(hwnd,IDC_CYCLETIMESEC, TBM_GETPOS, 0, 0); + _itot(value,tmp,10); + SendDlgItemMessage(hwnd,IDC_CYCLETIMESECTXT,WM_SETTEXT,0, (WPARAM)tmp); + } + else + if (hwndCtl == GetDlgItem(hwnd, IDC_SCREENSHOT_BORDERSIZE)) + { + value = SendDlgItemMessage(hwnd,IDC_SCREENSHOT_BORDERSIZE, TBM_GETPOS, 0, 0); + _itot(value,tmp,10); + SendDlgItemMessage(hwnd,IDC_SCREENSHOT_BORDERSIZETXT,WM_SETTEXT,0, (WPARAM)tmp); + } +} diff --git a/docs/release/src/osd/winui/dialogs.h b/docs/release/src/osd/winui/dialogs.h new file mode 100644 index 00000000000..07bff2075e6 --- /dev/null +++ b/docs/release/src/osd/winui/dialogs.h @@ -0,0 +1,18 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef DIALOGS_H +#define DIALOGS_H + +const char * GetFilterText(void); + +INT_PTR CALLBACK ResetDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK InterfaceDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK FilterDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK AboutDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK AddCustomFileDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK DirectXDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); + + +#endif + diff --git a/docs/release/src/osd/winui/dijoystick.cpp b/docs/release/src/osd/winui/dijoystick.cpp new file mode 100644 index 00000000000..34251a9595a --- /dev/null +++ b/docs/release/src/osd/winui/dijoystick.cpp @@ -0,0 +1,630 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/*************************************************************************** + + dijoystick.c + + ***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +// standard C headers +#include <stdio.h> +#include <math.h> +#include <tchar.h> + +// MAMEUI headers +#include "winui.h" +#include "directinput.h" +#include "dijoystick.h" +#include "mui_util.h" // For ErrorMsg +#include "dxdecode.h" // for DirectXDecodeError + +/*************************************************************************** + function prototypes + ***************************************************************************/ + +static int DIJoystick_init(void); +static void DIJoystick_exit(void); +static void DIJoystick_poll_joysticks(void); +static int DIJoystick_is_joy_pressed(int joycode); +static BOOL DIJoystick_Available(void); + +static BOOL CALLBACK DIJoystick_EnumDeviceProc(LPDIDEVICEINSTANCE pdidi, LPVOID pv); + +/*************************************************************************** + External variables + ***************************************************************************/ + +const struct OSDJoystick DIJoystick = +{ + DIJoystick_init, /* init */ + DIJoystick_exit, /* exit */ + DIJoystick_is_joy_pressed, /* joy_pressed */ + DIJoystick_poll_joysticks, /* poll_joysticks */ + DIJoystick_Available, /* Available */ +}; + +/*************************************************************************** + Internal structures + ***************************************************************************/ + +#define MAX_PHYSICAL_JOYSTICKS 20 +#define MAX_AXES 20 + +typedef struct +{ + GUID guid; + TCHAR *name; + + int offset; /* offset in dijoystate */ +} axis_type; + +typedef struct +{ + BOOL use_joystick; + + GUID guidDevice; + TCHAR *name; + + BOOL is_light_gun; + + LPDIRECTINPUTDEVICE2 did; + + DWORD num_axes; + axis_type axes[MAX_AXES]; + + DWORD num_pov; + DWORD num_buttons; + + DIJOYSTATE dijs; + +} joystick_type; + +struct tDIJoystick_private +{ + int use_count; /* the gui and game can both init/exit us, so keep track */ + BOOL m_bCoinSlot; + + DWORD num_joysticks; + joystick_type joysticks[MAX_PHYSICAL_JOYSTICKS]; /* actual joystick data! */ +}; + +/* internal functions needing our declarations */ +static BOOL CALLBACK DIJoystick_EnumAxisObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef); +static BOOL CALLBACK DIJoystick_EnumPOVObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef); +static BOOL CALLBACK DIJoystick_EnumButtonObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef); +static void ClearJoyState(DIJOYSTATE *pdijs); + +static void InitJoystick(joystick_type *joystick); +static void ExitJoystick(joystick_type *joystick); + +/*************************************************************************** + Internal variables + ***************************************************************************/ + +static struct tDIJoystick_private This; + +static const GUID guidNULL = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}}; + +/*************************************************************************** + External OSD functions + ***************************************************************************/ +/* + put here anything you need to do when the program is started. Return 0 if + initialization was successful, nonzero otherwise. +*/ +static int DIJoystick_init(void) +{ + DWORD i = 0; + HRESULT hr; + LPDIRECTINPUT di = GetDirectInput(); + + This.use_count++; + + This.num_joysticks = 0; + + if (di == NULL) + { + ErrorMsg("DirectInput not initialized"); + return 0; + } + + /* enumerate for joystick devices */ + hr = IDirectInput_EnumDevices(di, DIDEVTYPE_JOYSTICK, + (LPDIENUMDEVICESCALLBACK)DIJoystick_EnumDeviceProc, + NULL, + DIEDFL_ATTACHEDONLY ); + if (FAILED(hr)) + { + ErrorMsg("DirectInput EnumDevices() failed: %s", DirectXDecodeError(hr)); + return 0; + } + + /* create each joystick device, enumerate each joystick for axes, etc */ + for (i = 0; i < This.num_joysticks; i++) + { + InitJoystick(&This.joysticks[i]); + } + + /* Are there any joysticks attached? */ + if (This.num_joysticks < 1) + { + /*ErrorMsg("DirectInput EnumDevices didn't find any joysticks");*/ + return 0; + } + + return 0; +} + +/* + put here cleanup routines to be executed when the program is terminated. +*/ +static void DIJoystick_exit(void) +{ + DWORD i = 0; + + This.use_count--; + + if (This.use_count > 0) + return; + + for (i = 0; i < This.num_joysticks; i++) + ExitJoystick(&This.joysticks[i]); + + This.num_joysticks = 0; +} + +static void DIJoystick_poll_joysticks(void) +{ + HRESULT hr; + DWORD i = 0; + + This.m_bCoinSlot = 0; + + for (i = 0; i < This.num_joysticks; i++) + { + /* start by clearing the structure, then fill it in if possible */ + + ClearJoyState(&This.joysticks[i].dijs); + + if (This.joysticks[i].did == NULL) + continue; + + if (This.joysticks[i].use_joystick == FALSE) + continue; + + hr = IDirectInputDevice2_Poll(This.joysticks[i].did); + + hr = IDirectInputDevice2_GetDeviceState(This.joysticks[i].did,sizeof(DIJOYSTATE), &This.joysticks[i].dijs); + if (FAILED(hr)) + { + if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) + { + hr = IDirectInputDevice2_Acquire(This.joysticks[i].did); + } + continue; + } + } +} + +/* + check if the DIJoystick is moved in the specified direction, defined in + osdepend.h. Return 0 if it is not pressed, nonzero otherwise. +*/ + +static int DIJoystick_is_joy_pressed(int joycode) +{ + int joy_num = 0; + int stick = 0; + int axis = 0; + int dir = 0; + + DIJOYSTATE dijs; + + int value = 0; + int dz = 60; + + joy_num = GET_JOYCODE_JOY(joycode); + + /* do we have as many sticks? */ + if (joy_num == 0 || This.num_joysticks < joy_num) + return 0; + joy_num--; + + if (This.joysticks[joy_num].use_joystick == FALSE) + return 0; + + dijs = This.joysticks[joy_num].dijs; + + stick = GET_JOYCODE_STICK(joycode); + + if (stick == JOYCODE_STICK_BTN) + { + /* buttons */ + int button; + + button = GET_JOYCODE_BUTTON(joycode); + button--; + + if (button >= This.joysticks[joy_num].num_buttons + || GET_JOYCODE_DIR(joycode) != JOYCODE_DIR_BTN) + return 0; + + return dijs.rgbButtons[button] != 0; + } + + if (stick == JOYCODE_STICK_POV) + { + /* POV */ + int pov_value = 0; + int angle = 0; + int axis_value = 0; + + int num_pov = GET_JOYCODE_BUTTON(joycode) / 4; + int code = GET_JOYCODE_BUTTON(joycode) % 4; + axis = code / 2; + dir = code % 2; + + if (num_pov >= This.joysticks[joy_num].num_pov) + return 0; + + pov_value = dijs.rgdwPOV[num_pov]; + if (LOWORD(pov_value) == 0xffff) + return 0; + + angle = (pov_value + 27000) % 36000; + angle = (36000 - angle) % 36000; + angle /= 100; + + /* angle is now in degrees counterclockwise from x axis*/ + if (axis == 1) + axis_value = 128 + (int)(127 * cos(2 * M_PI * angle / 360.0)); /* x */ + else + axis_value = 128 + (int)(127 * sin(2 * M_PI * angle / 360.0)); /* y */ + + if (dir == 1) + return axis_value <= (128 - 128 * dz / 100); + else + return axis_value >= (128 + 128 * dz / 100); + } + + /* sticks */ + + axis = GET_JOYCODE_AXIS(joycode); + dir = GET_JOYCODE_DIR(joycode); + + if (axis == 0 || This.joysticks[joy_num].num_axes < axis) + return 0; + axis--; + + value = *(int *)(((byte *)&dijs) + This.joysticks[joy_num].axes[axis].offset); + + if (dir == JOYCODE_DIR_NEG) + return value <= (128 - 128 * dz / 100); + else + return value >= (128 + 128 * dz / 100); +} + +static BOOL DIJoystick_Available(void) +{ + static BOOL bBeenHere = FALSE; + static BOOL bAvailable = FALSE; + HRESULT hr; + GUID guidDevice = guidNULL; + LPDIRECTINPUTDEVICE didTemp; + LPDIRECTINPUTDEVICE didJoystick; + LPDIRECTINPUT di = GetDirectInput(); + + if (di == NULL) + { + return FALSE; + } + + if (bBeenHere == FALSE) + bBeenHere = TRUE; + else + return bAvailable; + + /* enumerate for joystick devices */ + hr = IDirectInput_EnumDevices(di, DIDEVTYPE_JOYSTICK, inputEnumDeviceProc, &guidDevice, DIEDFL_ATTACHEDONLY); + if (FAILED(hr)) + { + return FALSE; + } + + /* Are there any joysticks attached? */ + if (IsEqualGUID(guidDevice, guidNULL)) + { + return FALSE; + } + + hr = IDirectInput_CreateDevice(di, guidDevice, &didTemp, NULL); + if (FAILED(hr)) + { + return FALSE; + } + + /* Determine if DX5 is available by a QI for a DX5 interface. */ + hr = IDirectInputDevice_QueryInterface(didTemp, IID_IDirectInputDevice2, (void**)&didJoystick); + if (FAILED(hr)) + { + bAvailable = FALSE; + } + else + { + bAvailable = TRUE; + IDirectInputDevice_Release(didJoystick); + } + + /* dispose of the temp interface */ + IDirectInputDevice_Release(didTemp); + + return bAvailable; +} + +int DIJoystick_GetNumPhysicalJoysticks() +{ + return This.num_joysticks; +} + +TCHAR* DIJoystick_GetPhysicalJoystickName(int num_joystick) +{ + return This.joysticks[num_joystick].name; +} + +int DIJoystick_GetNumPhysicalJoystickAxes(int num_joystick) +{ + return This.joysticks[num_joystick].num_axes; +} + +TCHAR* DIJoystick_GetPhysicalJoystickAxisName(int num_joystick, int num_axis) +{ + return This.joysticks[num_joystick].axes[num_axis].name; +} + +/*************************************************************************** + Internal functions + ***************************************************************************/ + +BOOL CALLBACK DIJoystick_EnumDeviceProc(LPDIDEVICEINSTANCE pdidi, LPVOID pv) +{ + TCHAR buffer[5000]; + + This.joysticks[This.num_joysticks].guidDevice = pdidi->guidInstance; + + _stprintf(buffer, TEXT("%s (%s)"), pdidi->tszProductName, pdidi->tszInstanceName); + This.joysticks[This.num_joysticks].name = (TCHAR *)malloc((_tcslen(buffer) + 1) * sizeof(TCHAR)); + _tcscpy(This.joysticks[This.num_joysticks].name, buffer); + + This.num_joysticks++; + + return DIENUM_CONTINUE; +} + +static BOOL CALLBACK DIJoystick_EnumAxisObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef) +{ + joystick_type* joystick = (joystick_type*)pvRef; + DIPROPRANGE diprg; + HRESULT hr; + + joystick->axes[joystick->num_axes].guid = lpddoi->guidType; + + joystick->axes[joystick->num_axes].name = (TCHAR *)malloc((_tcslen(lpddoi->tszName) + 1) * sizeof(TCHAR)); + _tcscpy(joystick->axes[joystick->num_axes].name, lpddoi->tszName); + + joystick->axes[joystick->num_axes].offset = lpddoi->dwOfs; + + /*ErrorMsg("got axis %s, offset %i",lpddoi->tszName, lpddoi->dwOfs);*/ + + diprg.diph.dwSize = sizeof(diprg); + diprg.diph.dwHeaderSize = sizeof(diprg.diph); + diprg.diph.dwObj = lpddoi->dwOfs; + diprg.diph.dwHow = DIPH_BYOFFSET; + diprg.lMin = 0; + diprg.lMax = 255; + + hr = IDirectInputDevice2_SetProperty(joystick->did, DIPROP_RANGE, &diprg.diph); + if (FAILED(hr)) /* if this fails, don't use this axis */ + { + free(joystick->axes[joystick->num_axes].name); + joystick->axes[joystick->num_axes].name = NULL; + return DIENUM_CONTINUE; + } + +#ifdef JOY_DEBUG + if (FAILED(hr)) + { + ErrorMsg("DirectInput SetProperty() joystick axis %s failed - %s\n", + joystick->axes[joystick->num_axes].name, DirectXDecodeError(hr)); + } +#endif + + /* Set axis dead zone to 0; we need accurate #'s for analog joystick reading. */ + + hr = SetDIDwordProperty(joystick->did, DIPROP_DEADZONE, lpddoi->dwOfs, DIPH_BYOFFSET, 0); + +#ifdef JOY_DEBUG + if (FAILED(hr)) + { + ErrorMsg("DirectInput SetProperty() joystick axis %s dead zone failed - %s\n", + joystick->axes[joystick->num_axes].name, DirectXDecodeError(hr)); + } +#endif + + joystick->num_axes++; + + return DIENUM_CONTINUE; +} + +static BOOL CALLBACK DIJoystick_EnumPOVObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef) +{ + joystick_type* joystick = (joystick_type*)pvRef; + joystick->num_pov++; + + return DIENUM_CONTINUE; +} + +static BOOL CALLBACK DIJoystick_EnumButtonObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef) +{ + joystick_type* joystick = (joystick_type*)pvRef; + joystick->num_buttons++; + + return DIENUM_CONTINUE; +} + +static void ClearJoyState(DIJOYSTATE *pdijs) +{ + memset(pdijs, 0, sizeof(DIJOYSTATE)); + pdijs->lX = 128; + pdijs->lY = 128; + pdijs->lZ = 128; + pdijs->lRx = 128; + pdijs->lRy = 128; + pdijs->lRz = 128; + pdijs->rglSlider[0] = 128; + pdijs->rglSlider[1] = 128; + pdijs->rgdwPOV[0] = -1; + pdijs->rgdwPOV[1] = -1; + pdijs->rgdwPOV[2] = -1; + pdijs->rgdwPOV[3] = -1; +} + +static void InitJoystick(joystick_type *joystick) +{ + LPDIRECTINPUTDEVICE didTemp; + HRESULT hr; + LPDIRECTINPUT di = GetDirectInput(); + + joystick->use_joystick = FALSE; + + joystick->did = NULL; + joystick->num_axes = 0; + + joystick->is_light_gun = (_tcscmp(joystick->name, TEXT("ACT LABS GS (ACT LABS GS)")) == 0); + + /* get a did1 interface first... */ + hr = IDirectInput_CreateDevice(di, joystick->guidDevice, &didTemp, NULL); + if (FAILED(hr)) + { + ErrorMsg("DirectInput CreateDevice() joystick failed: %s\n", DirectXDecodeError(hr)); + return; + } + + /* get a did2 interface to work with polling (most) joysticks */ + hr = IDirectInputDevice_QueryInterface(didTemp, IID_IDirectInputDevice2, (void**)&joystick->did); + + /* dispose of the temp interface */ + IDirectInputDevice_Release(didTemp); + + /* check result of getting the did2 */ + if (FAILED(hr)) + { + /* no error message because this happens in dx3 */ + /* ErrorMsg("DirectInput QueryInterface joystick failed\n"); */ + joystick->did = NULL; + return; + } + + + hr = IDirectInputDevice2_SetCooperativeLevel(joystick->did, GetMainWindow(), DISCL_NONEXCLUSIVE | DISCL_BACKGROUND); + if (FAILED(hr)) + { + ErrorMsg("DirectInput SetCooperativeLevel() joystick failed: %s\n", DirectXDecodeError(hr)); + return; + } + + + hr = IDirectInputDevice2_SetDataFormat(joystick->did, &c_dfDIJoystick); + if (FAILED(hr)) + { + ErrorMsg("DirectInput SetDataFormat() joystick failed: %s\n", DirectXDecodeError(hr)); + return; + } + + if (joystick->is_light_gun) + { + /* setup light gun to report raw screen pixel data */ + + DIPROPDWORD diprop; + memset(&diprop, 0, sizeof(diprop)); + diprop.diph.dwSize = sizeof(DIPROPDWORD); + diprop.diph.dwHeaderSize = sizeof(DIPROPHEADER); + diprop.diph.dwObj = 0; + diprop.diph.dwHow = DIPH_DEVICE; + diprop.dwData = DIPROPCALIBRATIONMODE_RAW; + + IDirectInputDevice2_SetProperty(joystick->did, DIPROP_CALIBRATIONMODE, &diprop.diph); + } + else + { + /* enumerate our axes */ + hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumAxisObjectsProc, joystick, DIDFT_AXIS); + if (FAILED(hr)) + { + ErrorMsg("DirectInput EnumObjects() Axes failed: %s\n", DirectXDecodeError(hr)); + return; + } + + /* enumerate our POV hats */ + joystick->num_pov = 0; + hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumPOVObjectsProc, joystick, DIDFT_POV); + if (FAILED(hr)) + { + ErrorMsg("DirectInput EnumObjects() POVs failed: %s\n", DirectXDecodeError(hr)); + return; + } + } + + /* enumerate our buttons */ + + joystick->num_buttons = 0; + hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumButtonObjectsProc, joystick, DIDFT_BUTTON); + if (FAILED(hr)) + { + ErrorMsg("DirectInput EnumObjects() Buttons failed: %s\n", DirectXDecodeError(hr)); + return; + } + + hr = IDirectInputDevice2_Acquire(joystick->did); + if (FAILED(hr)) + { + ErrorMsg("DirectInputDevice Acquire joystick failed!\n"); + return; + } + + /* start by clearing the structures */ + + ClearJoyState(&joystick->dijs); + + joystick->use_joystick = TRUE; +} + +static void ExitJoystick(joystick_type *joystick) +{ + DWORD i = 0; + + if (joystick->did != NULL) + { + IDirectInputDevice_Unacquire(joystick->did); + IDirectInputDevice_Release(joystick->did); + joystick->did = NULL; + } + + for (i = 0; i < joystick->num_axes; i++) + { + if (joystick->axes[i].name) + free(joystick->axes[i].name); + joystick->axes[i].name = NULL; + } + + if (joystick->name != NULL) + { + free(joystick->name); + joystick->name = NULL; + } +} + diff --git a/docs/release/src/osd/winui/dijoystick.h b/docs/release/src/osd/winui/dijoystick.h new file mode 100644 index 00000000000..560b5b8fb20 --- /dev/null +++ b/docs/release/src/osd/winui/dijoystick.h @@ -0,0 +1,63 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef DIJOYSTICK_H +#define DIJOYSTICK_H + +/* + limits: + - 7 joysticks + - 15 sticks on each joystick (15?) + - 63 buttons on each joystick + + - 256 total inputs + + + 1 1 1 1 1 1 + 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +---+-----------+---------+-----+ + |Dir|Axis/Button| Stick | Joy | + +---+-----------+---------+-----+ + + Stick: 0 for buttons 1 for axis + Joy: 1 for Mouse/track buttons + +*/ +#define JOYCODE(joy, stick, axis_or_button, dir) \ + ((((dir) & 0x03) << 14) | \ + (((axis_or_button) & 0x3f) << 8) | \ + (((stick) & 0x1f) << 3) | \ + (((joy) & 0x07) << 0)) + +#define GET_JOYCODE_JOY(code) (((code) >> 0) & 0x07) +#define GET_JOYCODE_STICK(code) (((code) >> 3) & 0x1f) +#define GET_JOYCODE_AXIS(code) (((code) >> 8) & 0x3f) +#define GET_JOYCODE_BUTTON(code) GET_JOYCODE_AXIS(code) +#define GET_JOYCODE_DIR(code) (((code) >>14) & 0x03) + +#define JOYCODE_STICK_BTN 0 +#define JOYCODE_STICK_AXIS 1 +#define JOYCODE_STICK_POV 2 + +#define JOYCODE_DIR_BTN 0 +#define JOYCODE_DIR_NEG 1 +#define JOYCODE_DIR_POS 2 + +struct OSDJoystick +{ + int (*init)(void); + void (*exit)(void); + int (*is_joy_pressed)(int joycode); + void (*poll_joysticks)(void); + BOOL (*Available)(void); +}; + +extern const struct OSDJoystick DIJoystick; + +extern int DIJoystick_GetNumPhysicalJoysticks(void); +extern TCHAR* DIJoystick_GetPhysicalJoystickName(int num_joystick); + +extern int DIJoystick_GetNumPhysicalJoystickAxes(int num_joystick); +extern TCHAR* DIJoystick_GetPhysicalJoystickAxisName(int num_joystick, int num_axis); + +#endif diff --git a/docs/release/src/osd/winui/directdraw.cpp b/docs/release/src/osd/winui/directdraw.cpp new file mode 100644 index 00000000000..0d2c1a298d0 --- /dev/null +++ b/docs/release/src/osd/winui/directdraw.cpp @@ -0,0 +1,383 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +/*************************************************************************** + + directdraw.c + + Direct Draw routines. + + ***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +// MAME/MAMEUI headers +#include "emu.h" +#include "winui.h" +#include "directdraw.h" +#include "mui_util.h" // For ErrorMsg +#include "dxdecode.h" // For DirectXDecodeError + +// standard C headers +#include <ddraw.h> +#include <tchar.h> + +/*************************************************************************** + function prototypes + ***************************************************************************/ + +static BOOL WINAPI DDEnumInfo(GUID FAR *lpGUID, LPTSTR lpDriverDescription, + LPTSTR lpDriverName, LPVOID lpContext, HMONITOR hm); + +static BOOL WINAPI DDEnumOldInfo(GUID FAR *lpGUID, LPTSTR lpDriverDescription, + LPTSTR lpDriverName, LPVOID lpContext); + +static void CalculateDisplayModes(void); +static HRESULT CALLBACK EnumDisplayModesCallback(LPDDSURFACEDESC pddsd, LPVOID Context); +static HRESULT CALLBACK EnumDisplayModesCallback2(DDSURFACEDESC2* pddsd, LPVOID Context); + +/*************************************************************************** + External variables + ***************************************************************************/ + +/*************************************************************************** + Internal structures + ***************************************************************************/ + +typedef struct +{ + TCHAR* name; + GUID* lpguid; +} display_type; + +typedef HRESULT (WINAPI *ddc_proc)(GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter); + +/*************************************************************************** + Internal variables + ***************************************************************************/ + +#define MAX_DISPLAYS 100 +static int g_nNumDisplays = 0; +static display_type g_Displays[MAX_DISPLAYS]; + +static HANDLE g_hDLL; +static BOOL g_bHWStretch = 0; +static BOOL g_bRefresh = 0; +static struct tDisplayModes g_DisplayModes; +static IDirectDraw2* g_pDirectDraw2; +static IDirectDraw4* g_pDirectDraw4; + +/*************************************************************************** + External functions + ***************************************************************************/ + +/**************************************************************************** + * DirectDrawInitialize + * + * Initialize the DirectDraw variables. + * + * This entails the following functions: + * + * DirectDrawCreate + * + ****************************************************************************/ + +#if !defined(LPDIRECTDRAWENUMERATE) +#if defined(UNICODE) + +typedef HRESULT (WINAPI* LPDIRECTDRAWENUMERATEW)(LPDDENUMCALLBACKW lpCallback, LPVOID lpContext); + +#define LPDIRECTDRAWENUMERATE LPDIRECTDRAWENUMERATEW + +#define SDirectDrawEnumerateEx "DirectDrawEnumerateExW" +#define SDirectDrawEnumerate "DirectDrawEnumerateW" + +#else + +typedef HRESULT (WINAPI* LPDIRECTDRAWENUMERATEA)(LPDDENUMCALLBACKA lpCallback, LPVOID lpContext); + +#define LPDIRECTDRAWENUMERATE LPDIRECTDRAWENUMERATEA + +#define SDirectDrawEnumerateEx "DirectDrawEnumerateExA" +#define SDirectDrawEnumerate "DirectDrawEnumerateA" + +#endif +#endif /* LPDIRECTDRAWENUMERATE */ + +/****************************************************************************/ + +BOOL DirectDraw_Initialize(void) +{ + HRESULT hr; + UINT error_mode = 0; + ddc_proc ddc; + DDCAPS ddCaps; + DDCAPS ddHelCaps; + IDirectDraw* pDirectDraw1; + LPDIRECTDRAWENUMERATEEX pDDEnumEx; + + if (g_hDLL != NULL) + return TRUE; + + g_nNumDisplays = 0; + g_hDLL = NULL; + g_bHWStretch = FALSE; + g_bRefresh = FALSE; + g_pDirectDraw2 = NULL; + g_pDirectDraw4 = NULL; + + /* Turn off error dialog for this call */ + error_mode = SetErrorMode(0); + g_hDLL = LoadLibrary(TEXT("ddraw.dll")); + SetErrorMode(error_mode); + + if (g_hDLL == NULL) + return FALSE; + + ddc = (ddc_proc)GetProcAddress((HINSTANCE)g_hDLL, "DirectDrawCreate"); + if (ddc == NULL) + return FALSE; + + pDirectDraw1 = NULL; + g_pDirectDraw2 = NULL; + g_pDirectDraw4 = NULL; + hr = ddc(NULL, &pDirectDraw1, NULL); + if (FAILED(hr)) + { + ErrorMsg("DirectDrawCreate failed: %s", DirectXDecodeError(hr)); + return FALSE; + } + + hr = IDirectDraw_QueryInterface(pDirectDraw1, IID_IDirectDraw4, (void**)&g_pDirectDraw4); + if (FAILED(hr)) + { + g_pDirectDraw4 = NULL; + hr = IDirectDraw_QueryInterface(pDirectDraw1, IID_IDirectDraw2, (void**)&g_pDirectDraw2); + if (FAILED(hr)) + { + ErrorMsg("Query Interface for DirectDraw 2 failed: %s", DirectXDecodeError(hr)); + g_pDirectDraw2 = NULL; + IDirectDraw_Release(pDirectDraw1); + return FALSE; + } + } + + memset(&ddCaps, 0, sizeof(DDCAPS)); + memset(&ddHelCaps, 0, sizeof(DDCAPS)); + ddCaps.dwSize = sizeof(DDCAPS); + ddHelCaps.dwSize = sizeof(DDCAPS); + hr = IDirectDraw_GetCaps(pDirectDraw1, &ddCaps, &ddHelCaps); /* 1 2 or 4? */ + if (FAILED(hr)) + { + ErrorMsg("Error getting DirectDraw capabilities: %s", DirectXDecodeError(hr)); + } + else + g_bHWStretch = ((ddCaps.dwCaps & DDCAPS_BLTSTRETCH) != 0) ? TRUE : FALSE; + + IDirectDraw_Release(pDirectDraw1); + + /* + Note that you must know which version of the + function to retrieve (see the following text). + For this example, we use the ANSI version. + */ + pDDEnumEx = (LPDIRECTDRAWENUMERATEEX) GetProcAddress((HINSTANCE)g_hDLL, SDirectDrawEnumerateEx); + + /* + If the function is there, call it to enumerate all display devices + attached to the desktop, and any non-display DirectDraw devices. + */ + if (pDDEnumEx) + { + pDDEnumEx(DDEnumInfo, NULL, DDENUM_ATTACHEDSECONDARYDEVICES | DDENUM_DETACHEDSECONDARYDEVICES); + } + else + { + LPDIRECTDRAWENUMERATE lpDDEnum; + + lpDDEnum = (LPDIRECTDRAWENUMERATE) GetProcAddress((HINSTANCE)g_hDLL, SDirectDrawEnumerate); + /* + * We must be running on an old version of ddraw. Therefore, + * by definiton, multimon isn't supported. Fall back on + * DirectDrawEnumerate to enumerate standard devices on a + * single monitor system. + */ + if (lpDDEnum) + { + lpDDEnum(DDEnumOldInfo, NULL); + } + else + { + return FALSE; + } + } + + return TRUE; +} + +/**************************************************************************** + * + * DirectDraw_Close + * + * Terminate our usage of DirectDraw. + * + ****************************************************************************/ + +void DirectDraw_Close(void) +{ + int i; + + for (i = 0; i < g_nNumDisplays; i++) + { + free(g_Displays[i].name); + g_Displays[i].name = NULL; + if (g_Displays[i].lpguid != NULL) + { + free(g_Displays[i].lpguid); + g_Displays[i].lpguid = NULL; + } + + } + g_nNumDisplays = 0; + + /* + Destroy any lingering IDirectDraw object. + */ + if (g_pDirectDraw2) + { + IDirectDraw2_Release(g_pDirectDraw2); + g_pDirectDraw2 = NULL; + } + + if (g_pDirectDraw4) + { + IDirectDraw4_Release(g_pDirectDraw4); + g_pDirectDraw4 = NULL; + } + + if (g_hDLL) + { + FreeLibrary((HINSTANCE)g_hDLL); + g_hDLL = NULL; + } +} + +/****************************************************************************/ +/* + Return a list of 16, 24 and 32 bit DirectDraw modes. +*/ +struct tDisplayModes* DirectDraw_GetDisplayModes(void) +{ + if (g_DisplayModes.m_nNumModes == 0) + CalculateDisplayModes(); + + return &g_DisplayModes; +} + +int DirectDraw_GetNumDisplays(void) +{ + return g_nNumDisplays; +} + +BOOL DirectDraw_HasHWStretch(void) +{ + return g_bHWStretch; +} + +BOOL DirectDraw_HasRefresh(void) +{ + return g_bRefresh; +} + +LPCTSTR DirectDraw_GetDisplayName(int num_display) +{ + return g_Displays[num_display].name; +} + +/****************************************************************************/ +/* internal functions */ +/****************************************************************************/ + +static BOOL WINAPI DDEnumInfo(GUID FAR *lpGUID, LPTSTR lpDriverDescription, + LPTSTR lpDriverName, LPVOID lpContext, HMONITOR hm) +{ + g_Displays[g_nNumDisplays].name = (TCHAR*)malloc((_tcslen(lpDriverDescription) + 1) * sizeof(TCHAR)); + _tcscpy(g_Displays[g_nNumDisplays].name, lpDriverDescription); + + if (lpGUID == NULL) + g_Displays[g_nNumDisplays].lpguid = NULL; + else + { + g_Displays[g_nNumDisplays].lpguid = (LPGUID)malloc(sizeof(GUID)); + memcpy(g_Displays[g_nNumDisplays].lpguid, lpGUID, sizeof(GUID)); + } + + g_nNumDisplays++; + if (g_nNumDisplays == MAX_DISPLAYS) + return DDENUMRET_CANCEL; + else + return DDENUMRET_OK; +} + +static BOOL WINAPI DDEnumOldInfo(GUID FAR *lpGUID, LPTSTR lpDriverDescription, LPTSTR lpDriverName, LPVOID lpContext) +{ + return DDEnumInfo(lpGUID, lpDriverDescription, lpDriverName, lpContext, NULL); +} + +static HRESULT CALLBACK EnumDisplayModesCallback(LPDDSURFACEDESC pddsd, LPVOID Context) +{ + DWORD dwDepth = pddsd->ddpfPixelFormat.dwRGBBitCount; + + struct tDisplayModes* pDisplayModes = (struct tDisplayModes*)Context; + if (dwDepth == 16 || dwDepth == 24 || dwDepth == 32) + { + pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwWidth = pddsd->dwWidth; + pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwHeight = pddsd->dwHeight; + pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwBPP = dwDepth; + pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwRefresh = 0; + pDisplayModes->m_nNumModes++; + } + + if (pDisplayModes->m_nNumModes == MAXMODES) + return DDENUMRET_CANCEL; + else + return DDENUMRET_OK; +} + +static HRESULT CALLBACK EnumDisplayModesCallback2(DDSURFACEDESC2* pddsd2, LPVOID Context) +{ + struct tDisplayModes* pDisplayModes = (struct tDisplayModes*)Context; + + DWORD dwDepth = pddsd2->ddpfPixelFormat.dwRGBBitCount; + + if (dwDepth == 16 || dwDepth == 24 || dwDepth == 32) + { + pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwWidth = pddsd2->dwWidth; + pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwHeight = pddsd2->dwHeight; + pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwBPP = dwDepth; + pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwRefresh = pddsd2->dwRefreshRate; + pDisplayModes->m_nNumModes++; + + if (pddsd2->dwRefreshRate != 0) + g_bRefresh = TRUE; + } + + if (pDisplayModes->m_nNumModes == MAXMODES) + return DDENUMRET_CANCEL; + else + return DDENUMRET_OK; +} + +static void CalculateDisplayModes(void) +{ + g_DisplayModes.m_nNumModes = 0; + + if (g_pDirectDraw4) + IDirectDraw4_EnumDisplayModes(g_pDirectDraw4, DDEDM_REFRESHRATES, NULL, &g_DisplayModes, EnumDisplayModesCallback2); + else + if (g_pDirectDraw2) + IDirectDraw2_EnumDisplayModes(g_pDirectDraw2, 0, NULL, &g_DisplayModes, EnumDisplayModesCallback); +} + + diff --git a/docs/release/src/osd/winui/directdraw.h b/docs/release/src/osd/winui/directdraw.h new file mode 100644 index 00000000000..95140a54ab5 --- /dev/null +++ b/docs/release/src/osd/winui/directdraw.h @@ -0,0 +1,36 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef DIRECTDRAW_H +#define DIRECTDRAW_H + +#include <ddraw.h> + +#define MAXMODES 256 /* Maximum number of DirectDraw Display modes. */ + +/* Display mode node */ +struct tDisplayMode +{ + DWORD m_dwWidth; + DWORD m_dwHeight; + DWORD m_dwBPP; + DWORD m_dwRefresh; +}; + +/* EnumDisplayMode Context */ +struct tDisplayModes +{ + struct tDisplayMode m_Modes[MAXMODES]; + int m_nNumModes; +}; + +extern BOOL DirectDraw_Initialize(void); +extern void DirectDraw_Close(void); + +extern struct tDisplayModes* DirectDraw_GetDisplayModes(void); +extern int DirectDraw_GetNumDisplays(void); +extern BOOL DirectDraw_HasHWStretch(void); +extern BOOL DirectDraw_HasRefresh(void); +extern LPCTSTR DirectDraw_GetDisplayName(int num_display); + +#endif diff --git a/docs/release/src/osd/winui/directinput.cpp b/docs/release/src/osd/winui/directinput.cpp new file mode 100644 index 00000000000..fca5ff8cac7 --- /dev/null +++ b/docs/release/src/osd/winui/directinput.cpp @@ -0,0 +1,150 @@ +// For licensing and usage information, read docs/winui_license.txt +// MASTER +//**************************************************************************** + +/*************************************************************************** + + directinput.c + + Direct Input routines. + + ***************************************************************************/ +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +// MAME/MAMEUI headers +#include "emu.h" +#include "mui_util.h" // For ErrorMsg +#include "directinput.h" + +/*************************************************************************** + function prototypes + ***************************************************************************/ + +/*************************************************************************** + External variables + ***************************************************************************/ + +/*************************************************************************** + Internal structures + ***************************************************************************/ + +/*************************************************************************** + Internal variables + ***************************************************************************/ + +static LPDIRECTINPUT di = NULL; + +static HANDLE hDLL = NULL; + +/*************************************************************************** + External functions + ***************************************************************************/ + +/**************************************************************************** + * DirectInputInitialize + * + * Initialize the DirectInput variables. + * + * This entails the following functions: + * + * DirectInputCreate + * + ****************************************************************************/ + +typedef HRESULT (WINAPI *dic_proc)(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUT *ppDI, LPUNKNOWN punkOuter); + +BOOL DirectInputInitialize() +{ + HRESULT hr; + UINT error_mode = 0; + dic_proc dic; + + if (hDLL != NULL) + return TRUE; + + hDLL = NULL; + + /* Turn off error dialog for this call */ + error_mode = SetErrorMode(0); + hDLL = LoadLibrary(TEXT("dinput.dll")); + SetErrorMode(error_mode); + + if (hDLL == NULL) + return FALSE; + +#ifdef UNICODE + dic = (dic_proc)GetProcAddress((HINSTANCE)hDLL, "DirectInputCreateW"); +#else + dic = (dic_proc)GetProcAddress((HINSTANCE)hDLL, "DirectInputCreateA"); +#endif + if (dic == NULL) + return FALSE; + + hr = dic(GetModuleHandle(NULL), 0x0700, &di, NULL); // setup DIRECT INPUT 7 for the GUI + + if (FAILED(hr)) + { + hr = dic(GetModuleHandle(NULL), 0x0500, &di, NULL); // if failed, try with version 5 + + if (FAILED(hr)) + { + ErrorMsg("DirectInputCreate failed! error=%x\n", (unsigned int)hr); + di = NULL; + return FALSE; + } + } + return TRUE; +} + +/**************************************************************************** + * + * DirectInputClose + * + * Terminate our usage of DirectInput. + * + ****************************************************************************/ + +void DirectInputClose() +{ + /* Release any lingering IDirectInput object. */ + if (di) + { + IDirectInput_Release(di); + di = NULL; + } +} + +BOOL CALLBACK inputEnumDeviceProc(LPCDIDEVICEINSTANCE pdidi, LPVOID pv) +{ + GUID *pguidDevice; + + /* report back the instance guid of the device we enumerated */ + if (pv) + { + pguidDevice = (GUID *)pv; + *pguidDevice = pdidi->guidInstance; + } + + /* BUGBUG for now, stop after the first device has been found */ + return DIENUM_STOP; +} + +HRESULT SetDIDwordProperty(LPDIRECTINPUTDEVICE2 pdev, REFGUID guidProperty, DWORD dwObject, DWORD dwHow, DWORD dwValue) +{ + DIPROPDWORD dipdw; + + dipdw.diph.dwSize = sizeof(dipdw); + dipdw.diph.dwHeaderSize = sizeof(dipdw.diph); + dipdw.diph.dwObj = dwObject; + dipdw.diph.dwHow = dwHow; + dipdw.dwData = dwValue; + + return IDirectInputDevice2_SetProperty(pdev, guidProperty, &dipdw.diph); +} + +LPDIRECTINPUT GetDirectInput(void) +{ + return di; +} diff --git a/docs/release/src/osd/winui/directinput.h b/docs/release/src/osd/winui/directinput.h new file mode 100644 index 00000000000..7af72dab981 --- /dev/null +++ b/docs/release/src/osd/winui/directinput.h @@ -0,0 +1,23 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef DIRECTINPUT_H +#define DIRECTINPUT_H + +#undef WINNT +#ifdef DIRECTINPUT_VERSION +#undef DIRECTINPUT_VERSION +#endif +#define DIRECTINPUT_VERSION 0x0700 +#include <dinput.h> + +extern BOOL DirectInputInitialize(void); +extern void DirectInputClose(void); + +extern BOOL CALLBACK inputEnumDeviceProc(LPCDIDEVICEINSTANCE pdidi, LPVOID pv); + +extern HRESULT SetDIDwordProperty(LPDIRECTINPUTDEVICE2 pdev, REFGUID guidProperty, DWORD dwObject, DWORD dwHow, DWORD dwValue); + +LPDIRECTINPUT GetDirectInput(void); + +#endif diff --git a/docs/release/src/osd/winui/directories.cpp b/docs/release/src/osd/winui/directories.cpp new file mode 100644 index 00000000000..d475325ae48 --- /dev/null +++ b/docs/release/src/osd/winui/directories.cpp @@ -0,0 +1,750 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/*************************************************************************** + + directories.c + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> + +// standard C headers +#include <sys/stat.h> +#include <assert.h> +#include <tchar.h> + +// MAME/MAMEUI headers +#include "winui.h" +#include "directories.h" +#include "resource.h" +#include "strconv.h" +#include "mui_util.h" + +// SHELL DIR header +#include <shlobj.h> + +#define MAX_DIRS 256 + +/*************************************************************************** + Internal structures + ***************************************************************************/ + +typedef struct +{ + TCHAR m_Directories[MAX_DIRS][MAX_PATH]; + int m_NumDirectories; + BOOL m_bModified; +} tPath; + +typedef struct +{ + tPath *m_Path; + TCHAR *m_tDirectory; +} tDirInfo; + +/*************************************************************************** + Function prototypes + ***************************************************************************/ + +static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData); +BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult); + +static void DirInfo_SetDir(tDirInfo *pInfo, int nType, int nItem, LPCTSTR pText); +static TCHAR* DirInfo_Dir(tDirInfo *pInfo, int nType); +static TCHAR* DirInfo_Path(tDirInfo *pInfo, int nType, int nItem); +static void DirInfo_SetModified(tDirInfo *pInfo, int nType, BOOL bModified); +static BOOL DirInfo_Modified(tDirInfo *pInfo, int nType); +static TCHAR* FixSlash(TCHAR *s); + +static void UpdateDirectoryList(HWND hDlg); + +static void Directories_OnSelChange(HWND hDlg); +static BOOL Directories_OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam); +static void Directories_OnDestroy(HWND hDlg); +static void Directories_OnClose(HWND hDlg); +static void Directories_OnOk(HWND hDlg); +static void Directories_OnCancel(HWND hDlg); +static void Directories_OnInsert(HWND hDlg); +static void Directories_OnBrowse(HWND hDlg); +static void Directories_OnDelete(HWND hDlg); +static BOOL Directories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR); +static BOOL Directories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR); +static void Directories_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify); +static BOOL Directories_OnNotify(HWND hDlg, int id, NMHDR* pNMHDR); + +/*************************************************************************** + External variables + ***************************************************************************/ + +/*************************************************************************** + Internal variables + ***************************************************************************/ + +static tDirInfo *g_pDirInfo; + +/*************************************************************************** + External function definitions + ***************************************************************************/ + +INT_PTR CALLBACK DirectoriesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + BOOL bReturn = FALSE; + + switch (Msg) + { + case WM_INITDIALOG: + return (BOOL)HANDLE_WM_INITDIALOG(hDlg, wParam, lParam, Directories_OnInitDialog); + + case WM_COMMAND: + HANDLE_WM_COMMAND(hDlg, wParam, lParam, Directories_OnCommand); + bReturn = TRUE; + break; + + case WM_NOTIFY: + return (BOOL)HANDLE_WM_NOTIFY(hDlg, wParam, lParam, Directories_OnNotify); + + case WM_CLOSE: + HANDLE_WM_CLOSE(hDlg, wParam, lParam, Directories_OnClose); + break; + + case WM_DESTROY: + HANDLE_WM_DESTROY(hDlg, wParam, lParam, Directories_OnDestroy); + break; + + default: + bReturn = FALSE; + } + return bReturn; +} + +/*************************************************************************** + Internal function definitions + ***************************************************************************/ + +static BOOL IsMultiDir(int nType) +{ + return g_directoryInfo[nType].bMulti; +} + +static void DirInfo_SetDir(tDirInfo *pInfo, int nType, int nItem, LPCTSTR pText) +{ + TCHAR *t_s; + TCHAR *t_pOldText; + + if (IsMultiDir(nType)) + { + assert(nItem >= 0); + _tcscpy(DirInfo_Path(pInfo, nType, nItem), pText); + DirInfo_SetModified(pInfo, nType, TRUE); + } + else + { + t_s = win_tstring_strdup(pText); + if (!t_s) + return; + t_pOldText = pInfo[nType].m_tDirectory; + if (t_pOldText) + osd_free(t_pOldText); + pInfo[nType].m_tDirectory = t_s; + } +} + +static TCHAR* DirInfo_Dir(tDirInfo *pInfo, int nType) +{ + assert(!IsMultiDir(nType)); + return pInfo[nType].m_tDirectory; +} + +static TCHAR* DirInfo_Path(tDirInfo *pInfo, int nType, int nItem) +{ + return pInfo[nType].m_Path->m_Directories[nItem]; +} + +static void DirInfo_SetModified(tDirInfo *pInfo, int nType, BOOL bModified) +{ + assert(IsMultiDir(nType)); + pInfo[nType].m_Path->m_bModified = bModified; +} + +static BOOL DirInfo_Modified(tDirInfo *pInfo, int nType) +{ + assert(IsMultiDir(nType)); + return pInfo[nType].m_Path->m_bModified; +} + +#define DirInfo_NumDir(pInfo, path) \ + ((pInfo)[(path)].m_Path->m_NumDirectories) + +/* lop off trailing backslash if it exists */ +static TCHAR * FixSlash(TCHAR *s) +{ + int len = 0; + + if (s) + len = _tcslen(s); + + if (len>3 && s[len - 1] == '\\') + s[len - 1] = '\0'; + + return s; +} + +static void UpdateDirectoryList(HWND hDlg) +{ + bool b_res = 0; + int i = 0; + int nType = 0; + LV_ITEM Item; + HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST); + HWND hCombo = GetDlgItem(hDlg, IDC_DIR_COMBO); + + /* Remove previous */ + b_res = ListView_DeleteAllItems(hList); + + /* Update list */ + memset(&Item, 0, sizeof(LV_ITEM)); + Item.mask = LVIF_TEXT; + + nType = ComboBox_GetCurSel(hCombo); + if (IsMultiDir(nType)) + { + Item.pszText = (TCHAR*) TEXT(DIRLIST_NEWENTRYTEXT); // puts the < > empty entry in + (void)ListView_InsertItem(hList, &Item); + int t = DirInfo_NumDir(g_pDirInfo, nType); + // directories are inserted in reverse order + for (i = t; 0 < i; i--) + { + Item.pszText = DirInfo_Path(g_pDirInfo, nType, i-1); + (void)ListView_InsertItem(hList, &Item); + } + } + else + { + Item.pszText = DirInfo_Dir(g_pDirInfo, nType); + (void)ListView_InsertItem(hList, &Item); + } + + /* select first one */ + + ListView_SetItemState(hList, 0, LVIS_SELECTED, LVIS_SELECTED); + b_res++; +} + +static void Directories_OnSelChange(HWND hDlg) +{ + UpdateDirectoryList(hDlg); + + HWND hCombo = GetDlgItem(hDlg, IDC_DIR_COMBO); + int nType = ComboBox_GetCurSel(hCombo); + if (IsMultiDir(nType)) + { + EnableWindow(GetDlgItem(hDlg, IDC_DIR_DELETE), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_DIR_INSERT), TRUE); + } + else + { + EnableWindow(GetDlgItem(hDlg, IDC_DIR_DELETE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_DIR_INSERT), FALSE); + } +} + +static BOOL Directories_OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam) +{ + RECT rectClient; + LVCOLUMN LVCol; + int i = 0; + int nDirInfoCount = 0; + LPCSTR s; + TCHAR *token; + TCHAR buf[MAX_PATH * MAX_DIRS]; + TCHAR* t_s = NULL; + HRESULT res = 0; + + /* count how many dirinfos there are */ + nDirInfoCount = 0; + while(g_directoryInfo[nDirInfoCount].lpName) + nDirInfoCount++; + + g_pDirInfo = (tDirInfo *) malloc(sizeof(tDirInfo) * nDirInfoCount); + if (!g_pDirInfo) /* bummer */ + goto error; + memset(g_pDirInfo, 0, sizeof(tDirInfo) * nDirInfoCount); + + for (i = nDirInfoCount - 1; i >= 0; i--) + { + t_s = tstring_from_utf8(g_directoryInfo[i].lpName); + if( !t_s ) + return FALSE; + (void)ComboBox_InsertString(GetDlgItem(hDlg, IDC_DIR_COMBO), 0, win_tstring_strdup(t_s)); + osd_free(t_s); + t_s = NULL; + } + + (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO), 0); + + GetClientRect(GetDlgItem(hDlg, IDC_DIR_LIST), &rectClient); + + memset(&LVCol, 0, sizeof(LVCOLUMN)); + LVCol.mask = LVCF_WIDTH; + LVCol.cx = rectClient.right - rectClient.left - GetSystemMetrics(SM_CXHSCROLL); + + res = ListView_InsertColumn(GetDlgItem(hDlg, IDC_DIR_LIST), 0, &LVCol); + res++; + + /* Keep a temporary copy of the directory strings in g_pDirInfo. */ + for (i = 0; i < nDirInfoCount; i++) + { + s = g_directoryInfo[i].pfnGetTheseDirs(); + t_s = tstring_from_utf8(s); + if( !t_s ) + return FALSE; + if (IsMultiDir(i)) + { + /* Copy the string to our own buffer so that we can mutilate it */ + _tcscpy(buf, t_s); + + g_pDirInfo[i].m_Path = (tPath*)malloc(sizeof(tPath)); + if (!g_pDirInfo[i].m_Path) + goto error; + + g_pDirInfo[i].m_Path->m_NumDirectories = 0; + token = _tcstok(buf, TEXT(";")); + while ((DirInfo_NumDir(g_pDirInfo, i) < MAX_DIRS) && token) + { + _tcscpy(DirInfo_Path(g_pDirInfo, i, DirInfo_NumDir(g_pDirInfo, i)), token); + DirInfo_NumDir(g_pDirInfo, i)++; + token = _tcstok(NULL, TEXT(";")); + } + DirInfo_SetModified(g_pDirInfo, i, FALSE); + } + else + { + DirInfo_SetDir(g_pDirInfo, i, -1, t_s); + } + osd_free(t_s); + t_s = NULL; + } + + UpdateDirectoryList(hDlg); + return TRUE; + +error: + if( t_s ) + osd_free(t_s); + Directories_OnDestroy(hDlg); + EndDialog(hDlg, -1); + return FALSE; +} + +static void Directories_OnDestroy(HWND hDlg) +{ + int nDirInfoCount = 0, i = 0; + + if (g_pDirInfo) + { + /* count how many dirinfos there are */ + nDirInfoCount = 0; + while(g_directoryInfo[nDirInfoCount].lpName) + nDirInfoCount++; + + for (i = 0; i < nDirInfoCount; i++) + { + if (g_pDirInfo[i].m_Path) + free(g_pDirInfo[i].m_Path); + if (g_pDirInfo[i].m_tDirectory) + osd_free(g_pDirInfo[i].m_tDirectory); + } + free(g_pDirInfo); + g_pDirInfo = NULL; + } +} + +static void Directories_OnClose(HWND hDlg) +{ + EndDialog(hDlg, IDCANCEL); +} + +static int RetrieveDirList(int nDir, int nFlagResult, void (*SetTheseDirs)(const char *s)) +{ + int i = 0; + int nResult = 0; + int nPaths = 0; + TCHAR buf[MAX_PATH * MAX_DIRS]; + char* utf8_buf; + + if (DirInfo_Modified(g_pDirInfo, nDir)) + { + memset(buf, 0, sizeof(buf)); + nPaths = DirInfo_NumDir(g_pDirInfo, nDir); + for (i = 0; i < nPaths; i++) + { + _tcscat(buf, FixSlash(DirInfo_Path(g_pDirInfo, nDir, i))); + + if (i < nPaths - 1) + _tcscat(buf, TEXT(";")); + } + utf8_buf = utf8_from_tstring(buf); + SetTheseDirs(utf8_buf); + osd_free(utf8_buf); + + nResult |= nFlagResult; + } + return nResult; +} + +static void Directories_OnOk(HWND hDlg) +{ + int i = 0; + int nResult = 0; + LPTSTR s; + char* utf8_s; + + for (i = 0; g_directoryInfo[i].lpName; i++) + { + if (IsMultiDir(i)) + { + nResult |= RetrieveDirList(i, g_directoryInfo[i].nDirDlgFlags, g_directoryInfo[i].pfnSetTheseDirs); + } + else + { + s = FixSlash(DirInfo_Dir(g_pDirInfo, i)); + utf8_s = utf8_from_tstring(s); + g_directoryInfo[i].pfnSetTheseDirs(utf8_s); + osd_free(utf8_s); + } + } + EndDialog(hDlg, nResult); +} + +static void Directories_OnCancel(HWND hDlg) +{ + EndDialog(hDlg, IDCANCEL); +} + +static void Directories_OnInsert(HWND hDlg) +{ + int nItem = 0; + TCHAR buf[MAX_PATH]; + HWND hList = 0; + + hList = GetDlgItem(hDlg, IDC_DIR_LIST); + nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED); + + if (BrowseForDirectory(hDlg, NULL, buf) == TRUE) + { + int i = 0; + int nType = 0; + + /* list was empty */ + if (nItem == -1) + nItem = 0; + + nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO)); + if (IsMultiDir(nType)) + { + if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType)) + return; + + for (i = DirInfo_NumDir(g_pDirInfo, nType); nItem < i; i--) + _tcscpy(DirInfo_Path(g_pDirInfo, nType, i), + DirInfo_Path(g_pDirInfo, nType, i - 1)); + + _tcscpy(DirInfo_Path(g_pDirInfo, nType, nItem), buf); + DirInfo_NumDir(g_pDirInfo, nType)++; + DirInfo_SetModified(g_pDirInfo, nType, TRUE); + } + + UpdateDirectoryList(hDlg); + + ListView_SetItemState(hList, nItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + } +} + +static void Directories_OnBrowse(HWND hDlg) +{ + int nType = 0; + int nItem = 0; + TCHAR inbuf[MAX_PATH]; + TCHAR outbuf[MAX_PATH]; + HWND hList = 0; + + hList = GetDlgItem(hDlg, IDC_DIR_LIST); + nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED); + + if (nItem == -1) + return; + + nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO)); + if (IsMultiDir(nType)) + { + /* Last item is placeholder for append */ + if (nItem == ListView_GetItemCount(hList) - 1) + { + Directories_OnInsert(hDlg); + return; + } + } + + ListView_GetItemText(hList, nItem, 0, inbuf, MAX_PATH); + + if (BrowseForDirectory(hDlg, inbuf, outbuf) == TRUE) + { + nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO)); + DirInfo_SetDir(g_pDirInfo, nType, nItem, outbuf); + UpdateDirectoryList(hDlg); + } +} + +static void Directories_OnDelete(HWND hDlg) +{ + int nType = 0; + int nCount = 0; + int nSelect = 0; + int i = 0; + int nItem = 0; + HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST); + + nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED | LVNI_ALL); + + if (nItem == -1) + return; + + /* Don't delete "Append" placeholder. */ + if (nItem == ListView_GetItemCount(hList) - 1) + return; + + nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO)); + if (IsMultiDir(nType)) + { + for (i = nItem; i < DirInfo_NumDir(g_pDirInfo, nType) - 1; i++) + _tcscpy(DirInfo_Path(g_pDirInfo, nType, i), + DirInfo_Path(g_pDirInfo, nType, i + 1)); + + _tcscpy(DirInfo_Path(g_pDirInfo, nType, DirInfo_NumDir(g_pDirInfo, nType) - 1), TEXT("")); + DirInfo_NumDir(g_pDirInfo, nType)--; + + DirInfo_SetModified(g_pDirInfo, nType, TRUE); + } + + UpdateDirectoryList(hDlg); + + + nCount = ListView_GetItemCount(hList); + if (nCount <= 1) + return; + + /* If the last item was removed, select the item above. */ + if (nItem == nCount - 1) + nSelect = nCount - 2; + else + nSelect = nItem; + + ListView_SetItemState(hList, nSelect, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); +} + +static BOOL Directories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR) +{ + int nType = 0; + BOOL bResult = FALSE; + NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR; + LVITEM* pItem = &pDispInfo->item; + + nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO)); + if (IsMultiDir(nType)) + { + /* Last item is placeholder for append */ + if (pItem->iItem == ListView_GetItemCount(GetDlgItem(hDlg, IDC_DIR_LIST)) - 1) + { + if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType)) + return TRUE; /* don't edit */ + + HWND hEdit = (HWND)(LRESULT)(int)SendDlgItemMessage(hDlg, IDC_DIR_LIST, LVM_GETEDITCONTROL, 0, 0); + Edit_SetText(hEdit, TEXT("")); + } + } + + return bResult; +} + +static BOOL Directories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR) +{ + BOOL bResult = FALSE; + NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR; + LVITEM* pItem = &pDispInfo->item; + + if (pItem->pszText != NULL) + { + struct _stat file_stat; + + /* Don't allow empty entries. */ + if (!_tcscmp(pItem->pszText, TEXT(""))) + { + return FALSE; + } + + /* Check validity of edited directory. */ + if (_tstat(pItem->pszText, &file_stat) == 0 + && (file_stat.st_mode & S_IFDIR)) + { + bResult = TRUE; + } + else + { + if (MessageBox(NULL, TEXT("Directory does not exist, continue anyway?"), TEXT(MAMEUINAME), MB_OKCANCEL) == IDOK) + bResult = TRUE; + } + } + + if (bResult == TRUE) + { + int nType = 0; + int i = 0; + + nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO)); + if (IsMultiDir(nType)) + { + /* Last item is placeholder for append */ + if (pItem->iItem == ListView_GetItemCount(GetDlgItem(hDlg, IDC_DIR_LIST)) - 1) + { + if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType)) + return FALSE; + + for (i = DirInfo_NumDir(g_pDirInfo, nType); pItem->iItem < i; i--) + _tcscpy(DirInfo_Path(g_pDirInfo, nType, i), + DirInfo_Path(g_pDirInfo, nType, i - 1)); + + _tcscpy(DirInfo_Path(g_pDirInfo, nType, pItem->iItem), pItem->pszText); + + DirInfo_SetModified(g_pDirInfo, nType, TRUE); + DirInfo_NumDir(g_pDirInfo, nType)++; + } + else + DirInfo_SetDir(g_pDirInfo, nType, pItem->iItem, pItem->pszText); + } + else + { + DirInfo_SetDir(g_pDirInfo, nType, pItem->iItem, pItem->pszText); + } + + UpdateDirectoryList(hDlg); + ListView_SetItemState(GetDlgItem(hDlg, IDC_DIR_LIST), pItem->iItem, + LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + + } + + return bResult; +} + +static void Directories_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify) +{ + switch (id) + { + case IDOK: + if (codeNotify == BN_CLICKED) + Directories_OnOk(hDlg); + break; + + case IDCANCEL: + if (codeNotify == BN_CLICKED) + Directories_OnCancel(hDlg); + break; + + case IDC_DIR_BROWSE: + if (codeNotify == BN_CLICKED) + Directories_OnBrowse(hDlg); + break; + + case IDC_DIR_INSERT: + if (codeNotify == BN_CLICKED) + Directories_OnInsert(hDlg); + break; + + case IDC_DIR_DELETE: + if (codeNotify == BN_CLICKED) + Directories_OnDelete(hDlg); + break; + + case IDC_DIR_COMBO: + switch (codeNotify) + { + case CBN_SELCHANGE: + Directories_OnSelChange(hDlg); + break; + } + break; + } +} + +static BOOL Directories_OnNotify(HWND hDlg, int id, NMHDR* pNMHDR) +{ + switch (id) + { + case IDC_DIR_LIST: + switch (pNMHDR->code) + { + case LVN_ENDLABELEDIT: + return Directories_OnEndLabelEdit(hDlg, pNMHDR); + + case LVN_BEGINLABELEDIT: + return Directories_OnBeginLabelEdit(hDlg, pNMHDR); + } + } + return FALSE; +} + +/************************************************************************** + + Use the shell to select a Directory. + + **************************************************************************/ + +static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) +{ + /* + Called just after the dialog is initialized + Select the dir passed in BROWSEINFO.lParam + */ + if (uMsg == BFFM_INITIALIZED) + { + if ((const char*)lpData != NULL) + SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData); + } + + return 0; +} + +BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult) +{ + BOOL bResult = FALSE; + BROWSEINFO Info; + LPITEMIDLIST pItemIDList = NULL; + TCHAR buf[MAX_PATH]; + + Info.hwndOwner = hwnd; + Info.pidlRoot = NULL; + Info.pszDisplayName = buf; + Info.lpszTitle = TEXT("Select a directory:"); + Info.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI; + Info.lpfn = BrowseCallbackProc; + Info.lParam = (LPARAM)pStartDir; + + pItemIDList = SHBrowseForFolder(&Info); + + if (pItemIDList != NULL) + { + if (SHGetPathFromIDList(pItemIDList, buf) == TRUE) + { + _sntprintf(pResult, MAX_PATH, TEXT("%s"), buf); + bResult = TRUE; + } + } + else + bResult = FALSE; + + return bResult; +} + diff --git a/docs/release/src/osd/winui/directories.h b/docs/release/src/osd/winui/directories.h new file mode 100644 index 00000000000..efe6085f9be --- /dev/null +++ b/docs/release/src/osd/winui/directories.h @@ -0,0 +1,71 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef DIRECTORIES_H +#define DIRECTORIES_H + +/* Dialog return codes */ +#define DIRDLG_ROMS 0x0010 +#define DIRDLG_SAMPLES 0x0020 +#define DIRDLG_INI 0x0040 +#define DIRDLG_CFG 0x0100 +#define DIRDLG_IMG 0x0400 +#define DIRDLG_INP 0x0800 +#define DIRDLG_CTRLR 0x1000 +#define DIRDLG_SOFTWARE 0x2000 +#define DIRDLG_COMMENT 0x4000 +#define DIRDLG_CHEAT 0x8000 + +#define DIRLIST_NEWENTRYTEXT "< >" + +#include "mui_opts.h" + +typedef struct +{ + LPCSTR lpName; + LPCSTR (*pfnGetTheseDirs)(void); + void (*pfnSetTheseDirs)(LPCSTR lpDirs); + BOOL bMulti; + int nDirDlgFlags; +} +DIRECTORYINFO; + +const DIRECTORYINFO g_directoryInfo[] = +{ + { "ROMs", GetRomDirs, SetRomDirs, TRUE, DIRDLG_ROMS }, + { "Samples", GetSampleDirs, SetSampleDirs, TRUE, DIRDLG_SAMPLES }, + { "Software File Base", GetCommentDir, SetCommentDir, TRUE, DIRDLG_COMMENT }, + { "Software List Base", GetSoftwareDirs, SetSoftwareDirs, FALSE, DIRDLG_SOFTWARE }, + { "Artwork", GetArtDir, SetArtDir, TRUE, 0 }, + { "Cabinets", GetCabinetDir, SetCabinetDir, TRUE, 0 }, + { "Cheats", GetCheatDir, SetCheatDir, TRUE, DIRDLG_CHEAT }, + { "Config", GetCfgDir, SetCfgDir, FALSE, DIRDLG_CFG }, + { "Control Panels", GetControlPanelDir, SetControlPanelDir, TRUE, 0 }, + { "Controller Files", GetCtrlrDir, SetCtrlrDir, TRUE, DIRDLG_CTRLR }, + { "Crosshairs", GetCrosshairDir, SetCrosshairDir, TRUE, 0 }, + { "DAT files", GetDatsDir, SetDatsDir, FALSE, 0 }, + { "Folders", GetFolderDir, SetFolderDir, FALSE, 0 }, + { "Fonts", GetFontDir, SetFontDir, TRUE, 0 }, + { "Flyers", GetFlyerDir, SetFlyerDir, TRUE, 0 }, + { "Hash", GetHashDirs, SetHashDirs, TRUE, 0 }, + { "Hard Drive Difference", GetDiffDir, SetDiffDir, TRUE, 0 }, + { "Icons", GetIconsDir, SetIconsDir, FALSE, 0 }, + { "Ini Files", GetIniDir, SetIniDir, FALSE, DIRDLG_INI }, + { "Input files", GetInpDir, SetInpDir, TRUE, DIRDLG_INP }, + { "Language", GetLangDir, SetLangDir, FALSE, 0 }, + { "Marquees", GetMarqueeDir, SetMarqueeDir, TRUE, 0 }, + { "NVRAM", GetNvramDir, SetNvramDir, TRUE, 0 }, + { "PCBs", GetPcbDir, SetPcbDir, TRUE, 0 }, + { "Plugins", GetPluginsDir, SetPluginsDir, FALSE, 0 }, + { "Snapshots", GetImgDir, SetImgDir, TRUE, DIRDLG_IMG }, + { "State", GetStateDir, SetStateDir, TRUE, 0 }, + { "Titles", GetTitlesDir, SetTitlesDir, TRUE, 0 }, + { NULL } +}; + + +INT_PTR CALLBACK DirectoriesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); + +#endif /* DIRECTORIES_H */ + + diff --git a/docs/release/src/osd/winui/dirwatch.cpp b/docs/release/src/osd/winui/dirwatch.cpp new file mode 100644 index 00000000000..79330fe25bb --- /dev/null +++ b/docs/release/src/osd/winui/dirwatch.cpp @@ -0,0 +1,363 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +// standard C headers +#include <string.h> +#include <tchar.h> + +// MAME/MAMEUI headers +#include "dirwatch.h" +#include "emu.h" +#include "mui_util.h" +#include "strconv.h" + +typedef BOOL (WINAPI *READDIRECTORYCHANGESFUNC)(HANDLE hDirectory, LPVOID lpBuffer, + DWORD nBufferLength, BOOL bWatchSubtree, DWORD dwNotifyFilter, + LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped, + LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); + + +struct DirWatcherEntry +{ + struct DirWatcherEntry *pNext; + HANDLE hDir; + WORD nIndex; + WORD nSubIndex; + BOOL bWatchSubtree; + OVERLAPPED overlapped; + + union + { + FILE_NOTIFY_INFORMATION notify; + BYTE buffer[1024]; + } u; + + char szDirPath[1]; +}; + + + +struct DirWatcher +{ + HMODULE hKernelModule; + READDIRECTORYCHANGESFUNC pfnReadDirectoryChanges; + + HWND hwndTarget; + UINT nMessage; + + HANDLE hRequestEvent; + HANDLE hResponseEvent; + HANDLE hThread; + CRITICAL_SECTION crit; + struct DirWatcherEntry *pEntries; + + // These are posted externally + BOOL bQuit; + BOOL bWatchSubtree; + WORD nIndex; + LPCSTR pszPathList; +}; + + + +static void DirWatcher_SetupWatch(PDIRWATCHER pWatcher, struct DirWatcherEntry *pEntry) +{ + DWORD nDummy; + + memset(&pEntry->u, 0, sizeof(pEntry->u)); + + pWatcher->pfnReadDirectoryChanges(pEntry->hDir, + &pEntry->u, + sizeof(pEntry->u), + pEntry->bWatchSubtree, + FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_SIZE, + &nDummy, + &pEntry->overlapped, + NULL); +} + + + +static void DirWatcher_FreeEntry(struct DirWatcherEntry *pEntry) +{ + if (pEntry->hDir) + CloseHandle(pEntry->hDir); + free(pEntry); +} + + + +static BOOL DirWatcher_WatchDirectory(PDIRWATCHER pWatcher, int nIndex, int nSubIndex, + LPCSTR pszPath, BOOL bWatchSubtree) +{ + struct DirWatcherEntry *pEntry; + HANDLE hDir; + + pEntry = (DirWatcherEntry *)malloc(sizeof(*pEntry) + strlen(pszPath)); + if (!pEntry) + goto error; + memset(pEntry, 0, sizeof(*pEntry)); + strcpy(pEntry->szDirPath, pszPath); + pEntry->overlapped.hEvent = pWatcher->hRequestEvent; + + hDir = win_create_file_utf8(pszPath, FILE_LIST_DIRECTORY, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, NULL); + if (!hDir || (hDir == INVALID_HANDLE_VALUE)) + goto error; + + // Populate the entry + pEntry->hDir = hDir; + pEntry->bWatchSubtree = bWatchSubtree; + pEntry->nIndex = nIndex; + pEntry->nSubIndex = nSubIndex; + + // Link in the entry + pEntry->pNext = pWatcher->pEntries; + pWatcher->pEntries = pEntry; + + DirWatcher_SetupWatch(pWatcher, pEntry); + return TRUE; + +error: + if (pEntry) + DirWatcher_FreeEntry(pEntry); + return FALSE; +} + + + +static void DirWatcher_Signal(PDIRWATCHER pWatcher, struct DirWatcherEntry *pEntry) +{ + LPSTR pszFileName; + LPSTR pszFullFileName; + BOOL bPause = 0; + HANDLE hFile; + int nTries = 0; + TCHAR* t_filename; + + { + int nLength; + nLength = WideCharToMultiByte(CP_ACP, 0, pEntry->u.notify.FileName, -1, NULL, 0, NULL, NULL); + pszFileName = (LPSTR) alloca(nLength * sizeof(*pszFileName)); + WideCharToMultiByte(CP_ACP, 0, pEntry->u.notify.FileName, -1, pszFileName, nLength, NULL, NULL); + } + + // get the full path to this new file + pszFullFileName = (LPSTR) alloca(strlen(pEntry->szDirPath) + strlen(pszFileName) + 2); + strcpy(pszFullFileName, pEntry->szDirPath); + strcat(pszFullFileName, "\\"); + strcat(pszFullFileName, pszFileName); + + // attempt to busy wait until any result other than ERROR_SHARING_VIOLATION + // is generated + nTries = 100; + do + { + hFile = win_create_file_utf8(pszFullFileName, GENERIC_READ, + FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); + if (hFile != INVALID_HANDLE_VALUE) + CloseHandle(hFile); + + bPause = (nTries--) && (hFile == INVALID_HANDLE_VALUE) + && (GetLastError() == ERROR_SHARING_VIOLATION); + if (bPause) + Sleep(10); + } + while(bPause); + + // send the message (assuming that we have a target) + if (pWatcher->hwndTarget) + { + t_filename = tstring_from_utf8(pszFileName); + if( !t_filename ) + return; + SendMessage(pWatcher->hwndTarget, + pWatcher->nMessage, + (pEntry->nIndex << 16) | (pEntry->nSubIndex << 0), + (LPARAM)(LPCTSTR) win_tstring_strdup(t_filename)); + osd_free(t_filename); + } + + DirWatcher_SetupWatch(pWatcher, pEntry); +} + + + +static DWORD WINAPI DirWatcher_ThreadProc(LPVOID lpParameter) +{ + LPSTR pszPathList; + LPSTR s; + int nSubIndex = 0; + PDIRWATCHER pWatcher = (PDIRWATCHER) lpParameter; + struct DirWatcherEntry *pEntry; + struct DirWatcherEntry **ppEntry; + + do + { + WaitForSingleObject(pWatcher->hRequestEvent, INFINITE); + + if (pWatcher->pszPathList) + { + // remove any entries with the same nIndex + ppEntry = &pWatcher->pEntries; + while(*ppEntry) + { + if ((*ppEntry)->nIndex == pWatcher->nIndex) + { + pEntry = *ppEntry; + *ppEntry = pEntry->pNext; + DirWatcher_FreeEntry(pEntry); + } + else + { + ppEntry = &(*ppEntry)->pNext; + } + } + + // allocate our own copy of the path list + pszPathList = (LPSTR) alloca(strlen(pWatcher->pszPathList) + 1); + strcpy(pszPathList, pWatcher->pszPathList); + + nSubIndex = 0; + do + { + s = strchr(pszPathList, ';'); + if (s) + *s = '\0'; + + if (*pszPathList) + { + DirWatcher_WatchDirectory(pWatcher, pWatcher->nIndex, + nSubIndex++, pszPathList, pWatcher->bWatchSubtree); + } + + pszPathList = s ? s + 1 : NULL; + } + while(pszPathList); + + pWatcher->pszPathList = NULL; + pWatcher->bWatchSubtree = FALSE; + } + else + { + // we have to go through the list and find what has been hit + for (pEntry = pWatcher->pEntries; pEntry; pEntry = pEntry->pNext) + { + if (pEntry->u.notify.Action != 0) + { + DirWatcher_Signal(pWatcher, pEntry); + } + } + } + + SetEvent(pWatcher->hResponseEvent); + } + while(!pWatcher->bQuit); + return 0; +} + + + +PDIRWATCHER DirWatcher_Init(HWND hwndTarget, UINT nMessage) +{ + struct DirWatcher *pWatcher = NULL; + DWORD nThreadID = 0; + + // This feature does not exist on Win9x + if (GetVersion() >= 0x80000000) + goto error; + + pWatcher = (DirWatcher *)malloc(sizeof(struct DirWatcher)); + if (!pWatcher) + goto error; + memset(pWatcher, 0, sizeof(*pWatcher)); + InitializeCriticalSection(&pWatcher->crit); + + pWatcher->hKernelModule = LoadLibrary(TEXT("kernel32.dll")); + if (!pWatcher->hKernelModule) + goto error; + + pWatcher->pfnReadDirectoryChanges = (READDIRECTORYCHANGESFUNC) + GetProcAddress(pWatcher->hKernelModule, "ReadDirectoryChangesW"); + if (!pWatcher->pfnReadDirectoryChanges) + goto error; + + pWatcher->hRequestEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + if (!pWatcher->hRequestEvent) + goto error; + + pWatcher->hResponseEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + if (!pWatcher->hRequestEvent) + goto error; + + pWatcher->hThread = CreateThread(NULL, 0, DirWatcher_ThreadProc, + (LPVOID) pWatcher, 0, &nThreadID); + + pWatcher->hwndTarget = hwndTarget; + pWatcher->nMessage = nMessage; + return pWatcher; + +error: + if (pWatcher) + DirWatcher_Free(pWatcher); + return NULL; +} + + + +BOOL DirWatcher_Watch(PDIRWATCHER pWatcher, WORD nIndex, LPCSTR pszPathList, BOOL bWatchSubtrees) +{ + EnterCriticalSection(&pWatcher->crit); + + pWatcher->nIndex = nIndex; + pWatcher->pszPathList = pszPathList; + pWatcher->bWatchSubtree = bWatchSubtrees; + SetEvent(pWatcher->hRequestEvent); + + WaitForSingleObject(pWatcher->hResponseEvent, INFINITE); + LeaveCriticalSection(&pWatcher->crit); + return TRUE; +} + + + +void DirWatcher_Free(PDIRWATCHER pWatcher) +{ + struct DirWatcherEntry *pEntry; + struct DirWatcherEntry *pNextEntry; + + if (pWatcher->hThread) + { + EnterCriticalSection(&pWatcher->crit); + pWatcher->bQuit = TRUE; + SetEvent(pWatcher->hRequestEvent); + WaitForSingleObject(pWatcher->hThread, 1000); + LeaveCriticalSection(&pWatcher->crit); + CloseHandle(pWatcher->hThread); + } + + DeleteCriticalSection(&pWatcher->crit); + + pEntry = pWatcher->pEntries; + while(pEntry) + { + pNextEntry = pEntry->pNext; + DirWatcher_FreeEntry(pEntry); + pEntry = pNextEntry; + } + + if (pWatcher->hKernelModule) + FreeLibrary(pWatcher->hKernelModule); + if (pWatcher->hRequestEvent) + CloseHandle(pWatcher->hRequestEvent); + if (pWatcher->hResponseEvent) + CloseHandle(pWatcher->hResponseEvent); + free(pWatcher); +} + diff --git a/docs/release/src/osd/winui/dirwatch.h b/docs/release/src/osd/winui/dirwatch.h new file mode 100644 index 00000000000..1a759568c10 --- /dev/null +++ b/docs/release/src/osd/winui/dirwatch.h @@ -0,0 +1,13 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef DIRWATCHER_H +#define DIRWATCHER_H + +typedef struct DirWatcher *PDIRWATCHER; + +PDIRWATCHER DirWatcher_Init(HWND hwndTarget, UINT nMessage); +BOOL DirWatcher_Watch(PDIRWATCHER pWatcher, WORD nIndex, LPCSTR pszPathList, BOOL bWatchSubtrees); +void DirWatcher_Free(PDIRWATCHER pWatcher); + +#endif diff --git a/docs/release/src/osd/winui/dxdecode.cpp b/docs/release/src/osd/winui/dxdecode.cpp new file mode 100644 index 00000000000..3009084f0c7 --- /dev/null +++ b/docs/release/src/osd/winui/dxdecode.cpp @@ -0,0 +1,195 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <ddraw.h> + +// standard C headers +#include <stdio.h> + +// MAME/MAMEUI headers +#include "directinput.h" +#include "dxdecode.h" + +/***************************************************************/ + +typedef struct tagERRORCODE +{ + HRESULT hr; + const char *szError; +} ERRORCODE, * LPERRORCODE; + +/***************************************************************/ +static const ERRORCODE g_ErrorCode[] = +{ + { DDERR_ALREADYINITIALIZED, "DDERR_ALREADYINITIALIZED"}, + { DDERR_CANNOTATTACHSURFACE, "DDERR_CANNOTATTACHSURFACE"}, + { DDERR_CANNOTDETACHSURFACE, "DDERR_CANNOTDETACHSURFACE"}, + { DDERR_CURRENTLYNOTAVAIL, "DDERR_CURRENTLYNOTAVAIL"}, + { DDERR_EXCEPTION, "DDERR_EXCEPTION"}, + { DDERR_GENERIC, "DDERR_GENERIC"}, + { DDERR_HEIGHTALIGN, "DDERR_HEIGHTALIGN"}, + { DDERR_INCOMPATIBLEPRIMARY, "DDERR_INCOMPATIBLEPRIMARY"}, + { DDERR_INVALIDCAPS, "DDERR_INVALIDCAPS"}, + { DDERR_INVALIDCLIPLIST, "DDERR_INVALIDCLIPLIST"}, + { DDERR_INVALIDMODE, "DDERR_INVALIDMODE"}, + { DDERR_INVALIDOBJECT, "DDERR_INVALIDOBJECT"}, + { DDERR_INVALIDPARAMS, "DDERR_INVALIDPARAMS"}, + { DDERR_INVALIDPIXELFORMAT, "DDERR_INVALIDPIXELFORMAT"}, + { DDERR_INVALIDRECT, "DDERR_INVALIDRECT"}, + { DDERR_LOCKEDSURFACES, "DDERR_LOCKEDSURFACES"}, + { DDERR_NO3D, "DDERR_NO3D"}, + { DDERR_NOALPHAHW, "DDERR_NOALPHAHW"}, + { DDERR_NOCLIPLIST, "DDERR_NOCLIPLIST"}, + { DDERR_NOCOLORCONVHW, "DDERR_NOCOLORCONVHW"}, + { DDERR_NOCOOPERATIVELEVELSET, "DDERR_NOCOOPERATIVELEVELSET"}, + { DDERR_NOCOLORKEY, "DDERR_NOCOLORKEY"}, + { DDERR_NOCOLORKEYHW, "DDERR_NOCOLORKEYHW"}, + { DDERR_NODIRECTDRAWSUPPORT, "DDERR_NODIRECTDRAWSUPPORT"}, + { DDERR_NOEXCLUSIVEMODE, "DDERR_NOEXCLUSIVEMODE"}, + { DDERR_NOFLIPHW, "DDERR_NOFLIPHW"}, + { DDERR_NOGDI, "DDERR_NOGDI"}, + { DDERR_NOMIRRORHW, "DDERR_NOMIRRORHW"}, + { DDERR_NOTFOUND, "DDERR_NOTFOUND"}, + { DDERR_NOOVERLAYHW, "DDERR_NOOVERLAYHW"}, + { DDERR_NORASTEROPHW, "DDERR_NORASTEROPHW"}, + { DDERR_NOROTATIONHW, "DDERR_NOROTATIONHW"}, + { DDERR_NOSTRETCHHW, "DDERR_NOSTRETCHHW"}, + { DDERR_NOT4BITCOLOR, "DDERR_NOT4BITCOLOR"}, + { DDERR_NOT4BITCOLORINDEX, "DDERR_NOT4BITCOLORINDEX"}, + { DDERR_NOT8BITCOLOR, "DDERR_NOT8BITCOLOR"}, + { DDERR_NOTEXTUREHW, "DDERR_NOTEXTUREHW"}, + { DDERR_NOVSYNCHW, "DDERR_NOVSYNCHW"}, + { DDERR_NOZBUFFERHW, "DDERR_NOZBUFFERHW"}, + { DDERR_NOZOVERLAYHW, "DDERR_NOZOVERLAYHW"}, + { DDERR_OUTOFCAPS, "DDERR_OUTOFCAPS"}, + { DDERR_OUTOFMEMORY, "DDERR_OUTOFMEMORY"}, + { DDERR_OUTOFVIDEOMEMORY, "DDERR_OUTOFVIDEOMEMORY"}, + { DDERR_OVERLAYCANTCLIP, "DDERR_OVERLAYCANTCLIP"}, + { DDERR_OVERLAYCOLORKEYONLYONEACTIVE, "DDERR_OVERLAYCOLORKEYONLYONEACTIVE"}, + { DDERR_PALETTEBUSY, "DDERR_PALETTEBUSY"}, + { DDERR_COLORKEYNOTSET, "DDERR_COLORKEYNOTSET"}, + { DDERR_SURFACEALREADYATTACHED, "DDERR_SURFACEALREADYATTACHED"}, + { DDERR_SURFACEALREADYDEPENDENT, "DDERR_SURFACEALREADYDEPENDENT"}, + { DDERR_SURFACEBUSY, "DDERR_SURFACEBUSY"}, + { DDERR_CANTLOCKSURFACE, "DDERR_CANTLOCKSURFACE"}, + { DDERR_SURFACEISOBSCURED, "DDERR_SURFACEISOBSCURED"}, + { DDERR_SURFACELOST, "DDERR_SURFACELOST"}, + { DDERR_SURFACENOTATTACHED, "DDERR_SURFACENOTATTACHED"}, + { DDERR_TOOBIGHEIGHT, "DDERR_TOOBIGHEIGHT"}, + { DDERR_TOOBIGSIZE, "DDERR_TOOBIGSIZE"}, + { DDERR_TOOBIGWIDTH, "DDERR_TOOBIGWIDTH"}, + { DDERR_UNSUPPORTED, "DDERR_UNSUPPORTED"}, + { DDERR_UNSUPPORTEDFORMAT, "DDERR_UNSUPPORTEDFORMAT"}, + { DDERR_UNSUPPORTEDMASK, "DDERR_UNSUPPORTEDMASK"}, + { DDERR_VERTICALBLANKINPROGRESS, "DDERR_VERTICALBLANKINPROGRESS"}, + { DDERR_WASSTILLDRAWING, "DDERR_WASSTILLDRAWING"}, + { DDERR_XALIGN, "DDERR_XALIGN"}, + { DDERR_INVALIDDIRECTDRAWGUID, "DDERR_INVALIDDIRECTDRAWGUID"}, + { DDERR_DIRECTDRAWALREADYCREATED, "DDERR_DIRECTDRAWALREADYCREATED"}, + { DDERR_NODIRECTDRAWHW, "DDERR_NODIRECTDRAWHW"}, + { DDERR_PRIMARYSURFACEALREADYEXISTS, "DDERR_PRIMARYSURFACEALREADYEXISTS"}, + { DDERR_NOEMULATION, "DDERR_NOEMULATION"}, + { DDERR_REGIONTOOSMALL, "DDERR_REGIONTOOSMALL"}, + { DDERR_CLIPPERISUSINGHWND, "DDERR_CLIPPERISUSINGHWND"}, + { DDERR_NOCLIPPERATTACHED, "DDERR_NOCLIPPERATTACHED"}, + { DDERR_NOHWND, "DDERR_NOHWND"}, + { DDERR_HWNDSUBCLASSED, "DDERR_HWNDSUBCLASSED"}, + { DDERR_HWNDALREADYSET, "DDERR_HWNDALREADYSET"}, + { DDERR_NOPALETTEATTACHED, "DDERR_NOPALETTEATTACHED"}, + { DDERR_NOPALETTEHW, "DDERR_NOPALETTEHW"}, + { DDERR_BLTFASTCANTCLIP, "DDERR_BLTFASTCANTCLIP"}, + { DDERR_NOBLTHW, "DDERR_NOBLTHW"}, + { DDERR_NODDROPSHW, "DDERR_NODDROPSHW"}, + { DDERR_OVERLAYNOTVISIBLE, "DDERR_OVERLAYNOTVISIBLE"}, + { DDERR_NOOVERLAYDEST, "DDERR_NOOVERLAYDEST"}, + { DDERR_INVALIDPOSITION, "DDERR_INVALIDPOSITION"}, + { DDERR_NOTAOVERLAYSURFACE, "DDERR_NOTAOVERLAYSURFACE"}, + { DDERR_EXCLUSIVEMODEALREADYSET, "DDERR_EXCLUSIVEMODEALREADYSET"}, + { DDERR_NOTFLIPPABLE, "DDERR_NOTFLIPPABLE"}, + { DDERR_CANTDUPLICATE, "DDERR_CANTDUPLICATE"}, + { DDERR_NOTLOCKED, "DDERR_NOTLOCKED"}, + { DDERR_CANTCREATEDC, "DDERR_CANTCREATEDC"}, + { DDERR_NODC, "DDERR_NODC"}, + { DDERR_WRONGMODE, "DDERR_WRONGMODE"}, + { DDERR_IMPLICITLYCREATED, "DDERR_IMPLICITLYCREATED"}, + { DDERR_NOTPALETTIZED, "DDERR_NOTPALETTIZED"}, + { DDERR_UNSUPPORTEDMODE, "DDERR_UNSUPPORTEDMODE"}, + { DDERR_NOMIPMAPHW, "DDERR_NOMIPMAPHW"}, + { DDERR_INVALIDSURFACETYPE, "DDERR_INVALIDSURFACETYPE"}, + + { DDERR_NOOPTIMIZEHW, "DDERR_NOOPTIMIZEHW"}, + { DDERR_NOTLOADED, "DDERR_NOTLOADED"}, + + { DDERR_DCALREADYCREATED, "DDERR_DCALREADYCREATED"}, + + { DDERR_NONONLOCALVIDMEM, "DDERR_NONONLOCALVIDMEM"}, + { DDERR_CANTPAGELOCK, "DDERR_CANTPAGELOCK"}, + { DDERR_CANTPAGEUNLOCK, "DDERR_CANTPAGEUNLOCK"}, + { DDERR_NOTPAGELOCKED, "DDERR_NOTPAGELOCKED"}, + + { DDERR_MOREDATA, "DDERR_MOREDATA"}, + { DDERR_VIDEONOTACTIVE, "DDERR_VIDEONOTACTIVE"}, + { DDERR_DEVICEDOESNTOWNSURFACE, "DDERR_DEVICEDOESNTOWNSURFACE"}, + { DDERR_NOTINITIALIZED, "DDERR_NOTINITIALIZED"}, + + { DIERR_OLDDIRECTINPUTVERSION, "DIERR_OLDDIRECTINPUTVERSION" }, + { DIERR_BETADIRECTINPUTVERSION, "DIERR_BETADIRECTINPUTVERSION" }, + { DIERR_BADDRIVERVER, "DIERR_BADDRIVERVER" }, + { DIERR_DEVICENOTREG, "DIERR_DEVICENOTREG" }, + { DIERR_NOTFOUND, "DIERR_NOTFOUND" }, + { DIERR_OBJECTNOTFOUND, "DIERR_OBJECTNOTFOUND" }, + { DIERR_INVALIDPARAM, "DIERR_INVALIDPARAM" }, + { DIERR_NOINTERFACE, "DIERR_NOINTERFACE" }, + { DIERR_GENERIC, "DIERR_GENERIC" }, + { DIERR_OUTOFMEMORY, "DIERR_OUTOFMEMORY" }, + { DIERR_UNSUPPORTED, "DIERR_UNSUPPORTED" }, + { DIERR_NOTINITIALIZED, "DIERR_NOTINITIALIZED" }, + { DIERR_ALREADYINITIALIZED, "DIERR_ALREADYINITIALIZED" }, + { DIERR_NOAGGREGATION, "DIERR_NOAGGREGATION" }, + { DIERR_OTHERAPPHASPRIO, "DIERR_OTHERAPPHASPRIO" }, + { DIERR_INPUTLOST, "DIERR_INPUTLOST" }, + { DIERR_ACQUIRED, "DIERR_ACQUIRED" }, + { DIERR_NOTACQUIRED, "DIERR_NOTACQUIRED" }, + { DIERR_READONLY, "DIERR_READONLY" }, + { DIERR_HANDLEEXISTS, "DIERR_HANDLEEXISTS" }, + { E_PENDING, "E_PENDING" }, + { (HRESULT)DIERR_INSUFFICIENTPRIVS, "DIERR_INSUFFICIENTPRIVS" }, + { (HRESULT)DIERR_DEVICEFULL, "DIERR_DEVICEFULL" }, + { (HRESULT)DIERR_MOREDATA, "DIERR_MOREDATA" }, + { (HRESULT)DIERR_NOTDOWNLOADED, "DIERR_NOTDOWNLOADED" }, + { (HRESULT)DIERR_HASEFFECTS, "DIERR_HASEFFECTS" }, + { (HRESULT)DIERR_NOTEXCLUSIVEACQUIRED,"DIERR_NOTEXCLUSIVEACQUIRED" }, + { (HRESULT)DIERR_INCOMPLETEEFFECT, "DIERR_INCOMPLETEEFFECT" }, + { (HRESULT)DIERR_NOTBUFFERED, "DIERR_NOTBUFFERED" }, + { (HRESULT)DIERR_EFFECTPLAYING, "DIERR_EFFECTPLAYING" }, + //{ (HRESULT)DIERR_UNPLUGGED, "DIERR_UNPLUGGED" }, + + { E_NOINTERFACE, "E_NOINTERFACE" } + +}; + +/***************************************************************/ + +/* + DirectXDecodeError: Return a string description of the given DirectX + error code. +*/ + +const char * DirectXDecodeError(HRESULT errorval) +{ + int i; + static char tmp[64]; + + for (i = 0; i < (sizeof(g_ErrorCode) / sizeof(g_ErrorCode[0])); i++) + { + if (g_ErrorCode[i].hr == errorval) + { + return g_ErrorCode[i].szError; + } + } + sprintf(tmp, "UNKNOWN: 0x%x", (unsigned int)errorval); + return tmp; +} diff --git a/docs/release/src/osd/winui/dxdecode.h b/docs/release/src/osd/winui/dxdecode.h new file mode 100644 index 00000000000..0de32e83623 --- /dev/null +++ b/docs/release/src/osd/winui/dxdecode.h @@ -0,0 +1,13 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/* dxdecode.h for client */ + +/* Main header file for dxdecode.cpp */ + +#ifndef DXDECODE_H +#define DXDECODE_H + +extern const char* DirectXDecodeError(HRESULT errorval); + +#endif /* DXDECODE_H */ diff --git a/docs/release/src/osd/winui/game_opts.h b/docs/release/src/osd/winui/game_opts.h new file mode 100644 index 00000000000..d53638ef5e0 --- /dev/null +++ b/docs/release/src/osd/winui/game_opts.h @@ -0,0 +1,234 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef __GAME_OPTS_H__ +#define __GAME_OPTS_H__ + +#include "emu.h" +#include "drivenum.h" +#include "win_options.h" + +class string_iterator +{ +public: + // simple construction/destruction + string_iterator() { copy(""); } + string_iterator(const char *str) { copy(str); } + + // copy helpers + void copy(const char *str) + { + /* reset the structure */ + m_str.clear(); + m_base = (str != NULL) ? str : ""; + m_cur = m_base; + } + + // character searching helpers + int next(int separator, bool duplicate = false) + { + const char *semi; + + /* if none left, return FALSE to indicate we are done */ + if (m_index != 0 && *m_cur == 0) + return false; + + /* ignore duplicates of the separator */ + while (duplicate && m_index == 0 && *m_cur == separator) + m_cur++; + + if (duplicate && *m_cur == 0) + return false; + + /* copy up to the next separator */ + semi = strchr(m_cur, separator); + + if (semi == NULL) + semi = m_cur + strlen(m_cur); + + m_str.assign(m_cur, semi - m_cur); + m_cur = (*semi == 0) ? semi : semi + 1; + + /* ignore duplicates of the separator */ + while (duplicate && *m_cur && *m_cur == separator) + m_cur++; + + /* bump the index and return true */ + m_index++; + + return true; + } + + // C string conversion operators and helpers + operator const char *() const { return m_str.c_str(); } + const char *c_str() const { return m_str.c_str(); } + +private: + std::string m_str; + const char * m_base; + const char * m_cur; + int m_index; +}; + +class game_options +{ +public: + // construction/destruction + game_options() + { + m_total = driver_list::total(); + m_list.reserve(m_total); + + driver_options option = { -1, -1, -1, 0, 0 }; + + for (int i = 0; i < m_total; i++) + m_list[i] = option; + } + + int rom(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].rom; } + void rom(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].rom = val; } + + int sample(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].sample; } + void sample(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].sample = val; } + + int cache(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].cache; } + void cache(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].cache = val; } + + int play_count(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].play_count; } + void play_count(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].play_count = val; } + + int play_time(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].play_time; } + void play_time(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].play_time = val; } + + void add_entries() + { + options_entry entry[2] = { { 0 }, { 0 } }; + + // 1:Rom, 2:Sample, 3:Cache, 4:Play Count, 5:Play Time + entry[0].defvalue = "-1,-1,-1"; + entry[0].flags = OPTION_STRING; + entry[0].description = NULL; + + for (int i = 0; i < m_total; i++) + { + entry[0].name = driver_list::driver(i).name; + m_info.add_entries(entry); + } + } + + osd_file::error load_file(const char *filename) + { + emu_file file(OPEN_FLAG_READ); + + osd_file::error filerr = file.open(filename); + if (filerr == osd_file::error::NONE) + { + std::string error_string; + m_info.parse_ini_file(file, OPTION_PRIORITY_CMDLINE, OPTION_PRIORITY_CMDLINE, error_string); + } + + load_settings(); + + return filerr; + } + + void output_ini(std::string &buffer, const char *header = NULL) + { + std::string inibuffer; + //inibuffer.expand(768*1024); + + m_info.output_ini(inibuffer); + + if (header && !inibuffer.empty()) + { + buffer.append(string_format("\n#\n# %s\n#\n", header)); + buffer.append(inibuffer); + } + } + + void load_settings(void) + { + std::string value_str; + + for (int i = 0; i < m_total; i++) + { + value_str.assign(m_info.value(driver_list::driver(i).name)); + + if (!value_str.empty()) + load_settings(value_str.c_str(), i); + } + } + + void load_settings(const char *str, int index) + { + string_iterator value_str(str); + int value_int; + + for (int i = 0; i < 5; i++) + { + if ( value_str.next(',') ) + { + if (value_str && (sscanf(value_str.c_str(), "%d", &value_int) == 1)) + { + switch (i) + { + case 0: m_list[index].rom = value_int; break; + case 1: m_list[index].sample = value_int; break; + case 2: m_list[index].cache = value_int; break; + case 3: m_list[index].play_count = value_int; break; + case 4: m_list[index].play_time = value_int; break; + } + } + } + else + break; + } + } + + void save_settings(void) + { + std::string value_str; + std::string error_string; + + for (int i = 0; i < m_total; i++) + { + value_str = string_format("%d,%d,%d,%d,%d", m_list[i].rom, m_list[i].sample, m_list[i].cache, m_list[i].play_count, m_list[i].play_time); + m_info.set_value(driver_list::driver(i).name, value_str.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + } + } + + osd_file::error save_file(const char *filename) + { + osd_file::error filerr; + std::string inistring; + + save_settings(); + + output_ini(inistring, "GAME STATISTICS"); + + emu_file file(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); + filerr = file.open(filename); + if (filerr == osd_file::error::NONE) + file.puts(inistring.c_str()); + + return filerr; + } + +private: + win_options m_info; + int m_total; + + struct driver_options + { + int rom; + int sample; + int cache; + int play_count; + int play_time; + }; + + std::vector<driver_options> m_list; +}; + +#endif // __GAME_OPTS_H__ + diff --git a/docs/release/src/osd/winui/hbmame.rc b/docs/release/src/osd/winui/hbmame.rc new file mode 100644 index 00000000000..f90e47d750c --- /dev/null +++ b/docs/release/src/osd/winui/hbmame.rc @@ -0,0 +1,20 @@ +#include "windows.h" +#include "commctrl.h" + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +// +// Icon +// + +2 ICON DISCARDABLE "res\\hbmame.ico" +#endif // English (U.S.) resources + +#include "hbmameui.rc" diff --git a/docs/release/src/osd/winui/hbmameui.rc b/docs/release/src/osd/winui/hbmameui.rc new file mode 100644 index 00000000000..92fe375e761 --- /dev/null +++ b/docs/release/src/osd/winui/hbmameui.rc @@ -0,0 +1,1459 @@ +// Microsoft Visual C++ generated resource script. +// +#include "newuires.h" +#include "resource.h" + +// Generated Help ID header file +#define APSTUDIO_HIDDEN_SYMBOLS +#include "resource.hm" +#undef APSTUDIO_HIDDEN_SYMBOLS + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "windows.h" +#include "commctrl.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (USA) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAIN_MENU MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Exit", ID_FILE_EXIT + END + POPUP "&Help" + BEGIN + MENUITEM "&About HBMAMEUI", ID_ABOUT + END +END + +IDR_UI_MENU MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Play", ID_FILE_PLAY + MENUITEM SEPARATOR + MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD + MENUITEM "P&layback Input...", ID_FILE_PLAY_BACK + MENUITEM SEPARATOR + MENUITEM "Play and Record &Wave Output...", ID_FILE_PLAY_RECORD_WAVE + MENUITEM SEPARATOR + MENUITEM "Play and Record &MNG Output...", ID_FILE_PLAY_RECORD_MNG + MENUITEM SEPARATOR + MENUITEM "Play and Record &uncompressed AVI Output...", + ID_FILE_PLAY_RECORD_AVI + MENUITEM SEPARATOR + MENUITEM "Loa&d Savestate...", ID_FILE_LOADSTATE + MENUITEM SEPARATOR + + MENUITEM "Pr&operties", ID_GAME_PROPERTIES + MENUITEM SEPARATOR + MENUITEM "Audi&t existing sets", ID_FILE_AUDIT_X + MENUITEM "&Audit all sets", ID_FILE_AUDIT + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_FILE_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar\tAlt+T", ID_VIEW_TOOLBARS + MENUITEM "&Status bar\tAlt+S", ID_VIEW_STATUS + MENUITEM "Fold&er List\tAlt+D", ID_VIEW_FOLDERS + MENUITEM "&Picture Area\tAlt+P", ID_VIEW_PICTURE_AREA + MENUITEM "Screenshot Ta&b\tAlt+B", ID_VIEW_PAGETAB + MENUITEM SEPARATOR + MENUITEM "&Fullscreen\tF11", ID_VIEW_FULLSCREEN + MENUITEM SEPARATOR + POPUP "S&how Pictures" + BEGIN + MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT + MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER + MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET + MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE + MENUITEM "&Title", ID_TOGGLE_TAB_TITLE + MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL + + MENUITEM "PC&B", ID_TOGGLE_TAB_PCB + MENUITEM "&History", ID_TOGGLE_TAB_HISTORY + END + MENUITEM SEPARATOR + MENUITEM "L&arge Icons", ID_VIEW_LARGE_ICON + MENUITEM "S&mall Icons", ID_VIEW_SMALL_ICON + MENUITEM "&List", ID_VIEW_LIST_MENU + MENUITEM "&Details", ID_VIEW_DETAIL + MENUITEM "&Grouped", ID_VIEW_GROUPED + MENUITEM SEPARATOR + POPUP "Arrange &Icons" + BEGIN + MENUITEM "by &Name", ID_VIEW_BYGAME + MENUITEM "by D&irectory", ID_VIEW_BYDIRECTORY + MENUITEM "by &Manufacturer", ID_VIEW_BYMANUFACTURER + MENUITEM "by Times &Played", ID_VIEW_BYTIMESPLAYED + MENUITEM "by &Type", ID_VIEW_BYTYPE + MENUITEM "by &Date", ID_VIEW_BYYEAR + END + MENUITEM "Line &Up Icons", ID_VIEW_LINEUPICONS + MENUITEM SEPARATOR + MENUITEM "&Refresh\tF5", ID_UPDATE_GAMELIST + MENUITEM "&Custom Filters...\tCtrl+F", ID_CONTEXT_FILTERS + MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS + END + POPUP "&Options" + BEGIN + MENUITEM "&Interface Options", ID_OPTIONS_INTERFACE + MENUITEM "Default Game &Options", ID_OPTIONS_DEFAULTS + MENUITEM "&Directories", ID_OPTIONS_DIR + MENUITEM SEPARATOR + MENUITEM "Game List &Font", ID_OPTIONS_FONT + MENUITEM "Game List &Clone Color", ID_OPTIONS_CLONE_COLOR + MENUITEM SEPARATOR + + MENUITEM "&Background Image", ID_OPTIONS_BG + MENUITEM SEPARATOR + MENUITEM "&Reset to Default", ID_OPTIONS_RESET_DEFAULTS + + END + POPUP "&Help" + BEGIN + MENUITEM "What's New in MAME", ID_HELP_WHATS_NEW + MENUITEM "&Contents\tF1", ID_HELP_CONTENTS + MENUITEM "&About", ID_HELP_ABOUT + END +END + +IDR_CONTEXT_MENU MENU +BEGIN + POPUP "Context Menu" + BEGIN + MENUITEM "&Play", ID_FILE_PLAY + MENUITEM SEPARATOR + MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD + MENUITEM SEPARATOR + MENUITEM "&Add to Custom Folder...", ID_CONTEXT_ADD_CUSTOM + MENUITEM "R&emove From This Folder", ID_CONTEXT_REMOVE_CUSTOM + MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS + MENUITEM SEPARATOR + MENUITEM "&Select Random Game", ID_CONTEXT_SELECT_RANDOM + MENUITEM SEPARATOR + MENUITEM "Rese&t Playcount", ID_CONTEXT_RESET_PLAYCOUNT + MENUITEM "Reset Pla&y Time", ID_CONTEXT_RESET_PLAYTIME + MENUITEM SEPARATOR + MENUITEM "A&udit", ID_GAME_AUDIT + MENUITEM SEPARATOR + MENUITEM "Pr&operties", ID_GAME_PROPERTIES + MENUITEM "Source propert&ies", ID_FOLDER_SOURCEPROPERTIES + MENUITEM "&Vector properties", ID_FOLDER_VECTORPROPERTIES + END +END + +IDR_CONTEXT_HEADER MENU +BEGIN + POPUP "Header Context Menu" + BEGIN + MENUITEM "Sort &Ascending", ID_SORT_ASCENDING + MENUITEM "Sort &Descending", ID_SORT_DESCENDING + MENUITEM SEPARATOR + MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS + END +END + +IDR_CONTEXT_TREE MENU +BEGIN + POPUP "Context Menu Tree" + BEGIN + MENUITEM "&Rename", ID_CONTEXT_RENAME_CUSTOM + MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS + MENUITEM SEPARATOR + POPUP "&Show Folders" + BEGIN + MENUITEM "overridden by code", ID_CONTEXT_SHOW_FOLDER_START + + END + MENUITEM SEPARATOR + MENUITEM "&Audit", ID_FOLDER_AUDIT + MENUITEM SEPARATOR + MENUITEM "&Properties", ID_FOLDER_PROPERTIES + END +END + +IDR_CONTEXT_SCREENSHOT MENU +BEGIN + POPUP "Context Screen Shot" + BEGIN + MENUITEM "Show Tab &Control", ID_VIEW_PAGETAB + MENUITEM SEPARATOR + POPUP "S&how Pictures" + BEGIN + MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT + MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER + MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET + MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE + MENUITEM "&Title", ID_TOGGLE_TAB_TITLE + MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL + + MENUITEM "PC&B", ID_TOGGLE_TAB_PCB + MENUITEM "&History", ID_TOGGLE_TAB_HISTORY + END + MENUITEM SEPARATOR + MENUITEM "&Snapshot", ID_VIEW_TAB_SCREENSHOT + MENUITEM "&Flyer", ID_VIEW_TAB_FLYER + MENUITEM "&Cabinet", ID_VIEW_TAB_CABINET + MENUITEM "&Marquee", ID_VIEW_TAB_MARQUEE + MENUITEM "&Title", ID_VIEW_TAB_TITLE + MENUITEM "Control &Panel", ID_VIEW_TAB_CONTROL_PANEL + MENUITEM "PC&B", ID_VIEW_TAB_PCB + MENUITEM "&History", ID_VIEW_TAB_HISTORY + END +END + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_RUNTIME_MENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Load State...", ID_FILE_LOADSTATE_NEWUI, GRAYED + MENUITEM "&Save State", ID_FILE_SAVESTATE, GRAYED + MENUITEM "S&ave State As...", ID_FILE_SAVESTATE_AS, GRAYED + MENUITEM SEPARATOR + MENUITEM "Save Sc&reenshot", ID_FILE_SAVESCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Hide Menubar", ID_FILE_TOGGLEMENUBAR + MENUITEM "&Full Screen\tAlt+Enter", ID_FILE_FULLSCREEN + MENUITEM "Partial Keyboard Emulation", ID_FILE_UIACTIVE + MENUITEM "Show Tab Menu", ID_FILE_OLDUI + MENUITEM SEPARATOR + MENUITEM "&Exit", ID_FILE_EXIT_NEWUI + END + POPUP "&Edit" + BEGIN + MENUITEM "Paste", ID_EDIT_PASTE + END + POPUP "&Options" + BEGIN + MENUITEM "&Pause", ID_OPTIONS_PAUSE, GRAYED + MENUITEM "Soft &Reset", ID_OPTIONS_SOFTRESET + MENUITEM "Ha&rd Reset", ID_OPTIONS_HARDRESET + MENUITEM SEPARATOR + POPUP "&Keyboard" + BEGIN + MENUITEM "Emulated", ID_KEYBOARD_EMULATED + MENUITEM "Natural", ID_KEYBOARD_NATURAL + MENUITEM SEPARATOR + MENUITEM "Customise Emulated Keyboard...", ID_KEYBOARD_CUSTOMIZE + END + MENUITEM "&Joysticks", ID_OPTIONS_JOYSTICKS, GRAYED + POPUP "&Video" + BEGIN + MENUITEM SEPARATOR + MENUITEM "Rotate 0 degrees", ID_VIDEO_ROTATE_0 + MENUITEM "Rotate 90 degrees", ID_VIDEO_ROTATE_90 + MENUITEM "Rotate 180 degrees", ID_VIDEO_ROTATE_180 + MENUITEM "Rotate 270 degrees", ID_VIDEO_ROTATE_270 + END + MENUITEM "&Configuration...", ID_OPTIONS_CONFIGURATION + MENUITEM "&DIP Switches...", ID_OPTIONS_DIPSWITCHES + MENUITEM "&Miscellaneous Inputs...", ID_OPTIONS_MISCINPUT + MENUITEM "&Analog Controls...", ID_OPTIONS_ANALOGCONTROLS + MENUITEM SEPARATOR + POPUP "&Frameskip" + BEGIN + MENUITEM "Auto", ID_FRAMESKIP_AUTO + END + POPUP "Maximum &Speed" + BEGIN + MENUITEM "50%", ID_THROTTLE_50 + MENUITEM "100%", ID_THROTTLE_100 + MENUITEM "200%", ID_THROTTLE_200 + MENUITEM "500%", ID_THROTTLE_500 + MENUITEM "1000%", ID_THROTTLE_1000 + MENUITEM "Unlimited", ID_THROTTLE_UNTHROTTLED + END + MENUITEM "Show &FPS", ID_OPTIONS_TOGGLEFPS + END + POPUP "&Media" + BEGIN + MENUITEM SEPARATOR + END + POPUP "&Help" + BEGIN + MENUITEM "About This System...", ID_HELP_ABOUTSYSTEM + MENUITEM "&About HBMAME...", ID_HELP_ABOUT_NEWUI + END +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE MOVEABLE PURE +BEGIN + "resource.h\\r\n" + "newuires.h\0" +END + +2 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#define NOWINRES\r\n" + "#include ""windows.h""\r\n" + "#include ""commctrl.h""\r\n" + "\0" +END + +3 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#include ""hbmamevers.rc"" // Version block\r\n" + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_MAMEUI_ICON ICON "res\\hbmameui.ico" +IDI_WIN_ROMS ICON "res\\win_roms.ico" +IDI_WIN_NOROMS ICON "res\\win_noro.ico" +IDI_WIN_UNKNOWN ICON "res\\win_unkn.ico" +IDI_WIN_CLONE ICON "res\\win_clone.ico" +IDI_WIN_REDX ICON "res\\win_redx.ico" +IDI_FOLDER_AVAILABLE ICON "res\\foldavail.ico" +IDI_FOLDER ICON "res\\folder.ico" +IDI_FOLDER_MANUFACTURER ICON "res\\foldmanu.ico" +IDI_FOLDER_OPEN ICON "res\\foldopen.ico" +IDI_FOLDER_UNAVAILABLE ICON "res\\foldunav.ico" +IDI_FOLDER_HORIZONTAL ICON "res\\horz.ico" +IDI_FOLDER_VERTICAL ICON "res\\vert.ico" +IDI_MANUFACTURER ICON "res\\manufact.ico" +IDI_FOLDER_YEAR ICON "res\\foldyear.ico" +IDI_FOLDER_SOURCE ICON "res\\foldsrc.ico" +IDI_WORKING ICON "res\\working.ico" +IDI_NONWORKING ICON "res\\nonwork.ico" +IDI_YEAR ICON "res\\year.ico" +IDI_KEYBOARD ICON "res\\keyboard.ico" +IDI_JOYSTICK ICON "res\\joystick.ico" +IDI_CPU ICON "res\\cpu.ico" +IDI_SOUND ICON "res\\samples.ico" +IDI_SOUNDTAB ICON "res\\sound.ico" +IDI_SOURCE ICON "res\\source.ico" +IDI_HARDDISK ICON "res\\harddisk.ico" +IDI_DISPLAY ICON "res\\display.ico" +IDI_CHECKMARK ICON "res\\checkmark.ico" +IDI_HEADER_UP ICON "res\\header_up.ico" +IDI_HEADER_DOWN ICON "res\\header_down.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUT DIALOG DISCARDABLE 0, 0, 296, 129 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About HBMAMEUI" +FONT 8, "Tahoma" +BEGIN + DEFPUSHBUTTON "&OK",IDOK,200,109,50,14,WS_GROUP + CTEXT "Homebrew MAME",IDC_STATIC,147,7,142, + 11,NOT WS_GROUP + CTEXT "Version 0",IDC_VERSION,147,18,142,11,NOT WS_GROUP + CTEXT "Copyright (C) 1997-2016 The MAME Team",IDC_STATIC,147, + 29,142,10,NOT WS_GROUP + CTEXT "MAMEUI version by",IDC_STATIC,147,51,142,10,NOT + WS_GROUP + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,147,44,142,1 + CTEXT "Christopher Kirmse and the MAMEUI team",IDC_STATIC,147, + 62,142,9,NOT WS_GROUP + CTEXT "Additional MAMEUI code by",IDC_STATIC,147,74,142,9 + CTEXT "Mike Haaland, Andrew Kirmse, Jeff Miller",IDC_STATIC, + 147,85,142,9 + CTEXT "John Hardy IV and Michael Soderstrom",IDC_STATIC,147,96, + 142,9 + CONTROL "",IDC_ABOUT,"Static",SS_BITMAP | SS_SUNKEN,7,7,16,14 +END + +IDD_DIRECTX DIALOG DISCARDABLE 0, 0, 236, 69 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "MAMEUI" +FONT 8, "Tahoma" +BEGIN + DEFPUSHBUTTON "Go to Microsoft's DirectX Web Page",IDB_WEB_PAGE,48,52, + 140,14 + EDITTEXT IDC_DIRECTX_HELP,7,0,222,48,ES_MULTILINE | + ES_AUTOHSCROLL | ES_READONLY +END + +IDD_AUDIT DIALOG DISCARDABLE 0, 0, 283, 188 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "File Audit" +FONT 8, "Tahoma" +BEGIN + PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14 + PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14 + GROUPBOX "ROMs",IDC_STATIC,6,4,132,65 + LTEXT "Correct:",IDC_STATIC,51,28,32,8 + CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32", + PBS_SMOOTH | WS_BORDER,14,16,116,8 + LTEXT "Incorrect:",IDC_STATIC,51,42,32,8 + LTEXT "Total:",IDC_STATIC,51,56,32,8 + LTEXT "0",IDC_ROMS_CORRECT,87,28,20,8 + LTEXT "0",IDC_ROMS_INCORRECT,87,42,20,8 + LTEXT "0",IDC_ROMS_TOTAL,87,56,20,8 + GROUPBOX "Samples",IDC_STATIC,145,4,132,65 + CONTROL "Progress1",IDC_SAMPLES_PROGRESS,"msctls_progress32", + PBS_SMOOTH | WS_BORDER,153,16,116,8 + LTEXT "Correct:",IDC_STATIC,191,28,33,8 + LTEXT "Incorrect:",IDC_STATIC,191,42,33,8 + LTEXT "Total:",IDC_STATIC,191,56,33,8 + LTEXT "0",IDC_SAMPLES_CORRECT,227,28,20,8 + LTEXT "0",IDC_SAMPLES_INCORRECT,227,42,20,8 + LTEXT "0",IDC_SAMPLES_TOTAL,227,56,20,8 + GROUPBOX "Details",IDC_STATIC,6,72,271,90 + EDITTEXT IDC_AUDIT_DETAILS,12,82,259,74,ES_MULTILINE | + ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL | + NOT WS_TABSTOP +END + +IDD_DIRECTORIES DIALOG DISCARDABLE 0, 0, 230, 107 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Directories" +FONT 8, "Tahoma" +BEGIN + LTEXT "Show directories for:",IDC_STATIC,6,6,67,10 + COMBOBOX IDC_DIR_COMBO,6,18,160,79,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "Directories:",IDC_STATIC,6,38,38,10 + CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS | + LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER | + WS_TABSTOP,6,50,160,51 + DEFPUSHBUTTON "OK",IDOK,173,8,50,14 + PUSHBUTTON "Cancel",IDCANCEL,173,26,50,14 + PUSHBUTTON "Browse...",IDC_DIR_BROWSE,173,50,50,14 + PUSHBUTTON "Insert",IDC_DIR_INSERT,173,68,50,14 + PUSHBUTTON "Delete",IDC_DIR_DELETE,173,87,50,14 +END + +IDD_COLUMNS DIALOG DISCARDABLE 0, 0, 302, 145 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Customize Fields" +FONT 8, "Tahoma" +BEGIN + LTEXT "Available fields:",IDC_STATIC,6,6,80,10,SS_CENTERIMAGE + CONTROL "List1",IDC_LISTAVAILABLECOLUMNS,"SysListView32", + LVS_LIST | LVS_SINGLESEL | LVS_NOCOLUMNHEADER | + LVS_NOSORTHEADER | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6, + 18,90,100 + PUSHBUTTON "Add ->",IDC_BUTTONADD,102,18,46,14,WS_DISABLED + PUSHBUTTON "<- Remove",IDC_BUTTONREMOVE,102,36,46,14,WS_DISABLED + LTEXT "Show these fields in this order:",IDC_STATIC,154,6,96, + 10,SS_CENTERIMAGE + CONTROL "List1",IDC_LISTSHOWCOLUMNS,"SysListView32",LVS_LIST | + LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | + WS_BORDER | WS_HSCROLL | WS_TABSTOP,154,18,90,100 + PUSHBUTTON "Move Up",IDC_BUTTONMOVEUP,250,18,46,14,WS_DISABLED + PUSHBUTTON "Move Down",IDC_BUTTONMOVEDOWN,250,36,46,14,WS_DISABLED + DEFPUSHBUTTON "OK",IDOK,105,124,44,14 + PUSHBUTTON "Cancel",IDCANCEL,155,124,44,14 +END + +IDD_PROP_CONTROLLER DIALOGEX 0, 0, 220, 240 +STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Controller Mapping" +FONT 8, "Tahoma" +BEGIN + ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + GROUPBOX "Paddle device",IDC_STATIC,4,40,102,28 + COMBOBOX IDC_PADDLE,10,50,91,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_PADDLE + GROUPBOX "ADStick device",IDC_STATIC,4,71,102,28 + COMBOBOX IDC_ADSTICK,10,80,91,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_ADSTICK + GROUPBOX "Pedal device",IDC_STATIC,4,102,102,28 + COMBOBOX IDC_PEDAL,10,112,91,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_PEDAL + GROUPBOX "Mouse device",IDC_STATIC,4,133,102,28 + COMBOBOX IDC_MOUSE,10,142,90,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_MOUSE + GROUPBOX "Dial device",IDC_STATIC,113,40,102,28 + COMBOBOX IDC_DIAL,119,50,90,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_DIAL + GROUPBOX "Trackball device",IDC_STATIC,113,71,102,28 + COMBOBOX IDC_TRACKBALL,119,80,90,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_TRACKBALL + GROUPBOX "Lightgun device",IDC_STATIC,113,102,102,28 + COMBOBOX IDC_LIGHTGUNDEVICE,119,112,90,62,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP,0,HIDC_LIGHTGUNDEVICE + GROUPBOX "Positional device",IDC_STATIC,113,133,102,28 + COMBOBOX IDC_POSITIONAL,119,142,90,62,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP,0,HIDC_POSITIONAL + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14, + 0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_SCREEN DIALOGEX 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Screen" +FONT 8, "Tahoma" +BEGIN + ICON IDI_DISPLAY,IDC_STATIC,20,10,21,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX + + GROUPBOX "Number of screens",IDC_STATIC,4,40,103,24 + CONTROL "GammaSlider",IDC_NUMSCREENS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,50,75,10,0,HIDC_NUMSCREENS + RTEXT "1",IDC_NUMSCREENSDISP,84,49,14,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Screen",IDC_STATIC,4,66,103,29 + COMBOBOX IDC_SCREEN,10,76,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREEN + + GROUPBOX "",IDC_STATIC,4,97,103,28 + CONTROL "Autoselect aspect",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,97,73,10,0,HIDC_ASPECT + LTEXT "Aspect ratio",IDC_ASPECTRATIOTEXT,17,108,40,11,SS_CENTERIMAGE | NOT WS_GROUP + EDITTEXT IDC_ASPECTRATION,60,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATION + LTEXT ":",IDC_STATIC,76,108,8,10,SS_CENTERIMAGE | NOT WS_GROUP + EDITTEXT IDC_ASPECTRATIOD,80,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATIOD + + GROUPBOX "View",IDC_STATIC,4,128,103,28 + COMBOBOX IDC_VIEW,10,137,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIEW + + GROUPBOX "Screennumber",IDC_SCREENSELECTTEXT,113,40,102,28 + COMBOBOX IDC_SCREENSELECT,119,50,90,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREENSELECT + + GROUPBOX "Resolution",IDC_STATIC,113,71,102,76,WS_GROUP + GROUPBOX "Size",IDC_STATIC,119,81,90,28,WS_GROUP + COMBOBOX IDC_SIZES,126,91,77,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SIZES + + GROUPBOX "Refresh",IDC_REFRESHTEXT,119,112,90,28,WS_GROUP + COMBOBOX IDC_REFRESH,126,121,77,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_REFRESH + CONTROL "Switch resolutions to fit",IDC_SWITCHRES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,151,93,10,0,HIDC_SWITCHRES + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_GAME DIALOG DISCARDABLE 0, 0, 220, 276 +STYLE WS_CHILD | WS_CAPTION +CAPTION "General" +FONT 8, "Tahoma" +BEGIN + ICON IDI_MAMEUI_ICON,IDC_GAME_ICON,20,10,21,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,38,178,1 + LTEXT "Manufactured:",IDC_STATIC,18,43,47,8 + LTEXT "Static",IDC_PROP_MANUFACTURED,65,43,155,9,SS_NOPREFIX + LTEXT "Status:",IDC_STATIC,18,52,47,8 + LTEXT "Static",IDC_PROP_STATUS,65,52,155,32 + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,85,178,1 + LTEXT "CPU:",IDC_STATIC,18,90,47,8 + LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_CPU,65,90,155,40 + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,130,178,1 + LTEXT "Sound:",IDC_STATIC,18,135,47,8 + LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_SOUND,65,135,155,45 + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,181,178,1 + LTEXT "Screen:",IDC_STATIC,18,186,47,8 + LTEXT "Static\nStatic\nStatic",IDC_PROP_SCREEN,65,186,155,27 + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,218,178,1 + LTEXT "Source:",IDC_STATIC,16,223,47,8 + LTEXT "Static",IDC_PROP_SOURCE,65,223,139,8 + LTEXT "Clone of:",IDC_PROP_CLONEOF_TEXT,16,232,50,8 + LTEXT "Static",IDC_PROP_CLONEOF,65,232,130,33 +END + +IDD_PROP_AUDIT DIALOG DISCARDABLE 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Audit" +FONT 8, "Tahoma" +BEGIN + ICON IDI_CHECKMARK,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + LTEXT "ROM check:",IDC_STATIC,10,40,50,8 + LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8 + LTEXT "Sample check:",IDC_STATIC,10,52,50,8 + LTEXT "Checking...",IDC_PROP_SAMPLES,66,52,139,8 + GROUPBOX "Details",IDC_STATIC,4,64,211,171 + EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,199,155,ES_MULTILINE | + ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL | + NOT WS_TABSTOP +END + +IDD_PROP_DISPLAY DIALOGEX 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Display" +FONT 8, "Tahoma" +BEGIN + ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,169,25,SS_NOPREFIX + + CONTROL "Run in a window",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,69,10,0,HIDC_WINDOWED + CONTROL "Start out maximized",IDC_MAXIMIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,74,10,0,HIDC_MAXIMIZE + CONTROL "Enforce aspect ratio",IDC_KEEPASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,77,10,0,HIDC_KEEPASPECT + CONTROL "Throttle",IDC_THROTTLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,39,10,0,HIDC_THROTTLE + + GROUPBOX "Bitmap prescaling",IDC_PRESCALETEXT,4,89,103,24 + CONTROL "GammaSlider",IDC_PRESCALE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,99,71,10,0,HIDC_PRESCALE + RTEXT "1.00",IDC_PRESCALEDISP,84,98,14,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Gamma Correction",IDC_STATIC,4,115,103,24 + CONTROL "GammaSlider",IDC_GAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,125,71,10,0,HIDC_GAMMA + RTEXT "2.00",IDC_GAMMADISP,84,124,14,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Brightness Correction",IDC_STATIC,4,141,103,24 + CONTROL "GammaSlider",IDC_BRIGHTCORRECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,151,71,10,0,HIDC_BRIGHTCORRECT + RTEXT "1.00",IDC_BRIGHTCORRECTDISP,84,150,14,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Contrast Correction",IDC_STATIC,4,167,103,24 + CONTROL "GammaSlider",IDC_CONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,176,71,10,0,HIDC_CONTRAST + RTEXT "1.00",IDC_CONTRASTDISP,84,175,14,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Pause Brightness",IDC_STATIC,4,193,103,24 + CONTROL "Slider1",IDC_PAUSEBRIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,203,71,10,0,HIDC_PAUSEBRIGHT + RTEXT "0.65",IDC_PAUSEBRIGHTDISP,84,202,14,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Videomode",IDC_STATIC,113,40,102,28 + COMBOBOX IDC_VIDEO_MODE,119,50,90,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE + + GROUPBOX "Rotation",IDC_STATIC,113,71,102,55 + COMBOBOX IDC_ROTATE,119,81,90,57,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_ROTATE + CONTROL "Flip screen upside-down",IDC_FLIPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,98,91,10,0,HIDC_FLIPY + CONTROL "Flip screen left-right",IDC_FLIPX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,110,77,10,0,HIDC_FLIPX + + GROUPBOX "Direct3D",IDC_STATIC,113,128,102,57 + CONTROL "Use Bilinear filtering",IDC_D3D_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,138,85,10,0,HIDC_D3D_FILTER + +// GROUPBOX "Version",IDC_STATIC,119,150,90,28 +// COMBOBOX IDC_D3D_VERSION,125,160,78,95,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_D3D_VERSION + +// GROUPBOX "DirectDraw",IDC_STATIC,113,187,102,26 +// CONTROL "Stretch using hardware",IDC_HWSTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,197,85,10,0,HIDC_HWSTRETCH + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_SOUND DIALOGEX 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Sound" +FONT 8, "Tahoma" +BEGIN + ICON IDI_SOUNDTAB,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX + + GROUPBOX "",IDC_STATIC,4,40,211,155 + + GROUPBOX "Soundmode",IDC_STATIC,60,50,100,28 + COMBOBOX IDC_SOUND_MODE,66,60,88,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE + + CONTROL "Use samples",IDC_SAMPLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,84,55,10,0,HIDC_SAMPLES + + GROUPBOX "Sample rate",IDC_RATETEXT,60,96,100,28 + COMBOBOX IDC_SAMPLERATE,66,106,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SAMPLERATE + + GROUPBOX "Volume attenuation",IDC_VOLUMETEXT,60,127,100,28 + CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,139,68,10,0,HIDC_VOLUME + RTEXT "0dB",IDC_VOLUMEDISP,132,138,20,11,SS_CENTERIMAGE + + GROUPBOX "Audio latency",IDC_AUDIO_LATENCY_TEXT,60,158,100,28 + CONTROL "Slider1",IDC_AUDIO_LATENCY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,170,68,10,0,HIDC_AUDIO_LATENCY + RTEXT "1/5",IDC_AUDIO_LATENCY_DISP,132,169,20,11,SS_CENTERIMAGE + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_ADVANCED DIALOGEX 0, 0, 220, 255 +STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION +CAPTION "Advanced" +FONT 8, "Tahoma" +BEGIN + ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX + + CONTROL "Triple buffering",IDC_TRIPLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,93,10,0,HIDC_TRIPLE_BUFFER + CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH + CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC + CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED + + GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42 + CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP + COMBOBOX IDC_FRAMESKIP,10,127,91,88,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_FRAMESKIP + + GROUPBOX "Full screen gamma",IDC_FSGAMMATEXT,113,40,102,24 + CONTROL "Slider1",IDC_FSGAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,50,71,10,0,HIDC_FSGAMMA + RTEXT "2.00",IDC_FSGAMMADISP,193,49,16,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Full screen brightness",IDC_FSBRIGHTNESSTEXT,113,67,102,24 + CONTROL "Slider1",IDC_FSBRIGHTNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,77,71,10,0,HIDC_FSBRIGHTNESS + RTEXT "2.00",IDC_FSBRIGHTNESSDISP,193,76,16,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Full screen contrast",IDC_FSCONTRASTTEXT,113,94,102,24 + CONTROL "Slider1",IDC_FSCONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,104,71,10,0,HIDC_FSCONTRAST + RTEXT "2.00",IDC_FSCONTRASTDISP,193,103,16,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Seconds to run",IDC_SECONDSTORUNTEXT,113,122,102,24 + CONTROL "",IDC_SECONDSTORUN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,132,71,10,0,HIDC_SECONDSTORUN + RTEXT "60",IDC_SECONDSTORUNDISP,193,130,16,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Emulation speed",IDC_SPEEDTEXT,4,155,211,24 + CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,12,165,180,10,0,HIDC_SPEED + RTEXT "1.00",IDC_SPEEDDISP,191,164,20,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Effect",IDC_STATIC,4,182,211,50 + EDITTEXT IDC_EFFECT,12,192,200,14,ES_AUTOHSCROLL | WS_DISABLED + PUSHBUTTON "Select Effect",IDC_SELECT_EFFECT,12,211,60,14,0,0,HIDC_SELECT_EFFECT + PUSHBUTTON "Reset Effect",IDC_RESET_EFFECT,152,211,60,14,0,0,HIDC_RESET_EFFECT + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_DEBUG DIALOGEX 0, 0, 220, 255 +STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION +CAPTION "Debug" +FONT 8, "Tahoma" +BEGIN + ICON IDI_MANUFACTURER,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX + + CONTROL "Output log to Windows Debugger",IDC_OSLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,124,10,0,HIDC_OSLOG + CONTROL "Output log to Logfile",IDC_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_LOG + CONTROL "Output diagnostic information",IDC_VERBOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,111,10,0,HIDC_VERBOSE + CONTROL "Update Main window during paused emulation",IDC_UPDATEINPAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,171,10,0,HIDC_UPDATEINPAUSE + CONTROL "Activate Integrated Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,118,10,0,HIDC_DEBUG + + GROUPBOX "Debugscript",IDC_STATIC,6,104,211,50 + EDITTEXT IDC_DEBUGSCRIPT,14,114,200,14,ES_AUTOHSCROLL | WS_DISABLED + PUSHBUTTON "Select Debugscript",IDC_SELECT_DEBUGSCRIPT,14,133,67,14,0,0,HIDC_SELECT_DEBUGSCRIPT + PUSHBUTTON "Reset Debugscript",IDC_RESET_DEBUGSCRIPT,149,133,65,14,0,0,HIDC_RESET_DEBUGSCRIPT + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_INPUT DIALOGEX 0, 0, 220, 240 +STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION +CAPTION "Controllers" +FONT 8, "Tahoma" +BEGIN + ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + CONTROL "Enable mouse input",IDC_USE_MOUSE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,40,86,10,0, + HIDC_USE_MOUSE + CONTROL "Enable steadykey support",IDC_STEADYKEY,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,52,95,10,0, + HIDC_STEADYKEY + GROUPBOX "",IDC_STATIC,4,64,103,74 + CONTROL "Enable joystick input",IDC_JOYSTICK,"Button", + BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,10,64,78,10,0, + HIDC_JOYSTICK + GROUPBOX "Joystick deadzone",IDC_JDZTEXT,10,76,91,28 + CONTROL "IntensitySlider",IDC_JDZ,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,15,88,60,10,0,HIDC_JDZ + RTEXT "0.3",IDC_JDZDISP,76,87,16,11,SS_CENTERIMAGE | NOT + WS_GROUP + GROUPBOX "Default input layout",IDC_STATIC,113,40,102,28 + COMBOBOX IDC_DEFAULT_INPUT,119,50,90,53,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP,0,HIDC_DEFAULT_INPUT + GROUPBOX "",IDC_STATIC,113,71,102,66 + CONTROL "Enable lightgun input",IDC_LIGHTGUN,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,71,80,10,0, + HIDC_LIGHTGUN + CONTROL "Offscreen shots reload",IDC_RELOAD,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,83,86,10,0,HIDC_RELOAD + CONTROL "Dual lightguns",IDC_DUAL_LIGHTGUN,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,96,86,10,0, + HIDC_DUAL_LIGHTGUN + CONTROL "Multiple keyboards",IDC_MULTIKEYBOARD,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,109,75,10,0, + HIDC_MULTIKEYBOARD + CONTROL "Multiple mice",IDC_MULTIMOUSE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,122,56,10,0,HIDC_MULTIMOUSE + GROUPBOX "Joystick saturation",IDC_JSATTEXT,10,106,91,28 + CONTROL "IntensitySlider",IDC_JSAT,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,16,118,60,10,0,HIDC_JSAT + RTEXT "0.85",IDC_JSATDISP,76,116,16,11,SS_CENTERIMAGE | NOT + WS_GROUP + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14, + 0,0,HIDC_USE_DEFAULT + GROUPBOX "Joystickmap",IDC_STATIC,4,143,211,50 + EDITTEXT IDC_JOYSTICKMAP,12,153,200,14,ES_AUTOHSCROLL | + WS_DISABLED + PUSHBUTTON "Select Joystickmap",IDC_SELECT_JOYSTICKMAP,12,172,67,14, + 0,0,HIDC_SELECT_JOYSTICKMAP + PUSHBUTTON "Reset Joystickmap",IDC_RESET_JOYSTICKMAP,147,172,65,14, + 0,0,HIDC_RESET_JOYSTICKMAP +END + +IDD_PROP_MISC DIALOGEX 0, 0, 220, 240 +STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION +CAPTION "Miscellaneous" +FONT 8, "Tahoma" +BEGIN + ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + CONTROL "Enable cheats",IDC_CHEAT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,10,40,86,10,0,HIDC_CHEAT + CONTROL "Sleep when possible",IDC_SLEEP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,10,52,86,10,0,HIDC_SLEEP + + CONTROL "Skip game info",IDC_SKIP_GAME_INFO,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,64,96,10,0, + HIDC_SKIP_GAME_INFO + CONTROL "Save game state on exit",IDC_ENABLE_AUTOSAVE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,76,96,10,0, + HIDC_ENABLE_AUTOSAVE + CONTROL "Coin lockout",IDC_COINLOCKOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,10,100,96,10,0,HIDC_COINLOCKOUT + GROUPBOX "Thread Priority",IDC_HIGH_PRIORITY_TEXT,7,112,103,34 + CONTROL "Slider1",IDC_HIGH_PRIORITY,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,13,122,75,10,0, + HIDC_HIGH_PRIORITY + LTEXT "idle",IDC_STATIC,17,132,12,8 + RTEXT "-15",IDC_HIGH_PRIORITYTXT,87,122,14,10,SS_CENTERIMAGE + RTEXT "real-time",IDC_STATIC,57,134,28,8 + GROUPBOX "Snapshot view",IDC_STATIC,7,148,103,28 + COMBOBOX IDC_SNAPVIEW,13,158,90,60,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_SNAPVIEW + GROUPBOX "Artwork options",IDC_STATIC,113,40,102,85 + CONTROL "Backdrops",IDC_BACKDROPS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,50,86,10,0,HIDC_BACKDROPS + CONTROL "Bezels",IDC_BEZELS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,62,86,10,0,HIDC_BEZELS + CONTROL "Overlays",IDC_OVERLAYS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,74,84,10,0,HIDC_OVERLAYS + CONTROL "CPanels",IDC_CPANELS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,86,84,10,0 + CONTROL "Marquees",IDC_MARQUEES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,98,84,10,0 + CONTROL "Crop artwork",IDC_ARTWORK_CROP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,110,53,10,0,HIDC_ARTWORK_CROP + GROUPBOX "BIOS",IDC_STATIC,113,128,102,28 + COMBOBOX IDC_BIOS,119,138,90,60,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_BIOS + GROUPBOX "",IDC_STATIC,7,178,208,28 + CONTROL "Autoselect snapshot size",IDC_SNAPSIZE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,13,178,95,10,0, + HIDC_SNAPSIZE + LTEXT "Snapshotsize",IDC_SNAPSIZETEXT,11,189,44,11, + SS_CENTERIMAGE | NOT WS_GROUP + EDITTEXT IDC_SNAPSIZEWIDTH,122,187,32,12,ES_RIGHT | + ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEWIDTH + EDITTEXT IDC_SNAPSIZEHEIGHT,172,187,32,12,ES_RIGHT | + ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEHEIGHT + LTEXT "x",IDC_SNAPSIZEX,162,189,8,8 + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14, + 0,0,HIDC_USE_DEFAULT + CONTROL "Show Menu",IDC_SHOW_MENU,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,160,86,10,0 +END + +IDD_PROP_VECTOR DIALOGEX 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Vector" +FONT 8, "Tahoma" +BEGIN + ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + CONTROL "Draw antialiased vectors",IDC_ANTIALIAS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,40,92,10,0, + HIDC_ANTIALIAS + GROUPBOX "Beam width",IDC_BEAMTEXT,60,53,100,28 + CONTROL "BeamSlider",IDC_BEAM,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,66,65,64,10,0,HIDC_BEAM + RTEXT "16.00",IDC_BEAMDISP,132,64,20,11,SS_CENTERIMAGE + GROUPBOX "Flicker",IDC_FLICKERTEXT,60,84,100,28 + CONTROL "FlickerSlider",IDC_FLICKER,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,66,96,64,10,0,HIDC_FLICKER + RTEXT "100.00",IDC_FLICKERDISP,128,95,24,11,SS_CENTERIMAGE | + NOT WS_GROUP + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14, + 0,0,HIDC_USE_DEFAULT +END + +IDD_MAIN DIALOGEX 0, 0, 364, 206 +STYLE DS_3DLOOK | DS_NOFAILCREATE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | DS_SETFONT +EXSTYLE WS_EX_CONTROLPARENT +CAPTION "MAMEUI - overwritten at runtime" +CLASS "MainClass" +FONT 8, "Verdana" +BEGIN + CONTROL "",IDC_DIVIDER,"Static",SS_ETCHEDHORZ,0,5,304,1 + CONTROL "Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS | + TVS_SHOWSELALWAYS | TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,5,28,48,172 + CONTROL "List1",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE | + LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,65,28,42,172 + GROUPBOX "",IDC_SPLITTER,55,28,8,172,BS_NOTIFY | NOT WS_VISIBLE + GROUPBOX "",IDC_SPLITTER2,109,28,8,172,BS_NOTIFY | NOT WS_VISIBLE + CONTROL "",IDC_SSFRAME,"Static",SS_ETCHEDFRAME | SS_NOTIFY,121,11,181,194 + CONTROL "",IDC_SSTAB,"SysTabControl32",TCS_HOTTRACK,121,0,181,18 + CONTROL "",IDC_SSPICTURE,"Static",SS_BITMAP | NOT WS_VISIBLE,141,18,141,127 + EDITTEXT IDC_HISTORY,129,150,167,49,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,0, HIDC_HISTORY +END + +IDD_FILTERS DIALOGEX 0, 0, 190, 196 +STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | + WS_SYSMENU +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Game Filters" +FONT 8, "Tahoma" +BEGIN + GROUPBOX "Game filters",IDC_STATIC,6,4,178,99 + CONTROL "&Vector Graphics",IDC_FILTER_VECTOR,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,16,70,10,0, + HIDC_FILTER_VECTOR + CONTROL "C&lones",IDC_FILTER_CLONES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,14,30,41,10,0,HIDC_FILTER_CLONES + CONTROL "Non-Wor&king",IDC_FILTER_NONWORKING,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,44,61,10,0, + HIDC_FILTER_NONWORKING + CONTROL "&Horizontal",IDC_FILTER_HORIZONTAL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,58,57,10,0, + HIDC_FILTER_HORIZONTAL + CONTROL "&Unavailable",IDC_FILTER_UNAVAILABLE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,72,57,10,0, + HIDC_FILTER_UNAVAILABLE + CONTROL "Arcade",IDC_FILTER_ARCADE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,86,57,10,0 + CONTROL "&Raster Graphics",IDC_FILTER_RASTER,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,100,16,70,10,0, + HIDC_FILTER_RASTER + CONTROL "Ori&ginals",IDC_FILTER_ORIGINALS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,100,30,47,10,0, + HIDC_FILTER_ORIGINALS + CONTROL "&Working",IDC_FILTER_WORKING,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,100,44,47,10,0,HIDC_FILTER_WORKING + CONTROL "&Vertical",IDC_FILTER_VERTICAL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,100,58,47,10,0,HIDC_FILTER_VERTICAL + CONTROL "&Mechanical",IDC_FILTER_MECHANICAL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,100,72,58,10,0,HIDC_FILTER_MECHANICAL + CONTROL "MESS",IDC_FILTER_MESS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,100,86,58,10,0,HIDC_FILTER_MECHANICAL + LTEXT "(*) = inherited from parent folder",IDC_INHERITED,14,72, + 99,10 + CTEXT "Game filters allow customizing the games that are displayed in each folder by hiding games that match the filters applied.", + IDC_STATIC,6,108,178,27 + GROUPBOX "&Description filter",IDC_STATIC,6,136,178,33 + EDITTEXT IDC_FILTER_EDIT,14,148,162,13,ES_AUTOHSCROLL,0, + HIDC_FILTER_EDIT + DEFPUSHBUTTON "&OK",IDOK,42,175,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,98,175,50,14 +END + +IDD_RESET DIALOGEX 0, 0, 190, 122 +STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Reset Options" +FONT 8, "Tahoma" +BEGIN + GROUPBOX "Categories",IDC_STATIC,6,4,178,70 + CONTROL "&User Interface (Fonts, Colors, Sizes)",IDC_RESET_UI, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,146,10,0, + HIDC_RESET_UI + CONTROL "&Default game options",IDC_RESET_DEFAULT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,30,146,10,0, + HIDC_RESET_DEFAULT + CONTROL "&All games to use default options",IDC_RESET_GAMES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,146,10,0, + HIDC_RESET_GAMES + CONTROL "&Folder 'filters'",IDC_RESET_FILTERS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,58,146,10,0, + HIDC_RESET_FILTERS + CTEXT "Select the options to be restored to the default settings.", + IDC_STATIC,6,79,178,20 + DEFPUSHBUTTON "&OK",IDOK,42,101,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,98,101,50,14 +END + + +IDD_INTERFACE_OPTIONS DIALOGEX 0, 0, 378, 225 +STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Interface Options" +FONT 8, "Tahoma" +BEGIN + GROUPBOX "Game Selection",IDC_STATIC,6,4,189,194 + CONTROL "&Search for new games on start",IDC_START_GAME_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,111,10,0, + HIDC_START_GAME_CHECK + CONTROL "Allow game selection by a &joystick (requires restart)", + IDC_JOY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30, + 174,10,0,HIDC_JOY_GUI + CONTROL "Allow game selection by custom &key sequences", + IDC_KEY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44, + 166,10 + CONTROL "Hide &mouse cursor (requires restart)",IDC_HIDE_MOUSE, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,86,126,10,0, + HIDC_HIDE_MOUSE + CONTROL "Inheritable Filters",IDC_FILTER_INHERIT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,100,68,10 + CONTROL "No offset for clones missing parent in view", + IDC_NOOFFSET_CLONES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,14,114,148,10 + GROUPBOX "Show History on Tab",IDC_STATIC,14,128,173,28 + COMBOBOX IDC_HISTORY_TAB,57,138,88,50,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + GROUPBOX "Snapshot Pattern",IDC_STATIC,202,4,170,28 + GROUPBOX "Bookkeeping",IDC_STATIC,202,36,170,43 + CONTROL "Reset all Playcounts",IDC_RESET_PLAYCOUNT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,210,48,80,10 + CONTROL "Reset all Play Times",IDC_RESET_PLAYTIME,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,210,62,79,10 + GROUPBOX "Screenshot Area",IDC_STATIC,202,83,170,115 + CONTROL "S&tretch screenshot larger than natural size", + IDC_STRETCH_SCREENSHOT_LARGER,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,210,95,148,10,0, + HIDC_STRETCH_SCREENSHOT_LARGER + GROUPBOX "Screenshot Cycletime in Seconds",IDC_STATIC,210,109,154, + 28 + CONTROL "Slider1",IDC_CYCLETIMESEC,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,218,121,120,10,0, + HIDC_CYCLETIMESEC + RTEXT "60",IDC_CYCLETIMESECTXT,340,120,13,10,SS_CENTERIMAGE + GROUPBOX "Screenshot Bordersize",IDC_STATIC,210,141,154,28 + CONTROL "Slider1",IDC_SCREENSHOT_BORDERSIZE,"msctls_trackbar32", + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,153,120,10 + RTEXT "100",IDC_SCREENSHOT_BORDERSIZETXT,340,152,13,10, + SS_CENTERIMAGE + PUSHBUTTON "Set Screenshot Border Color",IDC_SCREENSHOT_BORDERCOLOR, + 210,176,154,14 + DEFPUSHBUTTON "&OK",IDOK,136,204,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,192,204,50,14 + COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_SNAPNAME +END + +IDD_CUSTOM_FILE DIALOG DISCARDABLE 0, 0, 190, 135 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Add Game To Custom Folder" +FONT 8, "Tahoma" +BEGIN + LTEXT "",IDC_CUSTOMFILE_GAME,6,6,175,10,SS_NOPREFIX | + SS_CENTERIMAGE + CONTROL "CustomTree",IDC_CUSTOM_TREE,"SysTreeView32", + TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | + TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | + TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,6,18,178,90 + DEFPUSHBUTTON "OK",IDOK,42,114,50,14 + PUSHBUTTON "Cancel",IDCANCEL,98,114,50,14 +END + + + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDA_TAB_KEYS ACCELERATORS MOVEABLE PURE +BEGIN + "1", ID_VIEW_TAB_SCREENSHOT, VIRTKEY, ALT, NOINVERT + "2", ID_VIEW_TAB_FLYER, VIRTKEY, ALT, NOINVERT + "3", ID_VIEW_TAB_CABINET, VIRTKEY, ALT, NOINVERT + "4", ID_VIEW_TAB_MARQUEE, VIRTKEY, ALT, NOINVERT + "5", ID_VIEW_TAB_TITLE, VIRTKEY, ALT, NOINVERT + "6", ID_VIEW_TAB_CONTROL_PANEL, VIRTKEY, ALT, NOINVERT + "7", ID_VIEW_TAB_PCB, VIRTKEY, ALT, NOINVERT + "8", ID_VIEW_TAB_HISTORY, VIRTKEY, ALT, NOINVERT + "A", ID_GAME_AUDIT, VIRTKEY, ALT, NOINVERT + "B", ID_VIEW_PAGETAB, VIRTKEY, ALT, NOINVERT + "D", ID_VIEW_FOLDERS, VIRTKEY, ALT, NOINVERT + "E", ID_TOOLBAR_EDIT, VIRTKEY, CONTROL, NOINVERT + "F", ID_CONTEXT_FILTERS, VIRTKEY, CONTROL, NOINVERT + "U", ID_FOLDER_AUDIT, VIRTKEY, ALT, NOINVERT + "P", ID_VIEW_PICTURE_AREA, VIRTKEY, ALT, NOINVERT + "R", ID_CONTEXT_SELECT_RANDOM, VIRTKEY, CONTROL, NOINVERT + "S", ID_VIEW_STATUS, VIRTKEY, ALT, NOINVERT + "T", ID_VIEW_TOOLBARS, VIRTKEY, ALT, NOINVERT + VK_F1, ID_HELP_CONTENTS, VIRTKEY, NOINVERT + VK_F11, ID_VIEW_FULLSCREEN, VIRTKEY, NOINVERT + VK_F5, ID_UPDATE_GAMELIST, VIRTKEY, NOINVERT + VK_NEXT, ID_UI_HISTORY_DOWN, VIRTKEY, CONTROL, NOINVERT + VK_PRIOR, ID_UI_HISTORY_UP, VIRTKEY, CONTROL, NOINVERT + VK_RETURN, ID_GAME_PROPERTIES, VIRTKEY, ALT, NOINVERT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO MOVEABLE PURE +BEGIN + IDD_ABOUT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 289 + TOPMARGIN, 7 + BOTTOMMARGIN, 123 + END + + IDD_DIRECTX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 229 + TOPMARGIN, 7 + BOTTOMMARGIN, 62 + END + + IDD_AUDIT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 280 + TOPMARGIN, 7 + BOTTOMMARGIN, 187 + HORZGUIDE, 19 + END + + IDD_DIRECTORIES, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 224 + TOPMARGIN, 7 + BOTTOMMARGIN, 98 + END + + IDD_COLUMNS, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 301 + TOPMARGIN, 7 + BOTTOMMARGIN, 143 + END + + IDD_PROP_CONTROLLER, DIALOG + BEGIN + RIGHTMARGIN, 210 + BOTTOMMARGIN, 154 + END + + IDD_PROP_SCREEN, DIALOG + BEGIN + LEFTMARGIN, 4 + VERTGUIDE, 7 + VERTGUIDE, 123 + BOTTOMMARGIN, 199 + HORZGUIDE, 179 + END + + IDD_PROP_GAME, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 19 + VERTGUIDE, 66 + VERTGUIDE, 74 + VERTGUIDE, 201 + BOTTOMMARGIN, 268 + END + + IDD_PROP_AUDIT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 12 + VERTGUIDE, 208 + BOTTOMMARGIN, 198 + HORZGUIDE, 38 + END + + IDD_PROP_DISPLAY, DIALOG + BEGIN + LEFTMARGIN, 4 + VERTGUIDE, 7 + VERTGUIDE, 123 + HORZGUIDE, 179 + END + + IDD_PROP_SOUND, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 50 + BOTTOMMARGIN, 198 + END + + IDD_PROP_ADVANCED, DIALOG + BEGIN + LEFTMARGIN, 10 + BOTTOMMARGIN, 240 + END + + IDD_PROP_INPUT, DIALOG + BEGIN + LEFTMARGIN, 4 + RIGHTMARGIN, 215 + VERTGUIDE, 50 + VERTGUIDE, 170 + END + + IDD_PROP_MISC, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 25 + VERTGUIDE, 40 + VERTGUIDE, 104 + VERTGUIDE, 114 + VERTGUIDE, 204 + BOTTOMMARGIN, 236 + END + + IDD_PROP_VECTOR, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 50 + BOTTOMMARGIN, 198 + END + + IDD_FILTERS, DIALOG + BEGIN + LEFTMARGIN, 7 + TOPMARGIN, 7 + BOTTOMMARGIN, 178 + END + + IDD_RESET, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 175 + VERTGUIDE, 18 + VERTGUIDE, 164 + TOPMARGIN, 7 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + + + + +IDB_ABOUT BITMAP "res\\about.bmp" +IDB_TOOLBAR BITMAP "res\\toolbar.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Cursor +// + +IDC_CURSOR_HSPLIT CURSOR "res\\splith.cur" + +///////////////////////////////////////////////////////////////////////////// +// +// RT_MANIFEST +// + +1 RT_MANIFEST "res\\mameui.manifest" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_UI_FILE "Contains commands for working with the selected items" + IDS_UI_VIEW "Contains commands for manipulating the view" + IDS_UI_OPTIONS "Contains commands for user interface options" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_UI_HELP "Contains commands for displaying help" + IDS_VIEW_TOOLBAR "Show or hide the toolbar" + IDS_VIEW_STATUSBAR "Show or hide the status bar" + IDS_VIEW_FOLDERLIST "Show or hide the folder list" + IDS_VIEW_SCREENSHOT "Show or hide the screen shot" + IDS_VIEW_PICTURETABS "Show or hide tabs in the picture area" + IDS_VIEW_SPACER1 "Spacer" + IDS_VIEW_FULLSCREEN "Toggle full screen mode" + IDS_VIEW_SPACER2 "Spacer" + IDS_VIEW_SHOWPICTURES "Contains commands to select tabs shown in the picture area" + IDS_VIEW_SPACER3 "Spacer" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_VIEW_LARGEICONS "Display items by using large icons." + IDS_VIEW_SMALLICONS "Display items by using small icons." + IDS_VIEW_LIST "Displays items in a list." + IDS_VIEW_DETAILS "Displays detailed information about each item in the window." + IDS_VIEW_GROUPED "Displays items grouped by parent game" + IDS_VIEW_SPACER4 "Spacer" + IDS_VIEW_ARRANGE "Contains commands for sorting by various columns" + IDS_VIEW_LINEUPICONS "Arranges icons in a grid" + IDS_VIEW_SPACER5 "Spacer" + IDS_VIEW_REFRESH "Refresh game list" + IDS_VIEW_CONTEXTFILTERS "Allows filtering out games from a folder" + IDS_VIEW_CUSTOMIZEFIELDS + "Customize which columns are used in the game list" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_EXIT "Exit the application" + ID_FILE_PLAY "Play currently selected game" + ID_HELP_ABOUT "Displays program and copyright information" + ID_VIEW_LARGE_ICON "Display items by using large icons." + ID_VIEW_SMALL_ICON "Display items by using small icons." + ID_VIEW_LIST_MENU "Displays items in a list." + ID_VIEW_DETAIL "Displays detailed information about each item in the window." + ID_VIEW_GROUPED "Show items grouped by parent game" + ID_OPTIONS_FONT "Set game list and folder list font" + ID_OPTIONS_CLONE_COLOR "Set the clone font color" + ID_OPTIONS_DIR "Set directory configuration" + ID_OPTIONS_DEFAULTS "Set default game options" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_OPTIONS_RESET_DEFAULTS "Allow restoring options to 'sane' values." + ID_OPTIONS_INTERFACE "Customize interface options." + ID_FILE_AUDIT "Audit ROM and samples sets" + ID_FILE_PLAY_RECORD "Record a game for later playback" + ID_FILE_PLAY_BACK "Playback a recorded game" + ID_FILE_PLAY_RECORD_WAVE "Record the audio output of a game" + ID_FILE_PLAY_RECORD_MNG "Record the video output of a game" + ID_FILE_PLAY_RECORD_AVI "Record the complete output of a game" + ID_VIEW_PICTURE_AREA "Show or hide the picture area" + ID_HELP_CONTENTS "Display help contents" + ID_HELP_WHATS_NEWUI "New game changes" + ID_HELP_TROUBLE "Troubleshooting Documentation" + ID_HELP_RELEASE "MAME release notes" + ID_HELP_WHATS_NEW "What's new in MAME" + ID_HELP_CHEATS "How cheats work" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_CONTEXT_RESET_PLAYTIME "Reset time played for selected item" + ID_CONTEXT_RESET_PLAYCOUNT "Reset number of plays for selected item" + ID_FOLDER_PROPERTIES "Display folder properties" + ID_FOLDER_AUDIT "Audit items in this folder" + ID_FILE_LOADSTATE "Play a game starting with the given savestate" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TAB_CABINET "Select Cabinet tab" + ID_VIEW_TAB_MARQUEE "Select Marquee tab" + ID_VIEW_TAB_TITLE "Select Title tab" + ID_VIEW_TAB_CONTROL_PANEL "Select Control panel tab" + ID_VIEW_TAB_PCB "Select PCB tab" + ID_VIEW_TAB_HISTORY "Select History tab" + ID_OPTIONS_BG "Set the background image" + ID_TOGGLE_TAB_SCREENSHOT "Enable the screenshot tab" + ID_TOGGLE_TAB_FLYER "Enable the flyer tab" + ID_TOGGLE_TAB_CABINET "Enable the cabinet tab" + ID_TOGGLE_TAB_MARQUEE "Enable the marquee tab" + ID_TOGGLE_TAB_TITLE "Enable the title tab" + ID_TOGGLE_TAB_CONTROL_PANEL "Enable the control panel tab" + ID_TOGGLE_TAB_PCB "Enable the PCB tab" + ID_TOGGLE_TAB_HISTORY "Enable the history tab" + ID_VIEW_FULLSCREEN "Toggle Fullscreen mode" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_CUSTOMIZE_FIELDS "Customize which columns are used in the game list" + ID_GAME_PROPERTIES "Display the properties of the selected item" + ID_VIEW_PAGETAB "Show or hide the tabs in the picture area" + ID_VIEW_FOLDERS "Show or hide the folder list" + ID_VIEW_TOOLBARS "Show or hide the toolbar" + ID_VIEW_STATUS "Show or hide the status bar" + ID_CONTEXT_FILTERS "Allows filtering out games from a folder" + ID_CONTEXT_RENAME_CUSTOM "Rename this folder" + ID_CONTEXT_ADD_CUSTOM "Add selected item to custom folder" + ID_CONTEXT_REMOVE_CUSTOM "Remove selected item from this folder" + ID_GAME_AUDIT "Audit the selected item" + ID_CONTEXT_SELECT_RANDOM "Randomly select a game." + ID_VIEW_TAB_SCREENSHOT "Select Snapshot tab" + ID_VIEW_TAB_FLYER "Select Flyer tab" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_BYGAME "Sort items by game description" + ID_VIEW_BYDIRECTORY "Sort items by name" + ID_VIEW_BYMANUFACTURER "Sort items by manufacturer" + ID_VIEW_BYYEAR "Sort items by year" + ID_VIEW_BYTYPE "Sort items by type" + ID_VIEW_BYTIMESPLAYED "Sort by number of plays" + ID_VIEW_LINEUPICONS "Arranges icons in a grid" + ID_UPDATE_GAMELIST "Refresh game list" + ID_SORT_ASCENDING "Sort column in ascending (A-Z) order" + ID_SORT_DESCENDING "Sort column in descending (Z-A) order" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FOLDER_SOURCEPROPERTIES + "Display properties for all games in this source file" + ID_FOLDER_VECTORPROPERTIES "Display properties for all vector based games" + ID_OPTIONS_HISTORY "Set the History file to use" + ID_OPTIONS_MAMEINFO "Set the Mameinfo file to use" +END + +#endif // English (USA) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "hbmamevers.rc" // Version block + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/docs/release/src/osd/winui/help.cpp b/docs/release/src/osd/winui/help.cpp new file mode 100644 index 00000000000..a6def8f630c --- /dev/null +++ b/docs/release/src/osd/winui/help.cpp @@ -0,0 +1,108 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/*************************************************************************** + + help.c + + Help wrapper code. + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +// MAME/MAMEUI headers +#include "help.h" + +typedef HWND (WINAPI *HtmlHelpProc)(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData); + +/*************************************************************************** + Internal structures +***************************************************************************/ + +/*************************************************************************** + function prototypes +***************************************************************************/ + +static void Help_Load(void); + +/*************************************************************************** + External function prototypes +***************************************************************************/ + +/*************************************************************************** + External variables +***************************************************************************/ + +/*************************************************************************** + Internal variables +***************************************************************************/ + +static HtmlHelpProc g_pHtmlHelp; +static HMODULE g_hHelpLib; +static DWORD g_dwCookie = 0; + +/************************************************************************** + External functions +***************************************************************************/ + +int HelpInit(void) +{ + g_pHtmlHelp = NULL; + g_hHelpLib = NULL; + + g_dwCookie = 0; + HelpFunction(NULL, NULL, HH_INITIALIZE, (DWORD_PTR)&g_dwCookie); + return 0; +} + +void HelpExit(void) +{ + HelpFunction(NULL, NULL, HH_CLOSE_ALL, 0); + HelpFunction(NULL, NULL, HH_UNINITIALIZE, (DWORD_PTR)&g_dwCookie); + + g_dwCookie = 0; + g_pHtmlHelp = NULL; + + if (g_hHelpLib) + { + FreeLibrary(g_hHelpLib); + g_hHelpLib = NULL; + } +} + +HWND HelpFunction(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData) +{ + if (g_pHtmlHelp == NULL) + Help_Load(); + + if (g_pHtmlHelp) + return g_pHtmlHelp(hwndCaller, pszFile, uCommand, dwData); + else + return NULL; +} + +/*************************************************************************** + Internal functions +***************************************************************************/ + +static void Help_Load(void) +{ + g_hHelpLib = LoadLibrary(TEXT("hhctrl.ocx")); + if (g_hHelpLib) + { + FARPROC pProc = NULL; + pProc = GetProcAddress(g_hHelpLib, "HtmlHelpA"); + if (pProc) + { + g_pHtmlHelp = (HtmlHelpProc)pProc; + } + else + { + FreeLibrary(g_hHelpLib); + g_hHelpLib = NULL; + } + } +} diff --git a/docs/release/src/osd/winui/help.h b/docs/release/src/osd/winui/help.h new file mode 100644 index 00000000000..356e62994b7 --- /dev/null +++ b/docs/release/src/osd/winui/help.h @@ -0,0 +1,47 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef HELP_H +#define HELP_H + +#if defined(__GNUC__) +#define HH_DISPLAY_TOPIC 0 +#define HH_TP_HELP_CONTEXTMENU 16 +#define HH_TP_HELP_WM_HELP 17 +#define HH_CLOSE_ALL 18 +#define HH_INITIALIZE 28 +#define HH_UNINITIALIZE 29 +#else +#include <htmlhelp.h> +#endif + +typedef struct +{ + int nMenuItem; + BOOL bIsHtmlHelp; + LPCTSTR lpFile; +} MAMEHELPINFO; + +extern const MAMEHELPINFO g_helpInfo[]; + +#if !defined(MAMEUIHELP) +#ifdef MESS +#define MAMEUIHELP "messui.chm" +#else +#define MAMEUIHELP "mameui.chm" +#endif +#endif + +#if !defined(MAMEUICONTEXTHELP) +#ifdef MESS +#define MAMEUICONTEXTHELP "messui.chm::/cntx_help.txt" +#else +#define MAMEUICONTEXTHELP "mameui.chm::/cntx_help.txt" +#endif +#endif + +extern int HelpInit(void); +extern void HelpExit(void); +extern HWND HelpFunction(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData); + +#endif diff --git a/docs/release/src/osd/winui/help/cntx_help.txt b/docs/release/src/osd/winui/help/cntx_help.txt new file mode 100644 index 00000000000..61e8b1db51f --- /dev/null +++ b/docs/release/src/osd/winui/help/cntx_help.txt @@ -0,0 +1,220 @@ +.topic HIDC_ADSTICK +Selects appropriate host controller for emulated controls. +.topic HIDC_ANTIALIAS +Enables anti-aliasing of vector lines providing a smoother look. +.topic HIDC_ARTWORK_CROP +Enables cropping external artwork down to selected window or resolution +.topic HIDC_ASPECT +Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used. +.topic HIDC_ASPECTRATIOD +Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used. +.topic HIDC_ASPECTRATION +Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used. +.topic HIDC_AUDIO_LATENCY +Selects the level of audio latency, adjusting this can often eliminate desync of the sound and associated scratchiness. +.topic HIDC_AUTOFRAMESKIP +Enables automatic frame skipping during emulation attempting to keep at 100%. +.topic HIDC_BACKDROPS +Enables the backdrops of artwork in supported games. +.topic HIDC_BEAM +Selects the width of the vector lines in vector games. +.topic HIDC_BEZELS +Enables the bezel artwork in supported games. +.topic HIDC_BIOS +Selects a particular BIOS in a driver family or individual games e.g. NeoGeo. +.topic HIDC_BRIGHTCORRECT +Selects the brightness level of the screen [but not artwork or UI]. +.topic HIDC_BROADCAST +Enables programmatically broadcasting the game being played to attached devices. +.topic HIDC_CHEAT +Enables cheat capability using the in-game [tab] menu. +.topic HIDC_COINLOCKOUT +Enables arcade operator coin lockout behaviour. +.topic HIDC_CONTRAST +Selects the contrast level of the screen [but not artwork or UI]. +.topic HIDC_CYCLETIMESEC +.topic HIDC_D3D_FILTER +Enables bilinear filtering during image stretch. +.topic HIDC_D3D_VERSION +Selects the version of Direct3D to use, 9 by default. +.topic HIDC_DEBUG +.topic HIDC_DEFAULT_INPUT +Selects .\ctrlr\*.cfg files to use for custom controller mappings. +.topic HIDC_DIAL +Selects appropriate host controller for emulated controls. +.topic HIDC_DUAL_LIGHTGUN +Enables support for dual light guns. +.topic HIDC_ENABLE_AUTOSAVE +Enables MameUI to use the contents of the \sav directory to restart a game at last quit. +.topic HIDC_FILTER_CLONES +Enables filtering out clones, leaving only parent games showing. +.topic HIDC_FILTER_EDIT +Allows typing in text to filter, including: gamename, description, driver, and manufacturer. +.topic HIDC_FILTER_HORIZONTAL +Enables filtering out horizontal games, leaving only vertical games showing. +.topic HIDC_FILTER_NONWORKING +Enables filtering out non-working games, leaving only working games showing. +.topic HIDC_FILTER_ORIGINALS +Enables filtering out parent games, leaving only clones showing. +.topic HIDC_FILTER_RASTER +Enables filtering out raster games, leaving only vector games showing. +.topic HIDC_FILTER_UNAVAILABLE +Enables filtering out unavailable games, leaving only available games showing. +.topic HIDC_FILTER_VECTOR +Enables filtering out vector games, leaving only raster games showing. +.topic HIDC_FILTER_VERTICAL +Enables filtering out vertical games, leaving only horizontal games showing. +.topic HIDC_FILTER_WORKING +Enables filtering out working games, leaving only non-working games showing. +.topic HIDC_FLICKER +Selects the flicker level for vector lines. +.topic HIDC_FLIPX +Enables flipping the screen horizontally. +.topic HIDC_FLIPY +Enables flipping the screen vertically. +.topic HIDC_FRAMESKIP +Selects the number of frames skipped during emulation. +.topic HIDC_FSBRIGHTNESS +Selects the level of the full-screen brightness including artwork and UI. +.topic HIDC_FSCONTRAST +Selects the level of the full-screen contrast including artwork and UI. +.topic HIDC_FSGAMMA +Selects the level of the full-screen gamma including artwork and UI. +.topic HIDC_GAME_CAPTION +Attempts to remove the titlebar from a windowed game. +.topic HIDC_GAMMA +Selects the gamma level of the screen [but not artwork or UI]. +.topic HIDC_HIDE_MOUSE +Enables hiding the mouse cursor on launch, useful for fullscreen UI w/ keyboard controlled cabinets, etc. +.topic HIDC_HIGH_PRIORITY +Selects MameUI's thread priority, default is 0. Running at real-time 1 is not recommended for potential control lag and sound desync. +.topic HIDC_HISTORY +Enables display of the history.dat file if present in the root directory. +.topic HIDC_HWSTRETCH +Enables hardware stretch for DirectDraw. +.topic HIDC_JDZ +Selects the level for an analogue joystick's deadzone. +.topic HIDC_JOY_GUI +Enables controlling the MameUI GUI with a gamepad. +.topic HIDC_JOYSTICK +Enables gamepad control within games. +.topic HIDC_JSAT +Selects the level for an analogue joystick's saturation. +.topic HIDC_KEEPASPECT +Enables creating windows for games that are way out of proportion e.g. thick, or tall. +.topic HIDC_LANGUAGECHECK +.topic HIDC_LANGUAGEEDIT +.topic HIDC_LIGHTGUN +Enables lightgun devices. +.topic HIDC_LIGHTGUNDEVICE +Selects appropriate host controller for emulated controls. +.topic HIDC_LOG +Enables programmatic logging as a game is played, saved out to file. +.topic HIDC_MAXIMIZE +Enables maximizing the game window or creating a very small window. +.topic HIDC_MOUSE +Enables mouse support within games. +.topic HIDC_MULTITHREAD_RENDERING +Enables handing off the final video blit to a second thread. Still experimental [.118] and may cause issues. +.topic HIDC_NUMSCREENS +Selects number of screens for MameUI to produce, windowed or multi-head physical monitors. +.topic HIDC_OVERLAYS +Enables art overlays in supported games. +.topic HIDC_PADDLE +Selects appropriate host controller for emulated controls. +.topic HIDC_PAUSEBRIGHT +Selects level of brightness for screen when paused. +.topic HIDC_PEDAL +Selects appropriate host controller for emulated controls. +.topic HIDC_POSITIONAL +Selects appropriate host controller for emulated controls. +.topic HIDC_PRESCALE +Selects level of prescaling, the higher the number, the sharper the stretched filtered image. +.topic HIDC_PROP_RESET +Enables resetting recent changes to the open tab. +.topic HIDC_RANDOM_BG +Enables random GUI background selection on restart, *.png files in \bkground directory. +.topic HIDC_REFRESH +Selects host monitor refresh rate. +.topic HIDC_REFRESHSPEED +Enables altering the speed of gameplay to keep the refresh rate lower than the screen. +.topic HIDC_RELOAD +Enables reload functionality for second button on lightguns. +.topic HIDC_RESET_DEFAULT +Enables resetting of games to default settings. +.topic HIDC_RESET_EFFECT +Enables resetting and clearing out the *.png effect chosen. +.topic HIDC_RESET_FILTERS +Enables resetting and clearing filters applied to folders. +.topic HIDC_RESET_GAMES +Enables resetting games to use default options. +.topic HIDC_RESET_UI +Enables resetting the options to fresh MameUI install settings. +.topic HIDC_ROTATE +Selects rotation setting for game display. Use the Auto options for pivot LCDs. +.topic HIDC_SAMPLERATE +Selects the output samplerate for games. +.topic HIDC_SAMPLES +Enables the use of external samples. +.topic HIDC_SCREEN +Selects screenX depends on the number of screens setting. Allows different settings for each screen. +.topic HIDC_SCREENSELECT +Selects the physical monitor to display window or full-screen multi-head output. +.topic HIDC_SELECT_EFFECT +Selects a *.png file in the \artwork directory for creating monitor-like effects. +.topic HIDC_SIZES +Selects from DirectX interrogated resolutions. +.topic HIDC_SKIP_GAME_INFO +Enables skipping game info screen when games started. +.topic HIDC_SPEED +Selects the speed of gameplay, relative to realtime; smaller numbers are slower. +.topic HIDC_SLEEP +Enables giving more timeslices back to the system, allowing MameUI to 'play nicer' with other apps. +.topic HIDC_START_GAME_CHECK +Enables running a mini-audit on application launch. +.topic HIDC_STEADYKEY +Enables the steadykey hack. +.topic HIDC_STRETCH_SCREENSHOT_LARGER +Enables increasing the size of the art pane items if the window is expanded. +.topic HIDC_SWITCHRES +Enables the switching of resolutions in fullscreen gaming. +.topic HIDC_SYNCREFRESH +Enables syncing the game internal speed to the host monitor. +.topic HIDC_THROTTLE +Enables throttling games to run at 100%. +.topic HIDC_TRACKBALL +Selects appropriate host controller for emulated controls. +.topic HIDC_TRIPLE_BUFFER +Enables the use of triple buffering during fullscreen gaming. +.topic HIDC_USE_DEFAULT +Enables reseting to default. +.topic HIDC_USE_MOUSE +Selects appropriate host controller for emulated controls. +.topic HIDC_USE_SOUND +Enables sound within games. +.topic HIDC_VIDEO_MODE +Selects the default rendering method. +.topic HIDC_VIEW +Selects the view in use in games. +.topic HIDC_VOLUME +Selects the volume level in games. +.topic HIDC_WAITVSYNC +Enables waiting for vertical sync. +.topic HIDC_WINDOWED +Enables running games in a window. +.topic HIDC_HLSL_ALPHA +Adjusts the alpha. +.topic HIDC_HLSL_CURV +Adjusts the curvature. +.topic HIDC_HLSL_SAT +Adjusts the saturation. +.topic HIDC_HLSL_SHADOW +Adjusts the effect of the shadowmask on the picture. +.topic HIDC_HLSL_PIN +Adjusts the pincushion distortion. +.topic HIDC_HLSL_FLOOR +.topic HIDC_HLSL_SCALE +.topic HIDC_HLSL_POWER +.topic HIDC_HLSL_PLIFE +.topic HIDC_HLSL_ON +Enables HLSL video enhancements. diff --git a/docs/release/src/osd/winui/help/docs/Command Line Settings.htm b/docs/release/src/osd/winui/help/docs/Command Line Settings.htm new file mode 100644 index 00000000000..8752595f429 --- /dev/null +++ b/docs/release/src/osd/winui/help/docs/Command Line Settings.htm @@ -0,0 +1,1377 @@ + +<head> +<style type="text/css"> +.style1 { + font-family: Arial, Helvetica, sans-serif; +} +.style2 { + font-size: x-small; +} +</style> +</head> + +<body style="background-image: url('../images/bkground.gif')"> + +<span class="style1"><span class="style2"><strong>This file describes general usage +information about MAME. It is intended<br> +to cover aspects of using and configuring the program that are common<br> +across operating systems. For additional OS-specific options, please see<br> +the separate documentation for your particular version of MAME.</strong></strong><br> +<br> +<br> +Using the program<br> +-----------------<br> +<br> +The usual way to run MAME is by telling it to run a particular game:<br> +<br> +mame <gamename> [options]<br> +<br> +For example:<br> +<br> +mame robby -nosound<br> +<br> +...will run Robby Roto without sound. There are many, many options<br> +available. All commonly supported options are listed below. Options that<br> +are specific to one operating system or version of MAME will be listed<br> +in a separate document.<br> +<br> +An alternative way to run MAME is to give it a command:<br> +<br> +mame <command> [parameters]<br> +<br> +For example:<br> +<br> +mame -listsource gridlee<br> +<br> +...will print the name of the source file where the gridlee driver lives<br> +to the screen. There are just a handful of these commands in MAME. They<br> +are all listed below, just before the options list.<br> +<br> +<br> +<br> +Default Keys<br> +------------<br> +<br> +All the keys below are fully configurable in the user interface. This list<br> +shows the standard keyboard configuration.<br> +<br> +Tab Toggles the configuration menu.<br> +<br> +~ Toggles the On Screen Display. When the on-screen display is<br> +visible, you can use the following keys to control it:<br> +<br> +Up - select previous parameter to modify<br> +Down - select next parameter to modify<br> +Enter - reset parameter value to its default<br> +<br> +Left - decrease the value of the selected parameter<br> +Control+Left - decrease the value by 10x<br> +Shift+Left - decrease the value by 0.1x<br> +Alt+Left - decrease the value by the smallest amount<br> +<br> +Right - increase the value of the selected parameter<br> +Control+Right - increase the value by 10x<br> +Shift+Right - increase the value by 0.1x<br> +Alt+Right - increase the value by the smallest amount<br> +<br> +P Pauses the game.<br> +<br> +Shift+P While paused, advances to next frame.<br> +<br> +F2 Service Mode for games that support it.<br> +<br> +F3 Resets the game.<br> +<br> +Shift+F3 Performs a "hard reset", which tears everything down and re-<br> +creates it from scratch. This is a more thorough and complete<br> +reset than an F3.<br> +<br> +F4 Shows the game palette, decoded GFX, and any tilemaps. Use the<br> +Enter key to switch between the three modes (palette, graphics,<br> +and tilemaps). Press F4 again to turn off the display. The key<br> +controls in each mode vary slightly:<br> +<br> +* Palette/colortable mode:<br> +[ ] - switch between palette and colortable modes<br> +Up/Down - scroll up/down one line at a time<br> +Page Up/Page Down - scroll up/down one page at a time<br> +Home/End - move to top/bottom of list<br> +-/+ - increase/decrease the number of colors per row<br> +Enter - switch to graphics viewer<br> +<br> +* Graphics mode:<br> +[ ] - switch between different graphics sets<br> +Up/Down - scroll up/down one line at a time<br> +Page Up/Page Down - scroll up/down one page at a time<br> +Home/End - move to top/bottom of list<br> +Left/Right - change color displayed<br> +R - rotate tiles 90 degrees clockwise<br> +-/+ - increase/decrease the number of tiles per row<br> +Enter - switch to tilemap viewer<br> +<br> +* Tilemap mode:<br> +[ ] - switch between different tilemaps<br> +Up/Down/Left/Right - scroll 8 pixels at a time<br> +Shift+Up/Down/Left/Right - scroll 1 pixel at a time<br> +Control+Up/Down/Left/Right - scroll 64 pixels at a time<br> +R - rotate tilemap view 90 degrees clockwise<br> +-/+ - increase/decrease the zoom factor<br> +Enter - switch to palette/colortable mode<br> +<br> +Note: Not all games have decoded graphics and/or tilemaps.<br> +<br> +F6 Toggle cheat mode (if started with "-cheat").<br> +<br> +F7 Load a save state. You will be requested to press a key to<br> +determine which save state you wish to load. Note that the save<br> +state feature is not supported for a large number of drivers. If<br> +support is not enabled for a given driver, you will receive a<br> +warning when attempting to save or load.<br> +<br> +Shift+F7 Create a save state. Requires an additional keypress to identify<br> +the state, similar to the load option above.<br> +<br> +F8 Decrease frame skip on the fly.<br> +<br> +F9 Increase frame skip on the fly.<br> +<br> +F10 Toggle speed throttling.<br> +<br> +F11 Toggles speed display.<br> +<br> +Shift+F11 Toggles internal profiler display (if compiled in).<br> +<br> +F12 Saves a screen snapshot.<br> +<br> +Insert Fast forward. While held, runs the game with throttling disabled<br> +and with the maximum frameskip.<br> +<br> +Escape Exits emulator.<br> +<br> +<br> +<br> +<br> +Core commands<br> +-------------<br> +<br> +-help / -h / -?<br> +<br> +Displays current MAME version and copyright notice.<br> +<br> +-validate / -valid<br> +<br> +Performs internal validation on every driver in the system. Run this<br> +before submitting changes to ensure that you haven't violated any of<br> +the core system rules.<br> +<br> +<br> +<br> +Configuration commands<br> +----------------------<br> +<br> +-createconfig / -cc<br> +<br> +Creates the default mame.ini file. All the configuration options<br> +(not commands) described below can be permanently changed by editing<br> +this configuration file.<br> +<br> +-showconfig / -sc<br> +<br> +Displays the current configuration settings. If you route this to a<br> +file, you can use it as an INI file. For example, the command:<br> +<br> +mame -showconfig >mame.ini<br> +<br> +is equivalent to -createconfig.<br> +<br> +-showusage / -su<br> +<br> +Displays a summary of all the command line options. For options that<br> +are not mentioned here, the short summary given by "mame -showusage"<br> +is usually sufficient.<br> +<br> +<br> +<br> +Frontend commands<br> +-----------------<br> +<br> +Note: By default, all the '-list' commands below write info to the screen.<br> +If you wish to write the info to a textfile instead, add this to the end<br> +of your command:<br> +<br> +> filename<br> +<br> +...where 'filename' is the textfile's path and name<br> +(e.g., c:\mame\list.txt).<br> +<br> +-listxml / -lx [<gamename|wildcard>]<br> +<br> +List comprehensive details for all of the supported games. The output<br> +is quite long, so it is usually better to redirect this into a file.<br> +The output is in XML format. By default all games are listed; however,<br> +you can limit this list by specifying a driver name or wildcard after<br> +the -listxml command.<br> +<br> +-listfull / -ll [<gamename|wildcard>]<br> +<br> +Displays a list of game driver names and descriptions. By default all<br> +games are listed; however, you can limit this list by specifying a<br> +driver name or wildcard after the -listfull command.<br> +<br> +-listsource / -ls [<gamename|wildcard>]<br> +<br> +Displays a list of drivers and the names of the source files their<br> +game drivers live in. Useful for finding which driver a game runs on<br> +in order to fix bugs. By default all games are listed; however, you<br> +can limit this list by specifying a driver name or wildcard after<br> +the -listsource command.<br> +<br> +-listclones / -lc [<gamename|wildcard>]<br> +<br> +Displays a list of clones. By default all clones are listed; however,<br> +you can limit this list by specifying a driver name or wildcard after<br> +the -listsource command.<br> +<br> +-listcrc<br> +<br> +Displays a full list of CRCs of all ROM images referenced by all<br> +drivers within MAME.<br> +<br> +-listroms <gamename><br> +<br> +Displays a list of ROM images referenced by the specified game.<br> +<br> +-listsamples <gamename><br> +<br> +Displays a list of samples referenced by the specified game.<br> +<br> +-verifyroms [<gamename|wildcard>]<br> +<br> +Checks for invalid or missing ROM images. By default all drivers that<br> +have valid ZIP files or directories in the rompath are verified;<br> +however, you can limit this list by specifying a driver name or<br> +wildcard after the -verifyroms command.<br> +<br> +-verifysamples [<gamename|wildcard>]<br> +<br> +Checks for invalid or missing samples. By default all drivers that<br> +have valid ZIP files or directories in the samplepath are verified;<br> +however, you can limit this list by specifying a driver name or<br> +wildcard after the -verifyroms command.<br> +<br> +-romident<br> +<br> +Attempts to identify ROM files, if they are known to MAME, in the<br> +specified .zip file or directory. This command can be used to try and<br> +identify ROM sets taken from unknown boards. On exit, the errorlevel<br> +is returned as one of the following:<br> +<br> +0: means all files were identified<br> +7: means all files were identified except for 1 or more "non-ROM"<br> +files<br> +8: means some files were identified<br> +9: means no files were identified<br> +<br> +<br> +<br> +Configuration options<br> +---------------------<br> +<br> +-[no]readconfig / -[no]rc<br> +<br> +Enables or disables the reading of the config files. When enabled<br> +(which is the default), MAME reads the following config files in order:<br> +<br> +- mame.ini<br> +- <mymame>.ini (i.e. if MAME was renamed mame060.exe, MAME<br> +parses mame060.ini here)<br> +- debug.ini (if the debugger is enabled)<br> +- vector.ini (for vector games only)<br> +- <driver>.ini (based on the source filename of the driver)<br> +- <parent>.ini (for clones only, may be called recursively)<br> +- <gamename>.ini<br> +<br> +The settings in the later ini's override those in the earlier ini's.<br> +So, for example, if you wanted to disable overlay effects in the<br> +vector games, you can create a vector.ini with the "effect none" line<br> +in it, and it will override whatever effect value you have in your<br> +mame.ini. The default is ON (-readconfig).<br> +<br> +<br> +<br> +Core search path options<br> +------------------------<br> +<br> +-rompath / -rp <path><br> +<br> +Specifies a list of paths within which to find ROM or hard disk images.<br> +Multiple paths can be specified by separating them with semicolons.<br> +The default is 'roms' (that is, a directory "roms" in the same directory<br> +as the MAME executable).<br> +<br> +-samplepath / -sp <path><br> +<br> +Specifies a list of paths within which to find sample files. Multiple<br> +paths can be specified by separating them with semicolons. The default<br> +is 'samples' (that is, a directory "samples" in the same directory as<br> +the MAME executable).<br> +<br> +-artpath / -artwork_directory <path><br> +<br> +Specifies a list of paths within which to find artwork files. Multiple<br> +paths can be specified by separating them with semicolons. The default<br> +is 'artwork' (that is, a directory "artwork" in the same directory as<br> +the MAME executable).<br> +<br> +-ctrlrpath / -ctrlr_directory <path><br> +<br> +Specifies a list of paths within which to find controller-specific<br> +configuration files. Multiple paths can be specified by separating<br> +them with semicolons. The default is 'ctrlr' (that is, a directory<br> +"ctrlr" in the same directory as the MAME executable).<br> +<br> +-inipath <path><br> +<br> +Specifies a list of paths within which to find .INI files. Multiple<br> +paths can be specified by separating them with semicolons. The default<br> +is '.;ini' (that is, search in the current directory first, and then<br> +in the directory "ini" in the same directory as the MAME executable).<br> +<br> +-fontpath <path><br> +<br> +Specifies a list of paths within which to find .BDF font files. Multiple<br> +paths can be specified by separating them with semicolons. The default<br> +is '.' (that is, search in the same directory as the MAME executable).<br> +<br> +-crosshairpath <path><br> +<br> +Specifies a list of paths within which to find crosshair files. Multiple<br> +paths can be specified by separating them with semicolons. The default<br> +is 'crsshair' (that is, a directory "crsshair" in the same directory as<br> +the MAME executable). If the Crosshair is set to default in the menu,<br> +MAME will look for gamename\cross#.png and then cross#.png in the<br> +specified crsshairpath, where # is the player number. Failing that,<br> +MAME will use built-in default crosshairs.<br> +<br> +<br> +Core Output Directory Options<br> +-----------------------------<br> +<br> +-cfg_directory <path><br> +<br> +Specifies a single directory where configuration files are stored.<br> +Configuration files store user configurable settings that are read at<br> +startup and written when MAME exits. The default is 'cfg' (that is,<br> +a directory "cfg" in the same directory as the MAME executable). If<br> +this directory does not exist, it will be automatically created.<br> +<br> +-nvram_directory <path><br> +<br> +Specifies a single directory where NVRAM files are stored. NVRAM files<br> +store the contents of EEPROM and non-volatile RAM (NVRAM) for games<br> +which used this type of hardware. This data is read at startup and<br> +written when MAME exits. The default is 'nvram' (that is, a directory<br> +"nvram" in the same directory as the MAME executable). If this<br> +directory does not exist, it will be automatically created.<br> +<br> +-memcard_directory <path><br> +<br> +Specifies a single directory where memory card files are stored.<br> +Memory card files store the contents of removable memory cards for<br> +games which used this type of hardware. This data is read and written<br> +under control of the user via the "Memory Card" menu in the user<br> +interface. The default is 'memcard' (that is, a directory "memcard"<br> +in the same directory as the MAME executable). If this directory does<br> +not exist, it will be automatically created.<br> +<br> +-input_directory <path><br> +<br> +Specifies a single directory where input recording files are stored.<br> +Input recordings are created via the -record option and played back<br> +via the -playback option. The default is 'inp' (that is, a directory<br> +"inp" in the same directory as the MAME executable). If this directory<br> +does not exist, it will be automatically created.<br> +<br> +-state_directory <path><br> +<br> +Specifies a single directory where save state files are stored. Save<br> +state files are read and written either upon user request, or when<br> +using the -autosave option. The default is 'sta' (that is, a directory<br> +"sta" in the same directory as the MAME executable). If this directory<br> +does not exist, it will be automatically created.<br> +<br> +-snapshot_directory <path><br> +<br> +Specifies a single directory where screen snapshots are stored, when<br> +requested by the user. The default is 'snap' (that is, a directory<br> +"snap" in the same directory as the MAME executable). If this<br> +directory does not exist, it will be automatically created.<br> +<br> +-diff_directory <path><br> +<br> +Specifies a single directory where hard drive differencing files are<br> +stored. Hard drive differencing files store any data that is written<br> +back to a hard disk image, in order to preserve the original image.<br> +The differencing files are created at startup when a game with a hard<br> +disk image. The default is 'diff' (that is, a directory "diff" in the<br> +same directory as the MAME executable). If this directory does not<br> +exist, it will be automatically created.<br> +<br> +-comment_directory <path><br> +<br> +Specifies a single directory where debugger comment files are stored.<br> +Debugger comment files are written by the debugger when comments are<br> +added to the disassembly for a game. The default is 'comments' (that<br> +is, a directory "comments" in the same directory as the MAME<br> +executable). If this directory does not exist, it will be<br> +automatically created.<br> +<br> +<br> +<br> +Core Filename Options<br> +---------------------<br> +<br> +-cheat_file <filename><br> +<br> +Specifies the name of the cheat database file. The default is<br> +'cheat.dat'.<br> +<br> +<br> +<br> +Core state/playback options<br> +---------------------------<br> +<br> +-state <slot><br> +<br> +Immediately after starting the specified game, will cause the save<br> +state in the specified <slot> to be loaded.<br> +<br> +-[no]autosave<br> +<br> +When enabled, automatically creates a save state file when exiting<br> +MAME and automatically attempts to reload it when later starting MAME<br> +with the same game. This only works for games that have explicitly<br> +enabled save state support in their driver. The default is OFF<br> +(-noautosave).<br> +<br> +-playback / -pb <filename><br> +<br> +Specifies a file from which to play back a series of game inputs. This<br> +feature does not work reliably for all games, but can be used to watch<br> +a previously recorded game session from start to finish. In order to<br> +make things consistent, you should only record and playback with all<br> +configuration (.cfg), NVRAM (.nv), and memory card files deleted. The<br> +default is NULL (no playback).<br> +<br> +-record / -rec <filename><br> +<br> +Specifies a file to record all input from a game session. This can be<br> +used to record a game session for later playback. This feature does<br> +not work reliably for all games, but can be used to watch a previously<br> +recorded game session from start to finish. In order to make things<br> +consistent, you should only record and playback with all configuration<br> +(.cfg), NVRAM (.nv), and memory card files deleted. The default is<br> +NULL (no recording).<br> +<br> +-snapname <name><br> +<br> +Describes how MAME should name files for snapshots. <name> is a string<br> +that provides a template that is used to generate a filename. Three<br> +simple substitutions are provided: the / character represents the<br> +path separator on any target platform (even Windows); the string %g<br> +represents the driver name of the current game; and the string %i<br> +represents an incrementing index. If %i is omitted, then each<br> +snapshot taken will overwrite the previous one; otherwise, MAME will<br> +find the next empty value for %i and use that for a filename. The<br> +default is %g/%i, which creates a separate folder for each game,<br> +and names the snapshots under it starting with 0000 and increasing<br> +from there.<br> +<br> +-snapsize <width>x<height><br> +<br> +Hard-codes the size for snapshots and movie recording. By default,<br> +MAME will create snapshots at the game's current resolution in raw<br> +pixels, and will create movies at the game's starting resolution in<br> +raw pixels. If you specify this option, then MAME will create both<br> +snapshots and movies at the size specified, and will bilinear filter<br> +the result. Note that this size does not automatically rotate if the<br> +game is vertically oriented. The default is 'auto'.<br> +<br> +-snapview <viewname><br> +<br> +Specifies the view to use when rendering snapshots and movies. By<br> +default, both use a special 'internal' view, which renders a separate<br> +snapshot per screen or renders movies only of the first screen. By<br> +specifying this option, you can override this default behavior and<br> +select a single view that will apply to all snapshots and movies.<br> +Note that <viewname> does not need to be a perfect match; rather, it<br> +will select the first view whose name matches all the characters<br> +specified by <viewname>. For example, -snapview native will match the<br> +"Native (15:14)" view even though it is not a perfect match.<br> +<viewname> can also be 'auto', which selects the first view with all<br> +screens present. The default value is 'internal'.<br> +<br> +-mngwrite <filename><br> +<br> +Writes each video frame to the given <filename> in MNG format,<br> +producing an animation of the game session. Note that -mngwrite only<br> +writes video frames; it does not save any audio data. Use -wavwrite<br> +for that, and reassemble the audio/video using offline tools. The<br> +default is NULL (no recording).<br> +<br> +-aviwrite <filename><br> +<br> +Stream video and sound data to the given <filename> in AVI format,<br> +producing an animation of the game session complete with sound. The<br> +default is NULL (no recording).<br> +<br> +-wavwrite <filename><br> +<br> +Writes the final mixer output to the given <filename> in WAV format,<br> +producing an audio recording of the game session. The default is<br> +NULL (no recording).<br> +<br> +-[no]burnin<br> +<br> +Tracks brightness of the screen during play and at the end of <br> +emulation generates a PNG that can be used to simulate burn-in<br> +effects on other games. The resulting PNG is created such that the<br> +least used-areas of the screen are fully white (since burned-in areas <br> +are darker, all other areas of the screen must be lightened a touch).<br> +The intention is that this PNG can be loaded via an artwork file with<br> +a low alpha (e.g, 0.1-0.2 seems to work well) and blended over the<br> +entire screen. The PNG files are saved in the snap directory under <br> +the gamename/burnin-<screen.name>.png. The default is OFF (-noburnin).<br> +<br> +<br> +<br> +Core performance options<br> +------------------------<br> +<br> +-[no]autoframeskip / -[no]afs<br> +<br> +Automatically determines the frameskip level while you're playing the<br> +game, adjusting it constantly in a frantic attempt to keep the game<br> +running at full speed. Turning this on overrides the value you have<br> +set for -frameskip below. The default is OFF (-noautoframeskip).<br> +<br> +-frameskip / -fs <level><br> +<br> +Specifies the frameskip value. This is the number of frames out of<br> +every 12 to drop when running. For example, if you say -frameskip 2,<br> +then MAME will display 10 out of every 12 frames. By skipping those<br> +frames, you may be able to get full speed in a game that requires more<br> +horsepower than your computer has. The default value is -frameskip 0,<br> +which skips no frames.<br> +<br> +-seconds_to_run / -str <seconds><br> +<br> +This option can be used for benchmarking and automated testing. It tells<br> +MAME to stop execution after a fixed number of seconds. By combining<br> +this with a fixed set of other command line options, you can set up a<br> +consistent environment for benchmarking MAME performance. In addition,<br> +upon exit, the -str option will write a screenshot called final.png<br> +to the game's snapshot directory.<br> +<br> +-[no]throttle<br> +<br> +Configures the default thottling setting. When throttling is on, MAME<br> +attempts to keep the game running at the game's intended speed. When<br> +throttling is off, MAME runs the game as fast as it can. Note that the<br> +fastest speed is more often than not limited by your graphics card,<br> +especially for older games. The default is ON (-throttle).<br> +<br> +-[no]sleep<br> +<br> +Allows MAME to give time back to the system when running with -throttle.<br> +This allows other programs to have some CPU time, assuming that the<br> +game isn't taxing 100% of your CPU resources. This option can<br> +potentially cause hiccups in performance if other demanding programs<br> +are running. The default is ON (-sleep).<br> +<br> +-speed <factor><br> +<br> +Changes the way MAME throttles gameplay such that the game runs at some<br> +multiplier of the original speed. A <factor> of 1.0 means to run the<br> +game at its normal speed. A <factor> of 0.5 means run at half speed,<br> +and a <factor> of 2.0 means run at 2x speed. Note that changing this<br> +value affects sound playback as well, which will scale in pitch<br> +accordingly. The internal resolution of the fraction is two decimal<br> +places, so a value of 1.002 is the same as 1.0. The default is 1.0.<br> +<br> +-[no]refreshspeed / -[no]rs<br> +<br> +Allows MAME to dynamically adjust the gameplay speed such that it does<br> +not exceed the slowest refresh rate for any targeted monitors in your<br> +system. Thus, if you have a 60Hz monitor and run a game that is<br> +actually designed to run at 60.6Hz, MAME will dynamically change the<br> +speed down to 99% in order to prevent sound hiccups or other<br> +undesirable side effects of running at a slower refresh rate. The<br> +default is OFF (-norefreshspeed).<br> +<br> +<br> +<br> +Core rotation options<br> +---------------------<br> +<br> +-[no]rotate<br> +<br> +Rotate the game to match its normal state (horizontal/vertical). This<br> +ensures that both vertically and horizontally oriented games show up<br> +correctly without the need to rotate your monitor. If you want to keep<br> +the game displaying 'raw' on the screen the way it would have in the<br> +arcade, turn this option OFF. The default is ON (-rotate).<br> +<br> +-[no]ror<br> +-[no]rol<br> +<br> +Rotate the game screen to the right (clockwise) or left (counter-<br> +clockwise) relative to either its normal state (if -rotate is<br> +specified) or its native state (if -norotate is specified). The<br> +default for both of these options is OFF (-noror -norol).<br> +<br> +-[no]flipx<br> +-[no]flipy<br> +<br> +Flip (mirror) the game screen either horizontally (-flipx) or<br> +vertically (-flipy). The flips are applied after the -rotate and<br> +-ror/-rol options are applied. The default for both of these options<br> +is OFF (-noflipx -noflipy).<br> +<br> +-[no]autoror<br> +-[no]autorol<br> +<br> +These options are designed for use with pivoting screens that only<br> +pivot in a single direction. If your screen only pivots clockwise,<br> +use -autorol to ensure that the game will fill the screen either<br> +horizontally or vertically in one of the directions you can handle.<br> +If your screen only pivots counter-clockwise, use -autoror.<br> +<br> +<br> +<br> +Core artwork options<br> +--------------------<br> +<br> +-[no]artwork_crop / -[no]artcrop<br> +<br> +Enable cropping of artwork to the game screen area only. This works<br> +best with -video gdi or -video d3d, and means that vertically oriented<br> +games running full screen can display their artwork to the left and<br> +right sides of the screen. This does not work with -video ddraw<br> +because of the way the game screens are rendered and scaled after the<br> +fact. This option can also be controlled via the Video Options menu in<br> +the user interface. The default is OFF (-noartwork_crop).<br> +<br> +-[no]use_backdrops / -[no]backdrop<br> +<br> +Enables/disables the display of backdrops. The default is ON<br> +(-use_backdrops).<br> +<br> +-[no]use_overlays / -[no]overlay<br> +<br> +Enables/disables the display of overlays. The default is ON<br> +(-use_overlays).<br> +<br> +-[no]use_bezels / -[no]bezel<br> +<br> +Enables/disables the display of bezels. The default is ON<br> +(-use_bezels).<br> +<br> +<br> +<br> +Core screen options<br> +-------------------<br> +<br> +-brightness <value><br> +<br> +Controls the default brightness, or black level, of the game screens.<br> +This option does not affect the artwork or other parts of the display.<br> +Using the MAME UI, you can individually set the brightness for each<br> +game screen; this option controls the initial value for all visible<br> +game screens. The standard value is 1.0. Selecting lower values (down<br> +to 0.1) will produce a darkened display, while selecting higher values<br> +(up to 2.0) will give a brighter display. The default is 1.0.<br> +<br> +-contrast <value><br> +<br> +Controls the contrast, or white level, of the game screens. This<br> +option does not affect the artwork or other parts of the display.<br> +Using the MAME UI, you can individually set the contrast for each<br> +game screen; this option controls the initial value for all visible<br> +game screens. The standard value is 1.0. Selecting lower values (down<br> +to 0.1) will produce a dimmer display, while selecting higher values<br> +(up to 2.0) will give a more saturated display. The default is 1.0.<br> +<br> +-gamma <value><br> +<br> +Controls the gamma, which produces a potentially nonlinear black to<br> +white ramp, for the game screens. This option does not affect the<br> +artwork or other parts of the display. Using the MAME UI, you can<br> +individually set the gamma for each game screen; this option controls<br> +the initial value for all visible game screens. The standard value is<br> +1.0, which gives a linear ramp from black to white. Selecting lower<br> +values (down to 0.1) will increase the nonlinearity toward black,<br> +while selecting higher values (up to 3.0) will push the nonlinearity<br> +toward white. The default is 1.0.<br> +<br> +-pause_brightness <value><br> +<br> +This controls the brightness level when MAME is paused. The default<br> +value is 0.65.<br> +<br> +<br> +<br> +Core vector options<br> +-------------------<br> +<br> +-[no]antialias / -[no]aa<br> +<br> +Enables antialiased line rendering for vector games. The default is ON<br> +(-antialias).<br> +<br> +-beam <width><br> +<br> +Sets the width of the vectors. This is a scaling factor against the<br> +standard vector width. A value of 1.0 will keep the default vector<br> +line width. Smaller values will reduce the width, and larger values<br> +will increase the width. The default is 1.0.<br> +<br> +-flicker <value><br> +<br> +Simulates a vector "flicker" effect, similar to a vector monitor that<br> +needs adjustment. This option requires a float argument in the range<br> +of 0.00 - 100.00 (0=none, 100=maximum). The default is 0.<br> +<br> +<br> +<br> +Core sound options<br> +------------------<br> +<br> +-[no]sound<br> +<br> +Enable or disable sound altogether. The default is ON (-sound).<br> +<br> +-samplerate <value> / -sr <value><br> +<br> +Sets the audio sample rate. Smaller values (e.g. 11025) cause lower<br> +audio quality but faster emulation speed. Higher values (e.g. 48000)<br> +cause higher audio quality but slower emulation speed. The default is<br> +48000.<br> +<br> +-[no]samples<br> +<br> +Use samples if available. The default is ON (-samples).<br> +<br> +-volume / -vol <value><br> +<br> +Sets the startup volume. It can later be changed with the user<br> +interface (see Keys section). The volume is an attenuation in dB:<br> +e.g., "-volume -12" will start with -12dB attenuation. The default<br> +is 0.<br> +<br> +<br> +<br> +Core input options<br> +------------------<br> +<br> +-[no]coin_lockout / -[no]coinlock<br> +<br> +Enables simulation of the "coin lockout" feature that is implmeneted<br> +on a number of game PCBs. It was up to the operator whether or not<br> +the coin lockout outputs were actually connected to the coin<br> +mechanisms. If this feature is enabled, then attempts to enter a coin<br> +while the lockout is active will fail and will display a popup message<br> +in the user interface. If this feature is disabled, the coin lockout<br> +signal will be ignored. The default is ON (-coin_lockout).<br> +<br> +-ctrlr <controller><br> +<br> +Enables support for special controllers. Configuration files are<br> +loaded from the ctrlrpath. They are in the same format as the .cfg<br> +files that are saved, but only control configuration data is read<br> +from the file. The default is NULL (no controller file).<br> +<br> +-[no]mouse<br> +<br> +Controls whether or not MAME makes use of mouse controllers. When<br> +this is enabled, you will likely be unable to use your mouse for other<br> +purposes until you exit or pause the game. The default is OFF<br> +(-nomouse).<br> +<br> +-[no]joystick / -[no]joy<br> +<br> +Controls whether or not MAME makes use of joystick/gamepad controllers.<br> +When this is enabled, MAME will ask DirectInput about which<br> +controllers are connected. The default is OFF (-nojoystick).<br> +<br> +-[no]lightgun / -[no]gun<br> +<br> +Controls whether or not MAME makes use of lightgun controllers.<br> +Note that most lightguns map to the mouse, so using -lightgun and<br> +-mouse together may produce strange results. The default is OFF<br> +(-nolightgun).<br> +<br> +-[no]multikeyboard / -[no]multikey<br> +<br> +Determines whether MAME differentiates between multiple keyboards.<br> +Some systems may report more than one keyboard; by default, the data<br> +from all of these keyboards is combined so that it looks like a single<br> +keyboard. Turning this option on will enable MAME to report keypresses<br> +on different keyboards independently. The default is OFF<br> +(-nomultikeyboard).<br> +<br> +-[no]multimouse<br> +<br> +Determines whether MAME differentiates between multiple mice. Some<br> +systems may report more than one mouse device; by default, the data<br> +from all of these mice is combined so that it looks like a single<br> +mouse. Turning this option on will enable MAME to report mouse<br> +movement and button presses on different mice independently. The<br> +default is OFF (-nomultimouse).<br> +<br> +-[no]steadykey / -[no]steady<br> +<br> +Some games require two or more buttons to be pressed at exactly the<br> +same time to make special moves. Due to limitations in the keyboard<br> +hardware, it can be difficult or even impossible to accomplish that<br> +using the standard keyboard handling. This option selects a different<br> +handling that makes it easier to register simultaneous button presses,<br> +but has the disadvantage of making controls less responsive. The<br> +default is OFF (-nosteadykey)<br> +<br> +-[no]offscreen_reload / -[no]reload<br> +<br> +Controls whether or not MAME treats a second button input from a<br> +lightgun as a reload signal. In this case, MAME will report the gun's<br> +position as (0,MAX) with the trigger held, which is equivalent to an<br> +offscreen reload. This is only needed for games that required you to<br> +shoot offscreen to reload, and then only if your gun does not support<br> +off screen reloads. The default is OFF (-nooffscreen_reload).<br> +<br> +-joystick_map <map> / -joymap <map><br> +<br> +Controls how joystick values map to digital joystick controls. MAME<br> +accepts all joystick input from the system as analog data. For true<br> +analog joysticks, this needs to be mapped down to the usual 4-way or<br> +8-way digital joystick values. To do this, MAME divides the analog<br> +range into a 9x9 grid. It then takes the joystick axis position (for<br> +X and Y axes only), maps it to this grid, and then looks up a<br> +translation from a joystick map. This parameter allows you to specify<br> +the map. The default is 'auto', which means that a standard 8-way,<br> +4-way, or 4-way diagonal map is selected automatically based on the<br> +input port configuration of the current game.<br> +<br> +Maps are defined as a string of numbers and characters. Since the grid<br> +is 9x9, there are a total of 81 characters necessary to define a<br> +complete map. Below is an example map for an 8-way joystick:<br> +<br> +777888999 Note that the numeric digits correspond to the keys<br> +777888999 on a numeric keypad. So '7' maps to up+left, '4' maps<br> +777888999 to left, '5' maps to neutral, etc. In addition to the<br> +444555666 numeric values, you can specify the character 's',<br> +444555666 which means "sticky". In this case, the value of the<br> +444555666 map is the same as it was the last time a non-sticky<br> +111222333 value was read.<br> +111222333<br> +111222333<br> +<br> +To specify the map for this parameter, you can specify a string of<br> +rows separated by a '.' (which indicates the end of a row), like so:<br> +<br> +777888999.777888999.777888999.444555666.444555666.444555666.<br> +111222333.111222333.111222333<br> +<br> +However, this can be reduced using several shorthands supported by the<br> +<map> parameter. If information about a row is missing, then it is<br> +assumed that any missing data in columns 5-9 are left/right symmetric<br> +with data in columns 0-4; and any missing data in colums 0-4 is<br> +assumed to be copies of the previous data. The same logic applies to<br> +missing rows, except that up/down symmetry is assumed.<br> +<br> +By using these shorthands, the 81 character map can be simply<br> +specified by this 11 character string: 7778...4445<br> +<br> +Looking at the first row, 7778 is only 4 characters long. The 5th<br> +entry can't use symmetry, so it is assumed to be equal to the previous<br> +character '8'. The 6th character is left/right symmetric with the 4th<br> +character, giving an '8'. The 7th character is left/right symmetric<br> +with the 3rd character, giving a '9' (which is '7' with left/right<br> +flipped). Eventually this gives the full 777888999 string of the row.<br> +<br> +The second and third rows are missing, so they are assumed to be<br> +identical to the first row. The fourth row decodes similarly to the<br> +first row, producing 444555666. The fifth row is missing so it is<br> +assumed to be the same as the fourth.<br> +<br> +The remaining three rows are also missing, so they are assumed to be<br> +the up/down mirrors of the first three rows, giving three final rows<br> +of 111222333.<br> +<br> +-joystick_deadzone <value> / -joy_deadzone <value> / -jdz <value><br> +<br> +If you play with an analog joystick, the center can drift a little.<br> +joystick_deadzone tells how far along an axis you must move before the<br> +axis starts to change. This option expects a float in the range of<br> +0.0 to 1.0. Where 0 is the center of the joystick and 1 is the outer<br> +limit. The default is 0.3.<br> +<br> +-joystick_saturation <value> / joy_saturation <value> / -jsat <value><br> +<br> +If you play with an analog joystick, the ends can drift a little,<br> +and may not match in the +/- directions. joystick_saturation tells how<br> +far along an axis movement change will be accepted before it reaches<br> +the maximum range. This option expects a float in the range of 0.0 to<br> +1.0, where 0 is the center of the joystick and 1 is the outer limit.<br> +The default is 0.85.<br> +<br> +<br> +<br> +Core input automatic enable options<br> +-----------------------------------<br> +<br> +-paddle_device <keyboard|mouse|joystick|lightgun|none> / -paddle<br> +-adstick_device <keyboard|mouse|joystick|lightgun|none> / -adstick<br> +-pedal_device <keyboard|mouse|joystick|lightgun|none> / -pedal<br> +-dial_device <keyboard|mouse|joystick|lightgun|none> / -dial<br> +-trackball_device <keyboard|mouse|joystick|lightgun|none> / -trackball<br> +-lightgun_device <keyboard|mouse|joystick|lightgun|none><br> +-positional_device <keyboard|mouse|joystick|lightgun|none><br> +<br> +Each of these options controls autoenabling the mouse, joystick, or<br> +lightgun depending on the presence of a particular class of analog<br> +control for a particular game. For example, if you specify the option<br> +-paddle mouse, then any game that has a paddle control will<br> +automatically enable mouse controls just as if you had explicitly<br> +specified -mouse. Note that these controls override the values of<br> +-[no]mouse, -[no]joystick, etc.<br> +<br> +<br> +<br> +Debugging options<br> +-----------------<br> +<br> +-[no]log<br> +<br> +Creates a file called error.log which contains all of the internal<br> +log messages generated by the MAME core and game drivers. The default<br> +is OFF (-nolog).<br> +<br> +-[no]verbose / -[no]v<br> +<br> +Displays internal diagnostic information. This information is very<br> +useful for debugging problems with your configuration. IMPORTANT: when<br> +reporting bugs, please run with mame -verbose and include the<br> +resulting information. The default is OFF (-noverbose).<br> +<br> +-[no]update_in_pause<br> +<br> +Enables updating of the main screen bitmap while the game is paused.<br> +This means that the VIDEO_UPDATE callback will be called repeatedly<br> +during pause, which can be useful for debugging. The default is OFF<br> +(-noupdate_in_pause).<br> +<br> +-[no]debug<br> +<br> +Activates the integrated debugger. By default, the debugger is entered<br> +by pressing the tilde (~) key during emulation. It is also entered<br> +immediately at startup. The default is OFF (-nodebug).<br> +<br> +-debugscript <filename><br> +<br> +Specifies a file that contains a list of debugger commands to execute<br> +immediately upon startup. The default is NULL (no commands).<br> +<br> +<br> +<br> +Core misc options<br> +-----------------<br> +<br> +-bios <biosname><br> +<br> +Specifies the specific BIOS to use with the current game, for game<br> +systems that make use of a BIOS. The -listxml output will list all of<br> +the possible BIOS names for a game. The default is 'default'.<br> +<br> +-[no]cheat / -[no]c<br> +<br> +Enables the reading of the cheat database, if present, and the Cheat<br> +menu in the user interface. The default is OFF (-nocheat).<br> +<br> +-[no]skip_gameinfo<br> +<br> +Forces MAME to skip displaying the game info screen. The default is<br> +OFF (-noskip_gameinfo).<br> +<br> +</span></span><span class="style2"><strong>This file describes Windows-specific +usage information about MAME. It is<br> +intended to cover aspects of using and configuring the program that are<br> +specific to running MAME from the command line on a Windows-based system.<br> +For common options that apply to all systems, please see config.txt.</strong><br> +<br> +<br> +<br> +Default Keys<br> +------------<br> +<br> +In addition to the keys described in config.txt, the following additional<br> +keys are defined for Windows versions of MAME:<br> +<br> +<br> +Alt+Enter Toggles between full-screen and windowed mode.<br> +<br> +<br> +<br> +Windows debugging options<br> +-------------------------<br> +<br> +-[no]oslog<br> +<br> +Outputs the error.log data to the Windows debugger. This can be used at<br> +the same time as -log to output the log data to both targets as well.<br> +Default is OFF (-nooslog).<br> +<br> +<br> +<br> +Windows performance options<br> +---------------------------<br> +<br> +-priority <priority><br> +<br> +Sets the thread priority for the MAME threads. By default the priority<br> +is left alone to guarantee proper cooperation with other applications.<br> +The valid range is -15 to 1, with 1 being the highest priority. The<br> +default is 0 (NORMAL priority).<br> +<br> +-[no]multithreading / -[no]mt<br> +<br> +Enables multithreading within MAME. At the moment, this causes the<br> +window and all DirectDraw/Direct3D code to execute on a second thread,<br> +which can improve performance on hyperthreaded and multicore systems.<br> +The default is OFF (-nomultithreading).<br> +<br> +-numprocessors <auto|value><br> +Specify the number of processors to use for work queues. Specifying<br> +"auto" will use the value reported by the system or environment <br> +variable OSDPROCESSORS. To avoid abuse, this value is internally limited<br> +to 4 times the number of processors reported by the system. <br> +The default is "auto".<br> +<br> +<br> +Windows video options<br> +---------------------<br> +<br> +-video <gdi|ddraw|d3d|none><br> +<br> +Specifies which video subsystem to use for drawing. By specifying 'gdi'<br> +here, you tell MAME to render video using standard Windows graphics<br> +drawing calls. This is the slowest but most compatible option.<br> +Specifying 'ddraw' instructs MAME to use DirectDraw for rendering.<br> +This causes MAME to render everything at a lower resolution and then<br> +upscale the results at the end. This produces high performance,<br> +especially on older or low-power video cards, but has a noticeably<br> +lower output quality. Specifying 'd3d' tells MAME to use Direct3D for<br> +rendering. This produces the highest quality output and enables all<br> +rendering options. It is recommended if you have a recent (2002+)<br> +video card. The final option 'none' displays no windows and does no<br> +drawing. This is primarily present for doing CPU benchmarks without<br> +the overhead of the video system. The default is d3d.<br> +<br> +-numscreens <count><br> +<br> +Tells MAME how many output windows to create. For most games, a single<br> +output window is all you need, but some games originally used multiple<br> +screens. Each screen (up to 4) has its own independent settings for<br> +physical monitor, aspect ratio, resolution, and view, which can be<br> +set using the options below. The default is 1.<br> +<br> +-[no]window<br> +<br> +Run MAME in either a window or full screen. The default is OFF<br> +(-nowindow).<br> +<br> +-[no]maximize / -[no]max<br> +<br> +Controls initial window size in windowed mode. If it is set on, the<br> +window will initially be set to the maximum supported size when you<br> +start MAME. If it is turned off, the window will start out at the<br> +smallest supported size. This option only has an effect when the<br> +-window option is used. The default is ON (-maximize).<br> +<br> +-[no]keepaspect / -[no]ka<br> +<br> +Enables aspect ratio enforcement. When this option is on, the game's<br> +proper aspect ratio (generally 4:3 or 3:4) is enforced, so you get the<br> +game looking like it should. When running in a window with this option<br> +on, you can only resize the window to the proper aspect ratio, unless<br> +you are holding down the CONTROL key. By turning the option off, the<br> +aspect ratio is allowed to float. In full screen mode, this means that<br> +all games will stretch to the full screen size (even vertical games).<br> +In window mode, it means that you can freely resize the window without<br> +any constraints. The default is ON (-keepaspect).<br> +<br> +-prescale <amount><br> +<br> +Controls the size of the screen images when they are passed off to the<br> +graphics system for scaling. At the minimum setting of 1, the screen<br> +is rendered at its original resolution before being scaled. At higher<br> +settings, the screen is expanded by a factor of <amount> before being<br> +scaled. With -video ddraw or -video d3d, this produces a less blurry<br> +image at the expense of some speed. In -video ddraw mode, this also<br> +increases the effective resolution of non-screen elements such as<br> +artwork and fonts. The default is 1.<br> +<br> +-effect <filename><br> +<br> +Specifies a single PNG file that is used as an overlay over any game<br> +screens in the video display. This PNG file is assumed to live in the<br> +root of one of the artpath directories. The pattern in the PNG file is<br> +repeated both horizontally and vertically to cover the entire game<br> +screen areas (but not any external artwork), and is rendered at<br> +the target resolution of the game image. For -video gdi and -video d3d<br> +modes, this means that one pixel in the PNG will map to one pixel on<br> +your output display. For -video ddraw, this means that one pixel in the<br> +PNG will map to one pixel in the prescaled game screen. If you wish to<br> +use an effect that requires mapping n PNG pixels to each game screen<br> +pixel with -video ddraw, you need to specify a -prescale factor of n as<br> +well. The RGB values of each pixel in the PNG are multiplied against the<br> +RGB values of the target screen. The default is 'none', meaning no<br> +effect.<br> +<br> +-[no]waitvsync<br> +<br> +Waits for the refresh period on your computer's monitor to finish<br> +before starting to draw video to your screen. If this option is off,<br> +MAME will just draw to the screen at any old time, even in the middle<br> +of a refresh cycle. This can cause "tearing" artifacts, where the top<br> +portion of the screen is out of sync with the bottom portion. Tearing<br> +is not noticeable on all games, and some people hate it more than<br> +others. However, if you turn this option on, you will waste more of<br> +your CPU cycles waiting for the proper time to draw, so you will see a<br> +performance hit. You should only need to turn this on in windowed mode.<br> +In full screen mode, it is only needed if -triplebuffer does not<br> +remove the tearing, in which case you should use -notriplebuffer<br> +-waitvsync. Note that this option does not work with -video gdi mode.<br> +The default is OFF (-nowaitvsync).<br> +<br> +-[no]syncrefresh<br> +<br> +Enables speed throttling only to the refresh of your monitor. This<br> +means that the game's actual refresh rate is ignored; however, the<br> +sound code still attempts to keep up with the game's original refresh<br> +rate, so you may encounter sound problems. This option is intended<br> +mainly for those who have tweaked their video card's settings to<br> +provide carefully matched refresh rate options. Note that this option<br> +does not work with -video gdi mode.The default is OFF (-nosyncrefresh).<br> +<br> +<br> +<br> +DirectDraw-specific options<br> +---------------------------<br> +<br> +-[no]hwstretch / -[no]hws<br> +<br> +When enabled, MAME uses the hardware stretching abilities of your<br> +video card to scale the game image and associated artwork to the<br> +target resolution. Depending on the quality of your graphic card and<br> +its drivers, this may be a fractional, antialiased scaling (nice) or<br> +an integer, blocky scaling (not so nice), in which case you might want<br> +to disable this option. In addition, if you have configured specific<br> +arcade-like video modes for MAME and don't want MAME to perform any<br> +non-integral scaling of the image, you should also disable this option.<br> +The default is ON (-hwstretch).<br> +<br> +<br> +<br> +Direct3D-specific options<br> +-------------------------<br> +<br> +-d3dversion <version><br> +<br> +MAME supports both Direct3D 9 and Direct3D 8 for maximum compatibility.<br> +By default, it will automatically detect which one it can use and use<br> +that version exclusively. You can override MAME's selection with this<br> +option. It is primarily intended as a means for the MAME developers to<br> +test compatibility with older hardware; for the most part, there is no<br> +reason to alter this setting. The default is 9.<br> +<br> +-[no]filter / -[no]d3dfilter / -[no]flt<br> +<br> +Enable bilinear filtering on the game screen graphics. When disabled,<br> +point filtering is applied, which is crisper but leads to scaling<br> +artifacts. If you don't like the filtered look, you are probably better<br> +off increasing the -prescale value rather than turning off filtering<br> +altogether. The default is ON (-filter).<br> +<br> +<br> +<br> +Per-window options<br> +------------------<br> +<br> +-screen <display><br> +-screen0 <display><br> +-screen1 <display><br> +-screen2 <display><br> +-screen3 <display><br> +<br> +Specifies which physical monitor on your system you wish to have each<br> +window use by default. In order to use multiple windows, you must have<br> +increased the value of the -numscreens option. The name of each<br> +display in your system can be determined by running MAME with the<br> +-verbose option. The display names are typically in the format of:<br> +\\.\DISPLAYn, where 'n' is a number from 1 to the number of connected<br> +monitors. The default value for these options is 'auto', which means<br> +that the first window is placed on the first display, the second<br> +window on the second display, etc.<br> +<br> +The -screen0, -screen1, -screen2, -screen3 parameters apply to the<br> +specific window. The -screen parameter applies to all windows. The<br> +window-specific options override values from the all window option.<br> +<br> +-aspect <width:height> / -screen_aspect <num:den><br> +-aspect0 <width:height><br> +-aspect1 <width:height><br> +-aspect2 <width:height><br> +-aspect3 <width:height><br> +<br> +Specifies the physical aspect ratio of the physical monitor for each<br> +window. In order to use multiple windows, you must have increased the<br> +value of the -numscreens option. The physical aspect ratio can be<br> +determined by measuring the width and height of the visible screen<br> +image and specifying them separated by a colon. The default value for<br> +these options is 'auto', which means that MAME assumes the aspect<br> +ratio is proportional to the number of pixels in the desktop video<br> +mode for each monitor.<br> +<br> +The -aspect0, -aspect1, -aspect2, -aspect3 parameters apply to the<br> +specific window. The -aspect parameter applies to all windows. The<br> +window-specific options override values from the all window option.<br> +<br> +-resolution <widthxheight[@refresh]> / -r <widthxheight[@refresh]><br> +-resolution0 <widthxheight[@refresh]> / -r0 <widthxheight[@refresh]><br> +-resolution1 <widthxheight[@refresh]> / -r1 <widthxheight[@refresh]><br> +-resolution2 <widthxheight[@refresh]> / -r2 <widthxheight[@refresh]><br> +-resolution3 <widthxheight[@refresh]> / -r3 <widthxheight[@refresh]><br> +<br> +Specifies an exact resolution to run in. In full screen mode, MAME<br> +will try to use the specific resolution you request. The width and<br> +height are required; the refresh rate is optional. If omitted or<br> +set to 0, MAME will determine the mode auomatically. For example,<br> +-resolution 640x480 will force 640x480 resolution, but MAME is free to<br> +choose the refresh rate. Similarly, -resolution 0x0@60 will force a<br> +60Hz refresh rate, but allows MAME to choose the resolution. The<br> +string "auto" is also supported, and is equivalent to 0x0@0. In window<br> +mode, this resolution is used as a maximum size for the window. This<br> +option requires the -switchres option as well in order to actually<br> +enable resolution switching with -video ddraw or -video d3d. The<br> +default value for these options is 'auto'.<br> +<br> +The -resolution0, -resolution1, -resolution2, -resolution3 parameters<br> +apply to the specific window. The -resolution parameter applies to all<br> +windows. The window-specific options override values from the all<br> +window option.<br> +<br> +-view <viewname><br> +-view0 <viewname><br> +-view1 <viewname><br> +-view2 <viewname><br> +-view3 <viewname><br> +<br> +Specifies the initial view setting for each window. The <viewname><br> +does not need to be a perfect match; rather, it will select the first<br> +view whose name matches all the characters specified by <viewname>.<br> +For example, -view native will match the "Native (15:14)" view even<br> +though it is not a perfect match. The value 'auto' is also supported,<br> +and requests that MAME perform a default selection. The default value<br> +for these options is 'auto'.<br> +<br> +The -view0, -view1, -view2, -view3 parameters apply to the<br> +specific window. The -view parameter applies to all windows. The<br> +window-specific options override values from the all window option.<br> +<br> +<br> +<br> +Full screen options<br> +-------------------<br> +<br> +-[no]triplebuffer / -[no]tb<br> +<br> +Enables or disables "triple buffering". Normally, MAME just draws<br> +directly to the screen, without any fancy buffering. But with this<br> +option enabled, MAME creates three buffers to draw to, and cycles<br> +between them in order. It attempts to keep things flowing such that one<br> +buffer is currently displayed, the second buffer is waiting to be<br> +displayed, and the third buffer is being drawn to. -triplebuffer will<br> +override -waitvsync, if the buffer is sucessfully created. This option<br> +does not work with -video gdi. The default is OFF (-notriplebuffer).<br> +<br> +-[no]switchres<br> +<br> +Enables resolution switching. This option is required for the<br> +-resolution* options to switch resolutions in full screen mode. On<br> +modern video cards, there is little reason to switch resolutions unless<br> +you are trying to achieve the "exact" pixel resolutions of the original<br> +games, which requires significant tweaking. This option is also useful<br> +on LCD displays, since they run with a fixed resolution and switching<br> +resolutions on them is just silly. This option does not work with<br> +-video gdi. The default is OFF (-noswitchres).<br> +<br> +-full_screen_brightness / -fsb <value><br> +<br> +Controls the brightness, or black level, of the entire display. The<br> +standard value is 1.0. Selecting lower values (down to 0.1) will produce<br> +a darkened display, while selecting higher values (up to 2.0) will<br> +give a brighter display. Note that not all video cards have hardware to<br> +support this option. This option does not work with -video gdi. The<br> +default is 1.0.<br> +<br> +-full_screen_contrast / -fsc <value><br> +<br> +Controls the contrast, or white level, of the entire display. The<br> +standard value is 1.0. Selecting lower values (down to 0.1) will produce<br> +a dimmer display, while selecting higher values (up to 2.0) will<br> +give a more saturated display. Note that not all video cards have<br> +hardware to support this option. This option does not work with<br> +-video gdi. The default is 1.0.<br> +<br> +-full_screen_gamma / -fsg <value><br> +<br> +Controls the gamma, which produces a potentially nonlinear black to<br> +white ramp, for the entire display. The standard value is 1.0, which<br> +gives a linear ramp from black to white. Selecting lower values (down<br> +to 0.1) will increase the nonlinearity toward black, while selecting<br> +higher values (up to 3.0) will push the nonlinearity toward white. Note<br> +that not all video cards have hardware to support this option. This<br> +option does not work with -video gdi. The default is 1.0.<br> +<br> +<br> +<br> +Windows sound options<br> +---------------------<br> +<br> +-audio_latency <value><br> +<br> +This controls the amount of latency built into the audio streaming. By<br> +default MAME tries to keep the DirectSound audio buffer between 1/5 and<br> +2/5 full. On some systems, this is pushing it too close to the edge,<br> +and you get poor sound sometimes. The latency parameter controls the<br> +lower threshold. The default is 1 (meaning lower=1/5 and upper=2/5).<br> +Set it to 2 (-audio_latency 2) to keep the sound buffer between 2/5 and<br> +3/5 full. If you crank it up to 4, you can definitely notice the lag.<br> +<br> +<br> +<br> +Input device options<br> +--------------------<br> +<br> +-[no]dual_lightgun / -[no]dual<br> +<br> +Controls whether or not MAME attempts to track two lightguns connected<br> +at the same time. This option requires -lightgun. This option is a hack<br> +for supporting older dual lightgun setups. If you have multiple<br> +lightguns connected, you will probably just need to enable -mouse and<br> +configure each lightgun independently. The default is OFF<br> +(-nodual_lightgun).<br> +</span> + + +</html> diff --git a/docs/release/src/osd/winui/help/docs/Mame License.htm b/docs/release/src/osd/winui/help/docs/Mame License.htm new file mode 100644 index 00000000000..23c0accfef4 --- /dev/null +++ b/docs/release/src/osd/winui/help/docs/Mame License.htm @@ -0,0 +1,57 @@ + +<head> +<style type="text/css"> +.style1 { + font-family: Arial; + font-size: x-small; +} +</style> +</head> + +<body background="../images/bkground.gif"> + +<div id="outer"> + <div id="center"> + <div class="content"> + <font face="Arial"><b>Copyright © 1997-2010, Nicola Salmoria + and the MAME team<br> + All rights reserved.</b></font><font face="Arial" size="2"> </font> + <p><span class="style1">Unless otherwise explicitly stated, all code + in MAME is released under the<br> + following license:</span></p> + <p><font face="Arial" size="2">Redistribution and use of this code + or any derivative works are permitted provided that the following + conditions are met: </font></p> + <ul> + <li><font face="Arial" size="2">Redistributions may not be sold, + nor may they be used in a commercial product or activity. </font> + </li> + <li><font face="Arial" size="2">Redistributions that are + modified from the original source must include the complete + source code, including the source code for all components used + by a binary built from the modified sources. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or + binary form) with the major components (compiler, kernel, and so + on) of the operating system on which the executable runs, unless + that component itself accompanies the executable. </font></li> + <li><font face="Arial" size="2">Redistributions must reproduce + the above copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other materials + provided with the distribution. </font></li> + </ul> + <p><font face="Arial" size="2">THIS SOFTWARE IS PROVIDED BY THE + COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. </font></div> + </div> +</div> diff --git a/docs/release/src/osd/winui/help/docs/Mame Statement of Purpose.htm b/docs/release/src/osd/winui/help/docs/Mame Statement of Purpose.htm new file mode 100644 index 00000000000..95312c7012b --- /dev/null +++ b/docs/release/src/osd/winui/help/docs/Mame Statement of Purpose.htm @@ -0,0 +1,79 @@ +<body background="../images/bkground.gif"> + +<div id="outer"> + <div id="center"> + <div class="content"> + <b> + <font face="Arial">MAME, the Multiple Arcade Machine + Emulator<br> + Copyright © 1997-2010 by Nicola Salmoria and the MAME team </font> + </b> + <h2><font face="Arial" size="3">I. Purpose</font></h2> + <p><font face="Arial" size="2">MAME is strictly a non-profit + project. Its main purpose is to be a reference to the inner workings + of the emulated arcade machines. This is done both for educational + purposes and for preservation purposes, in order to prevent many + historical games from disappearing forever once the hardware they + run on stops working. Of course, in order to preserve the games and + demonstrate that the emulated behavior matches the original, you + must also be able to actually play the games. This is considered a + nice side effect, and is not MAME's primary focus. </font></p> + <p><font face="Arial" size="2">It is not our intention to infringe + on any copyrights or patents on the original games. All of MAME's + source code is either our own or freely available. To operate, the + emulator requires images of the original ROMs, CDs, or hard disks + from the arcade machines, which must be provided by the user. No + portions of the original game code are included in the executable. + </font></p> + <h2><font face="Arial" size="3">II. Cost</font></h2> + <p><font face="Arial" size="2">MAME is free. Its source code is + free. Selling either is not allowed. </font></p> + <h2><font face="Arial" size="3">III. Image Files</font></h2> + <p><font face="Arial" size="2">ROM, CD, and hard disk images are all + copyrighted material. They cannot be distributed without the + explicit permission of the copyright owner. They are not "abandonware", + nor have any of the games supported by MAME passed out of copyright. + </font></p> + <p><font face="Arial" size="2">MAME is not intended to be used as a + tool for mass copyright infringement. Therefore, it is strongly + against the authors' wishes to sell, advertise, or link to resources + that provide illegal copies of ROM, CD, or hard disk images. </font> + </p> + <h2><font face="Arial" size="3">IV. Derivative Works</font></h2> + <p><font face="Arial" size="2">Derivative works are allowed under + the MAME license. However, you are discouraged from providing + specific functionality that goes against the philosophy of the MAME + team. Specifically: </font></p> + <ul> + <li><font face="Arial" size="2">Do not add games which are more + recent than 3 years old, or which are still being sold new by + the company that produced them. MAME is not intended to be a + platform that competes with arcade games that are still being + actively sold. </font></li> + <li><font face="Arial" size="2">Do not provide a means of + generating a list of games that specifically identifies those + games for which the user does not have image files. This only + encourages users to seek out sources for illegal ROM, CD, and + hard disk images in order to "complete" their collection. </font> + </li> + <li><font face="Arial" size="2">Do not remove the startup screen + that contains information about why certain non-working games + don't work. This only serves to generate a bunch of useless + email traffic to the developers asking why the games don't work. + </font></li> + </ul> + <p><font face="Arial" size="2">Because the name MAME is trademarked, + you must abide by the rules of the trademark usage if you wish to + use "MAME" as part of the name your derivative work. In general, + this means you must request permission, which requires that you + follow the guidelines above. </font></p> + <p><font face="Arial" size="2">The version number of any derivative + work should reflect the version number of the MAME release it was + derived from. </font></p> + <h2><font face="Arial" size="3">V. Official Contact Information</font></h2> + <p><font face="Arial" size="2">For questions regarding the MAME + license, trademark, or other usage, go to + <a href="http://www.mamedev.com/contact.html?legal"> + http://www.mamedev.com/</a>.</font></div> + </div> +</div> diff --git a/docs/release/src/osd/winui/help/docs/whatsnew.txt b/docs/release/src/osd/winui/help/docs/whatsnew.txt new file mode 100644 index 00000000000..9b7e00c31ef --- /dev/null +++ b/docs/release/src/osd/winui/help/docs/whatsnew.txt @@ -0,0 +1,511 @@ +0.152 +------- + + +MAMETesters Bugs Fixed +---------------------- +- 04424: [Graphics] (seta.c) thunderlbl: [debug] Severe + graphic issues (Osso) +- 05357: [Crash/Freeze] (taitogn.c) nightrai: fails to boot + into the game (smf) +- 05236: [Graphics] multiple monitor support doesn't work with d3d +- 05391: [Misc.] (cave.c) ppsatan: manufacturer info for ppsatan +- 05383: [Graphics] (twin16.c) hpuncher: Screen is split and + graphics are offset (Alex Jackson) +- 00785: [Sound] (omegrace.c) omegrace: Corrupted music after + completing first several levels. (hap) +- 05214: [Color/Palette] vector games: Vector games with color overlay + show in b&w on Windows D3D render when HLSL is disabled. (hap) +- 05384: [DIP/Input] (lethal.c) lethaleneab, lethaleneae: Language DIP + Switch not changing the language (Tafoid) +- 05355: [DIP/Input] (cps1.c) sf2m3 ; sf2m8: Kick inputs are not working + LK MK HK (Osso) +- 05375: [Documentation] (sderby.c) sderby, sderby2: 1 set name and 1 + full name need changed +- 05373: [Crash/Freeze] (capbowl.c) capbowl3, capbowl4: Black screen + after starting game (Phil Bennett) +- 05366: [Core] (harddriv.c) harddriv and clones, racedriv and clones: RTC + Day and Month error and fails to start +- 05365: [Documentation] (namcos21.c) driveyes: The correct description + is "Driver's Eyes (Japan)" +- 05364: [Compiling] Error when compiling with NO_USE_QTDEBUG +- 05356: [Color/Palette] (midvunit.c) offroadc: Off Road Challenge and + clones have wrong color in some textures (Phil Bennett) +- 05207: [Graphics] All vector games: In the vector games, graphics + remains imprinted even when exit the game. (hap) +- 04947: [Graphics] (midvunit.c) offroadc: Missing selection indicator + within service mode. (Phil Bennett) + +Source Changes +-------------- +-vsnes.c: Verified second half roms for vs baseball usa e-1 set, fix + one mislabeled rom [Dead_Body] + +-midvunit.c - Fixed polygon pixel color selection [Phil Bennett] + +-peplus.c: Corrected a couple of color CAP sizes. Added the CG graphics + roms for Ace$ Bonus Poker. [BrianT] + +-scsi: Fixed hard disk images with 256-byte sectors. [Curt Coder] + +-Added a simple DC blocker filter to the speaker toggle device [R. Belmont] + +-konendev.c: Corrected CPU type (PPC403) and added some hardware notes [Phil Bennett] + +-sf.c: update prom names for Street Fighter (World, Analog buttons) set.[Porchy] + +-exidy440.c: Replaced prom dump for all games in driver located at 3K. + It is unique to all the other proms and different in size. [Joe Magiera, Tafoid] + +-nss.c: update bios rom locations and update inst rom label for smw; + marked nss v3 bios as possible hack [Kiddcade, Porchy] + +-CPS-1 update [Artemio Urbina]: + * Redumped CDU_22A.7F in dinou to match real pcb, verified on two + different sources + +-Tweaks to the idehd timing, which are still based on complete fiction. [smf] + +-Added a new macro MCFG_DEVICE_CARD_DEFAULT_BIOS, which can be used in + the machine config to set the default BIOS for a slot card device. + [Curt Coder] + +-SDL: fix non-Qt non-Windows build (MT #5364) [R. Belmont] + +-Added SCSI status code & set it in all command handlers. It is sent + over the bus when in status phase. In case of an error further + information should be set in m_sense_key/m_sense_asc/m_sense_ascq & + m_sense_information so that it can be returned by executing a request + sense command [smf] + +-Set the error bit in the IDE status register if the command causes a + check condition [smf] + +-vsnes.c: update labels of vs. Super Mario Bros roms to match physical + chips exactly. [Dead_Body] + +-z80dma: Implemented Auto Restart. [Curt Coder] + +-TMS57002 fixes and improvements: [Phil Bennett] + * Moved CA/ID post-increment outside of execution. Fixes case where + dual instructions post-increment, also reduces number of generated + instructions. + * Fixed data ordering of external memory accesses. + * Don't generate redundant instructions for undefined rounding modes; + remap them in decode. + * Set XOA to 0 on reset. + * Use [READ|WRITE]LINE_MEMBER for I/O lines. + * Added PC0 line. + * Added registers to debugger state. + +-wd_fdc: Fixed ready interrupt polarity. Added a soft_reset() function + which resets only the FDC and not the floppy image devices, thus + preserving the correct ready states. [Curt Coder] + +-Rewrote Konami 056800 (MIRAC): [Phil Bennett] + * Implemented as an 8-bit device + * Fixed address mapping + * Removed bogus timer interrupt + * Fixed interrupt handling + +-054539.c: Fixed input clock rate and implemented programmable timer + based on hardware measurements [Phil Bennett, Stefan Lindberg] + +-lethal.c, mystwarr,c, tmnt.c: Hooked up 054539 timer interrupt. Fixes + music tempo in some games [Phil Bennett] + +-qdrmfgp.c: Hooked up 054539 timer interrupt for qdrmfgp, fixed IRQ + acknowledge handling [Phil Bennett] + +-plygonet.c: Hooked up 054539 timer interrupt, removed non-existent + second 054539 and fixed EEPROM regression [Phil Bennett] + +-hornet.c, gticlub.c: Implemented sound interrupt timer [Phil Bennett] + +-konamigx.c improvements: [Phil Bennett] + * Hooked up 056800 device + * Hooked up 054539 timer interrupt + * Removed sound hacks + * All DSP RAM tests now pass, winspike sound now works + +-konamigq.c improvements: [Phil Bennett] + * Hooked up 056800 device + * Hooked up 054539 timer interrupt + * Added TMS57002 DASP + +-ultrsprt.c improvements: [Phil Bennett] + * Hooked up 054539 timer interrupt + * Implemented VRAM double buffering + * Improved trackball inputs + * Fixed sound + +-zr107.c improvements: [Phil Bennett] + * Hooked up 054539 timer interrupt + * Fixed sound in all games + +-rungun.c improvements: [Phil Bennett] + * Hooked up 054539 timer interrupt. Fixes music tempo + * Implemented sound CPU NMI control + * Fixed 054539 #2 regression + +-Saves the race driving DSK zram [smf] + +-Added all the available beatmania IIDX hard drives and Video CD's/DVD's, + updated the hard drive labels from pictures online. [smf] + +-mcs96: Misc. fixes [O. Galibert] + +-diserial: Remove defines, cleanup clocks/timers, add sync support [O. Galibert] + +-verified The Gladiator internal ROM on an Overseas cart [Artemio Urbina] + +-wd_fdc: Set CRC error bit if CRC error found during Read Address + command. Tiki 100 determines whether the disk is in FM or MFM format + by checking this. [Curt Coder] + +-CPS-1 update: + * Dumped and added IOB2.11D to sf2ee and sf2ue [Porchy], S9263B.1A to + sf2ce and sf2hf sets and clones [Porchy], CP1B9KA.9K to pang3 + [Zabanitu] + +-snk6502.c: Adjusted Nibbler board clock rate to use actual known + master clock and a logical divisor. [Tafoid] + +-jedutil.c: [Kevin Eshbach] + * Corrected the output of the PAL20X4, PAL20X8, PAL20X10 to show the + XOR on the relevant sum of products. + * When viewing a device the size of the JED file is verified to match + the size of the device. + * Replaced hard-coded symbol strings with constants. + * Started experimental work for supporting RICOH PAL’s. (Currently + ifdef'ed out.) + * Added support for viewing the following devices and the + corresponding regression test data. (PALCE16V8, PAL10P8, PAL12P6, + PAL14P4, PAL16P2, PAL16P8, PAL16RP4, PAL16RP6, PAL16RP8, PAL6L16, + PAL8L14, PAL12H10, PAL12L10, PAL14H8, PAL14L8, PAL16H6, PAL16L6, + PAL18H4, PAL18L4, PAL20C1 and PAL20L2) + +-Added flip screen support to Royal Mahjong and brothers [Angelo Salese] + + V9958: Added preliminary screen modes 10/11/12, used by Puzzle + Star/Sexy Boom [Angelo Salese, Wilbert Pol] + +-vsnes.c: Corrected rom labels and fixed set description for vspinbal + set [Dead_Body] + +-cinemat.c: Correct dipswitches for Vectorbeam's Warrior. [Timothy Shiels] + +-vsnes.c: More updated ROM labels, for vs top gun and vs gradius [Dead_Body] + +-i386: Fixed P6 CMOVcc instructions, and added CMOV feature flag to + Pentium Pro and Pentium II CPUs. Added MMX feature flag to Pentium + MMX. [Barry Rodewald] + +-Fixed a complement by two bug in V9958 YJK table, fixes for good + colors in Puzzle Star / Sexy Boom / some MSX2+ games. [Angelo Salese] + +-Kludged Puzzle Star (Sang Ho Soft) hang at title screen [Angelo Salese] + +-Added the SHA1 for System 573 700B01 now that we have a dump. It + currently expects a different response from the H8 at bootup than the + other BIOS versions, so the data is stored in a fake rom until it's + HLE'd better of we get a dump of the H8 internal rom + [smf, innocent2k, anthonyoftga] + +-document that ketsui roms exist with different fill in the unused + areas [Artemio Urbina] + +-upd765: Fixed sense drive status command, and allow floppy connectors + without drives. [Curt Coder] + +-fixed scudsp & ssp1601 entries [Vito] + +-Reduce smearing on hlsl prescale [MooglyGuy] + +-Corrected 7486 description in head file [MASH] + +-various PGM protection cleanups / fixes (orlegend, olds, svgpcb) [iq_132] + +-finished modernising i2cmem [smf] + +-remodernised x76f041/x76f100 & zs01 so that logging becomes easy again + & uses READ_LINE_MEMBER/WRITE_LINE_MEMBER so the pins can be bound to + directly. Hooked up x76f041 to the early beatmania IIDX games. They + all pass the security check eventually but it takes a long time as it + repeatedly reads the first byte, it's possible that the contents + aren't correct as the game says the security is OK even when the data + returned is not what it's checking for. [smf] + +-Added a work round so that CR589 firmware updating works again, either + from the separate CD's or as part of the game install (for example DDR + MAX). [smf] + +-playch10: update Playchoice-10 BIOS ROM names to match exact chip + labels and types [Dead_Body] + +-naomi/dc: Sanitize screen format, fixes MT5349 [O. Galibert] + +-redumped some System 573 CD's [Guru] + +-CPS-1 update: Added S222B.1A PAL to ffightj and clones. + [Charles MacDonald, Porchy, Smitdogg, The Dumping Union] + +-Created DS1204 device & switched megatouch to use it instead of it's + own local version (driver could do with some more tidying up as not + all games use a key but currently it is hooked up to all games). + Default data comes from a region instead of coded in driver, commands + & security match are now compared, data is clocked on the correct + edge, key can be written to and is saved to nvram. [smf] + +-redumped bad roms for First Funky Fighter [Yohji, Smitdogg, The Dumping Union] + +-Merged othldrby.c with toaplan2.c driver [Angelo Salese] + +-Converted Toaplan 2 to use SCREEN_RAW_PARAMS [Angelo Salese] + +-Added a core for uPD4992 RTC, used by Othello Derby and Power Kick [Angelo Salese] + +-Hooked up ds1204, but haven't found what it checks for yet. Change + PATCH_PROTECTION to 0 in tmaster.c and VERBOSE_LEVEL to 2 in ds1204.c + then look for "-> command" in error.log to find the subsequent read + from the dq pin for reading the identification and secure memory. For + tm4k the first two bytes of the nvram need to be 0x00, 0xa0. From + scratch you'll need to play a game before it will complain about the + protection, but after that it will complain on every boot. It tries + five different contents for the compare register at various points + during the bootup, this may be for obfuscation as the real chip will + return random results if the key is wrong. If the keys are available + it might be easier to dump them than figure out exactly what it wants. + [smf] + +-svgpcb: added igs027a rom, runs intro, dies trying to go in game, not + sure why yet [rtw, David Haywood] + +-Created a skeleton for the Konami 573 Multi Session Unit, renamed + digital io board source file to match and moved pcb layout from + driver. [smf] + +-Added skeleton for konami 573 memory card reader and network pcb unit + devices [smf] + +-redumped keyboard mania 3 [Guru] + +-Updated konam80s atapi dma kludge so that Guitar Freaks 7th Mix (and + alot of others) load again [smf] + +-Mambo A GO-GO CD redump in raw mode + raw subcode. [any] + +-Improved Sega Bloxeed dipswitches. [Zaphod] + +-Added basic 3d FIFO understanding and hooked up FIFO irq processed to + Hyper Neo Geo 64, meaning a far better 3d display in all games + [Angelo Salese] + +-mc2661: Added various transmission and reception logic to help make + the above possible [Barry Rodewald] + +-twin16.c: [Alex Jackson] + * Use the correct gfx ROMs for all the vulcan/gradius2 sets + * Load gfx ROMs using standard macros instead of custom postprocessing + * Replace custom read/write handlers with AM_REGION, AM_SHARE, or banks as appropriate + * Fix Extra Life dipswitches in vulcana and vulcanb + * Fix cuebrick NVRAM size + * Fix audio cpu RAM size + * Use XTALs for clocks + +-Windows: Fixed D3D multimonitor support. [GroovyMAME] + +-Slot options can now be configured inline without creating an array. + Legacy support for old configuration uses MCFG_FRAGMENT_ADD, which + required changing so the current device could be updated by the + fragment. [smf] + +-converted cassette, pccard1 & pccard2 slots to use new MCFG macros [smf] + +-Uses MCFG_SLOT_DEFAULT_OPTION instead of MCFG_DEVICE_SLOT_INTERFACE + where only the default option is changed. [smf] + +-m68k: add ability for externally-thrown bus errors to have proper + details [R. Belmont] + +-uses device_mconfig_additions() to add ata slots, which allows you to + just add the device and configure it rather than using the + MCFG_ATA_INTERFACE_ADD #define. [smf] + +-allow building with ICL on Windows if you have it installed into MSVC [Dean London] + The ICL compiler on Windows installs over MSVC and piggybacks onto the + build tools Microsoft provide. To enable compilation use USE_ICL=1 + when compiling with MSVC_BUILD=1 (from the ICL enabled command prompt) + + gives a more stable build than the MSVC compiler + more informative + compile errors when using ICL compared to MSVC compiler + can still + use MSVC debugging tools (better than GCC) + can use additional intel + tools etc. + build is still slower than GCC one + +-aristmk4.c: [Lord-Data] + * Option to raise outputs for physical meters to be used + * Option to disable making sound effects for emulated meters + * Option to disable virtual emulation of hopper/coin release system + +-k005289.c: refactored, removed redundant state variables and + unneccessary floating point math, added savestate support + [Alex Jackson] + +-Removed support for static config from slots and converted the two + devices using it to machine config fragments [smf] + +-Pong update: [couriersud] + * based on feedback from IRC hopefully fixed issues like "jumping" + * adjusted VR1 and VR2 to 50% + * disabled all printf output. + +-converted serial & rs232 devices to devcb2 [smf] + +-diimage: Added load_software_region() function that loads a software + list region into a shared_ptr. [Curt Coder] + +-Added preliminary sound to ghosteo.c by borrowing code from vegaeo.c. [Osso] + +-z8.c: Modernized cpu core. [Wilbert Pol] + +-midyunit.c [Andy Welsh] + Fixed inputs and DIP Switches for hiimpact, + shimpact and clones which were all imported from TROG and mostly + incorrect. + +-Added Signetics 8X300 microcontroller core, updated Wicat driver to + use it. [Barry Rodewald] + +-replaced read rx/cts/dcd callbacks in ACIA6850 write write handlers, + which allows multiple chips to be connected together without using + glue methods. [smf] + +-Changed Guitar Freaks 7m onwards to use a 32mb PCMCIA card [smf] + +-Redumped some beatmania IIDX CD's [Guru] + +-Redumped several Konami GV CD's [Guru] + +-Redumped several Konami M2 CD's [Guru] + +-Redumped various System 573 CD's [Guru] + +-i8089: implement remaining instructions and support execution from + "io" space. [Carl] + +-replaced read callbacks in I8251/Z80DART (and clones)/MC2661/ + MC68901/IM6402/MOS6551/Z80STI/MC6852/MC6854/ZX8302 with + write handlers, which allows multiple chips to be connected + together without using glue methods. [smf] + +-Removed a load of unused code from MC68901, probably left + over when it was converted to use diserial. [smf] + +-Removed dependency clutter in c64 expansion port, c128 driver, + ecbbus & econet [smf] + +-nemesis.c: added PORT_TOGGLE and PORT_NAMEs to Konami GT. + [baritonomarchetto] + +-Rom locations added for Battles (Xevious bootleg), G.I. Joe, + Ghosts'n Goblins (US), Victory Road and Guerilla War (Version + 1) as well as nvram location to The Simpsons. [Kevin Eshbach] + +-Added readmes for gijoe, moo, xexex, lethal, mystwarr also + updating simpsons. [Guru] + + +New games added or promoted from NOT_WORKING status +--------------------------------------------------- +Long Beach [any, hap] +The Gladiator / Road of the Sword / Shen Jian [David Haywood, rtw] +Blastaball (Arcadia, V 2.1) [Unigame] +Pharaohs Match (Arcadia) [Unigame] +Delta Command (Arcadia) [Unigame] +Wave shark/Jet Wave [Phil Bennett] +Puzzle Star (Sang Ho Soft) [Angelo Salese, Wilbert Pol] +Dancing Stage - Internet Ranking Ver (GC845 VER. EBA) [smf, skype] +Player's Edge Plus (XM00007P+XMP00006) Multi-Poker [BrianT, Ken] +Player's Edge Plus (X000838S+XS000002) Five Times Pay Slots [BrianT, Kevin] +Player's Edge Plus (X000841S+XS000002) Five Times Pay Slots [BrianT, Kevin] +Player's Edge Plus (X001087S+XS000006) Double Double Diamond Slots [BrianT, Kevin] +Player's Edge Plus (IP0079) Standard Draw Poker - French [BrianT, Ken] +Player's Edge Plus (X002420P+XP000064) Deuces Wild Bonus Poker - French [BrianT, Ken] +Power Kick [bodger319, Yohji, Smitdogg, The Dumping Union, Angelo Salese] +S.V.G. - Spectral vs Generation (M68k label V100JP) + (ARM label V100JP ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB) [rtw, David Haywood] + + +New clones added +---------------- +Scramble (Recreativos Franco, Spanish bootleg) [Basilio Garcia] +The Gladiator / Road of the Sword / Shen Jian (M68k label V100) + (ARM label V101, ROM 03/13/03 SHEN JIAN) [Artemio Urbina] +Super Chase - Criminal Termination (1992/10/26 20:24:29 CHASE 3 VER 1.1, prototype) [Unigame] +Brick Zone (v1.1) [Unigame] +Cadash (World, prototype) [Unigame] +1942 (prototype?) [Unigame] +4 En Raya (set 2) [Unigame] +Gallop Racer (English Ver 10.17.K) [Arzeno Fabrice, The Dumping Union] +Chase Bombers (prototype) [Unigame] +The First Funky Fighter (set 2) [Unigame] +Cobra Command (Data East LD, set 2) [Unigame] (not working) +Spy Hunter (prototype) [Unigame] (not working, needs more work) +U.N. Defense Force: Earth Joker (Japan, prototype?) [Unigame] +Syvalion (World, prototype) [Unigame] +Donkey Kong Junior (P kit) [Chris Psaros] +Who Dunit (version 9.0) [Joe Magiera] +Commando (US set 2) [Kevin Eshbach] +Bucky O'Hare (ver EA) [caius] +Player's Edge Plus (PP0055) Deuces Wild Poker (set 2) [BrianT] +Player's Edge Plus (PP0171) Joker Poker [BrianT] +Player's Edge Plus (X000054P+XP000038) Deuces Wild Poker [BrianT] +Player's Edge Plus (PP0002) Standard Draw Poker [BrianT, Ken] +Player's Edge Plus (PP0045) 10's or Better [BrianT, Ken] +Player's Edge Plus (PP0455) Joker Poker [BrianT, Ken] +Player's Edge Plus (PP0458) Joker Poker [BrianT, Ken] +Player's Edge Plus (PP0536) Joker Poker [BrianT, Ken] +Player's Edge Plus (PP0726) Double Bonus Poker [BrianT, Ken] +Player's Edge Plus (IP0074) Joker Poker - French [BrianT, Ken] +Player's Edge Plus (X000045P+XP000038) 10's or Better [BrianT, Ken] +Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2426) [BrianT, Ken] +Player's Edge Plus (PP0417) Deuces Wild Poker (set 2) [BrianT, Kevin] +Player's Edge Plus (PP0002) Standard Draw Poker (set 2) [BrianT, Ken] +Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2352) [BrianT, Ken] +Player's Edge Plus (PP0046) 10's or Better [BrianT, Ken] +Player's Edge Plus (X000002P+XP000038) Standard Draw Poker [BrianT, Ken] +Player's Edge Plus (X000060P+XP000038) Standard Draw Poker [BrianT, Ken] +Player's Edge Plus (X000171P+XP000038) Joker Poker [BrianT, Ken] +Player's Edge Plus (X000417P+XP000053) Deuces Wild Poker [BrianT, Ken] +Player's Edge Plus (X000459P+XP000038) Joker Poker [BrianT, Ken] +Player's Edge Plus (X002043P+XP000038) Triple Bonus Poker [BrianT, Ken] +Player's Edge Plus (X002066P+XP000038) Double Double Bonus Poker [BrianT, Ken] +Player's Edge Plus (X002121P+XP000037) Standard Draw Poker [BrianT, Ken] +Player's Edge Plus (X002150P+XP000038) 4 of a Kind Bonus Poker [BrianT, Ken] +Player's Edge Plus (X002180P+XP000038) Double Bonus Poker [BrianT, Ken] +Touchmaster 4000 (v6.03 New Jersey) [Brian Troha, The Dumping Union] +Touchmaster 4000 (v6.01 Minnesota) [Brian Troha, The Dumping Union] +Touchmaster 5000 (v7.10 Minnesota) [Brian Troha, The Dumping Union] +Touchmaster 7000 (v8.05 New Jersey) [Brian Troha, The Dumping Union] +Touchmaster 7000 (v8.04 Minnesota) [Brian Troha, The Dumping Union] +Touchmaster 7000 (v8.00 Minnesota) [Brian Troha, The Dumping Union] +World Kicks (WK3 Ver. A) [Guru] +Wivern Wings [Brian Troha, Tormod, Smitdogg, The Dumping Union] +Invasion - The Abductors (version 3.0) [Brian Troha, Smitdogg, The Dumping Union] +Street Fighter III: New Generation (Euro 970204) [Layne, Smitdogg, The Dumping Union] + + +New games marked as GAME_NOT_WORKING +------------------------------------ +beatmania IIDX Substream (983 JAA) [smf] +beatmania IIDX 5th style (GCA17 JA) [smf] +beatmania IIDX (863 JAB) [Guru] +beatmania IIDX 3rd style (GC992 JAC) [smf] +beatmania IIDX 6th style (GCB4U JAB) [smf] +Tokimeki Memorial Oshiete Your Heart (GQ673 JAA) [Guru] +Total Vice (ver AAB) [Guru] +Super Six Plus II English Mark Darts [Jim Stolis] +Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA) [Guru] +Submarine (Midway) [John Robertson, hap] +Mambo A Go-Go e-Amusement (GQA40 VER. JRB) [smf] +Touch de Uno! [R. Belmont, bodger319, gamerfan, f205v, Yohji, Smitdogg, rtw, The Dumping Union] diff --git a/docs/release/src/osd/winui/help/html/mameui_art.htm b/docs/release/src/osd/winui/help/html/mameui_art.htm new file mode 100644 index 00000000000..bb2dc16d8de --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_art.htm @@ -0,0 +1,139 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI Art & Support Files</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +div.Section1 + {page:Section1;} +.style1 { + font-weight: bold; +} +--> +</style> +<base target="_blank"> +</head> + +<body background="../images/bkground.gif"> + +<h2>Art & Support Files</h2> +<p class="MsoNormal">MameUI's flexible GUI framework allows for some beautiful +customization; including font color, icons, screenshot art, and background images. +The official site for the snaps and icons is <b> +<a target="_blank" href="http://mameui.info/">MameUI</a></b>. The following files are used for this customization.</p> +<p class="MsoNormal"> </p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://mameui.info/">Icons.zip</a></b> +: This file contains icons for every game in MameUI and the folder view on the +far left. Place it in the \MameUI\icons folder, it can remain zipped to +save slack HD space but the zip file must be named icons.zip.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://mameui.info/">Snap.zip</a></b> : These are a series of files that contain in-game screenshots +of every parent game in MameUI. Download the packs and extract their +contents into the \MameUI\snap directory or combine their *.png contents into +one large snap.zip file.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +Titles.zip</b> : This file can provide support for screenshots showing the +titles of the game in MameUI, place in \titles directory. </p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Marquees.zip</b> : This file can provide support for the +marquee images that appear on the top of arcade machines, place in \marquees +directory..</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span> +<span style="font-style:normal; font-variant:normal; font-weight:700">Cpanel</span><b>.zip</b> : This file can provide support for the +images of arcade control panels, place in \cpanel directory..</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span> +<span style="font-style: normal; font-variant: normal; line-height: normal;" class="style1"> +PCB</span><b>.zip</b> : This file can provide support for the +images of arcade printed circuit boards, place in \pcb directory..</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +Bkground.zip</b> : This file contains numerous images that are used as the +background for the MameUI GUI [beneath the game list, behind the +screenshot/folder areas]. Download this file and extract its contents into the +\MameUI\bkground directory. Choose a background +image in the Options menu. To have it rotated randomly on MameUI launch, +toggle the checkbox in the Options • Interface Options menu.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a target="_blank" href="http://www.arcadeflyers.net">Flyers.zip</a></b> : This file can provide support for the original flyers sent to +arcade operators, exhorting them to buy the games, place in \flyers directory.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +Cabinets.zip</b> : These are a series of files that contain images of the +actual physical arcade machines themselves. Download the packs and extract their contents into the \MameUI\cabinets +directory or combine their *.png contents into one large cabinets.zip.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://www.arcade-history.com">History.dat</a></b> : This file contains the original game’s designer’s names, +and assorted trivia. Place this file in the \MameUI folder alongside +MameUI.exe. It will display if the history art tab is toggled, or if the history +tab is not selected, it will display beneath snapshots.</p> + +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:05 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37923" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_changes.txt b/docs/release/src/osd/winui/help/html/mameui_changes.txt new file mode 100644 index 00000000000..c995ab92847 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_changes.txt @@ -0,0 +1,2132 @@ + -|ad5u1337 "unknown Scorpion '39211337' (Mazooma) (Scorpion 5, Adder 5)" + -|altbeastj2 "Juuouki (set 5, Japan, FD1094 317-0069)" + -|circusse "Circus (Sub-Electro bootleg)" + -|gt5 "Trivia (Version 5.06)" + -|sc4pacmnc "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 4)" + -|sc4pacmnd "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 5)" + -|sc4pacmne "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 6)" + -|sfiii3a "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)" + -|sfiii3an "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)" + -|sfiii3au "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)" + -|spacefbu "Space Firebird (Nintendo, set 2)" + -|suprpkr1 "Super Poker (Version 10.15S)" + +|1941r1 "1941: Counter Attack (World)" + +|a51site4a "Area 51: Site 4 (September 11, 1998)" + +|arknoid2b "Arkanoid - Revenge of DOH (Japan bootleg)" + +|batlgr2a "Battle Gear 2 (v2.01J)" + +|bgareggabl "1945 Part-2 (Chinese hack of Battle Garegga)" + +|bigstrkba "Big Striker (bootleg w/Italian teams)" + +|bikkuric "Bikkuri Card (Japan)" + +|boblbobl2 "Bobble Bobble (set 2)" + +|casbjack "Casino Black Jack (color, Standard 00-05)" + +|caspoker "Casino Poker (Ver PM86LO-35-5, German)" + +|chamburger "Hamburger (DECO Cassette, Japan)" + +|chance32 "Chance Thirty Two" + +|cninjaa "Caveman Ninja (alternate)" + +|cninjabl2 "Caveman Ninja (bootleg, alt)" + +|congoa "Congo Bongo (Rev C, 3 board stack)" + +|coozumou "Oozumou - The Grand Sumo (DECO Cassette, Japan)" + +|cskater "Skater (DECO Cassette, Japan)" + +|csplayh1 "Super CD Dai8dan Mahjong Hanafuda Cosplay Tengoku (Japan)" + +|drgninjab "Dragonninja (bootleg)" + +|driblingbr "Dribbling (bootleg, Brazil)" + +|drivfrct "Top Racer (bootleg of Driving Force)" + +|dtfamily "Diet Family" + +|dwpc "Dragon World Pretty Chance (V101, Japan)" + +|dynablstb2 "Dynablaster / Bomber Man (bootleg, alt)" + +|ertictaca "Erotictac/Tactic (ver 01)" + +|eyesb "Eyes (bootleg set 1)" + +|fantastc "Fantastic" + +|ffighta "Final Fight (World, set 2)" + +|fsoccerba "Fighting Soccer (Joystick hack bootleg, alt)" + +|funcube5 "Funcube 5 (v1.0)" + +|funriverd1 "Fun River (Version 1.3R CGA)" + +|galemp "Galaxy Empire (bootleg?)" + +|gldarrow "Golden Arrow (Standard G8-03)" + +|gtsers10a "Trivia (Questions Series 10 Alt Question Rom)" + +|gtsers11a "Trivia (Questions Series 11 Alt Question Rom)" + +|gtsers12 "Trivia (Questions Series 12)" + +|gtsers14 "Trivia (Questions Series 14)" + +|gtsers15 "Trivia (Questions Series 15)" + +|haunthig "Haunted House (IGS)" + +|hndlchmp "Handle Champ (GQ710 VER. JAB)" + +|hotmindff "Hot Mind (Fit of Fighting hardware)" + +|hypbbc2p "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. JAA)" + +|hypbbc2pk "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. KAA)" + +|initdv3e "Initial D Arcade Stage Ver. 3 (Export) (GDS-0033)" + +|intrepidb "Intrepid (bootleg)" + +|invadpt2br "Space Invaders Part II (Brazil)" + +|jankenmn "Janken Man Kattara Ageru" + +|jzth "Jue Zhan Tian Huang" + +|kong "Kong (Brazil)" + +|kovshxas "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 202CN)" + +|luckboom "Lucky Boom" + +|manohman "Mann, oh-Mann" + +|mazan "Mazan: Flash of the Blade (MAZ1 Ver. A)" + +|megat2caa "Pit Boss Megatouch II (9255-10-06 ROE, California version)" + +|megat4c "Megatouch IV (9255-40-01 RO, Standard version)" + +|mooncrstuku "Moon Cresta (Nichibutsu UK, unencrypted)" + +|nflclsfb "NFL Classic Football (NCF3 Ver.A.)" + +|nibblerp "Nibbler (Pioneer Balloon conversion)" + +|ninjaslt "Ninja Assault (NJA3 Ver. A)" + +|orunnersj "OutRunners (Japan)" + +|pclb2elk "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)" + +|polarisbr "Polaris (Brazil)" + +|potgoldu "Pot O' Gold (U.S. Games, v400x?)" + +|pr_qksht "Quickshot (Maygay) (PROCONN)" + +|pwrshovl "Power Shovel ni Norou!! - Power Shovel Simulator" + +|pyson "Konami Pyson BIOS" + +|quizshow "Quiz Show" + +|rfjett "Raiden Fighters Jet (Taiwan)" + +|sc2luvv1 "Luvvly Jubbly (set 2, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)" + +|sc2luvv1p "Luvvly Jubbly (set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + +|sc2luvv2 "Luvvly Jubbly (set 3, UK, Multisite) (Scorpion 2/3)" + +|sc2luvv2p "Luvvly Jubbly (set 3, UK, Multisite, Protocol) (Scorpion 2/3)" + +|sc2luvv3 "Luvvly Jubbly (set 4, UK, Arcade) (Scorpion 2/3)" + +|sc2luvv4 "Luvvly Jubbly (set 5, UK, Arcade) (Scorpion 2/3)" + +|sc2luvv5p "Luvvly Jubbly (set 6, UK, Protocol) (Scorpion 2/3)" + +|sc2luvv6p "Luvvly Jubbly (set 7, UK, Protocol) (Scorpion 2/3)" + +|sc2luvv7p "Luvvly Jubbly (set 8, UK, Protocol) (Scorpion 2/3)" + +|sc4boomb "Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 1)" + +|sc4boomba "Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 2)" + +|sc4bwow "Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 1)" + +|sc4bwowa "Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 2)" + +|sc4cckeyl "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 13)" + +|sc4cckeym "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 14)" + +|sc4cckeyn "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 15)" + +|sc4cckeyo "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 16)" + +|sc4cclimq "Crazy Climber (Bellfruit) (Scorpion 4) (set 18)" + +|sc4cclimr "Crazy Climber (Bellfruit) (Scorpion 4) (set 19)" + +|sc4cclims "Crazy Climber (Bellfruit) (Scorpion 4) (set 20)" + +|sc4cclimt "Crazy Climber (Bellfruit) (Scorpion 4) (set 21)" + +|sc4cclimu "Crazy Climber (Bellfruit) (Scorpion 4) (set 22)" + +|sc4clbmn "Club Moneybags (Bellfruit) (Scorpion 4) (set 1)" + +|sc4clbmna "Club Moneybags (Bellfruit) (Scorpion 4) (set 2)" + +|sc4clbmnb "Club Moneybags (Bellfruit) (Scorpion 4) (set 3)" + +|sc4clbmnc "Club Moneybags (Bellfruit) (Scorpion 4) (set 4)" + +|sc4crcpi "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 9)" + +|sc4crcpj "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 10)" + +|sc4crzkyt "Crazy Keys Casino (Bellfruit) (Scorpion 4) (set 13)" + +|sc4crzkyu "Crazy Keys Casino (Bellfruit) (Scorpion 4) (set 14)" + +|sc4crzkyv "Crazy Keys Casino Arcade (Bellfruit) (Scorpion 4) (set 9)" + +|sc4crzkyw "Crazy Keys Casino Arcade (Bellfruit) (Scorpion 4) (set 10)" + +|sc4fguyd "Family Guy (Bellfruit) (Scorpion 4) (set 5)" + +|sc4fguye "Family Guy (Bellfruit) (Scorpion 4) (set 6)" + +|sc4ggtb "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 1)" + +|sc4ggtba "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 2)" + +|sc4ggtbb "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 3)" + +|sc4hntcsp "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 17)" + +|sc4hntcsq "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 18)" + +|sc4hntcsr "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 19)" + +|sc4hntcss "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 20)" + +|sc4ijobl "Italian Job (Mazooma) (Scorpion 4) (set 13)" + +|sc4ijobm "Italian Job (Mazooma) (Scorpion 4) (set 14)" + +|sc4luckb1 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 23)" + +|sc4luckb2 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 24)" + +|sc4luckb3 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 25)" + +|sc4luckb4 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 26)" + +|sc4mgrj "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 11)" + +|sc4mgrk "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 12)" + +|sc4mgrl "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 13)" + +|sc4mgrm "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 14)" + +|sc4mhpl "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 13)" + +|sc4mhpm "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 14)" + +|sc4mhpn "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 15)" + +|sc4mwwtb "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 1)" + +|sc4mwwtba "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 2)" + +|sc4mwwtbb "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 3)" + +|sc4mwwtbc "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 4)" + +|sc4mwwtbd "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 5)" + +|sc4pacqp "Pac Man (PR7072) (QPS) (Scorpion 4) (set 1)" + +|sc4pacqpa "Pac Man (PR7072) (QPS) (Scorpion 4) (set 2)" + +|sc4pacqpb "Pac Man (PR7072) (QPS) (Scorpion 4) (set 3)" + +|sc4pogbld "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 5)" + +|sc4pogble "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 6)" + +|sc4pogh "Pots Of Gold (Bellfruit) (Scorpion 4) (set 9)" + +|sc4pogi "Pots Of Gold (Bellfruit) (Scorpion 4) (set 10)" + +|sc4popeyd "Popeye (Mazooma) (Scorpion 4) (set 5)" + +|sc4popeye "Popeye (Mazooma) (Scorpion 4) (set 6)" + +|sc4showtf "Showtime (Bellfruit) (Scorpion 4) (set 7)" + +|sc4wldbnn "Wild Bunch (Bellfruit) (Scorpion 4) (set 11)" + +|sc4wldbno "Wild Bunch (Bellfruit) (Scorpion 4) (set 12)" + +|sc4wldbnp "Wild Bunch (Bellfruit) (Scorpion 4) (set 13)" + +|sc4wldbnq "Wild Bunch (Bellfruit) (Scorpion 4) (set 14)" + +|sfex2ph "Street Fighter EX2 Plus (Hispanic 990611)" + +|sfiii3nr1 "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)" + +|sfiii3r1 "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)" + +|sfiii3ur1 "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)" + +|silvmil "Silver Millennium" + +|soulclb3a "Soul Calibur III (SC31002-NA-A)" + +|soulsurf "Soul Surfer (Rev A)" + +|spikes91a "1991 Spikes (Italian bootleg, set 2)" + +|springbd "Springboard (bootleg of Circus)" + +|ssf2xjr "Super Street Fighter II X: Grand Master Challenge (Japan 940223 rent version)" + +|sshooter17 "Sharpshooter (Rev 1.7)" + +|superchsj "Super Chase - Criminal Termination (Japan)" + +|suprpokra "Super Poker (Version 10.15S)" + +|suprpokrb "Super Poker (Version 10.10)" + +|suprstar "Super Stars" + +|tbowlp "Tecmo Bowl (World, prototype?)" + +|tekken4c "Tekken 4 (TEF1 Ver. C)" + +|touryuu "Touryuumon (V1.1)?" + +|tvlegaxe "Makyo Densetsu - The Legenary Axe (Tourvision PCE bootleg)" + +|tvsvball "Super Volley ball (Tourvision PCE bootleg)" + +|vcopa "Virtua Cop (Revision A)" + +|vhuntjr1s "Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version)" + +|voyager "Star Trek: Voyager" + +|wboy5 "Wonder Boy (set 5, bootleg)" + +|wboyub "Wonder Boy (US bootleg)" + +|winrungp "Winning Run Suzuka Grand Prix (Japan)" + +|wstrike "Witch Strike (Export, 6T/12T ver 1.01A)" + +|wstrikea "Witch Strike (Export, 6T/12T ver 1.01B)" + +|wswe "World Soccer Winning Eleven Arcade Game Style" + +|wswe2k3 "World Soccer Winning Eleven Arcade Game 2003" + +|wtchjack "Witch Jack (Export, 6T/12T ver 0.87-89)" + +|wtchjacka "Witch Jackpot (Export, 6T/12T ver 0.25)" + +|wtchjackb "Witch Jack (Export, 6T/12T ver 0.40)" + +|wtchjackc "Witch Jack (Export, 6T/12T ver 0.40T)" + +|wtchjackd "Witch Jack (Export, 6T/12T ver 0.62)" + +|wtchjacke "Witch Jack (Export, 6T/12T ver 0.64)" + +|wtchjackf "Witch Jack (Export, 6T/12T ver 0.65)" + +|wtchjackg "Witch Jack (Export, 6T/12T ver 0.70S)" + +|wtchjackh "Witch Jack (Export, 6T/12T ver 0.70P)" + +|wtchjacki "Witch Jack (Export, 6T/12T ver 0.87)" + +|wtchjackj "Witch Jack (Export, 6T/12T ver 0.87-88)" + +|wupndown "Witch Up & Down (Export, 6T/12T ver 1.02)" + +|wupndowna "Witch Up & Down (Export, 6T/12T ver 0.99, set 1)" + +|wupndownb "Witch Up & Down (Export, 6T/12T ver 0.99, set 2)" + +|wupndownc "Witch Up & Down (Export, 6T/12T ver 0.99, set 3)" + +|wupndownd "Witch Up & Down (Export, 6T/12T ver 0.99T)" + +|yosimotm "Mahjong Yoshimoto Gekijou [BET] (Japan)" + +|zekepeak "Zeke's Peak" + +|zerotm2k "Zero Team 2000" + +|zokumahj "Zoku Mahjong Housoukyoku (Japan)" + C|1941 "1941: Counter Attack (World 900227)" + c|1941 "1941: Counter Attack (World)" + C|99lstwar "'99: The Last War (set 1)" + c|99lstwar "'99: The Last War" + c|99lstwara "'99: The Last War (alternate)" + C|99lstwara "'99: The Last War (set 2)" + C|altbeast5 "Altered Beast (set 5, FD1094 317-0069)" + c|altbeast5 "Altered Beast (set 6, 8751 317-0076)" + C|altbeast6 "Altered Beast (set 6, 8751 317-0076)" + C|am_mg3a "Multi Game III (V.Ger 3.64)" + c|am_uslot "Amatic Unknown Slots Game" + C|andromep "Andromeda (set 1)" + c|andromep "Andromeda" + c|andromepa "Andromeda (alternate set)" + C|andromepa "Andromeda (set 2)" + C|antar "Antar (set 1)" + c|antar "Antar" + c|antar2 "Antar (alternate set)" + C|antar2 "Antar (set 2)" + C|babypac "Baby Pac-Man (set 1)" + c|babypac "Baby Pacman (Video/Pinball Combo)" + C|babypac2 "Baby Pac-Man (set 2)" + C|baluba "Baluba-louk no Densetsu (Japan)" + c|baluba "Baluba-louk no Densetsu" + C|bmcpokr "unknown BMC poker game" + c|bmcpokr "Unknown BMC Poker Game" + c|brooklyn "Brooklyn (Bingo)" + C|brooklyn "Brooklyn (set 1) (Bingo)" + c|brooklyna "Brooklyn (alternate set)(Bingo)" + C|brooklyna "Brooklyn (set 2) (Bingo)" + c|bucky "Bucky O'Hare (ver EA)" + C|bucky "Bucky O'Hare (ver EAB)" + c|buckyaa "Bucky O'Hare (ver AA)" + C|buckyaab "Bucky O'Hare (ver AAB)" + c|buckyua "Bucky O'Hare (ver UA)" + C|buckyuab "Bucky O'Hare (ver UAB)" + C|bushido "Bushido (set 1)" + c|bushido "Bushido" + c|bushidoa "Bushido (alternate set)" + C|bushidoa "Bushido (set 2)" + c|castfant "Astro Fantasia (Cassette)" + C|castfant "Astro Fantasia (DECO Cassette)" + c|caveman "Caveman (Pinball/Video Combo)" + C|caveman "Caveman (Pinball/Video Combo, set 1)" + c|cbdash "Boulder Dash (Cassette)" + C|cbdash "Boulder Dash (DECO Cassette)" + c|cbnj "Bump 'n' Jump (Cassette)" + C|cbnj "Bump 'n' Jump (DECO Cassette)" + c|cbtime "Burger Time (Cassette)" + C|cbtime "Burger Time (DECO Cassette)" + c|cburnrub "Burnin' Rubber (Cassette, set 1)" + C|cburnrub "Burnin' Rubber (DECO Cassette, set 1)" + c|cburnrub2 "Burnin' Rubber (Cassette, set 2)" + C|cburnrub2 "Burnin' Rubber (DECO Cassette, set 2)" + c|cdiscon1 "Disco No.1 (Cassette)" + C|cdiscon1 "Disco No.1 (DECO Cassette)" + C|cdsteljn "DS Telejan (DECO Cassette, Japan)" + c|cexplore "Explorer (Cassette)" + C|cexplore "Explorer (DECO Cassette)" + c|cfghtice "Fighting Ice Hockey (Cassette)" + C|cfghtice "Fighting Ice Hockey (DECO Cassette)" + c|cflyball "Flying Ball (Cassette)" + C|cflyball "Flying Ball (DECO Cassette)" + c|cgraplop "Cluster Buster / Graplop (Cassette, set 1)" + C|cgraplop "Cluster Buster / Graplop (DECO Cassette, set 1)" + c|cgraplop2 "Cluster Buster / Graplop (Cassette, set 2)" + C|cgraplop2 "Cluster Buster / Graplop (DECO Cassette, set 2)" + C|chkun "Chance Kun (Japan)" + c|chkun "Chance Kun" + c|chwy "Highway Chase (Cassette)" + C|chwy "Highway Chase (DECO Cassette)" + c|clapapa "Rootin' Tootin' / La-Pa-Pa (Cassette)" + C|clapapa "Rootin' Tootin' / La-Pa-Pa (DECO Cassette)" + c|clapapa2 "Rootin' Tootin' (Cassette)" + C|clapapa2 "Rootin' Tootin' (DECO Cassette)" + C|cliffhgr "Cliff Hanger (set 1)" + c|cliffhgr "Cliff Hanger" + c|cliffhgra "Cliff Hanger (Alt)" + C|cliffhgra "Cliff Hanger (set 2)" + c|clocknch "Lock'n'Chase (Cassette)" + C|clocknch "Lock'n'Chase (DECO Cassette)" + c|cluckypo "Lucky Poker (Cassette)" + C|cluckypo "Lucky Poker (DECO Cassette)" + c|cmissnx "Mission-X (Cassette)" + C|cmissnx "Mission-X (DECO Cassette)" + c|cnightst "Night Star (Cassette, set 1)" + C|cnightst "Night Star (DECO Cassette, set 1)" + c|cnightst2 "Night Star (Cassette, set 2)" + C|cnightst2 "Night Star (DECO Cassette, set 2)" + C|congo "Congo Bongo (Rev C, 2 board stack)" + c|congo "Congo Bongo" + c|cppicf "Peter Pepper's Ice Cream Factory (Cassette, set 1)" + C|cppicf "Peter Pepper's Ice Cream Factory (DECO Cassette, set 1)" + c|cppicf2 "Peter Pepper's Ice Cream Factory (Cassette, set 2)" + C|cppicf2 "Peter Pepper's Ice Cream Factory (DECO Cassette, set 2)" + c|cprobowl "Pro Bowling (Cassette)" + C|cprobowl "Pro Bowling (DECO Cassette)" + c|cprogolf "Tournament Pro Golf (Cassette)" + C|cprogolf "Tournament Pro Golf (DECO Cassette)" + C|cprogolfj "Tournament Pro Golf (DECO Cassette, Japan)" + c|cpsoccer "Pro Soccer (Cassette)" + C|cpsoccer "Pro Soccer (DECO Cassette)" + c|cpsoccerj "Pro Soccer (Cassette, Japan)" + C|cpsoccerj "Pro Soccer (DECO Cassette, Japan)" + c|cptennis "Pro Tennis (Cassette)" + C|cptennis "Pro Tennis (DECO Cassette)" + c|cscrtry "Scrum Try (Cassette, set 1)" + C|cscrtry "Scrum Try (DECO Cassette, set 1)" + c|cscrtry2 "Scrum Try (Cassette, set 2)" + C|cscrtry2 "Scrum Try (DECO Cassette, set 2)" + C|csdtenis "Super Doubles Tennis (DECO Cassette, Japan)" + c|csuperas "Super Astro Fighter (Cassette)" + C|csuperas "Super Astro Fighter (DECO Cassette)" + c|csweetht "Sweet Heart (Cassette)" + C|csweetht "Sweet Heart (DECO Cassette)" + c|cterrani "Terranean (Cassette)" + C|cterrani "Terranean (DECO Cassette)" + c|ctisland "Treasure Island (Cassette, set 1)" + C|ctisland "Treasure Island (DECO Cassette, set 1)" + c|ctisland2 "Treasure Island (Cassette, set 2)" + C|ctisland2 "Treasure Island (DECO Cassette, set 2)" + c|ctisland3 "Treasure Island (Cassette, set 3)" + C|ctisland3 "Treasure Island (DECO Cassette, set 3)" + c|ctornado "Tornado (Cassette)" + C|ctornado "Tornado (DECO Cassette)" + c|ctsttape "Test Tape (Cassette)" + C|ctsttape "Test Tape (DECO Cassette)" + c|czeroize "Zeroize (Cassette)" + C|czeroize "Zeroize (DECO Cassette)" + C|darksealj "Dark Seal (Japan revision 4)" + c|darksealj "Dark Seal (Japan)" + c|ddp2 "Bee Storm - DoDonPachi II (ver. 102)" + C|ddp2 "DoDonPachi II - Bee Storm (Japan, ver. 102)" + c|ddp2100 "Bee Storm - DoDonPachi II (ver. 100)" + C|ddp2100 "DoDonPachi II - Bee Storm (Japan, ver. 100)" + c|ddp2101 "Bee Storm - DoDonPachi II (ver. 101)" + C|ddp2101 "DoDonPachi II - Bee Storm (Japan, ver. 101)" + c|deerhuntc "Deer Hunting USA V2" + C|deerhuntc "Deer Hunting USA V3" + C|deerhuntd "Deer Hunting USA V2" + c|dirtdvls "Dirt Devils (Revision A)" + C|dirtdvls "Dirt Devils (set 1) (Revision A)" + c|dirtdvlsa "Dirt Devils (alt) (Revision A)" + C|dirtdvlsa "Dirt Devils (set 2) (Revision A)" + c|disco_l1 "Disco Fever (L-1" + C|disco_l1 "Disco Fever (L-1)" + C|dmnfrnt "Demon Front (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX)" + c|dmnfrnt "Demon Front (ver. 102)" + C|dmnfrnta "Demon Front (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)" + c|dmnfrnta "Demon Front (ver. 105)" + C|dmnfrntpcb "Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB)" + c|doncdoon "Donchan no Hanabi de Doon" + C|doncdoon "Hanabi de Doon! - Don-chan Puzzle" + c|dynabb "Dynamite Baseball '97 (Revision A)" + C|dynabb "Dynamite Baseball" + C|dynabb97 "Dynamite Baseball 97 (Revision A)" + c|ec_laby "Labyrinth (Electrocoin) (?)" + C|ec_laby "Labyrinth (v8) (Electrocoin)" + c|ec_penni "Pennies From Heaven (Electrocoin) (?)" + C|ec_penni "Pennies From Heaven (v1) (Electrocoin)" + c|ec_pyram "Pyramid (Electrocoin) (?)" + C|ec_pyram "Pyramid (v6) (Electrocoin)" + c|ec_secrt "Secret Castle (Electrocoin) (?)" + C|ec_secrt "Secret Castle (v1) (Electrocoin)" + c|ec_sphin "Sphinx (Electrocoin) (?)" + C|ec_sphin "Sphinx (v1) (Electrocoin)" + c|ec_unkt "Unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)" + C|ec_unkt "unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)" + c|ep_beavr "Beaver Las Vegas (Global) (EPOCH, set 1)" + C|ep_beavr "Casino Beaver Las Vegas (Global) (EPOCH, set 1)" + c|ep_beavra "Beaver Las Vegas (Global) (EPOCH, set 2)" + C|ep_beavra "Casino Beaver Las Vegas (Global) (EPOCH, set 2)" + c|ep_milhr "Who Wants To Be A Millionhare (Global) (EPOCH)" + C|ep_milhr "Who Wants To Be A Millionhare? (Global) (EPOCH)" + c|ep_pkni "Phoenix Knights (Global) (EPOCH)" + C|ep_pkni "The Phoenix Knights (Global) (EPOCH)" + C|exctsccrj "Exciting Soccer (Japan set 1)" + c|exctsccrj "Exciting Soccer (Japan)" + C|eyeszacb "Eyes (bootleg set 2, decrypted)" + c|eyeszacb "Eyes (bootleg)" + c|falcnwlda "Falcons Wild - World Wide Poker (Video Klein)" + C|falcnwlda "Falcons Wild - World Wide Poker (Video Klein, set 1)" + c|falcnwldb "Falcons Wild - World Wide Poker (Falcon original)" + C|falcnwldb "Falcons Wild - World Wide Poker (Video Klein, set 2)" + C|falcnwldc "Falcons Wild - World Wide Poker (Falcon original)" + C|fashiong "Fashion Gambler (set 1)" + c|fashiong "Fashion Gambler" + C|fashiong2 "Fashion Gambler (set 2)" + c|fashiong2 "Fashion Gambler (Set 2)" + c|ffight "Final Fight (World)" + C|ffight "Final Fight (World, set 1)" + c|forgottnu "Forgotten Worlds (USA, B-Board 88621B-2)" + C|forgottnu "Forgotten Worlds (USA, B-Board 88621B-2, Rev. C)" + C|forgottnu1 "Forgotten Worlds (USA, B-Board 88618B-2, Rev. C)" + c|forgottnua "Forgotten Worlds (USA, B-Board 88618B-2)" + C|forgottnua "Forgotten Worlds (USA, B-Board 88618B-2, Rev. A)" + C|garou "Garou - Mark of the Wolves (NGM-2530)" + c|garou "Garou - Mark of the Wolves (set 1)" + C|garouh "Garou - Mark of the Wolves (NGM-2530)(NGH-2530)" + c|garouo "Garou - Mark of the Wolves (set 2)" + c|ggate "Golden Gate (Bingo)" + C|ggate "Golden Gate (set 1) (Bingo)" + c|ggatea "Golden Gate (alternate set)(Bingo)" + C|ggatea "Golden Gate (set 2) (Bingo)" + c|gl_coc "Carry On Clubbin' (Global) (Stealth)" + C|gl_coc "Carry On Clubbin' (Global) (v3.0) (Stealth)" + C|gl_coc29 "Carry On Clubbin' (Global) (v2.9) (Stealth)" + C|gl_coc29p "Carry On Clubbin' (Global) (v2.9 Protocol) (Stealth)" + C|gl_cocp "Carry On Clubbin' (Global) (v3.0 Protocol) (Stealth)" + c|gl_dow "Deals On Wheels (Global) (Stealth)" + C|gl_dow "Deals On Wheels (Global) (v1.4) (Stealth)" + c|gl_dowcl "Deals On Wheels Club (Global) (Stealth)" + C|gl_dowcl "Deals On Wheels Club (Global) (v1.6) (Stealth)" + C|gl_dowclp "Deals On Wheels Club (Global) (v1.6 Protocol) (Stealth)" + C|gl_dowp "Deals On Wheels (Global) (v1.4 Protocol) (Stealth)" + c|gl_hbh "Heartbreak Hotel (Global) (Stealth)" + C|gl_hbh "Heartbreak Hotel (Global) (v1.0) (Stealth)" + c|gl_hbhcl "Heartbreak Hotel Club (Global) (Stealth)" + C|gl_hbhcl "Heartbreak Hotel Club (Global) (v1.9) (Stealth)" + C|gl_hbhcla "Heartbreak Hotel Club (Global) (Set 2) (Stealth)" + C|gl_hbhclp "Heartbreak Hotel Club (Global) (v1.9 Protocol) (Stealth)" + c|gl_uyr "Up Yer Riggin Club (Global) (Stealth)" + C|gl_uyr "Up Yer Riggin Club (Global) (v2.8) (Stealth)" + C|gl_uyrp "Up Yer Riggin Club (Global) (v2.8 Protocol) (Stealth)" + c|gl_wywh "Wish You Were Here Club (Global) (Stealth)" + C|gl_wywh "Wish You Were Here Club (Global) (v2.9) (Stealth)" + C|gl_wywh24 "Wish You Were Here Club (Global) (v2.4) (Stealth)" + C|gl_wywh24p "Wish You Were Here Club (Global) (v2.4 Protocol) (Stealth)" + C|gl_wywhp "Wish You Were Here Club (Global) (v2.9 Protocol) (Stealth)" + C|goldball "Gold Ball (set 1)" + c|goldball "Gold Ball" + c|goldballn "Gold Ball (alternate set)" + C|goldballn "Gold Ball (set 2)" + C|goldmedl "Gold Medalist (set 1)" + c|goldmedl "Gold Medalist" + c|goldmedla "Gold Medalist (alt)" + C|goldmedla "Gold Medalist (set 2)" + c|granny "Granny and the Gators (Video/Pinball Combo)" + C|granny "Granny and the Gators" + C|gt103a1 "Trivia (Unsorted question roms)" + c|gt103a1 "Trivia (Version 1.03a) (alt 1)" + c|gt103a2 "Trivia (Version 1.03a) (alt 2)" + c|gt103a3 "Trivia (Version 1.03a) (alt 3)" + C|gt103aa "Trivia (Version 1.03a Alt questions 1)" + c|gt103aa "Trivia (Version 1.03a Alt questions)" + C|gt103ab "Trivia (Version 1.03a Alt questions 2)" + C|gulfstrm "Gulf Storm (set 1)" + c|gulfstrm "Gulf Storm" + C|gulfstrma "Gulf Storm (set 2)" + C|gundealrt "Gun Dealer (Japan)" + c|gundealrt "Gun Dealer (Korea)" + C|gunsur2 "Gun Survivor 2 Biohazard Code: Veronica (BHF1 Ver. A)" + c|gunsur2 "Gun Survivor 2 Biohazard Code: Veronica" + c|hb_mrmon "Mr Money (Qps)" + C|hb_mrmon "Mr. Money (Qps)" + C|hb_ydd "Yabba-Dabba-Dough (Qps)" + c|hb_ydd "Yabba Dabba Dough (Qps)" + C|hyhoo "Hayaoshi Taisen Quiz Hyhoo (Japan)" + c|hyhoo "Taisen Quiz HYHOO (Japan)" + C|hyhoo2 "Hayaoshi Taisen Quiz Hyhoo 2 (Japan)" + c|hyhoo2 "Taisen Quiz HYHOO 2 (Japan)" + C|hyperbbc "Hyper Bishi Bashi Champ (GQ876 VER. EAA)" + c|hyperbbc "Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. JAA)" + C|hyperbbca "Hyper Bishi Bashi Champ (GQ876 VER. AAA)" + c|hyperbbck "Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. KAA)" + c|j6cpal "Caesar's Palace (Whitbread / Crystal) (IMPACT, set 1)" + C|j6cpal "Caesars Palace (Whitbread / Crystal) (IMPACT, set 1)" + c|j6cpala "Caesar's Palace (Whitbread / Crystal) (IMPACT, set 2)" + C|j6cpala "Caesars Palace (Whitbread / Crystal) (IMPACT, set 2)" + c|j6cpalb "Caesar's Palace (Whitbread / Ace) (IMPACT)" + C|j6cpalb "Caesars Palace (Whitbread / Ace) (IMPACT)" + c|j6kapang "Kapang (Crystal) (IMPACT)" + C|j6kapang "Kapang! (Crystal) (IMPACT)" + c|jojo "JoJo's Venture (USA 990108)" + C|jojo "JoJo's Venture (USA 990128)" + c|jojoa "JoJo's Venture (USA 981202)" + c|jojoaj "JoJo no Kimyouna Bouken (Japan 981202)" + c|jojoan "JoJo's Venture (Asia 981202, NO CD)" + c|jojoba "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913)" + C|jojoba "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990927)" + c|jojoban "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913, NO CD)" + C|jojoban "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990927, NO CD)" + c|jojobane "JoJo's Bizarre Adventure (Euro 990913, NO CD)" + C|jojobane "JoJo's Bizarre Adventure (Euro 990927, NO CD)" + C|jojobaner1 "JoJo's Bizarre Adventure (Euro 990913, NO CD)" + C|jojobanr1 "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913, NO CD)" + C|jojobar1 "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913)" + c|jojoj "JoJo no Kimyouna Bouken (Japan 990108)" + C|jojoj "JoJo no Kimyouna Bouken (Japan 990128)" + C|jojojr1 "JoJo no Kimyouna Bouken (Japan 990108)" + C|jojojr2 "JoJo no Kimyouna Bouken (Japan 981202)" + c|jojon "JoJo's Venture (Asia 990108, NO CD)" + C|jojon "JoJo's Venture (Asia 990128, NO CD)" + C|jojonr1 "JoJo's Venture (Asia 990108, NO CD)" + C|jojonr2 "JoJo's Venture (Asia 981202, NO CD)" + C|jojor1 "JoJo's Venture (USA 990108)" + C|jojor2 "JoJo's Venture (USA 981202)" + C|jokpokera "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)" + c|jokpokera "Joker Poker (Version 16.03BI)" + C|kof99 "The King of Fighters '99 - Millennium Battle (NGM-2510)" + c|kof99 "The King of Fighters '99 - Millennium Battle (set 1)" + C|kof99h "The King of Fighters '99 - Millennium Battle (NGH-2510)" + c|kof99h "The King of Fighters '99 - Millennium Battle (set 2)" + c|kovlsjb "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN)" + C|kovlsjb "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 1)" + c|kovlsjba "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (alt ver. 200CN)" + C|kovlsjba "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 2)" + c|kovplus "Knights of Valour Plus / Sangoku Senki Plus (ver. 119)" + C|kovplus "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 1)" + c|kovplusa "Knights of Valour Plus / Sangoku Senki Plus (alt ver. 119)" + C|kovplusa "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 2)" + C|kungfur "Kung-Fu Roushi" + c|kungfur "Kung Fu Roushi" + C|kungfut "Kung-Fu Taikun (set 1)" + c|kungfut "Kung-Fu Taikun" + c|kungfuta "Kung-Fu Taikun (alt)" + C|kungfuta "Kung-Fu Taikun (set 2)" + c|lhzb2a "Mahjong Long Hu Zheng Ba 2 (set 2)" + C|lhzb2a "Mahjong Long Hu Zheng Ba 2 (VS221M)" + c|m1corocb "Coronation Street Club (Maygay) (M1A/B)" + C|m1corocb "Coronation Street Club (Maygay) v2.1 (M1A/B)" + C|m1corocb1 "Coronation Street Club (Maygay) v1.1 (M1A/B)" + C|m1corocb1p "Coronation Street Club (Maygay) v1.1 (Protocol)(M1A/B)" + C|m1corocbp "Coronation Street Club (Maygay) v2.1 (Protocol) (M1A/B)" + c|m1cororr "Coronation Street - Rovers Return (Maygay) (M1A/B)" + C|m1cororr "Coronation Street - Rovers Return (Maygay) (set 1) (M1A/B)" + C|m1cororra "Coronation Street - Rovers Return (Maygay) (set 1) (Alternate) (M1A/B)" + C|m1cororrb "Coronation Street - Rovers Return (Maygay) (set 2) (M1A/B)" + C|m1cororrb1 "Coronation Street - Rovers Return (Maygay) (set 2) (Alternate) (M1A/B)" + C|m1cororrbh "Coronation Street - Rovers Return (Maygay) (set 2) (Hack) (M1A/B)" + C|m1cororrbp "Coronation Street - Rovers Return (Maygay) (set 2) (Protocol) (M1A/B)" + C|m1cororrc "Coronation Street - Rovers Return (Maygay) (set 3) (M1A/B)" + C|m1cororrc1 "Coronation Street - Rovers Return (Maygay) (set 3) (Alternate 1) (M1A/B)" + C|m1cororrc2 "Coronation Street - Rovers Return (Maygay) (set 3) (Alternate 2) (M1A/B)" + C|m1cororrd "Coronation Street - Rovers Return (Maygay) (set 4) (M1A/B)" + C|m1cororrdp "Coronation Street - Rovers Return (Maygay) (set 4) (Protocol) (M1A/B)" + C|m1cororre "Coronation Street - Rovers Return (Maygay) (set 5) (M1A/B)" + C|m1cororrf "Coronation Street - Rovers Return (Maygay) (set 6) (BW) (M1A/B)" + C|m1cororrfp "Coronation Street - Rovers Return (Maygay) (set 6) (BW) (Protocol) (M1A/B)" + C|m1cororrg "Coronation Street - Rovers Return (Maygay) (set 7) (M1A/B)" + C|m1cororrgp "Coronation Street - Rovers Return (Maygay) (set 7) (Protocol) (M1A/B)" + C|m1cororrh "Coronation Street - Rovers Return (Maygay) (set 8) (M1A/B)" + C|m1cororri "Coronation Street - Rovers Return (Maygay) (set 9) (M1A/B)" + C|m1cororrip "Coronation Street - Rovers Return (Maygay) (set 9) (Protocol) (M1A/B)" + C|m1cororrj "Coronation Street - Rovers Return (Maygay) (set 10) (M1A/B)" + C|m1cororrjp "Coronation Street - Rovers Return (Maygay) (set 10) (Protocol) (M1A/B)" + C|m1cororrk "Coronation Street - Rovers Return (Maygay) (set 11) (M1A/B)" + C|m1cororrl "Coronation Street - Rovers Return (Maygay) (set 12) (M1A/B)" + C|m1cororrlp "Coronation Street - Rovers Return (Maygay) (set 12) (Protocol) (M1A/B)" + C|m1cororrp "Coronation Street - Rovers Return (Maygay) (set 1) (Protocol) (M1A/B)" + c|m1corosh "Coronation Street Showcase (Maygay) (M1A/B)" + C|m1corosh "Coronation Street Showcase (Maygay) v1.1 (M1A/B)" + C|m1coroshp "Coronation Street Showcase (Maygay) v1.1 (Protocol)(M1A/B)" + C|m1criss "Criss Cross Club (Maygay) (Dutch) (M1A/B)" + c|m1criss "Criss Cross Club (Maygay) (M1A/B)" + c|m1dkong "Donkey Kong (Maygay) (M1A/B)" + C|m1dkong "Donkey Kong (Maygay) v9.2 (M1A/B)" + C|m1dkong11 "Donkey Kong (Maygay) v1.1 (M1A/B)" + C|m1dkong11p "Donkey Kong (Maygay) v1.1 (M1A/B) (Protocol?)" + C|m1dkong21 "Donkey Kong (Maygay) v2.1 (Older) (M1A/B)" + C|m1dkong21n "Donkey Kong (Maygay) v2.1 (M1A/B)" + C|m1dkong21p "Donkey Kong (Maygay) v2.1 (Older) (Protocol) (M1A/B)" + C|m1dkong31 "Donkey Kong (Maygay) v3.1 (M1A/B)" + C|m1dkong31p "Donkey Kong (Maygay) v3.1 (Protocol) (M1A/B)" + C|m1dkong41 "Donkey Kong (Maygay) v4.1 (M1A/B)" + C|m1dkong41p "Donkey Kong (Maygay) v4.1 (Protocol) (M1A/B)" + C|m1dkong51 "Donkey Kong (Maygay) v5.1 (M1A/B)" + C|m1dkong51p "Donkey Kong (Maygay) v5.1 (Protocol) (M1A/B)" + C|m1dkong81 "Donkey Kong (Maygay) v8.1 (Older) (M1A/B)" + C|m1dkong81n "Donkey Kong (Maygay) v8.1 (M1A/B)" + C|m1dkong81na "Donkey Kong (Maygay) v8.1 (Alternate) (M1A/B)" + C|m1dkong81np "Donkey Kong (Maygay) v8.1 (Protocol) (M1A/B)" + C|m1dkong81p "Donkey Kong (Maygay) v8.1 (Older) (Protocol) (M1A/B)" + C|m1dkong91 "Donkey Kong (Maygay) v9.1 (Older) (M1A/B)" + C|m1dkong91a "Donkey Kong (Maygay) v9.1 (Older) (Alternate) (M1A/B)" + C|m1dkong91h1 "Donkey Kong (Maygay) v9.1 (Older) (Hack 1) (M1A/B)" + C|m1dkong91h2 "Donkey Kong (Maygay) v9.1 (Older) (Hack 2) (M1A/B)" + C|m1dkong91n "Donkey Kong (Maygay) v9.1 (M1A/B)" + C|m1dkong91na "Donkey Kong (Maygay) v9.1 (Alternate) (M1A/B)" + C|m1dkong91np "Donkey Kong (Maygay) v9.1 (Protocol) (M1A/B)" + C|m1dkong91p "Donkey Kong (Maygay) v9.1 (Older) (Protocol) (M1A/B)" + C|m1dkonga "Donkey Kong (Maygay) v9.2 (Alternate) (M1A/B)" + C|m1dkongp "Donkey Kong (Maygay) v9.2 (Protocol) (M1A/B)" + c|m1dm4ev "Diamonds Are Forever Club (Maygay) (M1A/B)" + C|m1dm4ev "Diamonds Are Forever Club (Maygay) v5.1 (M1A/B)" + C|m1dm4ev11 "Diamonds Are Forever Club (Maygay) v1.1 (M1A/B)" + C|m1dm4evp "Diamonds Are Forever Club (Maygay) v5.1 (Protocol) n(M1A/B)" + c|m1dxmono "Deluxe Monopoly (Maygay) (M1A/B)" + C|m1dxmono "Deluxe Monopoly (Maygay) v5.1 (M1A/B)" + C|m1dxmono11 "Deluxe Monopoly (Maygay) v1.1 (M1A/B)" + C|m1dxmono11m "Deluxe Monopoly (Maygay) v1.1 (Code M) (M1A/B)" + C|m1dxmono11mb "Deluxe Monopoly (Maygay) v1.1 (Code M, Alternate) (M1A/B)" + C|m1dxmono11o "Deluxe Monopoly (Maygay) v1.1 (Older) (M1A/B)" + C|m1dxmono11p "Deluxe Monopoly (Maygay) v1.1 (Protocol) (M1A/B)" + C|m1dxmono12 "Deluxe Monopoly (Maygay) v1.2 (M1A/B)" + C|m1dxmono12a "Deluxe Monopoly (Maygay) v1.2 (Alternate) (M1A/B)" + C|m1dxmono12n "Deluxe Monopoly (Maygay) v1.2 (Newer) (M1A/B)" + C|m1dxmono12p "Deluxe Monopoly (Maygay) v1.2 (Protocol) (M1A/B)" + C|m1dxmono21p "Deluxe Monopoly (Maygay) v2.1 (Protocol) (M1A/B)" + C|m1dxmono30h "Deluxe Monopoly (Maygay) v3.0 (Hack) (M1A/B)" + C|m1dxmono31b "Deluxe Monopoly (Maygay) v3.1 (BwB set) (M1A/B)" + C|m1dxmono31h "Deluxe Monopoly (Maygay) v3.1 (Hack) (M1A/B)" + C|m1dxmono31h2 "Deluxe Monopoly (Maygay) v3.1 (Alternate Hack) (M1A/B)" + C|m1dxmono31p "Deluxe Monopoly (Maygay) v3.1 (Protocol) (M1A/B)" + C|m1dxmono51 "Deluxe Monopoly (Maygay) v5.1 (Older) (M1A/B)" + C|m1dxmono51o "Deluxe Monopoly (Maygay) v5.1 (Older) (M1A/B) (alt?)" + C|m1dxmono51p "Deluxe Monopoly (Maygay) v5.1 (Older) (Protocol) (M1A/B)" + C|m1dxmonop "Deluxe Monopoly (Maygay) v5.1 (Protocol) (M1A/B)" + C|m1liveam "Living In America (Maygay) (Alternate 1) (M1A/B)" + c|m1liveam "Living In America (Maygay) (M1A/B)" + C|m1liveama "Living In America (Maygay) (Alternate 2)(M1A/B)" + C|m1liveamp "Living In America (Maygay) (Protocol) (M1A/B)" + c|m1luxor "Luxor Casino (Gemini) (M1A/B)" + C|m1luxor "Luxor Casino (Gemini) v4.0 (M1A/B)" + C|m1luxor21 "Luxor Casino (Gemini) v2.1 (M1A/B)" + C|m1luxor32 "Luxor Casino (Gemini) v3.2 (M1A/B)" + C|m1luxor33 "Luxor Casino (Gemini) v3.3 (M1A/B)" + C|m5addams "Addams Family (Barcrest) (MPU5) (v0.5, set 1)" + c|m5addams "Addams Family (Barcrest) (MPU5)" + C|m5addamsa "Addams Family (Barcrest) (MPU5) (v0.5, set 2)" + C|m5addamsb "Addams Family (Barcrest) (MPU5) (v0.5, set 3)" + C|m5addamsc "Addams Family (Barcrest) (MPU5) (v0.5, set 4)" + C|m5addamsd "Addams Family (Barcrest) (MPU5) (v0.5, set 5)" + C|m5addamse "Addams Family (Barcrest) (MPU5) (v0.5, set 6)" + C|m5addamsf "Addams Family (Barcrest) (MPU5) (v0.5, set 7)" + C|m5addamsg "Addams Family (Barcrest) (MPU5) (v0.5, set 8)" + C|m5addamsh "Addams Family (Barcrest) (MPU5) (v0.2, set 1)" + C|m5addamsi "Addams Family (Barcrest) (MPU5) (v0.2, set 2)" + C|m5addamsj "Addams Family (Barcrest) (MPU5) (v0.2, set 3)" + C|m5addamsk "Addams Family (Barcrest) (MPU5) (v0.3, set 1)" + C|m5addamsl "Addams Family (Barcrest) (MPU5) (v0.3, set 2)" + C|m5addamsm "Addams Family (Barcrest) (MPU5) (v0.3, set 3)" + C|m5addamsn "Addams Family (Barcrest) (MPU5) (v0.3, set 4)" + C|m5addamso "Addams Family (Barcrest) (MPU5) (v0.3, set 5)" + C|m5addamsp "Addams Family (Barcrest) (MPU5) (v0.3, set 6)" + C|m5addamsq "Addams Family (Barcrest) (MPU5) (v0.3, set 7)" + C|m5addamsr "Addams Family (Barcrest) (MPU5) (v0.3, set 8)" + C|m5addamss "Addams Family (Barcrest) (MPU5) (v0.3, set 9)" + c|m5addlad "Adders & Ladders (Barcrest) (MPU5, set 1)" + C|m5addlad "Adders & Ladders (Barcrest) (MPU5, v0.6, set 1)" + c|m5addlada "Adders & Ladders (Barcrest) (MPU5, set 2)" + C|m5addlada "Adders & Ladders (Barcrest) (MPU5, v0.6, set 2)" + c|m5addladb "Adders & Ladders (Barcrest) (MPU5, set 3)" + C|m5addladb "Adders & Ladders (Barcrest) (MPU5, v0.6, set 3)" + C|m5addladc "Adders & Ladders (Barcrest) (MPU5, v0.6, set 4)" + C|m5addladd "Adders & Ladders (Barcrest) (MPU5, v0.6, set 5)" + C|m5addlade "Adders & Ladders (Barcrest) (MPU5, v0.6, set 6)" + C|m5addladf "Adders & Ladders (Barcrest) (MPU5, v0.6, set 7)" + C|m5addladg "Adders & Ladders (Barcrest) (MPU5, v0.6, set 8)" + C|m5addladh "Adders & Ladders (Barcrest) (MPU5, v0.6, set 9)" + C|m5addladi "Adders & Ladders (Barcrest) (MPU5, v0.6, set 10)" + C|m5addladj "Adders & Ladders (Barcrest) (MPU5, v0.1, set 1)" + C|m5addladk "Adders & Ladders (Barcrest) (MPU5, v0.1, set 2)" + C|m5addladl "Adders & Ladders (Barcrest) (MPU5, v0.1, set 3)" + C|m5addladm "Adders & Ladders (Barcrest) (MPU5, v0.1, set 4)" + C|m5addladn "Adders & Ladders (Barcrest) (MPU5, v0.1, set 5)" + C|m5addlado "Adders & Ladders (Barcrest) (MPU5, v0.1, set 6)" + C|m5addladp "Adders & Ladders (Barcrest) (MPU5, v0.1, set 7)" + C|m5addladq "Adders & Ladders (Barcrest) (MPU5, v0.4, set 1)" + C|m5addladr "Adders & Ladders (Barcrest) (MPU5, v0.4, set 2)" + C|m5addlads "Adders & Ladders (Barcrest) (MPU5, v?.?)" + C|m5all41a "All 4 One (Vivid) (MPU5, set 2)" + C|m5all41b "All 4 One (Vivid) (MPU5, set 3)" + C|m5all41c "All 4 One (Vivid) (MPU5, set 4)" + C|m5all41d "All 4 One (Vivid) (MPU5, set 5)" + C|m5all41e "All 4 One (Vivid) (MPU5, set 6)" + C|m5all41f "All 4 One (Vivid) (MPU5, set 7)" + C|m5all41g "All 4 One (Vivid) (MPU5, set 8)" + C|m5all41h "All 4 One (Vivid) (MPU5, set 9)" + C|m5all41i "All 4 One (Vivid) (MPU5, set 10)" + C|m5all41j "All 4 One (Vivid) (MPU5, set 11)" + C|m5all41k "All 4 One (Vivid) (MPU5, set 12)" + c|m5all41l "All 4 One (Lowen) (MPU5)" + C|m5all41l "All 4 One (Vivid) (MPU5, set 13)" + C|m5all41low "All 4 One (Lowen) (MPU5)" + C|m5all41m "All 4 One (Vivid) (MPU5, set 14)" + c|m5all41v "All 4 One (Vivid) (MPU5, set 2)" + c|m5ashock "Aftershock (Barcrest - Red Gaming) (MPU5)" + C|m5ashock "Aftershock (Barcrest - Red Gaming) (MPU5, v1.2)" + C|m5ashocka "Aftershock (Barcrest - Red Gaming) (MPU5, v1.3)" + c|m5atlan "Atlantic (Vivid) (MPU5)" + C|m5atlan "Atlantic (Vivid) (MPU5, v1.4)" + C|m5atlana "Atlantic (Vivid) (MPU5, v1.2)" + c|m5cockdd "Cock A Doodle Dough (Empire) (MPU5)" + C|m5cockdd "Cock A Doodle Dough! (Empire) (MPU5)" + C|m5doshpk "Do$h 'n' Pecks (Barcrest) (MPU5)" + c|m5doshpk "Do$h & Pecks (Barcrest) (MPU5)" + C|m5fewmor "A Few Dollars More (Empire) (MPU5) (v0.2, set 1)" + c|m5fewmor "A Few Dollars More (Empire) (MPU5)" + C|m5fewmora "A Few Dollars More (Empire) (MPU5) (v0.2, set 2)" + C|m5fewmorb "A Few Dollars More (Empire) (MPU5) (v0.3, set 1)" + C|m5fewmorc "A Few Dollars More (Empire) (MPU5) (v0.3, set 2)" + c|m5fmonty "Full Monty (Empire) (MPU5)" + C|m5fmonty "The Full Monty (Empire) (MPU5)" + c|m5sixsht "6 Shooter (Vivid) (MPU5)" + C|m5sixsht "Six Shooter (Vivid) (MPU5) (v1.1, set 1)" + C|m5sixshta "Six Shooter (Vivid) (MPU5) (v1.1, set 2)" + c|m5sixshta "Six Shooter (Vivid) (MPU5)" + C|m5sixshtb "Six Shooter (Vivid) (MPU5) (v2.0, set 1)" + C|m5sixshtc "Six Shooter (Vivid) (MPU5) (v2.0, set 2)" + C|m5sixshtd "Six Shooter (Vivid) (MPU5) (v2.0, set 3)" + C|m5sixshte "Six Shooter (Vivid) (MPU5) (v2.0, set 4)" + C|m5sixshtf "Six Shooter (Vivid) (MPU5) (v2.0, set 5)" + C|m5sixshtg "Six Shooter (Vivid) (MPU5) (v2.0, set 6)" + C|m5sixshth "Six Shooter (Vivid) (MPU5) (v2.0, set 7)" + C|m5sixshti "Six Shooter (Vivid) (MPU5) (v2.1, set 1)" + C|m5sixshtj "Six Shooter (Vivid) (MPU5) (v2.1, set 2)" + C|m5sixshtk "Six Shooter (Vivid) (MPU5) (v2.1, set 3)" + C|m5sixshtl "Six Shooter (Vivid) (MPU5) (v2.1, set 4)" + C|m5sixshtm "Six Shooter (Vivid) (MPU5) (v2.1, set 5)" + C|m5sixshtn "Six Shooter (Vivid) (MPU5) (v2.1, set 6)" + C|mdrawpkr "Draw Poker - Joker's Wild (Standard)" + c|mdrawpkr "Draw Poker Joker's Wild (Standard)" + C|mdrawpkra "Draw Poker - Joker's Wild (02-11)" + c|mdrawpkra "Draw Poker Joker's Wild (02-11)" + C|mirax "Mirax (set 1)" + c|mirax "Mirax" + c|mkyawdim "Mortal Kombat (Yawdim bootleg)" + C|mkyawdim "Mortal Kombat (Yawdim bootleg, set 1)" + C|mkyawdim2 "Mortal Kombat (Yawdim bootleg, set 2)" + C|mkyturboe "Mortal Kombat (Turbo 3.0 08/31/92, hack)" + c|mladyhtr "Mahjong THE LADY HUNTER (Japan 900509)" + C|mladyhtr "Mahjong The Lady Hunter (Japan 900509)" + c|mmatrixd "Mars Matrix: Hyper Solid Shooting (Japan 000412 Phoenix Edition) (bootleg)" + C|mmatrixd "Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg)" + c|moomesa "Wild West C.O.W.-Boys of Moo Mesa (ver EA)" + C|moomesa "Wild West C.O.W.-Boys of Moo Mesa (ver EAB)" + c|moomesaa "Wild West C.O.W.-Boys of Moo Mesa (ver AA)" + C|moomesaaab "Wild West C.O.W.-Boys of Moo Mesa (ver AAB)" + c|moomesabl "Wild West C.O.W.-Boys of Moo Mesa (bootleg ver AA)" + C|moomesabl "Wild West C.O.W.-Boys of Moo Mesa (bootleg)" + c|moomesau "Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 1)" + c|moomesaua "Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 2)" + C|moomesauab "Wild West C.O.W.-Boys of Moo Mesa (ver UAB)" + C|moomesauac "Wild West C.O.W.-Boys of Moo Mesa (ver UAC)" + C|motrshow "Motor Show (set 1)" + c|motrshow "Motor Show" + c|motrshowa "Motor Show (alternate set)" + C|motrshowa "Motor Show (set 2)" + C|mshuttle "Moon Shuttle (US? set 1)" + c|mshuttle "Moon Shuttle (US?)" + C|mshuttlej "Moon Shuttle (Japan set 1)" + c|mshuttlej "Moon Shuttle (Japan)" + C|mslug2 "Metal Slug 2 - Super Vehicle-001/II (NGM-2410)(NGH-2410)" + c|mslug2 "Metal Slug 2 - Super Vehicle-001/II" + C|mslugx "Metal Slug X - Super Vehicle-001 (NGM-2500)(NGH-2500)" + c|mslugx "Metal Slug X - Super Vehicle-001" + C|mspacii "Ms. Pac-Man II (Orca bootleg set 1)" + C|mspacii2 "Ms. Pac-Man II (Orca bootleg set 2)" + c|nzerotea "New Zero Team" + C|nzeroteam "New Zero Team" + c|olds100 "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100)" + C|olds100 "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 1)" + c|olds100a "Oriental Legend Special / Xi You Shi E Zhuan Super (alt ver. 100)" + C|olds100a "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 2)" + C|prosport "Pro Sports - Bowling, Tennis, and Golf (set 1)" + c|prosport "Pro Sports - Bowling, Tennis, and Golf" + c|prosporta "Pro Sports - Bowling, Tennis, and Golf (alternate)" + C|prosporta "Pro Sports - Bowling, Tennis, and Golf (set 2)" + c|pzloop2j "Puzz Loop 2 (Japan 010205)" + C|pzloop2j "Puzz Loop 2 (Japan 010226)" + C|pzloop2jr1 "Puzz Loop 2 (Japan 010205)" + C|quasar "Quasar (set 1)" + c|quasar "Quasar" + c|quasara "Quasar (Alternate)" + C|quasara "Quasar (set 2)" + C|rastan "Rastan (World Rev 1)" + c|rastan "Rastan (World)" + C|rastana "Rastan (World)" + C|rastanu "Rastan (US Rev 1)" + c|rastanu "Rastan (US, set 1)" + c|rastanu2 "Rastan (US, set 2)" + C|rastanua "Rastan (US)" + C|rastanub "Rastan (US, Earlier code base)" + C|rastsaga "Rastan Saga (Japan Rev 1)" + c|rastsaga "Rastan Saga (Japan)" + c|rastsaga1 "Rastan Saga (Japan Rev 1)" + C|rastsagaa "Rastan Saga (Japan)" + C|rdft2j "Raiden Fighters 2 (Japan set 1, SPI)" + c|rdft2j "Raiden Fighters 2 (Japan, SPI)" + c|redeartha "Red Earth (Euro 961023)" + C|redearthr1 "Red Earth (Euro 961023)" + C|redfoxwp2 "Red Fox War Planes II (China)" + c|samsh5sph "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)" + C|samsh5sph "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)" + C|samsh5spho "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)" + c|samsh5spn "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)" + c|sc1barcd "Barcode (Bellfruit) (Scorpion 1)" + C|sc1barcd "Barcode (Bellfruit) (set 1) (Scorpion 1)" + C|sc1barcda "Barcode (Bellfruit) (set 2) (Scorpion 1)" + c|sc1btclk "Beat The Clock (Mdm) (Scorpion 2/3)" + C|sc1btclk "Beat The Clock (Mdm) (set 1) (Scorpion 2/3?)" + C|sc1btclka "Beat The Clock (Mdm) (set 2) (Scorpion 2/3?)" + C|sc1btclkb "Beat The Clock (Mdm) (set 3) (Scorpion 2/3?)" + c|sc1ccroc "Crazy Crocs (Mdm) (Scorpion 2/3)" + C|sc1ccroc "Crazy Crocs (Mdm) (set 1) (Scorpion 2/3?)" + C|sc1ccroca "Crazy Crocs (Mdm) (set 2) (Scorpion 2/3?)" + C|sc1ccrocb "Crazy Crocs (Mdm) (set 3) (Scorpion 2/3?)" + C|sc1ccrocc "Crazy Crocs (Mdm) (set 4) (Scorpion 2/3?)" + c|sc1cdm "Club Diamond (Crystal) (Scorpion 1)" + C|sc1cdm "Club Diamond (Crystal) (set 1) (Scorpion 1)" + C|sc1cdmp "Club Diamond (Crystal) (set 1, Protocol) (Scorpion 1)" + C|sc1cexpd "Cash Explosion (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1cexpd "Cash Explosion (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1cexpl "Cash Explosion (Bellfruit) (Scorpion 1)" + C|sc1cexpl "Cash Explosion (Bellfruit) (set 1) (Scorpion 1)" + C|sc1cexpla "Cash Explosion (Bellfruit) (set 2) (Scorpion 1)" + C|sc1cexplb "Cash Explosion (Bellfruit) (set 3) (Scorpion 1)" + C|sc1cexplc "Cash Explosion (Bellfruit) (set 4) (Scorpion 1)" + C|sc1cexpld "Cash Explosion (Bellfruit) (set 5) (Scorpion 1)" + c|sc1chain "Chain Reaction (Bellfruit) (Scorpion 1)" + C|sc1chain "Chain Reaction (Bellfruit) (set 1) (Scorpion 1)" + C|sc1chaina "Chain Reaction (Bellfruit) (set 2) (Scorpion 1)" + C|sc1chainp "Chain Reaction (Bellfruit) (set 1, Protocol) (Scorpion 1)" + c|sc1china "China Town Club (Bellfruit) (Scorpion 1)" + C|sc1china "China Town Club (Bellfruit) (set 1) (Scorpion 1)" + C|sc1chinaa "China Town Club (Bellfruit) (set 2) (Scorpion 1)" + C|sc1chinaap "China Town Club (Bellfruit) (set 2, Protocol) (Scorpion 1)" + C|sc1chinab "China Town Club (Bellfruit) (set 3) (Scorpion 1)" + C|sc1chinabp "China Town Club (Bellfruit) (set 3, Protocol) (Scorpion 1)" + C|sc1chinap "China Town Club (Bellfruit) (set 1, Protocol) (Scorpion 1)" + C|sc1cl2k1 "Club 2001 (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1cl2k1 "Club 2001 (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1cl65 "Club 65 Special (Bellfruit) (Scorpion 1)" + C|sc1cl65 "Club 65 Special (Bellfruit) (set 1) (Scorpion 1)" + C|sc1cl65a "Club 65 Special (Bellfruit) (set 2) (Scorpion 1)" + C|sc1cl65ap "Club 65 Special (Bellfruit) (set 2, Protocol) (Scorpion 1)" + C|sc1cl65b "Club 65 Special (Bellfruit) (set 3) (Scorpion 1)" + C|sc1cl65bp "Club 65 Special (Bellfruit) (set 3, Protocol) (Scorpion 1)" + C|sc1cl65c "Club 65 Special (Bellfruit) (set 4) (Scorpion 1)" + C|sc1cl65d "Club 65 Special (Bellfruit) (set 5) (Scorpion 1)" + C|sc1cl65dp "Club 65 Special (Bellfruit) (set 5, Protocol) (Scorpion 1)" + C|sc1class "Classic (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1class "Classic (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1clbtm "Club Temptation (Bellfruit) (Scorpion 1)" + C|sc1clbtm "Club Temptation (Bellfruit) (set 1) (Scorpion 1)" + C|sc1clbtma "Club Temptation (Bellfruit) (set 2) (Scorpion 1)" + c|sc1clbw "Club Wise (Bellfruit) (Scorpion 1)" + C|sc1clbw "Club Wise (Bellfruit) (set 1) (Scorpion 1)" + C|sc1clbwa "Club Wise (Bellfruit) (set 2) (Scorpion 1)" + C|sc1clbwb "Club Wise (Bellfruit) (set 3) (Scorpion 1)" + C|sc1copdd "Cops 'n' Robbers Deluxe (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1copdd "Cops 'n' Robbers Deluxe (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1count "Count Cash Club (Bellfruit) (Scorpion 1)" + C|sc1count "Count Cash Club (Bellfruit) (set 1) (Scorpion 1)" + C|sc1counta "Count Cash Club (Bellfruit) (set 2) (Scorpion 1)" + C|sc1countap "Count Cash Club (Bellfruit) (set 2, Protocol) (Scorpion 1)" + C|sc1countb "Count Cash Club (Bellfruit) (set 3) (Scorpion 1)" + C|sc1countp "Count Cash Club (Bellfruit) (set 1, Protocol) (Scorpion 1)" + c|sc1crocr "Croc And Roll (Mdm) (Scorpion 2/3)" + C|sc1crocr "Croc And Roll (Mdm) (Scorpion 2/3?)" + C|sc1cscl "Cash Classic (Global) (set 1)" + c|sc1cscl "Cash Classic (Global)" + C|sc1cscla "Cash Classic (Global) (set 2)" + C|sc1csclb "Cash Classic (Maygay/Global?) (set 3)" + C|sc1csclc "Cash Classic (Maygay/Global?) (set 4)" + c|sc1cshat "Cash Attraction (Bellfruit) (Scorpion 1)" + C|sc1cshat "Cash Attraction (Bellfruit) (set 1) (Scorpion 1)" + C|sc1cshata "Cash Attraction (Bellfruit) (set 2) (Scorpion 1)" + C|sc1cshatb "Cash Attraction (Bellfruit) (set 3) (Scorpion 1)" + C|sc1cshatc "Cash Attraction (Bellfruit) (set 4) (Scorpion 1)" + c|sc1cshcda "Cash Card (Bellfruit) (Scorpion 1, set 1)" + C|sc1cshcda "Cash Card (Bellfruit) (set 1) (Scorpion 1)" + c|sc1cshcdb "Cash Card (Bellfruit) (Scorpion 1, set 2)" + C|sc1cshcdb "Cash Card (Bellfruit) (set 2) (Scorpion 1)" + C|sc1cshin "Cashino (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1cshin "Cashino (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1cshwz "Cash Wise (Bellfruit) (Scorpion 1)" + C|sc1cshwz "Cash Wise (Bellfruit) (set 1) (Scorpion 1)" + C|sc1cshwza "Cash Wise (Bellfruit) (set 2) (Scorpion 1)" + C|sc1cshwzb "Cash Wise (Bellfruit) (set 3) (Scorpion 1)" + C|sc1cshwzc "Cash Wise (Bellfruit) (set 4) (Scorpion 1)" + C|sc1dago "Dagobert's Vault (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1dago "Dagobert's Vault (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1days "All In A Days Work (Global) (set 1)" + c|sc1days "All In A Days Work (Global)" + C|sc1daysa "All In A Days Work (Global) (set 2)" + c|sc1dblch "Double Chance (Bellfruit) (Scorpion 1)" + C|sc1dblch "Double Chance (Bellfruit) (set 1) (Scorpion 1)" + C|sc1dblcha "Double Chance (Bellfruit) (set 2) (Scorpion 1)" + C|sc1disc "Discovey (Bellfruit) (Dutch) (set 1) (Scorpion 1)" + c|sc1disc "Discovey (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1disca "Discovey (Bellfruit) (set 2) (Scorpion 1)" + C|sc1driv "Driving School (Global) (set 1)" + c|sc1driv "Driving School (Global)" + C|sc1driva "Driving School (Global) (set 2)" + C|sc1drivb "Driving School (Global) (set 3)" + C|sc1drivc "Driving School (Global) (set 4)" + C|sc1flash "Flash (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1flash "Flash (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1frpus "Fruit Pursuit (Bellfruit) (Scorpion 1?)" + C|sc1frpus "Fruit Pursuit (Bellfruit) (set 1) (Scorpion 1?)" + C|sc1frpusa "Fruit Pursuit (Bellfruit) (set 2) (Scorpion 1?)" + c|sc1frtln "Fruit Lines (Bellfruit) (Scorpion 1, set 2)" + C|sc1frtln "Fruit Lines (Bellfruit) (set 2) (Scorpion 1)" + c|sc1fruit "Fruit Lines (Bellfruit) (Scorpion 1, set 1)" + C|sc1fruit "Fruit Lines (Bellfruit) (set 1) (Scorpion 1)" + c|sc1funh "Fun House Club (Bellfruit) (Scorpion 1)" + C|sc1funh "Fun House Club (Bellfruit) (set 1) (Scorpion 1)" + C|sc1funha "Fun House Club (Bellfruit) (set 2) (Scorpion 1)" + C|sc1funhb "Fun House Club (Bellfruit) (set 3) (Scorpion 1)" + C|sc1funhp "Fun House Club (Bellfruit) (set 1, Protocol) (Scorpion 1)" + C|sc1gprix "Grand Prix (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1gprix "Grand Prix (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1gslam "Grand Slam (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1gslam "Grand Slam (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1hfcc "Hi Flyer Club (Crystal) (Scorpion 1)" + C|sc1hfcc "Hi Flyer Club (Crystal) (set 1) (Scorpion 1)" + C|sc1hfccp "Hi Flyer Club (Crystal) (set 1, Protocol) (Scorpion 1)" + C|sc1impc "Impact (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1impc "Impact (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1kings "Kings Club (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1kings "Kings Club (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1linx "Linx (Bellfruit) (Scorpion 1)" + C|sc1linx "Linx (Bellfruit) (set 1) (Scorpion 1)" + C|sc1linxa "Linx (Bellfruit) (set 2) (Scorpion 1)" + C|sc1linxp "Linx (Bellfruit) (set 3, Protocol) (Scorpion 1)" + C|sc1lotus "Lotus SE (Dutch) (set 1)" + c|sc1lotus "Lotus SE (Dutch)" + C|sc1lotusa "Lotus SE (Dutch) (set 2)" + C|sc1magc "Magic Circle (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1magc "Magic Circle (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1manha "Manhattan (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1manha "Manhattan (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1mist "Mistral (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1mist "Mistral (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1olym "Olympia (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1olym "Olympia (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1orac "Oracle (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1orac "Oracle (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1pwrl "Power Lines (Bellfruit) (Scorpion 1)" + C|sc1pwrl "Power Lines (Bellfruit) (set 1) (Scorpion 1)" + C|sc1pwrla "Power Lines (Bellfruit) (set 2) (Scorpion 1)" + C|sc1quat "Quatro (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1quat "Quatro (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1rain "Rainbow (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1rain "Rainbow (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1re "Reel Cash (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1re "Reel Cash (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1rese "Reel Cash SE (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1rese "Reel Cash SE (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1revo "Revolution (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1revo "Revolution (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1rose "Rose 'n' Crown (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1rose "Rose 'n' Crown (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1sant "Santana (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1sant "Santana (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1sat "Satellite (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1sat "Satellite (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1shan "Shanghai (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1shan "Shanghai (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1sir "Strike It Rich (Bellfruit) (Scorpion 1)" + C|sc1sir "Strike It Rich (Bellfruit) (set 1) (Scorpion 1)" + C|sc1sira "Strike It Rich (Bellfruit) (set 2) (Scorpion 1)" + C|sc1sirb "Strike It Rich (Bellfruit) (set 3) (Scorpion 1)" + C|sc1sirc "Strike It Rich (Bellfruit) (set 4) (Scorpion 1)" + c|sc1smoke "Smokey Vs The Bandit (Mdm) (Scorpion 2/3)" + C|sc1smoke "Smokey Vs The Bandit (Mdm) (set 1) (Scorpion 2/3?)" + C|sc1smokea "Smokey Vs The Bandit (Mdm) (set 2) (Scorpion 2/3?)" + c|sc1spct "Spectre (Bellfruit) (Scorpion 1)" + C|sc1spct "Spectre (Bellfruit) (set 1) (Scorpion 1)" + C|sc1spcta "Spectre (Bellfruit) (set 2) (Scorpion 1)" + C|sc1ster "Sterling (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1ster "Sterling (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1str4 "Strike 4 (Bellfruit) (Scorpion 1, set 1)" + C|sc1str4 "Strike 4 (Bellfruit) (set 1) (Scorpion 1)" + c|sc1str4a "Strike 4 (Bellfruit) (Scorpion 1, set 2)" + C|sc1str4a "Strike 4 (Bellfruit) (set 2) (Scorpion 1)" + C|sc1sups "Superstar (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1sups "Superstar (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1torn "Tornado (Bellfruit) (Dutch) (set 1) (Scorpion 1)" + c|sc1torn "Tornado (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1torna "Tornado (Bellfruit) (Dutch) (set 2) (Scorpion 1)" + c|sc1tri "Tri Star (Bellfruit) (Scorpion 1)" + C|sc1tri "Tri Star (Bellfruit) (set 1) (Scorpion 1)" + C|sc1tria "Tri Star (Bellfruit) (set 2) (Scorpion 1)" + C|sc1triap "Tri Star (Bellfruit) (set 2, Protocol) (Scorpion 1)" + C|sc1trib "Tri Star (Bellfruit) (set 3) (Scorpion 1)" + C|sc1tribp "Tri Star (Bellfruit) (set 3, Protocol) (Scorpion 1)" + c|sc1typ "Typhoon Club (Bellfruit) (Scorpion 1)" + C|sc1typ "Typhoon Club (Bellfruit) (set 1) (Scorpion 1)" + C|sc1typp "Typhoon Club (Bellfruit) (set 1, Protocol) (Scorpion 1)" + C|sc1vent "Ventura (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1vent "Ventura (Bellfruit) [Dutch] (Scorpion 1)" + C|sc1vict "Victory (Bellfruit) (Dutch) (Scorpion 1)" + c|sc1vict "Victory (Bellfruit) [Dutch] (Scorpion 1)" + c|sc1voy "Voyager (Bellfruit) (Scorpion 1, set 1)" + C|sc1voy "Voyager (Bellfruit) (set 1) (Scorpion 1)" + c|sc1voya "Voyager (Bellfruit) (Scorpion 1, set 2)" + C|sc1voya "Voyager (Bellfruit) (set 2) (Scorpion 1)" + C|sc1winfl "Winfalls (Dutch) (Bellfruit) (Scorpion 1)" + c|sc1winfl "Winfalls [Dutch] (Bellfruit) (Scorpion 1)" + c|sc1winst "Winning Streak (Bellfruit) (Scorpion 1)" + C|sc1winst "Winning Streak (Bellfruit) (set 1) (Scorpion 1)" + C|sc1winsta "Winning Streak (Bellfruit) (set 2) (Scorpion 1)" + C|sc1winstb "Winning Streak (Bellfruit) (set 3) (Scorpion 1)" + C|sc1winstbp "Winning Streak (Bellfruit) (set 3, Protocol) (Scorpion 1)" + C|sc1winstc "Winning Streak (Bellfruit) (set 4) (Scorpion 1)" + C|sc1winstcp "Winning Streak (Bellfruit) (set 4, Protocol) (Scorpion 1)" + C|sc1winstd "Winning Streak (Bellfruit) (set 5) (Scorpion 1)" + C|sc1winstdp "Winning Streak (Bellfruit) (set 5, Protocol) (Scorpion 1)" + C|sc1winste "Winning Streak (Bellfruit) (set 6) (Scorpion 1)" + C|sc1winstep "Winning Streak (Bellfruit) (set 6, Protocol) (Scorpion 1)" + C|sc1winstf "Winning Streak (Bellfruit) (set 7) (Scorpion 1)" + C|sc1winstfp "Winning Streak (Bellfruit) (set 7, Protocol) (Scorpion 1)" + C|sc1winstg "Winning Streak (Bellfruit) (set 8) (Scorpion 1)" + C|sc1winstp "Winning Streak (Bellfruit) (set 1, Protocol) (Scorpion 1)" + C|sc2brkfs1 "The Big Breakfast (set 2 UK, Single Site) (Scorpion 2/3)" + c|sc2brkfs1 "The Big Breakfast (set 2) (Scorpion 2/3)" + C|sc2brkfs1p "The Big Breakfast (set 2 UK, Single Site, Protocol) (Scorpion 2/3)" + C|sc2brkfs2 "The Big Breakfast (set 3 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)" + c|sc2brkfs2 "The Big Breakfast (set 3) (Scorpion 2/3)" + C|sc2brkfs3 "The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)" + c|sc2brkfs3 "The Big Breakfast (set 4) (Scorpion 2/3)" + C|sc2brkfs3p "The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2brkfs4 "The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)" + c|sc2brkfs4 "The Big Breakfast (set 5) (Scorpion 2/3)" + C|sc2brkfs4p "The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2brkfs5 "The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)" + c|sc2brkfs5 "The Big Breakfast (set 6) (Scorpion 2/3)" + C|sc2brkfs5p "The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2brkfsm "The Big Breakfast Casino (Scorpion 2/3)" + C|sc2brkfsm "The Big Breakfast Casino (set 1) (Scorpion 2/3)" + C|sc2brkfsm1 "The Big Breakfast Casino (set 2) (Scorpion 2/3)" + C|sc2brkfsm2 "The Big Breakfast Casino (set 3) (Scorpion 2/3)" + C|sc2brkfsp "The Big Breakfast (set 1, Protocol) (Scorpion 2/3)" + c|sc2call "It's Your Call (Global) (Scorpion 2/3)" + C|sc2call "It's Your Call (Global) (v2.7) (Scorpion 2/3)" + C|sc2callc "It's Your Call (Club?) (Global) (v1.6) (Scorpion 2/3)" + C|sc2callcp "It's Your Call (Club?) (Global) (v1.6 Protocol) (Scorpion 2/3)" + C|sc2callp "It's Your Call (Global) (v2.7 Protocol) (Scorpion 2/3)" + c|sc2casr "Casino Royale (Bellfruit) (Scorpion 2/3)" + C|sc2casr "Casino Royale (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)" + C|sc2casr1 "Casino Royale (Bellfruit) (set 2, UK, 3rd Triennial) (Scorpion 2/3)" + C|sc2casr1p "Casino Royale (Bellfruit) (set 2, UK, 3rd Triennial, Protocol) (Scorpion 2/3)" + C|sc2casr2 "Casino Royale (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2casr2p "Casino Royale (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2casr3 "Casino Royale (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)" + C|sc2casr3p "Casino Royale (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2casr4 "Casino Royale (Bellfruit) (set 5, UK) (Scorpion 2/3)" + C|sc2casr4p "Casino Royale (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)" + C|sc2casrp "Casino Royale (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)" + C|sc2catms1 "Cat & Mouse (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2catms1p "Cat & Mouse (Bellfruit) (set 2, Protocol) (Scorpion 2/3)" + C|sc2catms2 "Cat & Mouse (Bellfruit) (set 3) (Scorpion 2/3)" + C|sc2catms2p "Cat & Mouse (Bellfruit) (set 3, Protocol) (Scorpion 2/3)" + C|sc2catms3 "Cat & Mouse (Bellfruit) (set 4) (Scorpion 2/3)" + C|sc2catms4 "Cat & Mouse (Bellfruit) (set 5) (Scorpion 2/3)" + c|sc2cb7 "Casino Bar 7 (Bellfruit) (Scorpion 2/3)" + C|sc2cb7 "Casino Bar 7 (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2cb71 "Casino Bar 7 (Bellfruit) (set 2, UK, All Cash) (Scorpion 2/3)" + C|sc2cb72 "Casino Bar 7 (Bellfruit) (set 3, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2cb72p "Casino Bar 7 (Bellfruit) (set 3, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2cb7p "Casino Bar 7 (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2cgcas "Club Grand Casino (Bellfruit) (Scorpion 2/3)" + C|sc2cgcas "Club Grand Casino (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2cgcas1 "Club Grand Casino (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2cgcas1p "Club Grand Casino (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2cgcasp "Club Grand Casino (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2cmbt "Cat & Mouse & Bonzo Too (Bellfruit) (Scorpion 2/3)" + C|sc2cmbt "Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2cmbtp "Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2cnile "Cash On The Nile Club (Bellfruit) (Scorpion 2/3)" + C|sc2cnile "Cash On The Nile Club (Bellfruit) (set 1 UK, 150GBP Jackpot) (Scorpion 2/3)" + C|sc2cnile1 "Cash On The Nile Club (Bellfruit) (set 2 UK, 150GBP Jackpot) (Scorpion 2/3)" + C|sc2cnile2 "Cash On The Nile Club (Bellfruit) (set 2 UK, 200GBP Jackpot) (Scorpion 2/3)" + C|sc2cnile2p "Cash On The Nile Club (Bellfruit) (set 2 UK, 150GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2cnile3p "Cash On The Nile Club (Bellfruit) (set 3 UK, 150GBP Jackpot) (Scorpion 2/3)" + c|sc2copcl "Cops 'n' Robbers Club (Bellfruit) (Scorpion 2/3)" + C|sc2copcl "Cops 'n' Robbers Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2copcl1 "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2copcl10 "Cops 'n' Robbers Club (Bellfruit) (set 11, UK) (Scorpion 2/3)" + C|sc2copcl11 "Cops 'n' Robbers Club (Bellfruit) (set 12, UK) (Scorpion 2/3)" + C|sc2copcl11p "Cops 'n' Robbers Club (Bellfruit) (set 12, UK, Protocol) (Scorpion 2/3)" + C|sc2copcl1p "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2copcl2 "Cops 'n' Robbers Club (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2copcl3 "Cops 'n' Robbers Club (Bellfruit) (set 4, UK) (Scorpion 2/3)" + C|sc2copcl3p "Cops 'n' Robbers Club (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)" + C|sc2copcl4 "Cops 'n' Robbers Club (Bellfruit) (set 5, UK) (Scorpion 2/3)" + C|sc2copcl5 "Cops 'n' Robbers Club (Bellfruit) (set 6, UK) (Scorpion 2/3)" + C|sc2copcl6 "Cops 'n' Robbers Club (Bellfruit) (set 7, UK) (Scorpion 2/3)" + C|sc2copcl6p "Cops 'n' Robbers Club (Bellfruit) (set 7, UK, Protocol) (Scorpion 2/3)" + C|sc2copcl7 "Cops 'n' Robbers Club (Bellfruit) (set 8, UK) (Scorpion 2/3)" + C|sc2copcl8 "Cops 'n' Robbers Club (Bellfruit) (set 9, UK) (Scorpion 2/3)" + C|sc2copcl8p "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, Protocol) (Scorpion 2/3)" + C|sc2copcl9 "Cops 'n' Robbers Club (Bellfruit) (set 10, UK) (Scorpion 2/3)" + C|sc2copcl9p "Cops 'n' Robbers Club (Bellfruit) (set 10, UK, Protocol) (Scorpion 2/3)" + C|sc2copclp "Cops 'n' Robbers Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2copdc "Cops 'n' Robbers Club Deluxe (Bellfruit) (Scorpion 2/3)" + C|sc2copdc "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2copdc1 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2copdc1p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2copdc2 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 3, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2copdc2p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 3, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2copdc3 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 4, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2copdc3p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 4, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2copdc4 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 5, UK, 200GBP Jackpot?) (Scorpion 2/3)" + C|sc2copdc4p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 5, UK, 200GBP Jackpot?, Protocol) (Scorpion 2/3)" + C|sc2copdc5 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 6, UK, 200GBP Jackpot) (Scorpion 2/3)" + C|sc2copdc5p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 6, UK, 200GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2copdc6 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 7, UK) (Scorpion 2/3)" + C|sc2copdcp "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2cops "Cops 'n' Robbers (Bellfruit) (Scorpion 2/3)" + C|sc2cops "Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)" + C|sc2cops1 "Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2cops1p "Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)" + C|sc2cops2 "Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)" + C|sc2cops3 "Cops 'n' Robbers (Bellfruit) (set 4) (Scorpion 2/3)" + C|sc2cops3p "Cops 'n' Robbers (Bellfruit) (set 4, Protocol) (Scorpion 2/3)" + C|sc2cops4 "Cops 'n' Robbers (Bellfruit) (set 5) (Scorpion 2/3)" + C|sc2cops5 "Cops 'n' Robbers (Bellfruit) (set 6) (Scorpion 2/3)" + C|sc2copsc "Casino Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)" + C|sc2copsc1 "Casino Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2copsc1p "Casino Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)" + C|sc2copsc2 "Casino Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)" + C|sc2copscp "Casino Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)" + C|sc2copsp "Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)" + C|sc2cpe1 "Club Public Enemy No.1 (set 3, UK) (Scorpion 2/3)" + C|sc2cpe1p "Club Public Enemy No.1 (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2cpe2 "Club Public Enemy No.1 (set 4, UK) (Scorpion 2/3)" + C|sc2cpe2p "Club Public Enemy No.1 (set 4, UK, Protocol) (Scorpion 2/3)" + C|sc2cpe3p "Club Public Enemy No.1 (set 5, UK, Protocol) (Scorpion 2/3)" + C|sc2cpe4 "Club Public Enemy No.1 (set 6, UK) (Scorpion 2/3)" + C|sc2cpe5p "Club Public Enemy No.1 (set 7, UK, Protocol) (Scorpion 2/3)" + C|sc2cpep "Club Public Enemy No.1 (set 2, UK, Protocol) (Scorpion 2/3)" + c|sc2cpg "Pharaoh's Gold Club (Bellfruit) (Scorpion 2/3)" + C|sc2cpg "Pharaoh's Gold Club (Bellfruit) (set 1, UK, 250GBP Jackpot)(Scorpion 2/3)" + C|sc2cpg1 "Pharaoh's Gold Club (Bellfruit) (set 2, UK, p65)(Scorpion 2/3)" + C|sc2cpg1p "Pharaoh's Gold Club (Bellfruit) (set 2, UK, p65, Protocol)(Scorpion 2/3)" + C|sc2cpg2 "Pharaoh's Gold Club (Bellfruit) (set 3, UK)(Scorpion 2/3)" + C|sc2cpg2p "Pharaoh's Gold Club (Bellfruit) (set 3, UK, Protocol)(Scorpion 2/3)" + C|sc2cpgp "Pharaoh's Gold Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol)(Scorpion 2/3)" + c|sc2cshcl "Cashino Club (Bellfruit) (Scorpion 2/3)" + C|sc2cshcl "Cashino Club (Bellfruit) (set 1) (Scorpion 2/3)" + C|sc2cshcl1 "Cashino Club (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2cshcl1p "Cashino Club (Bellfruit) (set 2, Protocol) (Scorpion 2/3)" + C|sc2cshclp "Cashino Club (Bellfruit) (set 1, Protocol) (Scorpion 2/3)" + C|sc2ctms2 "Cat & Mouse (Mark 2) (Bellfruit) (set 1) (Scorpion 2/3)" + C|sc2ctms21 "Cat & Mouse (Mark 2) (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2ctms21p "Cat & Mouse (Mark 2) (Bellfruit) (set 2, Protocol) (Scorpion 2/3)" + C|sc2ctms22 "Cat & Mouse (Mark 2) (Bellfruit) (set 3) (Scorpion 2/3)" + C|sc2ctms22p "Cat & Mouse (Mark 2) (Bellfruit) (set 3, Protocol) (Scorpion 2/3)" + C|sc2ctms23 "Cat & Mouse (Mark 2) (Bellfruit) (set 4) (Scorpion 2/3)" + C|sc2ctms23p "Cat & Mouse (Mark 2) (Bellfruit) (set 4, Protocol) (Scorpion 2/3)" + C|sc2ctms24p "Cat & Mouse (Mark 2) (Bellfruit) (set 5, Protocol) (Scorpion 2/3)" + C|sc2ctms25 "Cat & Mouse (Mark 2) (Bellfruit) (set 6) (Scorpion 2/3)" + c|sc2cvega "Cash Vegas (Bellfruit) (Scorpion 2/3)" + C|sc2cvega "Cash Vegas (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2cvega1 "Cash Vegas (Bellfruit) (set 2, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)" + C|sc2cvega1p "Cash Vegas (Bellfruit) (set 2, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)" + C|sc2cvega2 "Cash Vegas (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)" + C|sc2cvega2p "Cash Vegas (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2cvega3 "Cash Vegas (Bellfruit) (set 4, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2cvega3p "Cash Vegas (Bellfruit) (set 4, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2cvega4p "Cash Vegas (Bellfruit) (set 5, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2dbl "Double Diamond (Bellfruit) (Scorpion 2/3)" + C|sc2dbl "Double Diamond (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2dbl1 "Double Diamond (Bellfruit) (set 2, UK) (Scorpion 2/3)" + C|sc2dbl1p "Double Diamond (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)" + C|sc2dblp "Double Diamond (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2dels "Del's Millions (Bellfruit) (Scorpion 2/3)" + C|sc2dels "Del's Millions (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2dels1 "Del's Millions (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2dels1p "Del's Millions (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2dels2 "Del's Millions (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)" + C|sc2dels2p "Del's Millions (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2dels3 "Del's Millions (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)" + C|sc2dels3p "Del's Millions (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2dels4 "Del's Millions (Bellfruit) (set 5, UK) (Scorpion 2/3)" + C|sc2dels4p "Del's Millions (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)" + C|sc2dels5 "Del's Millions (Bellfruit) (set 6, UK) (Scorpion 2/3)" + C|sc2dels6 "Del's Millions (Bellfruit) (set 7, UK) (Scorpion 2/3)" + C|sc2dels7 "Del's Millions (Bellfruit) (set 8, UK) (Scorpion 2/3)" + C|sc2dels8 "Del's Millions (Bellfruit) (set 9, UK) (Scorpion 2/3)" + C|sc2dels9 "Del's Millions (Bellfruit) (set 10, UK) (Scorpion 2/3)" + C|sc2delsd "Del's Millions (Bellfruit) ('Deluxe', UK) (Scorpion 2/3)" + C|sc2delsm "Del's Millions (Bellfruit/Mazooma) (set 1, UK) (Scorpion 2/3)" + C|sc2delsm1 "Del's Millions (Bellfruit/Mazooma) (set 2, UK) (Scorpion 2/3)" + C|sc2delsm1p "Del's Millions (Bellfruit/Mazooma) (set 2, UK, Protocol) (Scorpion 2/3)" + C|sc2delsm2 "Del's Millions (Bellfruit/Mazooma) (set 3, UK) (Scorpion 2/3)" + C|sc2delsm2p "Del's Millions (Bellfruit/Mazooma) (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2delsm3 "Del's Millions (Bellfruit/Mazooma) (set 4, UK) (Scorpion 2/3)" + C|sc2delsm3p "Del's Millions (Bellfruit/Mazooma) (set 4, UK, Protocol) (Scorpion 2/3)" + C|sc2delsmp "Del's Millions (Bellfruit/Mazooma) (set 1, UK, Protocol) (Scorpion 2/3)" + C|sc2delsp "Del's Millions (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2dick "Spotted Dick (Global) (Scorpion 2/3)" + C|sc2dick "Spotted Dick (Global) (v3.1) (Scorpion 2/3)" + C|sc2dick1 "Spotted Dick (Global) (v2.2) (Scorpion 2/3)" + C|sc2dick2 "Spotted Dick (Global) (v1.5) (Scorpion 2/3)" + C|sc2dick2e "Spotted Dick (Global) (v?.? Euro) (Scorpion 2/3)" + C|sc2dick2eu "Spotted Dick (Global) (v?.? Euro unencrypted) (Scorpion 2/3)" + C|sc2dick2p "Spotted Dick (Global) (v1.5 Protocol ) (Scorpion 2/3)" + C|sc2dickp "Spotted Dick (Global) (v3.1 Protocol) (Scorpion 2/3)" + c|sc2downt "Down Town (Bellfruit) (Scorpion 2/3)" + C|sc2downt "Down Town (Bellfruit) (set 1, UK, 15RM motor) (Scorpion 2/3)" + C|sc2downt1 "Down Town (Bellfruit) (set 2, UK, 15RM motor) (Scorpion 2/3)" + C|sc2downt1p "Down Town (Bellfruit) (set 2, UK, 15RM motor, Protocol) (Scorpion 2/3)" + C|sc2downt2 "Down Town (Bellfruit) (set 3, UK, 15RM motor) (Scorpion 2/3)" + C|sc2downt2p "Down Town (Bellfruit) (set 3, UK, 15RM motor, Protocol) (Scorpion 2/3)" + C|sc2downt3 "Down Town (Bellfruit) (set 4, UK, 15RM motor) (Scorpion 2/3)" + C|sc2downt3a "Down Town (Bellfruit) (set 4, UK, 16RM motor) (Scorpion 2/3)" + C|sc2downt3ap "Down Town (Bellfruit) (set 4, UK, 16RM motor, Protocol) (Scorpion 2/3)" + C|sc2downt3p "Down Town (Bellfruit) (set 4, UK, 15RM motor, Protocol) (Scorpion 2/3)" + C|sc2downt4 "Down Town (Bellfruit) (set 5, UK, 15RM motor) (Scorpion 2/3)" + C|sc2downt4a "Down Town (Bellfruit) (set 5, UK, 16RM motor) (Scorpion 2/3)" + C|sc2downt4ap "Down Town (Bellfruit) (set 5, UK, 16RM motor, Protocol) (Scorpion 2/3)" + C|sc2downt4p "Down Town (Bellfruit) (set 5, UK, 15RM motor, Protocol) (Scorpion 2/3)" + C|sc2downt5 "Down Town (Bellfruit) (set 6, UK, 15RM motor) (Scorpion 2/3)" + C|sc2downt6 "Down Town (Bellfruit) (set 7, UK, 15RM motor) (Scorpion 2/3)" + C|sc2downt7 "Down Town (Bellfruit) (set 8, UK, 15RM motor) (Scorpion 2/3)" + C|sc2downt8a "Down Town (Bellfruit) (set 9, UK, 16RM motor) (Scorpion 2/3)" + C|sc2downt8ap "Down Town (Bellfruit) (set 9, UK, 16RM motor, Protocol) (Scorpion 2/3)" + C|sc2downtp "Down Town (Bellfruit) (set 1, UK, 15RM motor, Protocol) (Scorpion 2/3)" + c|sc2drwho "Dr.Who The Timelord (set 1, UK, Game Card 95-750-288) (Scorpion 2/3)" + C|sc2drwho "Dr.Who The Timelord (set 1, UK, Single Site, Game Card 95-750-288) (Scorpion 2/3)" + c|sc2drwho10 "Dr.Who The Timelord (set 11) (Scorpion 2/3)" + C|sc2drwho10 "Dr.Who The Timelord (set 11, UK, Arcade, Protocol) (Scorpion 2/3)" + c|sc2drwho11 "Dr.Who The Timelord (set 12) (Scorpion 2/3)" + C|sc2drwho11 "Dr.Who The Timelord (set 12, UK, no Jackpot spin, Protocol) (Scorpion 2/3)" + c|sc2drwho12 "Dr.Who The Timelord (set 13) (Scorpion 2/3)" + C|sc2drwho12 "Dr.Who The Timelord (set 13, UK) (Scorpion 2/3)" + c|sc2drwho13 "Dr.Who The Timelord (set 14) (Scorpion 2/3)" + C|sc2drwho13 "Dr.Who The Timelord (set 14, UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)" + c|sc2drwho14 "Dr.Who The Timelord (set 15) (Scorpion 2/3)" + C|sc2drwho14 "Dr.Who The Timelord (set 15, UK, Arcade) (Scorpion 2/3)" + c|sc2drwho15 "Dr.Who The Timelord (set 16) (Scorpion 2/3)" + C|sc2drwho15 "Dr.Who The Timelord (set 16, UK, Arcade) (Scorpion 2/3)" + c|sc2drwho2 "Dr.Who The Timelord (set 3) (Scorpion 2/3)" + C|sc2drwho2 "Dr.Who The Timelord (set 3, UK, Arcade, Protocol) (Scorpion 2/3)" + c|sc2drwho3 "Dr.Who The Timelord (set 4) (Scorpion 2/3)" + C|sc2drwho3 "Dr.Who The Timelord (set 4, UK Single Site, Protocol) (Scorpion 2/3)" + c|sc2drwho4 "Dr.Who The Timelord (set 5) (Scorpion 2/3)" + C|sc2drwho4 "Dr.Who The Timelord (set 5, UK, Arcade) (Scorpion 2/3)" + c|sc2drwho5 "Dr.Who The Timelord (set 6) (Scorpion 2/3)" + C|sc2drwho5 "Dr.Who The Timelord (set 6, UK) (Scorpion 2/3)" + c|sc2drwho6 "Dr.Who The Timelord (set 7) (Scorpion 2/3)" + C|sc2drwho6 "Dr.Who The Timelord (set 7, UK, Protocol) (Scorpion 2/3)" + c|sc2drwho7 "Dr.Who The Timelord (set 8) (Scorpion 2/3)" + C|sc2drwho7 "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2drwho8 "Dr.Who The Timelord (set 9) (Scorpion 2/3)" + C|sc2drwho8 "Dr.Who The Timelord (set 9, UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2drwho9 "Dr.Who The Timelord (set 10) (Scorpion 2/3)" + C|sc2drwho9 "Dr.Who The Timelord (set 10, UK, Arcade, Protocol) (Scorpion 2/3)" + c|sc2easy "Easy Money (Bellfruit) (Scorpion 2/3)" + C|sc2easy "Easy Money (Bellfruit) (set 1) (Scorpion 2/3)" + C|sc2easy1 "Easy Money (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2easy1p "Easy Money (Bellfruit) (set 2, Protocol) (Scorpion 2/3)" + C|sc2easy2 "Easy Money (Bellfruit) (set 3) (Scorpion 2/3)" + C|sc2easy2p "Easy Money (Bellfruit) (set 3, Protocol) (Scorpion 2/3)" + C|sc2easyp "Easy Money (Bellfruit) (set 1, Protocol) (Scorpion 2/3)" + c|sc2eggs "Eggs On Legs Tour (Bellfruit) (Scorpion 2/3)" + C|sc2eggs "Eggs On Legs Tour (Bellfruit) (set 1, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2eggs1 "Eggs On Legs Tour (Bellfruit) (set 2, UK, Arcade, 10GBP Jackpot?) (Scorpion 2/3)" + C|sc2eggs1p "Eggs On Legs Tour (Bellfruit) (set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2eggsp "Eggs On Legs Tour (Bellfruit) (set 1, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2flaca "Flash Cash (Bellfruit) (Scorpion 2/3)" + C|sc2flaca "Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)" + C|sc2flaca1 "Flash Cash (Bellfruit) (set 2, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)" + C|sc2flaca1p "Flash Cash (Bellfruit) (set 2, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)" + C|sc2flaca2 "Flash Cash (Bellfruit) (set 3, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)" + C|sc2flaca2p "Flash Cash (Bellfruit) (set 3, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)" + C|sc2flacap "Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)" + c|sc2foot "Football Club (Bellfruit) (Scorpion 2/3)" + C|sc2foot "Football Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2foot1 "Football Club (Bellfruit) (set 2, UK, 100GBP Jackpot) (Scorpion 2/3)" + C|sc2foot1p "Football Club (Bellfruit) (set 2, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2foot2 "Football Club (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2foot2p "Football Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2footp "Football Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2gcclb "Golden Casino Club (Bellfruit) (Scorpion 2/3)" + C|sc2gcclb "Golden Casino Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2gcclb1 "Golden Casino Club (Bellfruit) (set 2, UK, 100GBP Jackpot) (Scorpion 2/3)" + C|sc2gcclb1p "Golden Casino Club (Bellfruit) (set 2, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2gcclb2 "Golden Casino Club (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2gcclb2p "Golden Casino Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2gcclb3 "Golden Casino Club (Bellfruit) (set 4, UK) (Scorpion 2/3)" + C|sc2gcclbp "Golden Casino Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2goldr "Gold Reserve (Mdm) (Scorpion 2/3)" + C|sc2goldr "Gold Reserve (Mdm) (v1.3) (Scorpion 2/3)" + C|sc2goldr1 "Gold Reserve (Mdm) (set 2) (Scorpion 2/3)" + C|sc2goldrp "Gold Reserve (Mdm) (v1.3 Protocol) (Scorpion 2/3)" + c|sc2groul "Golden Roulette (Bellfruit) (Scorpion 2/3)" + C|sc2groul "Golden Roulette (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2groulp "Golden Roulette (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)" + c|sc2gsclb "The Game Show Club (Bellfruit) (Scorpion 2/3)" + C|sc2gsclb "The Game Show Club (Bellfruit) (set 1, UK, Arcade, p65)(Scorpion 2/3)" + C|sc2gsclb1 "The Game Show Club (Bellfruit) (set 2, UK, Arcade, 250GBP Jackpot, p65)(Scorpion 2/3)" + C|sc2gsclb1p "The Game Show Club (Bellfruit) (set 2, UK, Arcade, 250GBP Jackpot, p65, Protocol)(Scorpion 2/3)" + C|sc2gsclb2 "The Game Show Club (Bellfruit) (set 3, UK, Arcade)(Scorpion 2/3)" + C|sc2gsclb2p "The Game Show Club (Bellfruit) (set 3, UK, Arcade, Protocol)(Scorpion 2/3)" + C|sc2gsclb3 "The Game Show Club (Bellfruit) (set 4, UK, Arcade)(Scorpion 2/3)" + C|sc2gsclb3p "The Game Show Club (Bellfruit) (set 4, UK, Arcade, Protocol)(Scorpion 2/3)" + C|sc2gsclb4 "The Game Show Club (Bellfruit) (set 5, UK, Arcade)(Scorpion 2/3)" + C|sc2gsclb4p "The Game Show Club (Bellfruit) (set 5, UK, Arcade, Protocol)(Scorpion 2/3)" + C|sc2gsclb5 "The Game Show Club (Bellfruit) (set 6, UK)(Scorpion 2/3)" + C|sc2gsclb6 "The Game Show Club (Bellfruit) (set 7, UK)(Scorpion 2/3)" + C|sc2gsclb7p "The Game Show Club (Bellfruit) (set 8, UK, Protocol)(Scorpion 2/3)" + C|sc2gsclbp "The Game Show Club (Bellfruit) (set 1, UK, Arcade, p65, Protocol)(Scorpion 2/3)" + c|sc2gslam "Grandslam Club (UK, Game Card 95-750-843) (Scorpion 2/3)" + C|sc2gslam "Grandslam Club (UK, set 1, Game Card 95-750-843) (Scorpion 2/3)" + C|sc2gslam1 "Grandslam Club (UK, set 2) (Scorpion 2/3)" + C|sc2gslam1p "Grandslam Club (UK, set 2, Arcade, Protocol) (Scorpion 2/3)" + C|sc2gslam2 "Grandslam Club (UK, set 3) (Scorpion 2/3)" + C|sc2gslamp "Grandslam Club (UK, set 1, Protocol) (Scorpion 2/3)" + c|sc2heypr "Hey Presto (Bellfruit) (Scorpion 2/3)" + C|sc2heypr "Hey Presto (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2heyprp "Hey Presto (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2hifly "High Flyer (Mdm) (Scorpion 2/3)" + C|sc2hifly "High Flyer (Mdm) (v4.1) (Scorpion 2/3)" + C|sc2hifly2 "High Flyer (Mdm) (v3.1) (Scorpion 2/3)" + C|sc2hifly3 "High Flyer (Mdm) (v2.1) (Scorpion 2/3)" + C|sc2hifly4 "High Flyer (Mdm) (v?.?) (Scorpion 2/3)" + c|sc2hypr "Hyperactive (Bellfruit) (Scorpion 2/3)" + C|sc2hypr "Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2hypr1 "Hyperactive (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2hypr1p "Hyperactive (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2hyprp "Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2inst "Instant Jackpot (Bellfruit) (Scorpion 2/3)" + C|sc2inst "Instant Jackpot (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2inst1 "Instant Jackpot (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2inst1p "Instant Jackpot (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2inst2 "Instant Jackpot (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2inst2p "Instant Jackpot (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2inst3 "Instant Jackpot (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)" + C|sc2inst3p "Instant Jackpot (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2inst4 "Instant Jackpot (Bellfruit) (set 5, UK) (Scorpion 2/3)" + C|sc2inst4p "Instant Jackpot (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)" + C|sc2inst5 "Instant Jackpot (Bellfruit) (set 6, UK) (Scorpion 2/3)" + C|sc2inst6 "Instant Jackpot (Bellfruit) (set 7, UK) (Scorpion 2/3)" + C|sc2instp "Instant Jackpot (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2kcclb "King Cash Club (Bellfruit) (Scorpion 2/3)" + C|sc2kcclb "King Cash Club (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2kcclb1 "King Cash Club (Bellfruit) (set 2, UK) (Scorpion 2/3)" + C|sc2kcclb1p "King Cash Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)" + C|sc2kcclbp "King Cash Club (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2mam "Make A Million (Bellfruit) (Scorpion 2/3)" + C|sc2mam "Make A Million (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2mam1 "Make A Million (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2mam1p "Make A Million (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2mam2 "Make A Million (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)" + C|sc2mam2p "Make A Million (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2mam3 "Make A Million (Bellfruit) (set 4, UK) (Scorpion 2/3)" + C|sc2mam3p "Make A Million (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)" + C|sc2mam4 "Make A Million (Bellfruit) (set 5, UK) (Scorpion 2/3)" + C|sc2mam4p "Make A Million (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)" + C|sc2mam5 "Make A Million (Bellfruit) (set 6, UK) (Scorpion 2/3)" + c|sc2mamcl "Make A Million Club (Bellfruit) (Scorpion 2/3)" + C|sc2mamcl "Make A Million Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2mamcl1 "Make A Million Club (Bellfruit) (set 2, UK) (Scorpion 2/3)" + C|sc2mamcl1p "Make A Million Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)" + C|sc2mamcl2 "Make A Million Club (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2mamcl2p "Make A Million Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2mamcl3 "Make A Million Club (Bellfruit) (set 4, UK) (Scorpion 2/3)" + C|sc2mamclp "Make A Million Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2mamp "Make A Million (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2motd "Match Of The Day (Bellfruit) (Scorpion 2/3)" + C|sc2motd "Match Of The Day (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2motd1 "Match Of The Day (Bellfruit) (set 2, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)" + C|sc2motd10p "Match Of The Day (Bellfruit) (set 11, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2motd1p "Match Of The Day (Bellfruit) (set 2, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)" + C|sc2motd2 "Match Of The Day (Bellfruit) (set 3, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2motd2p "Match Of The Day (Bellfruit) (set 3, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2motd3 "Match Of The Day (Bellfruit) (set 4, UK) (Scorpion 2/3)" + C|sc2motd3p "Match Of The Day (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)" + C|sc2motd4 "Match Of The Day (Bellfruit) (set 5, UK, Arcade) (Scorpion 2/3)" + C|sc2motd4p "Match Of The Day (Bellfruit) (set 5, UK, Arcade, Protocol) (Scorpion 2/3)" + C|sc2motd5 "Match Of The Day (Bellfruit) (set 6, UK, Single Site) (Scorpion 2/3)" + C|sc2motd5p "Match Of The Day (Bellfruit) (set 6, UK, Single Site, Protocol) (Scorpion 2/3)" + C|sc2motd6 "Match Of The Day (Bellfruit) (set 7, UK, 8GBP Jackpot) (Scorpion 2/3)" + C|sc2motd6p "Match Of The Day (Bellfruit) (set 7, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2motd7 "Match Of The Day (Bellfruit) (set 8, UK) (Scorpion 2/3)" + C|sc2motd7p "Match Of The Day (Bellfruit) (set 8, UK, Protocol) (Scorpion 2/3)" + C|sc2motd8 "Match Of The Day (Bellfruit) (set 9, UK) (Scorpion 2/3)" + C|sc2motd8p "Match Of The Day (Bellfruit) (set 9, UK, Protocol) (Scorpion 2/3)" + C|sc2motd9 "Match Of The Day (Bellfruit) (set 10, UK, 6GBP Jackpot) (Scorpion 2/3)" + C|sc2motdp "Match Of The Day (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2ofool "Only Fools & Horses (Bellfruit) (Scorpion 2/3)" + C|sc2ofool "Only Fools & Horses (Bellfruit) (set 1) (Scorpion 2/3)" + C|sc2ofool1 "Only Fools & Horses (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2ofool2 "Only Fools & Horses (Bellfruit) (set 3) (Scorpion 2/3)" + C|sc2ofool3 "Only Fools & Horses (Bellfruit) (set 4) (Scorpion 2/3)" + C|sc2ofool4 "Only Fools & Horses (Bellfruit) (set 5) (Scorpion 2/3)" + c|sc2olgld "Olympic Gold (Bellfruit) (Scorpion 2/3)" + C|sc2olgld "Olympic Gold (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2olgld1 "Olympic Gold (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)" + C|sc2olgld1p "Olympic Gold (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)" + C|sc2olgldp "Olympic Gold (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2pick "Pick Of The Bunch (Global) (Scorpion 2/3)" + C|sc2pick "Pick Of The Bunch (Global) (v2.3) (Scorpion 2/3)" + C|sc2pickc "Pick Of The Bunch (Club?) (Global) (v1.9) (Scorpion 2/3)" + C|sc2pickcp "Pick Of The Bunch (Club?) (Global) (v1.9 Protocol) (Scorpion 2/3)" + C|sc2pickp "Pick Of The Bunch (Global) (v2.3 Protocol) (Scorpion 2/3)" + c|sc2prem "Premier Club Manager (Bellfruit) (Scorpion 2/3)" + C|sc2prem "Premier Club Manager (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2prem1 "Premier Club Manager (Bellfruit) (set 2, UK) (Scorpion 2/3)" + C|sc2prem1p "Premier Club Manager (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)" + C|sc2prem2 "Premier Club Manager (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2premp "Premier Club Manager (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc2ptytm "Party Time (Bellfruit) (Scorpion 2/3)" + C|sc2ptytm "Party Time (Bellfruit) (set 1) (Scorpion 2/3)" + C|sc2ptytm1 "Party Time (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2ptytm1p "Party Time (Bellfruit) (set 2, Protocol) (Scorpion 2/3)" + c|sc2relgm "Reel Gems (Bellfruit) (Scorpion 2/3)" + C|sc2relgm "Reel Gems (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2relgm1p "Reel Gems (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)" + C|sc2relgmp "Reel Gems (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2rock "How Big's Your Rock (Global) (Scorpion 2/3)" + C|sc2rock "How Big's Your Rock? (Global) (v1.5) (Scorpion 2/3)" + C|sc2rock1 "How Big's Your Rock? (Global) (v1.4) (Scorpion 2/3)" + C|sc2rock1p "How Big's Your Rock? (Global) (v1.4 Protocol) (Scorpion 2/3)" + C|sc2rocke "How Big's Your Rock? (Global) (v?.? Euro) (Scorpion 2/3)" + C|sc2rockp "How Big's Your Rock? (Global) (v1.5 Protocol) (Scorpion 2/3)" + c|sc2scc "Safe Cracker Club (Mdm) (Scorpion 2/3)" + C|sc2scc "Safe Cracker Club (Mdm) (v4.4) (Scorpion 2/3)" + c|sc2showt "Showtime Spectacular (Bellfruit) (Scorpion 2/3)" + C|sc2showt "Showtime Spectacular (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2showt1 "Showtime Spectacular (Bellfruit) (set 2, UK) (Scorpion 2/3)" + C|sc2showt1p "Showtime Spectacular (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)" + C|sc2showt2 "Showtime Spectacular (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2showt2p "Showtime Spectacular (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2showt3 "Showtime Spectacular (Bellfruit) (set 4, UK) (Scorpion 2/3)" + C|sc2showt3p "Showtime Spectacular (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)" + C|sc2showt4 "Showtime Spectacular (Bellfruit) (set 5, UK) (Scorpion 2/3)" + C|sc2showt4p "Showtime Spectacular (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)" + C|sc2showtp "Showtime Spectacular (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)" + c|sc2sstar "Superstar (Bellfruit) (Scorpion 2/3)" + C|sc2sstar "Superstar (Bellfruit) (set 1, UK, 3rd Triennial) (Scorpion 2/3)" + C|sc2sstar1 "Superstar (Bellfruit) (set 2, UK, 2nd Triennial) (Scorpion 2/3)" + C|sc2sstar1p "Superstar (Bellfruit) (set 2, UK, 2nd Triennial, Protocol) (Scorpion 2/3)" + C|sc2sstar2 "Superstar (Bellfruit) (set 3, UK, 2nd Triennial) (Scorpion 2/3)" + C|sc2sstar2p "Superstar (Bellfruit) (set 3, UK, 2nd Triennial, Protocol) (Scorpion 2/3)" + C|sc2sstar3 "Superstar (Bellfruit) (set 4, UK, 2nd Triennial) (Scorpion 2/3)" + C|sc2sstar3p "Superstar (Bellfruit) (set 4, UK, 2nd Triennial, Protocol) (Scorpion 2/3)" + C|sc2sstar4 "Superstar (Bellfruit) (set 5, UK) (Scorpion 2/3)" + C|sc2sstarp "Superstar (Bellfruit) (set 1, UK, 3rd Triennial, Protocol) (Scorpion 2/3)" + c|sc2suprz "Surprise Surprize (Bellfruit) (Scorpion 2/3)" + C|sc2suprz "Surprise Surprize (Bellfruit) (set 1, UK) (Scorpion 2/3)" + C|sc2suprz1 "Surprise Surprize (Bellfruit) (set 2, UK) (Scorpion 2/3)" + C|sc2suprz1p "Surprise Surprize (Bellfruit) (set 2, UK, Protocol)(Scorpion 2/3)" + C|sc2suprz2 "Surprise Surprize (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2suprz2p "Surprise Surprize (Bellfruit) (set 3, UK, Protocol)(Scorpion 2/3)" + C|sc2suprz3 "Surprise Surprize (Bellfruit) (set 4, UK) (Scorpion 2/3)" + C|sc2suprzp "Surprise Surprize (Bellfruit) (set 1, UK, Protocol)(Scorpion 2/3)" + c|sc2topwk "Top Wack (Bellfruit) (Scorpion 2/3)" + C|sc2topwk "Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)" + C|sc2topwkp "Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)" + c|sc2town "Round The Town (Bellfruit) (Scorpion 2/3)" + C|sc2town "Round The Town (Bellfruit) (set 1) (Scorpion 2/3)" + C|sc2town1 "Round The Town (Bellfruit) (set 2) (Scorpion 2/3)" + C|sc2town1p "Round The Town (Bellfruit) (set 2, Protocol) (Scorpion 2/3)" + C|sc2town2 "Round The Town (Bellfruit) (set 3) (Scorpion 2/3)" + C|sc2town3 "Round The Town (Bellfruit) (set 4) (Scorpion 2/3)" + C|sc2town3p "Round The Town (Bellfruit) (set 4, Protocol) (Scorpion 2/3)" + C|sc2town4 "Round The Town (Bellfruit) (set 5) (Scorpion 2/3)" + C|sc2town5 "Round The Town (Bellfruit) (set 6) (Scorpion 2/3)" + C|sc2townp "Round The Town (Bellfruit) (set 1, Protocol) (Scorpion 2/3)" + c|sc2wembl "Road To Wembley (Bellfruit) (Scorpion 2/3)" + C|sc2wembl "Road To Wembley (Bellfruit) (set 1, UK, 10GBP Jackpot, 15RM motor) (Scorpion 2/3)" + C|sc2wembl1 "Road To Wembley (Bellfruit) (set 2, UK, 15RM motor) (Scorpion 2/3)" + C|sc2wembl10 "Road To Wembley (Bellfruit) (set 11, UK) (Scorpion 2/3)" + C|sc2wembl1p "Road To Wembley (Bellfruit) (set 2, UK, 15RM motor, Protocol) (Scorpion 2/3)" + C|sc2wembl2 "Road To Wembley (Bellfruit) (set 3, UK) (Scorpion 2/3)" + C|sc2wembl2p "Road To Wembley (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)" + C|sc2wembl3 "Road To Wembley (Bellfruit) (set 4, UK) (Scorpion 2/3)" + C|sc2wembl4p "Road To Wembley (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)" + C|sc2wembl5a "Road To Wembley (Bellfruit) (set 6, UK, 16RM motor) (Scorpion 2/3)" + C|sc2wembl5ap "Road To Wembley (Bellfruit) (set 6, UK, 16RM motor, Protocol) (Scorpion 2/3)" + C|sc2wembl6ap "Road To Wembley (Bellfruit) (set 7, UK, 16RM motor, Protocol) (Scorpion 2/3)" + C|sc2wembl7a "Road To Wembley (Bellfruit) (set 8, UK, 8GBP Jackpot, 16RM motor) (Scorpion 2/3)" + C|sc2wembl7ap "Road To Wembley (Bellfruit) (set 8, UK, 8GBP Jackpot, 16RM motor, Protocol) (Scorpion 2/3)" + C|sc2wembl8 "Road To Wembley (Bellfruit) (set 9, UK) (Scorpion 2/3)" + C|sc2wembl9 "Road To Wembley (Bellfruit) (set 10, UK) (Scorpion 2/3)" + C|sc2wemblp "Road To Wembley (Bellfruit) (set 1, UK, 10GBP Jackpot, 15RM motor, Protocol) (Scorpion 2/3)" + c|sc2wwcl "Wild West Club (Bellfruit) (Scorpion 2/3)" + C|sc2wwcl "Wild West Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)" + C|sc2wwcl1 "Wild West Club (Bellfruit) (set 2, UK) (Scorpion 2/3)" + C|sc2wwcl1p "Wild West Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)" + C|sc2wwclp "Wild West Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)" + c|sc4cblas "Cash Blast (Bellfruit) (Scorpion 4)" + C|sc4cblas "Cash Blast (Voodoo Games) (Scorpion 4) (set 1)" + C|sc4cblasa "Cash Blast (Voodoo Games) (Scorpion 4) (set 2)" + C|sc4cfcas "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 1)" + c|sc4cfcas "Crazy Fruits Casino (Bellfruit) (Scorpion 4)" + C|sc4cfcasa "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 2)" + C|sc4cfcasb "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 3)" + C|sc4cfcasc "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 4)" + C|sc4cfcasd "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 5)" + C|sc4cfcase "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 6)" + C|sc4cfcasf "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 7)" + C|sc4cfcasg "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 8)" + C|sc4cfcash "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 9)" + C|sc4cfcasi "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 10)" + C|sc4cfcasj "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 11)" + C|sc4cfcask "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 12)" + C|sc4cfcasl "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 13)" + C|sc4cfcasm "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 14)" + C|sc4cfcasn "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 15)" + C|sc4cfcaso "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 16)" + C|sc4cfcasp "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 17)" + C|sc4cfcasq "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 18)" + C|sc4cfcasr "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 19)" + c|sc4crzgn "Crazy Gang (Bellfruit) (Scorpion 4) (set 1)" + C|sc4crzgn "Crazy Gang (Bellfruit) (Scorpion 4) (set 1, Top Box)" + c|sc4crzgnb "Crazy Gang (Bellfruit) (Scorpion 4) (set 3)" + C|sc4crzgnb "Crazy Gang (Bellfruit) (Scorpion 4) (set 3, Top Box)" + c|sc4crzgng "Crazy Gang (Bellfruit) (Scorpion 4) (set 8)" + C|sc4crzgng "Crazy Gang (Bellfruit) (Scorpion 4) (set 8, Top Box)" + c|sc4crzgnj "Crazy Gang (Bellfruit) (Scorpion 4) (set 11)" + C|sc4crzgnj "Crazy Gang (Bellfruit) (Scorpion 4) (set 11, Top Box)" + C|sc4dhh "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 1)" + c|sc4dhh "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dhha "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)" + c|sc4dhha "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dhhb "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)" + c|sc4dhhb "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dhhc "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)" + c|sc4dhhc "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dhhd "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)" + c|sc4dhhd "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dhhe "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)" + c|sc4dhhe "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dnd "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 1)" + c|sc4dnd "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dnda "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 2)" + c|sc4dnda "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndb "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 2)" + c|sc4dndb "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 1)" + c|sc4dndbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndbba "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 1)" + c|sc4dndbba "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndbbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 2)" + c|sc4dndbbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndbbc "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 2)" + c|sc4dndbbc "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndbbd "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 1)" + c|sc4dndbbd "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndbbe "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 1)" + c|sc4dndbbe "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndbbf "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 1)" + c|sc4dndbbf "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndbbg "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 2)" + c|sc4dndbbg "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dndbbh "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 2)" + c|sc4dndbbh "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 9)" + C|sc4dndbbi "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 2)" + c|sc4dndbbi "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 10)" + C|sc4dndbc "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 1)" + c|sc4dndbc "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndbca "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 2)" + c|sc4dndbca "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndbd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 1)" + c|sc4dndbd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndbda "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 2)" + c|sc4dndbda "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndbdb "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 1)" + c|sc4dndbdb "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndbdc "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 1)" + c|sc4dndbdc "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndbdd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 2)" + c|sc4dndbdd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndbde "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 2)" + c|sc4dndbde "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndbe "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 1)" + c|sc4dndbe "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndbeb "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 1)" + c|sc4dndbeb "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndbec "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 2)" + c|sc4dndbec "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndbed "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 2)" + c|sc4dndbed "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndbee "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 1)" + c|sc4dndbee "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndbef "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 1)" + c|sc4dndbef "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndbeg "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 1)" + c|sc4dndbeg "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndbeh "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 1)" + c|sc4dndbeh "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dndbei "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 2)" + c|sc4dndbei "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 9)" + C|sc4dndbej "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 2)" + c|sc4dndbej "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 10)" + C|sc4dndbek "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 2)" + c|sc4dndbek "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 11)" + C|sc4dndbel "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 2)" + c|sc4dndbel "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 12)" + C|sc4dndbem "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 1)" + c|sc4dndbem "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 13)" + C|sc4dndben "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 2)" + c|sc4dndben "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 14)" + C|sc4dndbr "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 1)" + c|sc4dndbr "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndbra "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 1)" + c|sc4dndbra "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndbrb "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 2)" + c|sc4dndbrb "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndbrc "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 2)" + c|sc4dndbrc "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndbrd "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 1)" + c|sc4dndbrd "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndbre "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 1)" + c|sc4dndbre "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndbrf "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 2)" + c|sc4dndbrf "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndbrg "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 2)" + c|sc4dndbrg "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dndc "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 1)" + c|sc4dndc "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndcc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 1)" + c|sc4dndcc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndcca "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR474)" + c|sc4dndcca "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndccb "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 2)" + c|sc4dndccb "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndccc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 1)" + c|sc4dndccc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndccd "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 1)" + c|sc4dndccd "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndcce "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 2)" + c|sc4dndcce "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndccf "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 2)" + c|sc4dndccf "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndcl "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 1)" + c|sc4dndcl "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndcla "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 1)" + c|sc4dndcla "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndclb "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 1)" + c|sc4dndclb "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndclc "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 1)" + c|sc4dndclc "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndcld "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 2)" + c|sc4dndcld "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndcle "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 2)" + c|sc4dndcle "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndclf "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 2)" + c|sc4dndclf "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndclg "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 2)" + c|sc4dndclg "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dndcs "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 1)" + c|sc4dndcs "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndcsa "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 1)" + c|sc4dndcsa "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndcsb "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 2)" + c|sc4dndcsb "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndcsc "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 2)" + c|sc4dndcsc "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndcsd "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 1)" + C|sc4dndcse "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 2)" + C|sc4dndcw "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 1)" + c|sc4dndcw "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndcwa "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 1)" + c|sc4dndcwa "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndcwb "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 2)" + c|sc4dndcwb "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndcwc "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 2)" + c|sc4dndcwc "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndd "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 1)" + c|sc4dndd "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dnddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 1)" + c|sc4dnddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dnddda "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 1)" + c|sc4dnddda "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndddb "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 1)" + c|sc4dndddb "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndddc "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 1)" + c|sc4dndddc "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 2)" + c|sc4dndddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dnddde "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 2)" + c|sc4dnddde "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndddf "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 2)" + c|sc4dndddf "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndddg "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 2)" + c|sc4dndddg "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 8)" + c|sc4dnddf "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dnddf "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 1)" + c|sc4dnddfa "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dnddfa "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 2)" + c|sc4dnddfb "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dnddfb "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 1)" + c|sc4dnddfc "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dnddfc "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 1)" + c|sc4dnddfd "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dnddfd "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 2)" + c|sc4dnddfe "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dnddfe "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 2)" + C|sc4dnddw "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 1)" + c|sc4dnddw "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dnddwa "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 1)" + c|sc4dnddwa "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dnddwb "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 2)" + c|sc4dnddwb "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dnddwc "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 2)" + c|sc4dnddwc "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dnddwd "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 1)" + c|sc4dnddwd "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dnddwe "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 1)" + c|sc4dnddwe "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dnddwf "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 2)" + c|sc4dnddwf "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dnddwg "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 2)" + c|sc4dnddwg "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dnde "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 1)" + c|sc4dnde "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndf "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 1)" + c|sc4dndf "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndg "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 2)" + c|sc4dndg "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dndh "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 2)" + c|sc4dndh "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 9)" + C|sc4dndhf "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 1)" + c|sc4dndhf "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndhfa "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 2)" + c|sc4dndhfa "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndhfb "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 1)" + c|sc4dndhfb "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndhfc "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 1)" + c|sc4dndhfc "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndhfd "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 2)" + c|sc4dndhfd "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndhfe "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 2)" + c|sc4dndhfe "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndhff "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 1)" + c|sc4dndhff "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndhfg "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 1)" + c|sc4dndhfg "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dndhfh "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 2)" + c|sc4dndhfh "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 9)" + C|sc4dndhfi "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 2)" + c|sc4dndhfi "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 10)" + C|sc4dndhfj "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA476)" + C|sc4dndhfk "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 1, bad?)" + C|sc4dndhfl "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 2, bad?)" + C|sc4dndi "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 2)" + c|sc4dndi "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 10)" + C|sc4dndj "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 1)" + c|sc4dndj "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 11)" + C|sc4dndk "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 1)" + c|sc4dndk "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 12)" + C|sc4dndl "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 2)" + c|sc4dndl "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 13)" + C|sc4dndlp "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 1)" + c|sc4dndlp "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndlpa "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 1)" + c|sc4dndlpa "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndlpb "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 1)" + c|sc4dndlpb "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndlpc "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 2)" + c|sc4dndlpc "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndlpd "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 2)" + c|sc4dndlpd "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndlpe "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 2)" + c|sc4dndlpe "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndm "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 2)" + c|sc4dndm "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 14)" + C|sc4dndn "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 1)" + c|sc4dndn "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 15)" + C|sc4dndo "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 2)" + c|sc4dndo "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 16)" + c|sc4dndpg "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndpg "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 1)" + c|sc4dndpga "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndpga "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG571, set 1)" + c|sc4dndpgb "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndpgb "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG572, set 1)" + c|sc4dndpgc "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndpgc "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 2)" + c|sc4dndpgd "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndpgd "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB571, set 2)" + c|sc4dndpge "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndpge "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB572, set 2)" + C|sc4dndra "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 1)" + c|sc4dndra "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndraa "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 2)" + c|sc4dndraa "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndrab "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 1)" + c|sc4dndrab "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndrac "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 1)" + c|sc4dndrac "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndrad "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 2)" + c|sc4dndrad "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndrae "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 2)" + c|sc4dndrae "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 6)" + c|sc4dndtp "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndtp "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 1)" + c|sc4dndtpa "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndtpa "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 1)" + c|sc4dndtpb "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndtpb "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 1)" + c|sc4dndtpc "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndtpc "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 1, bad)" + c|sc4dndtpd "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndtpd "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 1)" + c|sc4dndtpe "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndtpe "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 2)" + c|sc4dndtpf "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndtpf "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 2)" + c|sc4dndtpg "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dndtpg "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 2)" + c|sc4dndtph "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 9)" + C|sc4dndtph "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 2, bad)" + c|sc4dndtpi "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 10)" + C|sc4dndtpi "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 2)" + c|sc4dndtpj "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 11)" + C|sc4dndtpj "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 1)" + c|sc4dndtpk "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 12)" + C|sc4dndtpk "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 2)" + c|sc4dndtpl "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 13)" + C|sc4dndtpl "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 1)" + c|sc4dndtpm "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 14)" + C|sc4dndtpm "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 2)" + c|sc4dndtr "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndtr "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 1)" + c|sc4dndtra "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndtra "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 2)" + c|sc4dndwb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndwb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 1)" + c|sc4dndwba "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndwba "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 1)" + c|sc4dndwbb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndwbb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 2)" + c|sc4dndwbc "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndwbc "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 2)" + c|sc4dndwbd "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndwbd "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 1)" + c|sc4dndwbe "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndwbe "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 2)" + c|sc4dndwbf "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 7)" + C|sc4dndwbf "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 1)" + c|sc4dndwbg "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 8)" + C|sc4dndwbg "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 2)" + c|sc4dndww "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndww "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 1)" + c|sc4dndwwa "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndwwa "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 1)" + c|sc4dndwwb "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndwwb "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 2)" + c|sc4dndwwc "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 4)" + C|sc4dndwwc "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 1)" + c|sc4dndwwd "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 5)" + C|sc4dndwwd "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 2)" + c|sc4dndwwe "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 6)" + C|sc4dndwwe "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 2)" + C|sc4dndys "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 1)" + c|sc4dndys "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 1)" + C|sc4dndysa "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 1)" + c|sc4dndysa "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 2)" + C|sc4dndysb "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 2)" + c|sc4dndysb "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 3)" + C|sc4dndysc "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 2)" + C|sc4ggame "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 1)" + c|sc4ggame "Golden Game (Mazooma) (Scorpion 4) (set 1)" + C|sc4ggame0 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (set 2)" + c|sc4ggame0 "Golden Game (Mazooma) (Scorpion 4) (set 28)" + C|sc4ggame1 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 7)" + c|sc4ggame1 "Golden Game (Mazooma) (Scorpion 4) (set 29)" + C|sc4ggame2 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 8)" + c|sc4ggame2 "Golden Game (Mazooma) (Scorpion 4) (set 30)" + C|sc4ggame3 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 6)" + c|sc4ggame3 "Golden Game (Mazooma) (Scorpion 4) (set 31)" + C|sc4ggame4 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 7)" + c|sc4ggame4 "Golden Game (Mazooma) (Scorpion 4) (set 32)" + C|sc4ggame5 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 8)" + c|sc4ggame5 "Golden Game (Mazooma) (Scorpion 4) (set 33)" + C|sc4ggame6 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 9)" + c|sc4ggame6 "Golden Game (Mazooma) (Scorpion 4) (set 34)" + C|sc4ggame7 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 1)" + c|sc4ggame7 "Golden Game (Mazooma) (Scorpion 4) (set 35)" + C|sc4ggame8 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 2)" + c|sc4ggame8 "Golden Game (Mazooma) (Scorpion 4) (set 36)" + C|sc4ggame9 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 3)" + c|sc4ggame9 "Golden Game (Mazooma) (Scorpion 4) (set 37)" + C|sc4ggamea "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 1)" + c|sc4ggamea "Golden Game (Mazooma) (Scorpion 4) (set 2)" + C|sc4ggameaa "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 4)" + c|sc4ggameaa "Golden Game (Mazooma) (Scorpion 4) (set 38)" + C|sc4ggameab "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 5)" + c|sc4ggameab "Golden Game (Mazooma) (Scorpion 4) (set 39)" + C|sc4ggameac "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 6)" + c|sc4ggameac "Golden Game (Mazooma) (Scorpion 4) (set 40)" + C|sc4ggamead "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 7)" + c|sc4ggamead "Golden Game (Mazooma) (Scorpion 4) (set 41)" + C|sc4ggameae "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 8)" + c|sc4ggameae "Golden Game (Mazooma) (Scorpion 4) (set 42)" + C|sc4ggameb "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 2)" + c|sc4ggameb "Golden Game (Mazooma) (Scorpion 4) (set 3)" + C|sc4ggamec "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 3)" + c|sc4ggamec "Golden Game (Mazooma) (Scorpion 4) (set 4)" + C|sc4ggamed "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 4)" + c|sc4ggamed "Golden Game (Mazooma) (Scorpion 4) (set 5)" + c|sc4ggamee "Golden Game (Mazooma) (Scorpion 4) (set 6)" + C|sc4ggamef "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 1)" + c|sc4ggamef "Golden Game (Mazooma) (Scorpion 4) (set 7)" + C|sc4ggameg "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 2)" + c|sc4ggameg "Golden Game (Mazooma) (Scorpion 4) (set 8)" + c|sc4ggameh "Golden Game (Mazooma) (Scorpion 4) (set 9)" + C|sc4ggamei "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 2)" + c|sc4ggamei "Golden Game (Mazooma) (Scorpion 4) (set 10)" + C|sc4ggamej "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 3)" + c|sc4ggamej "Golden Game (Mazooma) (Scorpion 4) (set 11)" + C|sc4ggamek "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 4)" + c|sc4ggamek "Golden Game (Mazooma) (Scorpion 4) (set 12)" + C|sc4ggamel "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 1)" + c|sc4ggamel "Golden Game (Mazooma) (Scorpion 4) (set 13)" + C|sc4ggamem "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 2)" + c|sc4ggamem "Golden Game (Mazooma) (Scorpion 4) (set 14)" + C|sc4ggamen "Golden Game (Mazooma) (PR2056) (Scorpion 4) (set 1)" + c|sc4ggamen "Golden Game (Mazooma) (Scorpion 4) (set 15)" + c|sc4ggameo "Golden Game (Mazooma) (Scorpion 4) (set 16)" + C|sc4ggamep "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 3)" + c|sc4ggamep "Golden Game (Mazooma) (Scorpion 4) (set 17)" + C|sc4ggameq "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 4)" + c|sc4ggameq "Golden Game (Mazooma) (Scorpion 4) (set 18)" + C|sc4ggamer "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 5)" + c|sc4ggamer "Golden Game (Mazooma) (Scorpion 4) (set 19)" + C|sc4ggames "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 5)" + c|sc4ggames "Golden Game (Mazooma) (Scorpion 4) (set 20)" + C|sc4ggamet "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 6)" + c|sc4ggamet "Golden Game (Mazooma) (Scorpion 4) (set 21)" + C|sc4ggameu "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 7)" + c|sc4ggameu "Golden Game (Mazooma) (Scorpion 4) (set 22)" + C|sc4ggamev "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 5)" + c|sc4ggamev "Golden Game (Mazooma) (Scorpion 4) (set 23)" + C|sc4ggamew "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 3)" + c|sc4ggamew "Golden Game (Mazooma) (Scorpion 4) (set 24)" + C|sc4ggamex "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 4)" + c|sc4ggamex "Golden Game (Mazooma) (Scorpion 4) (set 25)" + C|sc4ggamey "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 5)" + c|sc4ggamey "Golden Game (Mazooma) (Scorpion 4) (set 26)" + C|sc4ggamez "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 6)" + c|sc4ggamez "Golden Game (Mazooma) (Scorpion 4) (set 27)" + C|sc4ggdlx "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 1)" + c|sc4ggdlx "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 1)" + C|sc4ggdlxa "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 2)" + c|sc4ggdlxa "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 2)" + C|sc4ggdlxb "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 3)" + c|sc4ggdlxb "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 3)" + C|sc4ggdlxc "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 4)" + c|sc4ggdlxc "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 4)" + C|sc4ggdlxd "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 5)" + c|sc4ggdlxd "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 5)" + C|sc4ggdlxe "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 6)" + c|sc4ggdlxe "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 6)" + C|sc4ggdlxf "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 7)" + c|sc4ggdlxf "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 7)" + C|sc4ggdlxg "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 8)" + c|sc4ggdlxg "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 8)" + C|sc4ggg "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 1)" + c|sc4ggg "Grand Golden Game (Mazooma) (Scorpion 4) (set 1)" + c|sc4ggga "Grand Golden Game (Mazooma) (Scorpion 4) (set 2)" + C|sc4gggb "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 2)" + c|sc4gggb "Grand Golden Game (Mazooma) (Scorpion 4) (set 3)" + C|sc4gggc "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 3)" + c|sc4gggc "Grand Golden Game (Mazooma) (Scorpion 4) (set 4)" + C|sc4gggd "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 4)" + c|sc4gggd "Grand Golden Game (Mazooma) (Scorpion 4) (set 5)" + C|sc4ggge "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 5)" + c|sc4ggge "Grand Golden Game (Mazooma) (Scorpion 4) (set 6)" + C|sc4gggf "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 6)" + c|sc4gggf "Grand Golden Game (Mazooma) (Scorpion 4) (set 7)" + C|sc4gggg "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 13)" + c|sc4gggg "Grand Golden Game (Mazooma) (Scorpion 4) (set 8)" + C|sc4gggh "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 1)" + c|sc4gggh "Grand Golden Game (Mazooma) (Scorpion 4) (set 9)" + C|sc4gggi "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 2)" + c|sc4gggi "Grand Golden Game (Mazooma) (Scorpion 4) (set 10)" + c|sc4gggj "Grand Golden Game (Mazooma) (Scorpion 4) (set 11)" + C|sc4gggk "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 7)" + c|sc4gggk "Grand Golden Game (Mazooma) (Scorpion 4) (set 12)" + C|sc4gggl "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 8)" + c|sc4gggl "Grand Golden Game (Mazooma) (Scorpion 4) (set 13)" + C|sc4gggm "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 9)" + c|sc4gggm "Grand Golden Game (Mazooma) (Scorpion 4) (set 14)" + C|sc4gggn "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 10)" + c|sc4gggn "Grand Golden Game (Mazooma) (Scorpion 4) (set 15)" + C|sc4gggo "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 11)" + c|sc4gggo "Grand Golden Game (Mazooma) (Scorpion 4) (set 16)" + C|sc4gggp "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 12)" + c|sc4gggp "Grand Golden Game (Mazooma) (Scorpion 4) (set 17)" + C|sc4gggq "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 3)" + c|sc4gggq "Grand Golden Game (Mazooma) (Scorpion 4) (set 18)" + C|sc4gggr "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 4)" + c|sc4gggr "Grand Golden Game (Mazooma) (Scorpion 4) (set 19)" + C|sc4gggs "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 5)" + c|sc4gggs "Grand Golden Game (Mazooma) (Scorpion 4) (set 20)" + C|sc4gggtb "Grand Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (GGGT, set 1)" + C|sc4gggtba "Grand Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (GGGT, set 2)" + C|sc4mowow "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 1)" + c|sc4mowow "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 1)" + C|sc4mowowa "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 2)" + c|sc4mowowa "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 2)" + C|sc4mowowb "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 3)" + c|sc4mowowb "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 3)" + C|sc4mowowc "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 4)" + c|sc4mowowc "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 4)" + c|sc4mowowd "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 5)" + c|sc4mowowe "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 6)" + c|sc4mowowf "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 7)" + c|sc4mowowg "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 8)" + c|sc4mowowh "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 9)" + c|sc4mowowi "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 10)" + c|sc4mowowj "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 11)" + C|sc4qmodo "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 1)" + c|sc4qmodo "Quazzi Mo Dough (Qps) (Scorpion 4) (set 1)" + C|sc4qmodoa "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 2)" + c|sc4qmodoa "Quazzi Mo Dough (Qps) (Scorpion 4) (set 2)" + C|sc4qmodob "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 3)" + c|sc4qmodob "Quazzi Mo Dough (Qps) (Scorpion 4) (set 3)" + C|sc4qmodoc "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 4)" + c|sc4qmodoc "Quazzi Mo Dough (Qps) (Scorpion 4) (set 4)" + C|sc4qmodod "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 5)" + c|sc4qmodod "Quazzi Mo Dough (Qps) (Scorpion 4) (set 5)" + c|sc4srrmz "Shake Rattle Roll (Mazooma) (Scorpion 4) (set 1)" + C|sc4srrmz "Shake Rattle Roll (Mazooma) (Scorpion 4) (set 1, Top Box)" + C|sc4tbox "Gold X Triple Top Box (Mazooma) (Scorpion 4)" + c|sc4tbox "Top Box (Mazooma) (Scorpion 4)" + c|sc5potog "Pot Of Gold (Bellfruit) (Scorpion 5) (set 1)" + C|sc5potog "Pot Of Gold (QPS) (Scorpion 5) (set 1)" + c|sc5potoga "Pot Of Gold (Bellfruit) (Scorpion 5) (set 2)" + C|sc5potoga "Pot Of Gold (QPS) (Scorpion 5) (set 2)" + c|sc5potogb "Pot Of Gold (Bellfruit) (Scorpion 5) (set 3)" + C|sc5potogb "Pot Of Gold (QPS) (Scorpion 5) (set 3)" + c|sc5potogc "Pot Of Gold (Bellfruit) (Scorpion 5) (set 4)" + C|sc5potogc "Pot Of Gold (QPS) (Scorpion 5) (set 4)" + c|sc5potogd "Pot Of Gold (Bellfruit) (Scorpion 5) (set 5)" + C|sc5potogd "Pot Of Gold (QPS) (Scorpion 5) (set 5)" + c|sc5potoge "Pot Of Gold (Bellfruit) (Scorpion 5) (set 6)" + C|sc5potoge "Pot Of Gold (QPS) (Scorpion 5) (set 6)" + c|sc5potogf "Pot Of Gold (Bellfruit) (Scorpion 5) (set 7)" + C|sc5potogf "Pot Of Gold (QPS) (Scorpion 5) (set 7)" + c|sc5potogg "Pot Of Gold (Bellfruit) (Scorpion 5) (set 8)" + C|sc5potogg "Pot Of Gold (QPS) (Scorpion 5) (set 8)" + C|schamp "Sonic Championship (USA)" + c|schamp "Sonic Championship" + c|sf2cej "Street Fighter II': Champion Edition (Japan 920513)" + C|sf2ceja "Street Fighter II': Champion Edition (Japan 920322)" + C|sf2cejb "Street Fighter II': Champion Edition (Japan 920513)" + C|sf2cejc "Street Fighter II': Champion Edition (Japan 920803)" + C|sf2ug "Street Fighter II: The World Warrior (USA 910522, Rev. G)" + c|sf2ui "Street Fighter II: The World Warrior (USA 910522)" + C|sf2ui "Street Fighter II: The World Warrior (USA 910522, Rev. I)" + C|sfight "Sonic the Fighters (Japan)" + c|sfight "Sonic The Fighters" + c|sfight2 "Street Fighter 2" + C|sfight2 "Street Fighter II" + c|sfight2a "Street Fighter 2 (rev.1)" + C|sfight2a "Street Fighter II (rev.1)" + c|sfight2b "Street Fighter 2 (rev.2)" + C|sfight2b "Street Fighter II (rev.2)" + C|slqz2 "Mahjong Shuang Long Qiang Zhu 2 (VS203J)" + c|slqz2 "Mahjong Shuang Long Qiang Zhu 2" + c|spacefb "Space Firebird (Nintendo, set 1)" + C|spacefb "Space Firebird (rev. 04-u)" + C|spacefba "Space Firebird (rev. 02-a)" + c|spacefbe "Space Firebird (Nintendo, set 3)" + C|spacefbe "Space Firebird (rev. 03-e set 1)" + C|spacefbe2 "Space Firebird (rev. 03-e set 2)" + c|sshooter "Sharpshooter (Rev 1.7)" + C|sshooter "Sharpshooter (Rev 1.9)" + c|starforce "Star Force (encrypted)" + C|starforce "Star Force (encrypted, set 1)" + C|svg "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)" + c|svg "S.V.G. - Spectral vs Generation (ver. 200)" + C|svgpcb "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (JAMMA PCB)" + C|theglad "The Gladiator - Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN)" + c|theglad "The Gladiator (ver. 100)" + C|theglada "The Gladiator - Road of the Sword / Shen Jian (M68k label V101) (ARM label V107, ROM 06/06/03 SHEN JIAN V107)" + c|theglada "The Gladiator (ver. 101)" + C|thegladpcb "The Gladiator - Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (JAMMA PCB)" + C|tiptop "Tip Top (3 board stack)" + c|tiptop "Tip Top" + C|toukon4 "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition (TRF1 Ver. A)" + c|toukon4 "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition" + C|tsamurai "Samurai Nihon-Ichi (set 1)" + c|tsamurai "Samurai Nihon-ichi (set 1)" + C|tsamurai2 "Samurai Nihon-Ichi (set 2)" + c|tsamurai2 "Samurai Nihon-ichi (set 2)" + C|tsamuraih "Samurai Nihon-Ichi (bootleg, harder)" + c|tsamuraih "Samurai Nihon-ichi (bootleg, harder)" + C|unkhorse "unknown Japanese horse gambling game" + c|unkmeyco "unknown Meyco game" + C|vhunt2d "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg)" + c|vhunt2d "Vampire Hunter 2: Darkstalkers Revenge (Japan 970929 Phoenix Edition) (bootleg)" + C|von "Cyber Troopers Virtual-On (USA, Revision B)" + c|von "Virtual On Cyber Troopers (US, Revision B)" + C|vonj "Cyber Troopers Virtual-On (Japan, Revision B)" + c|vonj "Virtual On Cyber Troopers (Japan, Revision B)" + c|warzarda "Warzard (Japan 961023)" + C|warzardr1 "Warzard (Japan 961023)" + C|wfortune "Wheel Of Fortune (set 1)" + c|wfortune "Wheel Of Fortune" + c|wfortunea "Wheel Of Fortune (alternate)" + C|wfortunea "Wheel Of Fortune (set 2)" + c|winrun "Winning Run Suzuka Grand Prix (Japan)" + C|winrun "Winning Run" + C|wldarrow "Wild Arrow (color, Standard V4.8)" + c|wldarrow "Wild Arrow (Standard V4.8)" + C|wldkicks "World Kicks (WK1 Ver. A)" + c|wldkicks "World Kicks" + c|wldwitch "Wild Witch (Export, 6T/12T ver 1.74A)" + C|wldwitch "Wild Witch (Export, 6T/12T ver 1.84A)" + C|wldwitcha "Wild Witch (Export, 6T/12T ver 1.57-SP)" + C|wldwitchb "Wild Witch (Export, 6T/12T ver 1.57-TE)" + C|wldwitchc "Wild Witch (Export, 6T/12T ver 1.62A)" + C|wldwitchd "Wild Witch (Export, 6T/12T ver 1.62B)" + C|wldwitche "Wild Witch (Export, 6T/12T ver 1.62A-F)" + C|wldwitchf "Wild Witch (Export, 6T/12T ver 1.62A alt)" + C|wldwitchg "Wild Witch (Export, 6T/12T ver 1.62B alt)" + C|wldwitchh "Wild Witch (Export, 6T/12T ver 1.65A)" + C|wldwitchi "Wild Witch (Export, 6T/12T ver 1.65A-S)" + C|wldwitchj "Wild Witch (Export, 6T/12T ver 1.65A-S alt)" + C|wldwitchk "Wild Witch (Export, 6T/12T ver 1.65A-N)" + C|wldwitchl "Wild Witch (Export, 6T/12T ver 1.70A beta)" + C|wldwitchm "Wild Witch (Export, 6T/12T ver 1.70A)" + C|wldwitchn "Wild Witch (Export, 6T/12T ver 1.70A alt)" + C|wldwitcho "Wild Witch (Export, 6T/12T ver 1.74A-SP-BELG)" + C|wldwitchp "Wild Witch (Export, 6T/12T ver 1.74A)" + C|wldwitchq "Wild Witch (Export, 6T/12T ver 1.74A alt)" + C|wldwitchr "Wild Witch (Export, 6B/12B ver 1.75A-E English)" + C|wldwitchs "Wild Witch (Export, 6T/12T ver 1.76A)" + C|wldwitcht "Wild Witch (Export, 6T/12T ver 1.77A)" + C|wldwitchu "Wild Witch (Export, 6T/12T ver 1.79A)" + C|wldwitchv "Wild Witch (Export, 6T/12T ver 1.83A)" + C|wyvernwg "Wyvern Wings (set 1)" + c|wyvernwg "Wyvern Wings" + C|wyvernwga "Wyvern Wings (set 2)" + c|yumefuda "(Medal) Yumefuda [BET]" + C|yumefuda "Yumefuda [BET]" diff --git a/docs/release/src/osd/winui/help/html/mameui_credits.htm b/docs/release/src/osd/winui/help/html/mameui_credits.htm new file mode 100644 index 00000000000..3dbe2393f22 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_credits.htm @@ -0,0 +1,141 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI Credits</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} + div.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +<base target="_blank"> +</head> + +<body background="../images/bkground.gif"> + +<h1>MameUI Credits & Resources</h1> +<h2><b>Credits</b></h2> +<p class="MsoNormal">The current MameUI DEV team:</p> +<p class="MsoNormal"> </p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Chris Kirmse</b></p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Mike Haaland</b></p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>René Single</b></p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a href="http://mameui.info/">John L. Hardy IV</a></b></p> +<p class="MsoNormal" style="margin-left:.75in"> </p> +<p class="MsoNormal">Special thanks to Michael Soderstrom for project +co-ordination and source maintenance from 1997-2001.</p> +<p class="MsoNormal"> </p> +<p class="MsoNormal">Additional appreciated code contributions by : Jeff +Miller, Dan Miller, Andrew Kirmse, Mohammad Rezaei, <font face="Arial" size="2"> +René Single, </font>John Zissopoulos, Nathan +Woods, Robert Schlabbach, Sword, Emuman, BUT, <font face="Arial" size="2">'Mamesick', </font> +Sauro Puccini,<b> </b><font face="Arial" size="2">Tor +Arne Vestbø, </font>R. J. Sheppard, Visk, K&K, +Patrick Jones, and ‘Ren Höek’.</p> +<p class="MsoNormal"> </p> +<h2><b>Resources</b></h2> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a target="_blank" href="http://mameui.info/">The +MameUI Homepage</a> </b>:<b> </b>Home to the MameUI binary/source, +icons, screenshots, testing, work in progress updates, bug +reporting/tracking, message board, and benchmarking.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a target="_blank" href="http://www.mameworld.info/ubbthreads/postlist.php?Cat=&Board=mameui">The +MameUI +Message Board</a> </b>:<b> </b>Forum for discussion of MameUI related issues.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a target="_blank" href="http://mameui.info//MameUI_Bugs.xls">MameUI +Defect Tracking and Bug Reports</a> </b>: Excel spreadsheet which displays +information about current MameUI feature requests and issues. Check before +reporting potential bugs.</p> +<p class="MsoNormal"><b> </b></p> +<div class="MsoNormal" align="center" style="text-align:center"> + <span style="font-family: Courier New"> + <hr size="2" width="100%" align="center"></span> +</div> +<p class="MsoNormal"><b> </b></p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b><a href="http://www.mamedev.org">MameDEV.org</a> </b>:<b> </b>Home of +baseline MAME.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b> +<a target="_blank" href="http://www.mametesters.org">MameTesters.org</a> </b>:<b> </b> +Reporting and tracking baseline Mamebugs.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> </p> +<p class="MsoNormal" style="margin-left: 0" align="left">MameUI © +2007 C. Kirmse, M. Haaland, & the MameUI team</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> </p> +<p class="MsoNormal" style="margin-left: 0" align="left">this help +file authored by john iv</p> + +<p class="MsoNormal" style="margin-left: 0" align="left"> +<font size="1"> +<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-10-28 06:48 PM -0700<!--webbot bot="Timestamp" endspan i-checksum="38520" --></font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_download.htm b/docs/release/src/osd/winui/help/html/mameui_download.htm new file mode 100644 index 00000000000..0063701ef36 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_download.htm @@ -0,0 +1,62 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI Download Locations</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +<base target="_blank"> +</head> + +<body background="../images/bkground.gif"> + +<h2>Download Locations</h2> +<p class="MsoNormal">The official site for MameUI downloads:</p> +<p class="MsoNormal"> +<a target="_blank" href="http://mameui.info/"> +<span style="font-weight: 700; color: #0000FF; text-decoration: underline">The +MameUI Homepage</span></a></p> + +<p class="MsoNormal"> </p> +<p class="MsoNormal"><font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:03 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37667" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_filemenu.htm b/docs/release/src/osd/winui/help/html/mameui_filemenu.htm new file mode 100644 index 00000000000..12f2915538c --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_filemenu.htm @@ -0,0 +1,625 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 12"> +<meta name=Originator content="Microsoft Word 12"> +<link rel=File-List href="mameui_filemenu_files/filelist.xml"> +<link rel=Edit-Time-Data href="mameui_filemenu_files/editdata.mso"> +<!--[if !mso]> +<style> +v\:* {behavior:url(#default#VML);} +o\:* {behavior:url(#default#VML);} +w\:* {behavior:url(#default#VML);} +.shape {behavior:url(#default#VML);} +</style> +<![endif]--> +<title>MameUI File Menu</title> +<!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Author>john4</o:Author> + <o:LastAuthor>john4</o:LastAuthor> + <o:Revision>2</o:Revision> + <o:TotalTime>2</o:TotalTime> + <o:Created>2008-04-11T22:37:00Z</o:Created> + <o:LastSaved>2008-04-11T22:39:00Z</o:LastSaved> + <o:Pages>1</o:Pages> + <o:Words>438</o:Words> + <o:Characters>2503</o:Characters> + <o:Lines>20</o:Lines> + <o:Paragraphs>5</o:Paragraphs> + <o:CharactersWithSpaces>2936</o:CharactersWithSpaces> + <o:Version>12.00</o:Version> + </o:DocumentProperties> +</xml><![endif]--> +<link rel=themeData href="mameui_filemenu_files/themedata.thmx"> +<link rel=colorSchemeMapping href="mameui_filemenu_files/colorschememapping.xml"> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackMoves>false</w:TrackMoves> + <w:TrackFormatting/> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:DoNotPromoteQF/> + <w:LidThemeOther>EN-US</w:LidThemeOther> + <w:LidThemeAsian>X-NONE</w:LidThemeAsian> + <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> + <w:Compatibility> + <w:BreakWrappedTables/> + <w:SnapToGridInCell/> + <w:WrapTextWithPunct/> + <w:UseAsianBreakRules/> + <w:DontGrowAutofit/> + <w:SplitPgBreakAndParaMark/> + <w:DontVertAlignCellWithSp/> + <w:DontBreakConstrainedForcedTables/> + <w:DontVertAlignInTxbx/> + <w:Word11KerningPairs/> + <w:CachedColBalance/> + </w:Compatibility> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + <m:mathPr> + <m:mathFont m:val="Cambria Math"/> + <m:brkBin m:val="before"/> + <m:brkBinSub m:val="--"/> + <m:smallFrac m:val="off"/> + <m:dispDef/> + <m:lMargin m:val="0"/> + <m:rMargin m:val="0"/> + <m:defJc m:val="centerGroup"/> + <m:wrapIndent m:val="1440"/> + <m:intLim m:val="subSup"/> + <m:naryLim m:val="undOvr"/> + </m:mathPr></w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" + DefSemiHidden="true" DefQFormat="false" DefPriority="99" + LatentStyleCount="267"> + <w:LsdException Locked="false" Priority="0" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Normal"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 2"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> + <w:LsdException Locked="false" Priority="39" Name="toc 1"/> + <w:LsdException Locked="false" Priority="39" Name="toc 2"/> + <w:LsdException Locked="false" Priority="39" Name="toc 3"/> + <w:LsdException Locked="false" Priority="39" Name="toc 4"/> + <w:LsdException Locked="false" Priority="39" Name="toc 5"/> + <w:LsdException Locked="false" Priority="39" Name="toc 6"/> + <w:LsdException Locked="false" Priority="39" Name="toc 7"/> + <w:LsdException Locked="false" Priority="39" Name="toc 8"/> + <w:LsdException Locked="false" Priority="39" Name="toc 9"/> + <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> + <w:LsdException Locked="false" Priority="10" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Title"/> + <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> + <w:LsdException Locked="false" Priority="11" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> + <w:LsdException Locked="false" Priority="22" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Strong"/> + <w:LsdException Locked="false" Priority="20" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> + <w:LsdException Locked="false" Priority="59" SemiHidden="false" + UnhideWhenUsed="false" Name="Table Grid"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> + <w:LsdException Locked="false" Priority="1" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 1"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 1"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 1"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> + <w:LsdException Locked="false" Priority="34" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> + <w:LsdException Locked="false" Priority="29" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Quote"/> + <w:LsdException Locked="false" Priority="30" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 1"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 1"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 2"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 2"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 2"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 2"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 2"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 3"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 3"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 3"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 3"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 3"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 4"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 4"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 4"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 4"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 4"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 5"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 5"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 5"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 5"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 5"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 6"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 6"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 6"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 6"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 6"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> + <w:LsdException Locked="false" Priority="19" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> + <w:LsdException Locked="false" Priority="21" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> + <w:LsdException Locked="false" Priority="31" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> + <w:LsdException Locked="false" Priority="32" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> + <w:LsdException Locked="false" Priority="33" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> + <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> + <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:1; + mso-generic-font-family:roman; + mso-font-format:other; + mso-font-pitch:variable; + mso-font-signature:0 0 0 0 0 0;} +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-520082689 -1073717157 41 0 66047 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext;} +h1 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 1 Char"; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:1; + font-size:16.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext; + font-weight:bold;} +h2 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 2 Char"; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:2; + font-size:14.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext; + font-weight:bold; + font-style:italic;} +p + {mso-style-noshow:yes; + mso-style-priority:99; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +p.MsoAcetate, li.MsoAcetate, div.MsoAcetate + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Balloon Text Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext;} +span.Heading1Char + {mso-style-name:"Heading 1 Char"; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 1"; + mso-ansi-font-size:14.0pt; + mso-bidi-font-size:14.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#365F91; + mso-themecolor:accent1; + mso-themeshade:191; + font-weight:bold;} +span.Heading2Char + {mso-style-name:"Heading 2 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 2"; + mso-ansi-font-size:13.0pt; + mso-bidi-font-size:13.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.BalloonTextChar + {mso-style-name:"Balloon Text Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Balloon Text"; + mso-ansi-font-size:8.0pt; + mso-bidi-font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-ascii-font-family:Tahoma; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + mso-hansi-font-family:Tahoma; + mso-bidi-font-family:Tahoma;} +.MsoChpDefault + {mso-style-type:export-only; + mso-default-props:yes; + font-size:10.0pt; + mso-ansi-font-size:10.0pt; + mso-bidi-font-size:10.0pt;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-qformat:yes; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif";} +</style> +<![endif]--><!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="2050"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue +vlink=purple style='tab-interval:.5in'> + +<div class=Section1> + +<h2><span style='mso-fareast-font-family:"Times New Roman"'>File Menu<o:p></o:p></span></h2> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1035" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Play Game</b> : Selecting this option from the file menu will launch +the highlighted game.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1034" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Play and Record Input</b> : Selecting this option from the file menu +will allow for the creation of an *.inp file which will allow MameUI to record +keystrokes in the game being played for playback later. Similar to a VCR.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1033" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Playback Input</b> : Selecting this option from the file menu will +allow the loading and playing of a previously recorded *.inp file.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1032" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Play and Record Wave Output</b> : Selecting this option from the file +menu will allow the recording of a sound file while playing a game. The +*.wav file is placed in the \inp directory by default.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1031" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Play and Record MNG Output</b> : Selecting this option from the file +menu will allow the recording of a MNG video file while playing a game. +The *.mng file is placed in the \inp directory by default.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1030" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Load Savestate</b> : Selecting this option from the file menu will +allow the loading and playing of a previously saved machine state, the state +being loaded must match the highlighted game.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1029" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Select Random Game</b> : Selecting this option from the file menu +will cause MameUI to randomly highlight a game in the game list shortcut key is +<b>Ctrl-R</b>.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1028" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><a href="mameui_properties.htm">Properties</a></b> : Selecting this +option from the file menu will display the highlighted game’s individual +settings, these settings over-ride those made to all games in the Options • +Default Options menu item. </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11 +id="_x0000_i1027" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Audit All Games</b> : Selecting this option from the file menu will +initiate an exhaustive check on the available games, verifying them to MameUI’s +expected results.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11 +id="_x0000_i1026" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Exit</b> : Selecting this option from the file menu will exit the +program.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --><span +style='font-size:7.5pt'>/ john iv</span></p> + +</div> + +</body> + +</html> diff --git a/docs/release/src/osd/winui/help/html/mameui_help.htm b/docs/release/src/osd/winui/help/html/mameui_help.htm new file mode 100644 index 00000000000..303f409014e --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_help.htm @@ -0,0 +1,86 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI Help Menu</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +</head> + +<body background="../images/bkground.gif"> + +<h2>Help Menu</h2> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Help Topics</b> : Selecting this option from the help menu +will launch the MameUI help file.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Troubleshooting</b> : Selecting this option from the help menu +will display the troubleshooting topic in the help file.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>New Game Changes</b> : Selecting this option from the help menu +will display added, removed, changed games.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span> +<span style="font-style:normal; font-variant:normal; font-weight:700">Mame </span> +<span style="font-weight: 700">Whatsnew.txt</span> : Selecting this option from the help menu +will display the baseline Mame whatsnew.txt file which contains information +about source changes, games added, driver improvements, etc.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>About </b>: Selecting this option from the help menu will +display information about the version of +MameUI and its contributors.</p> + +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> </p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_installprocedures.htm b/docs/release/src/osd/winui/help/html/mameui_installprocedures.htm new file mode 100644 index 00000000000..9fd78ce0494 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_installprocedures.htm @@ -0,0 +1,176 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI Installation Procedures</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +<base target="_blank"> +</head> + +<body background="../images/bkground.gif"> + +<h2>Install Procedures</h2> + +<h3><font face="Arial">To Install MameUI Manually</font></h3> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span> +<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext"> +Download the latest MameUI binary distribution [not the source] self-extracting archive +available at +</span> +<span style="font-style: normal; font-variant: normal; font-weight: 700; color:windowtext"> +<a target="_blank" href="http://mameui.info/">MameUI</a></span><span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">.</span></p> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span>Double-click the self-extracting archive .exe, and point the +directory install location to the root of the c:\ drive, or just type in the box +"c:\" [no quotes]. This will create +a c:\MameUI directory with the program and all its support files within it.</p> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span>MameUI requires ROMs to play games; if attempting to play a game +the ROMs of which are not present it will fail and list the files missing. Download the freely available public domain ROMs +[Robby Roto, Gridlee, Alien Arena, and others] from <b> +<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://www.mamedev.org/roms/">Mamedev.org</a></b>. Place these files +<i><b>still zipped</b></i>, into the +\MameUI\ROMs folder. <b>Again, do not unzip them</b>.</p> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span>Double-click the MameUI icon to launch the program. MameUI +will go through its initial diagnostics and search for available games in the +c:\MameUI\ROMs directory, and then display the GUI. If the games do not +appear on the available game list, hit F5 to force a game search or do a File +menu / Audit.</p> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span>To activate mouse control or attached gamepads to use within +games, it is necessary to toggle those options on in the Options • Default +Options • Controllers tab.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>Once a game has been selected and double-clicked, MameUI will +produce two information screens and then it will run the game. Since +MameUI is +emulating the original hardware, the software thinks it’s still in an arcade and +is starting up for the first time in the morning. Initial diagnostic screens +are run through, as well as possibly some accounting information presented to +the arcade owner.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>The game should now be running its demo/attract mode. Insert a +coin with the [<b>5</b>] key on the keyboard, the mappings for coin inserts are: +player 1 [<b>5</b>], player 2 [<b>6</b>], player 3 [<b>7</b>], player 4 [<b>8</b>]. +Now that a coin has been inserted, start the game with the [<b>1</b>] key on the +keyboard. Game start mappings are player 1 [<b>1</b>], player 2 [<b>2</b>], +player 3 [<b>3</b>], player 4 [<b>4</b>].</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>MameUI’s default control scheme is to use the inverted T arrow +keys on the keyboard for directional controls, and the left [<b>CTRL</b>] key as the +primary action button.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>While in a game within MameUI, the internal configuration menu +system can be activated by pressing the [<b>TAB</b>] key. This will bring up +the control options. These options allow remapping MameUI controls to whatever +keyboard keys or gamepad buttons are desired. The Input (general) area controls the global settings, and +the Input (this game) are the controls for the game selected. To change the +mapping, select the control to change by arrowing down to it, hit the [<b>ENTER</b>] +key and then the new desired control. Hit the [<b>ESC</b>] key to exit the [<b>TAB</b>] +menu back to the game. Note: If there are multiple mouse devices attached to the +system they can be individually configured by selecting their control in the [<strong>TAB</strong>] +menu and moving the mouse or trackball left or right, up or down to map it.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>Other keys of interest while playing a game are : </p> +<p class="MsoNormal" style="margin-left:.75in">[<b>TAB</b>] key to bring up the +internal menu system.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>~ TILDE</b>] the onscreen +display.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-p</b>] advance paused +screen one frame at a time<br> +[<b>p</b>] for the pause button.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F3</b>] resets the game.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F4</b>] displays the tile +manager and the game’s +color palette.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-F7</b>] save current +game state [a-z, 1-0] (See save state folder view for supported games)</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F7</b>] load game state [a-z, +1-0] (See save state folder view on left for supported games)</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F9</b>] changes the frameskip +on the fly.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F10</b>] toggles throttling.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F11</b>] toggles the speed +display +display.<br> +[<b>Shift-F12</b>] toggles MNG recording, once starts, second finishes.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F12</b>] takes a *.png +snapshot of the game and places it in the \MameUI\snap directory.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>ESC</b>] exits from the game +back to the MameUI GUI.</p> + +<p class="MsoNormal" style="margin-left:.75in">[<b>Left-Alt + Enter</b>] toggle +from fullscreen mode to windowed mode.</p> +<p class="MsoNormal" style="margin-left:.75in">[<strong>Insert</strong>] fast +forwards with full unthrottle and highest frameskip, convenient for speeding +through slow start-up of certain games.</p> + +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> + </p> + +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:02 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37539" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_optionsmenu.htm b/docs/release/src/osd/winui/help/html/mameui_optionsmenu.htm new file mode 100644 index 00000000000..7763fd64d71 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_optionsmenu.htm @@ -0,0 +1,639 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 12"> +<meta name=Originator content="Microsoft Word 12"> +<link rel=File-List href="mameui_optionsmenu_files/filelist.xml"> +<link rel=Edit-Time-Data href="mameui_optionsmenu_files/editdata.mso"> +<!--[if !mso]> +<style> +v\:* {behavior:url(#default#VML);} +o\:* {behavior:url(#default#VML);} +w\:* {behavior:url(#default#VML);} +.shape {behavior:url(#default#VML);} +</style> +<![endif]--> +<title>MameUI Options Menu</title> +<!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Author>john4</o:Author> + <o:LastAuthor>john4</o:LastAuthor> + <o:Revision>3</o:Revision> + <o:TotalTime>1</o:TotalTime> + <o:Created>2008-04-11T22:39:00Z</o:Created> + <o:LastSaved>2008-04-11T22:40:00Z</o:LastSaved> + <o:Pages>1</o:Pages> + <o:Words>592</o:Words> + <o:Characters>3375</o:Characters> + <o:Lines>28</o:Lines> + <o:Paragraphs>7</o:Paragraphs> + <o:CharactersWithSpaces>3960</o:CharactersWithSpaces> + <o:Version>12.00</o:Version> + </o:DocumentProperties> +</xml><![endif]--> +<link rel=themeData href="mameui_optionsmenu_files/themedata.thmx"> +<link rel=colorSchemeMapping +href="mameui_optionsmenu_files/colorschememapping.xml"> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackMoves>false</w:TrackMoves> + <w:TrackFormatting/> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:DoNotPromoteQF/> + <w:LidThemeOther>EN-US</w:LidThemeOther> + <w:LidThemeAsian>X-NONE</w:LidThemeAsian> + <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> + <w:Compatibility> + <w:BreakWrappedTables/> + <w:SnapToGridInCell/> + <w:WrapTextWithPunct/> + <w:UseAsianBreakRules/> + <w:DontGrowAutofit/> + <w:SplitPgBreakAndParaMark/> + <w:DontVertAlignCellWithSp/> + <w:DontBreakConstrainedForcedTables/> + <w:DontVertAlignInTxbx/> + <w:Word11KerningPairs/> + <w:CachedColBalance/> + </w:Compatibility> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + <m:mathPr> + <m:mathFont m:val="Cambria Math"/> + <m:brkBin m:val="before"/> + <m:brkBinSub m:val="--"/> + <m:smallFrac m:val="off"/> + <m:dispDef/> + <m:lMargin m:val="0"/> + <m:rMargin m:val="0"/> + <m:defJc m:val="centerGroup"/> + <m:wrapIndent m:val="1440"/> + <m:intLim m:val="subSup"/> + <m:naryLim m:val="undOvr"/> + </m:mathPr></w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" + DefSemiHidden="true" DefQFormat="false" DefPriority="99" + LatentStyleCount="267"> + <w:LsdException Locked="false" Priority="0" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Normal"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 2"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> + <w:LsdException Locked="false" Priority="39" Name="toc 1"/> + <w:LsdException Locked="false" Priority="39" Name="toc 2"/> + <w:LsdException Locked="false" Priority="39" Name="toc 3"/> + <w:LsdException Locked="false" Priority="39" Name="toc 4"/> + <w:LsdException Locked="false" Priority="39" Name="toc 5"/> + <w:LsdException Locked="false" Priority="39" Name="toc 6"/> + <w:LsdException Locked="false" Priority="39" Name="toc 7"/> + <w:LsdException Locked="false" Priority="39" Name="toc 8"/> + <w:LsdException Locked="false" Priority="39" Name="toc 9"/> + <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> + <w:LsdException Locked="false" Priority="10" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Title"/> + <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> + <w:LsdException Locked="false" Priority="11" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> + <w:LsdException Locked="false" Priority="22" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Strong"/> + <w:LsdException Locked="false" Priority="20" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> + <w:LsdException Locked="false" Priority="59" SemiHidden="false" + UnhideWhenUsed="false" Name="Table Grid"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> + <w:LsdException Locked="false" Priority="1" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 1"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 1"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 1"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> + <w:LsdException Locked="false" Priority="34" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> + <w:LsdException Locked="false" Priority="29" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Quote"/> + <w:LsdException Locked="false" Priority="30" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 1"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 1"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 2"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 2"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 2"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 2"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 2"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 3"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 3"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 3"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 3"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 3"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 4"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 4"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 4"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 4"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 4"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 5"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 5"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 5"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 5"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 5"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 6"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 6"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 6"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 6"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 6"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> + <w:LsdException Locked="false" Priority="19" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> + <w:LsdException Locked="false" Priority="21" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> + <w:LsdException Locked="false" Priority="31" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> + <w:LsdException Locked="false" Priority="32" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> + <w:LsdException Locked="false" Priority="33" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> + <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> + <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:1; + mso-generic-font-family:roman; + mso-font-format:other; + mso-font-pitch:variable; + mso-font-signature:0 0 0 0 0 0;} +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-520082689 -1073717157 41 0 66047 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext;} +h1 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 1 Char"; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:1; + font-size:16.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext; + font-weight:bold;} +h2 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 2 Char"; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:2; + font-size:14.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext; + font-weight:bold; + font-style:italic;} +p + {mso-style-noshow:yes; + mso-style-priority:99; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +p.MsoAcetate, li.MsoAcetate, div.MsoAcetate + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Balloon Text Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext;} +span.Heading1Char + {mso-style-name:"Heading 1 Char"; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 1"; + mso-ansi-font-size:14.0pt; + mso-bidi-font-size:14.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#365F91; + mso-themecolor:accent1; + mso-themeshade:191; + font-weight:bold;} +span.Heading2Char + {mso-style-name:"Heading 2 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 2"; + mso-ansi-font-size:13.0pt; + mso-bidi-font-size:13.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.BalloonTextChar + {mso-style-name:"Balloon Text Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Balloon Text"; + mso-ansi-font-size:8.0pt; + mso-bidi-font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-ascii-font-family:Tahoma; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + mso-hansi-font-family:Tahoma; + mso-bidi-font-family:Tahoma;} +.MsoChpDefault + {mso-style-type:export-only; + mso-default-props:yes; + font-size:10.0pt; + mso-ansi-font-size:10.0pt; + mso-bidi-font-size:10.0pt;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-qformat:yes; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif";} +</style> +<![endif]--><!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="2050"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue +vlink=purple style='tab-interval:.5in'> + +<div class=Section1> + +<h2><span style='mso-fareast-font-family:"Times New Roman"'>Options Menu<o:p></o:p></span></h2> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1033" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Game List Font</b> : Selecting this option from the options +menu will change the font used for the GUI display.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1032" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Game List Clone Color</b> : Selecting this option from the options +menu will change the font color used for the GUI display of clones in the +'Grouped' game list view.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1031" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Directories </b>: Selecting this option from the options menu will +allow for choosing a different directory for a number of MameUI support files +including: ROMs, samples, config, high scores, snapshots, input files, state, +artwork, memory card, flyers, cabinets, marquees, and nvram. Normally these +directories are created under the MameUI executable’s directory.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1030" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><a href="mameui_properties.htm">Default Options</a> </b>: Selecting +this option from the options menu will allow for the global customization of +all games in the game list. These settings are overridden by altering the +individual game settings using the File • Properties menu item.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11 +id="_x0000_i1029" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Reset to Default </b>: Selecting this option from the options menu +will allow for resetting various parts of MameUI to their defaults. +MameUI will prompt before resetting, giving the option to cancel. </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11 +id="_x0000_i1028" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Interface Options </b>: Selecting this option from the options menu +will allow: <br> +Toggling on or off the search for new games on start.<br> +Toggling on or off the ability to use a game pad to navigate the GUI (see mameui32.ini +for examples).<br> +Toggling on or off the ability to use a keyboard encoder solution to navigate +the GUI and launch games [helpful in Mame cabs] (see mameui32.ini for +examples).<br> +Selecting a random image from the \bkground directory on startup.<br> +Toggling on or off MameUI broadcasting the selected game programmatically to +other listening applications like message clients, or an LED message bar, <br> +The cursor to be hidden [helpful in Mame cabs].<br> +Selecting inheritable filters, this allows parent folders to set the filters +for their children sub-folders.<br> +No offset for clones missing parent in view toggle will cause clones not be +indented if the parent game is not present due to current folder view, missing +ROMs, or filtering.<br> +Allow history.dat file to be displayed under any, all, or none of the art +views.<br> +Choosing the screenshot [<strong>F12</strong>] naming convention.<br> +Globally clear the play time and number of times played counters.<br> +Stretch screenshot to larger size, this will enlarge the items in the art pane +scaling them upwards depending on the size of the GUI.<br> +Screenshot border size and color creates a user defined border around the art +work in the art pane on the right, set to zero to remove borders completely.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'> + +<p class=MsoNormal><span style='mso-no-proof:yes'><img border=0 width=500 +height=347 id="_x0000_i1027" src="../images/int.jpg"></span></p> + +</blockquote> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11 +id="_x0000_i1026" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b>Background Image </b>: Selecting this option from the options menu +allows the choosing of a background image from the \bkground directory. +This image will be displayed beneath the three window panes in the GUI. </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-07-16 12:04 AM -0700<!--webbot bot="Timestamp" endspan i-checksum="38077" --><span +style='font-size:7.5pt'>/ john iv</span></p> + +</div> + +</body> + +</html> diff --git a/docs/release/src/osd/winui/help/html/mameui_overview.htm b/docs/release/src/osd/winui/help/html/mameui_overview.htm new file mode 100644 index 00000000000..15ff74c884c --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_overview.htm @@ -0,0 +1,529 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 12"> +<meta name=Originator content="Microsoft Word 12"> +<link rel=File-List href="mameui_overview_files/filelist.xml"> +<link rel=Edit-Time-Data href="mameui_overview_files/editdata.mso"> +<!--[if !mso]> +<style> +v\:* {behavior:url(#default#VML);} +o\:* {behavior:url(#default#VML);} +w\:* {behavior:url(#default#VML);} +.shape {behavior:url(#default#VML);} +</style> +<![endif]--> +<title>MameUI Overview & History</title> +<!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Author>john4</o:Author> + <o:LastAuthor>john4</o:LastAuthor> + <o:Revision>2</o:Revision> + <o:TotalTime>1</o:TotalTime> + <o:Created>2008-04-11T22:44:00Z</o:Created> + <o:LastSaved>2008-04-11T22:45:00Z</o:LastSaved> + <o:Pages>1</o:Pages> + <o:Words>413</o:Words> + <o:Characters>2358</o:Characters> + <o:Lines>19</o:Lines> + <o:Paragraphs>5</o:Paragraphs> + <o:CharactersWithSpaces>2766</o:CharactersWithSpaces> + <o:Version>12.00</o:Version> + </o:DocumentProperties> +</xml><![endif]--> +<link rel=themeData href="mameui_overview_files/themedata.thmx"> +<link rel=colorSchemeMapping href="mameui_overview_files/colorschememapping.xml"> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:SpellingState>Clean</w:SpellingState> + <w:TrackMoves>false</w:TrackMoves> + <w:TrackFormatting/> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:DoNotPromoteQF/> + <w:LidThemeOther>EN-US</w:LidThemeOther> + <w:LidThemeAsian>X-NONE</w:LidThemeAsian> + <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> + <w:Compatibility> + <w:BreakWrappedTables/> + <w:SnapToGridInCell/> + <w:WrapTextWithPunct/> + <w:UseAsianBreakRules/> + <w:DontGrowAutofit/> + <w:SplitPgBreakAndParaMark/> + <w:DontVertAlignCellWithSp/> + <w:DontBreakConstrainedForcedTables/> + <w:DontVertAlignInTxbx/> + <w:Word11KerningPairs/> + <w:CachedColBalance/> + </w:Compatibility> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + <m:mathPr> + <m:mathFont m:val="Cambria Math"/> + <m:brkBin m:val="before"/> + <m:brkBinSub m:val="--"/> + <m:smallFrac m:val="off"/> + <m:dispDef/> + <m:lMargin m:val="0"/> + <m:rMargin m:val="0"/> + <m:defJc m:val="centerGroup"/> + <m:wrapIndent m:val="1440"/> + <m:intLim m:val="subSup"/> + <m:naryLim m:val="undOvr"/> + </m:mathPr></w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" + DefSemiHidden="true" DefQFormat="false" DefPriority="99" + LatentStyleCount="267"> + <w:LsdException Locked="false" Priority="0" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Normal"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> + <w:LsdException Locked="false" Priority="39" Name="toc 1"/> + <w:LsdException Locked="false" Priority="39" Name="toc 2"/> + <w:LsdException Locked="false" Priority="39" Name="toc 3"/> + <w:LsdException Locked="false" Priority="39" Name="toc 4"/> + <w:LsdException Locked="false" Priority="39" Name="toc 5"/> + <w:LsdException Locked="false" Priority="39" Name="toc 6"/> + <w:LsdException Locked="false" Priority="39" Name="toc 7"/> + <w:LsdException Locked="false" Priority="39" Name="toc 8"/> + <w:LsdException Locked="false" Priority="39" Name="toc 9"/> + <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> + <w:LsdException Locked="false" Priority="10" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Title"/> + <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> + <w:LsdException Locked="false" Priority="11" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> + <w:LsdException Locked="false" Priority="22" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Strong"/> + <w:LsdException Locked="false" Priority="20" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> + <w:LsdException Locked="false" Priority="59" SemiHidden="false" + UnhideWhenUsed="false" Name="Table Grid"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> + <w:LsdException Locked="false" Priority="1" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 1"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 1"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 1"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> + <w:LsdException Locked="false" Priority="34" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> + <w:LsdException Locked="false" Priority="29" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Quote"/> + <w:LsdException Locked="false" Priority="30" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 1"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 1"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 2"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 2"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 2"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 2"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 2"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 3"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 3"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 3"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 3"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 3"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 4"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 4"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 4"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 4"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 4"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 5"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 5"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 5"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 5"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 5"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 6"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 6"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 6"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 6"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 6"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> + <w:LsdException Locked="false" Priority="19" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> + <w:LsdException Locked="false" Priority="21" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> + <w:LsdException Locked="false" Priority="31" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> + <w:LsdException Locked="false" Priority="32" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> + <w:LsdException Locked="false" Priority="33" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> + <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> + <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:1; + mso-generic-font-family:roman; + mso-font-format:other; + mso-font-pitch:variable; + mso-font-signature:0 0 0 0 0 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman","serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext;} +h1 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 1 Char"; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:1; + font-size:16.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext; + font-weight:bold;} +p + {mso-style-noshow:yes; + mso-style-priority:99; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +span.Heading1Char + {mso-style-name:"Heading 1 Char"; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 1"; + mso-ansi-font-size:14.0pt; + mso-bidi-font-size:14.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#365F91; + mso-themecolor:accent1; + mso-themeshade:191; + font-weight:bold;} +.MsoChpDefault + {mso-style-type:export-only; + mso-default-props:yes; + font-size:10.0pt; + mso-ansi-font-size:10.0pt; + mso-bidi-font-size:10.0pt;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-qformat:yes; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif";} +</style> +<![endif]--><!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="2050"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue +vlink=purple style='tab-interval:.5in'> + +<div class=Section1> + +<h1><span style='mso-fareast-font-family:"Times New Roman"'>MameUI Overview +& History<o:p></o:p></span></h1> + +<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left: +0in'>MameUI [previously Mame32] is an emulator. Simply put, it allows a +PC to mimic the internal hardware of a large number of stand-alone arcade +machines from 1975 to 2003+. Combined with the original ROMs from these +arcade machines, MameUI will display and play the games on a PC. The +software thinks it’s still running on its original box. MameUI is the GUI +version of Mame™, the M.ultiple A.rcade M.achine E.mulator. It has an +attractive, elegant, graphical interface which allows the user to forego having +to type command line parameters, although it can still be passed these +arguments. For many, it’s easier to click the icon of the game.</p> + +<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left: +0in'><b>1997.02.05</b> - In the beginning, Italian programmer and arcade +preservationist, Nicola Salmoria, combined his individual game emulators into +the DOS based multi-game emulator, Mame. It was released Feb. 05, +1997. Since the source was also released, numerous people contributed new +drivers to add support for more and more games. The number of contributors +grew into the hundreds and has continued to increase over the years.</p> + +<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left: +0in'><b>1997.08</b> - Mame32 was the first port of Mame to the Microsoft +Windows platform. It originally came out in August of 1997, adding the +GUI and a considerable amount of new code to transition to Win32. The +original Mame32 was authored by Chris Kirmse and later integrated Michael +Soderstrom's Win32 command-line port of Mame. Michael then coordinated, +maintained the source, and produced the releases. Mike Haaland and John +Hardy IV joined the project in late 1997. Mike would wholly revamp the +user interface to its current state and continue collaborating on core +development. John provided testing, WIP updates, artwork, and served as the +external point of contact for the team. Mame32 releases followed the Mame +DOS releases by a few days to a few weeks over the next four years.</p> + +<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left: +0in'><b>2001.05.24</b> - With the inexorable phasing out of DOS, the authors of +the DOS based Mame ported it to the Microsoft Windows platform as a command +line application. Evolutionally similar to MameDOS, it is run by typing +in arguments from a command prompt, and has no GUI. [many people try to double +click it, which opens up the command line window briefly, displays a message, +then closes]. </p> + +<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left: +0in'><b>2001.07.24</b> - Mame32 was re-positioned, with the familiar GUI +grafted onto the new Mame Windows engine. Mame32 is currently maintained +by Kirmse, Haaland, and Hardy and is now released by John IV shortly after Mame +on the <b><a href="http://mameui.info/" target="_blank">MameUI</a></b> +site.</p> + +<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left: +0in'><strong><span style='font-family:"Arial","sans-serif"'>2007.11.11</span></strong> +- Mame32 was rebranded as MameUI to avoid confusion of the 64bit build of the +core version. It is compiled as MameUI32 and MameUI64 for the different +target platforms.</p> + +<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left: +0in'> </p> + +<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left: +0in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 01:57 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="38483" --><span +style='font-size:7.5pt'>/ john iv</span></p> + +</div> + +</body> + +</html> diff --git a/docs/release/src/osd/winui/help/html/mameui_playing.htm b/docs/release/src/osd/winui/help/html/mameui_playing.htm new file mode 100644 index 00000000000..8444676b99b --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_playing.htm @@ -0,0 +1,136 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI Playing a Game & Internal Controls</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +</head> + +<body background="../images/bkground.gif"> + +<h2>Playing a Game & Internal Controls</h2> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span>To activate mouse control or attached gamepads to use within +games, it is necessary to toggle those options on in the Options • Default +Options • Controllers tab.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>Once a game has been selected and double-clicked, MameUI will +produce two information screens and then it will run the game. Since +MameUI is +emulating the original hardware, the software thinks it’s still in an arcade and +is starting up for the first time in the morning. Initial diagnostic screens +are run through, as well as possibly some accounting information presented to +the arcade owner.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>The game should now be running its demo/attract mode. Insert a +coin with the [<b>5</b>] key on the keyboard, the mappings for coin inserts are: +player 1 [<b>5</b>], player 2 [<b>6</b>], player 3 [<b>7</b>], player 4 [<b>8</b>]. +Now that a coin has been inserted, start the game with the [<b>1</b>] key on the +keyboard. Game start mappings are player 1 [<b>1</b>], player 2 [<b>2</b>], +player 3 [<b>3</b>], player 4 [<b>4</b>].</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>MameUI’s default control scheme is to use the inverted T arrow +keys on the keyboard for directional controls, and the left [<b>CTRL</b>] key as the +primary action button.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>While in a game within MameUI, the internal configuration menu +system can be activated by pressing the [<b>TAB</b>] key. This will bring up +the control options. These options allow remapping MameUI controls to whatever +keyboard keys or gamepad buttons are desired. The Input (general) area controls the global settings, and +the Input (this game) are the controls for the game selected. To change the +mapping, select the control to change by arrowing down to it, hit the [<b>ENTER</b>] +key and then the new desired control. Hit the [<b>ESC</b>] key to exit the [<b>TAB</b>] +menu back to the game. Note: If there are multiple mouse devices attached to the +system they can be individually configured by selecting their control in the [<strong>TAB</strong>] +menu and moving the mouse or trackball left or right, up or down to map it.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span>Other keys of interest while playing a game are : </p> +<p class="MsoNormal" style="margin-left:.75in">[<b>TAB</b>] key to bring up the +internal menu system.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>~ TILDE</b>] the onscreen +display.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-p</b>] advance paused +screen one frame at a time<br> +[<b>p</b>] for the pause button.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F3</b>] resets the game.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F4</b>] displays the tile +manager and the game’s +color palette.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-F7</b>] save current +game state [a-z, 1-0] (See save state folder view for supported games)</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F7</b>] load game state [a-z, +1-0] (See save state folder view on left for supported games)</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F9</b>] changes the frameskip +on the fly.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F10</b>] toggles throttling.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F11</b>] toggles the speed +display +display.<br> +[<b>Shift-F12</b>] toggles MNG recording, once starts, second finishes.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>F12</b>] takes a *.png +snapshot of the game and places it in the \MameUI\snap directory.</p> +<p class="MsoNormal" style="margin-left:.75in">[<b>ESC</b>] exits from the game +back to the MameUI GUI.</p> + +<p class="MsoNormal" style="margin-left:.75in">[<b>Left-Alt + Enter</b>] toggle +from fullscreen mode to windowed mode.</p> +<p class="MsoNormal" style="margin-left:.75in">[<strong>Insert</strong>] fast +forwards with full unthrottle and highest frameskip, convenient for speeding +through slow start-up of certain games.</p> + +<p class="MsoNormal" style="margin-left: .75in"> </p> +<p class="MsoNormal" style="margin-left: .75in"><font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_properties.htm b/docs/release/src/osd/winui/help/html/mameui_properties.htm new file mode 100644 index 00000000000..7601b7e5b05 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_properties.htm @@ -0,0 +1,1034 @@ +<html xmlns:v="urn:schemas-microsoft-com:vml" +xmlns:o="urn:schemas-microsoft-com:office:office" +xmlns:w="urn:schemas-microsoft-com:office:word" +xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" +xmlns="http://www.w3.org/TR/REC-html40"> + +<head> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<meta name=ProgId content=Word.Document> +<meta name=Generator content="Microsoft Word 12"> +<meta name=Originator content="Microsoft Word 12"> +<link rel=File-List href="mameui_properties_files/filelist.xml"> +<link rel=Edit-Time-Data href="mameui_properties_files/editdata.mso"> +<!--[if !mso]> +<style> +v\:* {behavior:url(#default#VML);} +o\:* {behavior:url(#default#VML);} +w\:* {behavior:url(#default#VML);} +.shape {behavior:url(#default#VML);} +</style> +<![endif]--> +<title>MameUI Properties</title> +<!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Author>john4</o:Author> + <o:LastAuthor>john4</o:LastAuthor> + <o:Revision>2</o:Revision> + <o:TotalTime>3</o:TotalTime> + <o:Created>2008-04-11T22:41:00Z</o:Created> + <o:LastSaved>2008-04-11T22:44:00Z</o:LastSaved> + <o:Pages>2</o:Pages> + <o:Words>3044</o:Words> + <o:Characters>17351</o:Characters> + <o:Lines>144</o:Lines> + <o:Paragraphs>40</o:Paragraphs> + <o:CharactersWithSpaces>20355</o:CharactersWithSpaces> + <o:Version>12.00</o:Version> + </o:DocumentProperties> +</xml><![endif]--> +<link rel=themeData href="mameui_properties_files/themedata.thmx"> +<link rel=colorSchemeMapping +href="mameui_properties_files/colorschememapping.xml"> +<!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackMoves>false</w:TrackMoves> + <w:TrackFormatting/> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:DoNotPromoteQF/> + <w:LidThemeOther>EN-US</w:LidThemeOther> + <w:LidThemeAsian>X-NONE</w:LidThemeAsian> + <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> + <w:Compatibility> + <w:BreakWrappedTables/> + <w:SnapToGridInCell/> + <w:WrapTextWithPunct/> + <w:UseAsianBreakRules/> + <w:DontGrowAutofit/> + <w:SplitPgBreakAndParaMark/> + <w:DontVertAlignCellWithSp/> + <w:DontBreakConstrainedForcedTables/> + <w:DontVertAlignInTxbx/> + <w:Word11KerningPairs/> + <w:CachedColBalance/> + </w:Compatibility> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + <m:mathPr> + <m:mathFont m:val="Cambria Math"/> + <m:brkBin m:val="before"/> + <m:brkBinSub m:val="--"/> + <m:smallFrac m:val="off"/> + <m:dispDef/> + <m:lMargin m:val="0"/> + <m:rMargin m:val="0"/> + <m:defJc m:val="centerGroup"/> + <m:wrapIndent m:val="1440"/> + <m:intLim m:val="subSup"/> + <m:naryLim m:val="undOvr"/> + </m:mathPr></w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" + DefSemiHidden="true" DefQFormat="false" DefPriority="99" + LatentStyleCount="267"> + <w:LsdException Locked="false" Priority="0" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Normal"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> + <w:LsdException Locked="false" Priority="9" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="heading 2"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> + <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> + <w:LsdException Locked="false" Priority="39" Name="toc 1"/> + <w:LsdException Locked="false" Priority="39" Name="toc 2"/> + <w:LsdException Locked="false" Priority="39" Name="toc 3"/> + <w:LsdException Locked="false" Priority="39" Name="toc 4"/> + <w:LsdException Locked="false" Priority="39" Name="toc 5"/> + <w:LsdException Locked="false" Priority="39" Name="toc 6"/> + <w:LsdException Locked="false" Priority="39" Name="toc 7"/> + <w:LsdException Locked="false" Priority="39" Name="toc 8"/> + <w:LsdException Locked="false" Priority="39" Name="toc 9"/> + <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> + <w:LsdException Locked="false" Priority="10" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Title"/> + <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> + <w:LsdException Locked="false" Priority="11" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> + <w:LsdException Locked="false" Priority="22" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Strong"/> + <w:LsdException Locked="false" Priority="20" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> + <w:LsdException Locked="false" Priority="59" SemiHidden="false" + UnhideWhenUsed="false" Name="Table Grid"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> + <w:LsdException Locked="false" Priority="1" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 1"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 1"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 1"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> + <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> + <w:LsdException Locked="false" Priority="34" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> + <w:LsdException Locked="false" Priority="29" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Quote"/> + <w:LsdException Locked="false" Priority="30" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 1"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 1"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 2"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 2"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 2"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 2"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 2"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 3"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 3"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 3"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 3"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 3"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 4"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 4"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 4"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 4"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 4"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 5"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 5"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 5"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 5"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 5"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> + <w:LsdException Locked="false" Priority="60" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Shading Accent 6"/> + <w:LsdException Locked="false" Priority="61" SemiHidden="false" + UnhideWhenUsed="false" Name="Light List Accent 6"/> + <w:LsdException Locked="false" Priority="62" SemiHidden="false" + UnhideWhenUsed="false" Name="Light Grid Accent 6"/> + <w:LsdException Locked="false" Priority="63" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> + <w:LsdException Locked="false" Priority="64" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> + <w:LsdException Locked="false" Priority="65" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> + <w:LsdException Locked="false" Priority="66" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> + <w:LsdException Locked="false" Priority="67" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> + <w:LsdException Locked="false" Priority="68" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> + <w:LsdException Locked="false" Priority="69" SemiHidden="false" + UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> + <w:LsdException Locked="false" Priority="70" SemiHidden="false" + UnhideWhenUsed="false" Name="Dark List Accent 6"/> + <w:LsdException Locked="false" Priority="71" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> + <w:LsdException Locked="false" Priority="72" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful List Accent 6"/> + <w:LsdException Locked="false" Priority="73" SemiHidden="false" + UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> + <w:LsdException Locked="false" Priority="19" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> + <w:LsdException Locked="false" Priority="21" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> + <w:LsdException Locked="false" Priority="31" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> + <w:LsdException Locked="false" Priority="32" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> + <w:LsdException Locked="false" Priority="33" SemiHidden="false" + UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> + <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> + <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4; + mso-font-charset:1; + mso-generic-font-family:roman; + mso-font-format:other; + mso-font-pitch:variable; + mso-font-signature:0 0 0 0 0 0;} +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:-520082689 -1073717157 41 0 66047 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext;} +h1 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 1 Char"; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:1; + font-size:16.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext; + font-weight:bold;} +h2 + {mso-style-priority:9; + mso-style-unhide:no; + mso-style-qformat:yes; + mso-style-link:"Heading 2 Char"; + margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:2; + font-size:14.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext; + font-weight:bold; + font-style:italic;} +a:link, span.MsoHyperlink + {mso-style-priority:99; + color:blue; + text-decoration:underline; + text-underline:single;} +p + {mso-style-noshow:yes; + mso-style-priority:99; + mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Arial","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:black;} +p.MsoAcetate, li.MsoAcetate, div.MsoAcetate + {mso-style-noshow:yes; + mso-style-priority:99; + mso-style-link:"Balloon Text Char"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + color:windowtext;} +span.Heading1Char + {mso-style-name:"Heading 1 Char"; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 1"; + mso-ansi-font-size:14.0pt; + mso-bidi-font-size:14.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#365F91; + mso-themecolor:accent1; + mso-themeshade:191; + font-weight:bold;} +span.Heading2Char + {mso-style-name:"Heading 2 Char"; + mso-style-noshow:yes; + mso-style-priority:9; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Heading 2"; + mso-ansi-font-size:13.0pt; + mso-bidi-font-size:13.0pt; + font-family:"Cambria","serif"; + mso-ascii-font-family:Cambria; + mso-ascii-theme-font:major-latin; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:major-fareast; + mso-hansi-font-family:Cambria; + mso-hansi-theme-font:major-latin; + mso-bidi-font-family:"Times New Roman"; + mso-bidi-theme-font:major-bidi; + color:#4F81BD; + mso-themecolor:accent1; + font-weight:bold;} +span.BalloonTextChar + {mso-style-name:"Balloon Text Char"; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-unhide:no; + mso-style-locked:yes; + mso-style-link:"Balloon Text"; + mso-ansi-font-size:8.0pt; + mso-bidi-font-size:8.0pt; + font-family:"Tahoma","sans-serif"; + mso-ascii-font-family:Tahoma; + mso-fareast-font-family:"Times New Roman"; + mso-fareast-theme-font:minor-fareast; + mso-hansi-font-family:Tahoma; + mso-bidi-font-family:Tahoma;} +.MsoChpDefault + {mso-style-type:export-only; + mso-default-props:yes; + font-size:10.0pt; + mso-ansi-font-size:10.0pt; + mso-bidi-font-size:10.0pt;} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-priority:99; + mso-style-qformat:yes; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman","serif";} +</style> +<![endif]--><!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="2050"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue +vlink=purple style='tab-interval:.5in'> + +<div class=Section1> + +<h2><span style='mso-fareast-font-family:"Times New Roman"'>Default Options +& Game Properties<o:p></o:p></span></h2> + +<p class=MsoNormal>The default options and game properties tabs of MameUI are +used to set the vast majority of game play parameters. The Game +Properties dialogue box, accessible from the File • Properties menu item, +shares all the tabs of the Default Options dialogue box, accessible from the +Options • Default Options menu item. The Game Properties dialogue +contains two additional tabs which give information on the game selected, and +its current audited state.</p> + +<p class=MsoNormal> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1043" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>General Tab</span></b> : [only available +in Game Properties dialogue] This tab provides information on the game +selected, this information includes manufacturer name and date, driver status, +original CPU, original sound hardware, original screen resolution and +orientation, and number of colors.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1042" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Audit Tab</span></b> : [only available in +the Game Properties dialogue] This tab performs a ‘mini-audit’ on the game +selected, determining its status compared to what MameUI expects. Status +will be reported and missing files with CRC information will appear in the +details view.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1041" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Display Tab</span></b> : This tab allows +the setting of numerous video options.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Run in a window</b> : MameUI +will launch the game selected in a window on the desktop, the window can be +resized by pausing the emulation and dragging the borders. The resolution +of the window can also be set in the Screen tab.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Start out maximized </b>: +Toggling this option on ensures that when windowed mode is used, the maximum +amount of space is used. Toggle this option off to play the smallest +version of the windowed game.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Enforce aspect ratio </b>: This +option is used in conjunction with windowed mode, it forces the aspect ratio to +be maintained when the game is paused and the window is dragged and +resized. Turn this off to create long, thin game windows, or short fat, +etc.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Throttle </b>: This option +prevents MameUI from running games as fast as the host CPU can go. Unless +this is toggled on, a modern x86 processor will run Donkey Kong at a thousand +times its original speed.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Rotation </b>: This drop down +box allows MameUI to rotate the video output by 90 degrees in either +direction. This setting is useful if used in conjunction with a pivoting +monitor [the auto options], or playing games with a monitor on its side. +Doing so allows vertical orientated games to be played full screen. The +additional 'auto clockwise' and 'auto anti-clockwise' settings are particularly +useful for rotating LCD monitors, these settings will force vertical games to +one 90 degree angle or the other depending on which way the LCD pivots.<br> +<b>Flip screen upside down </b>: This option mirrors the image vertically.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Flip screen left right </b>: +This option mirrors the image horizontally.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Direct3D</b> : <b>Use Bilinear +Filtering</b> : This option enables bilinear filtering on game screen +graphics. 'Fuzziness' of image can be controlled by the bitmap prescaling +option, increasing it sharpens the image. Leaving this unchecked produces +the crispest output but does point filtering leading to scaling artifacts.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Direct3D</b> : <b>Version</b> : +This option allows toggling between version 9 and version 8 of D3D. It's +almost always preferable to stay with 9.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>DirectDraw</b> : <b>Stretch +using hardware</b> : Used in conjunction with DDraw as the video mode, this +toggle if turned off scales upwards the size of the games original native +resolution at the same aspect ratio.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Bitmap prescaling</b> : This +option works in conjunction with bilinear filtering. The higher up the +slider, the sharper the screen output.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Gamma correction </b>: + This option controls the gamma, which produces a potentially nonlinear +black to white ramp, for the game screens. This option does not affect the artwork +or other parts of the display. Using MameUI's in-game tilde menu [~], one can +individually set the gamma for each game screen; this option controls the +initial value for all visible game screens. The standard value is 1.0, which +gives a linear ramp from black to white. Selecting lower values (down to 0.1) +will increase the nonlinearity toward black, while selecting higher +values (up to 3.0) will push the nonlinearity toward white. The default +is 1.0.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Brightness correction </b>: +This option controls the default brightness, or black level, of the game +screens. This option does not affect the artwork or other parts of the +display. Using MameUI's in-game tilde menu [~], one can individually set +the brightness for each game screen; this option controls the initial value for +all visible game screens. The standard value is 1.0. Selecting lower values +(down to 0.1) will produce a darkened display, while selecting higher values +(up to 2.0) will give a brighter display. The default is 1.0.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Contrast correction </b>: +Controls the contrast, or white level, of the game screens. This option does +not affect the artwork or other parts of the display. Using MameUI's in-game +tilde menu [~], one can individually set the contrast for each game screen; +this option controls the initial value for all visible game screens. The +standard value is 1.0. Selecting lower values (down to 0.1) will produce a +dimmer display, while selecting higher values (up to 2.0) will give a more +saturated display. The default is 1.0.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Pause Brightness </b>: This +option controls the screen brightness when a game is paused.</p> + +<p class=MsoNormal style='margin-left:.75in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1040" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Advanced Tab</span></b> : This tab allows +the setting of additional numerous video options.</p> + +<p class=MsoNormal style='margin-left:.75in'> </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Triple buffering </b>: This +option controls how MameUI draws to the screen, if toggled on, it will draw to +three buffers and cycle between them. This setting when toggled on can +also help alleviate tearing that sometimes occurs in some scrolling games.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Sync to monitor refresh </b>: +This option tells MameUI to ignore the original game’s refresh rate and sync it +to the output monitor’s current rate. This can cause the game to run too +fast if the output monitor is using 85Hz for example. This option is +preferable if MameUI is used with authentic arcade monitor hardware and video +card modes that are tweaked appropriately.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Wait for vertical sync </b>: +This option tells MameUI to wait for the refresh period on the output monitor +to finish before starting to draw video to the screen, this works functionally +similarly to triple buffer but is better suited for running games in a window +to alleviate tearing. </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Refresh speed </b>: This option +tells MameUI to alter the speed of the emulation for games that run at a higher +speed than the host monitor. For example this should be checked if +running Pac-Man on a fixed 60Hz LCD since Pac-Man runs at 60.60Hz. This +alleviates sound hiccups as well in the previous situation.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Emulation speed </b>: This slider +allows for the altering of the emulation speed, it can be dropped down or +increased by three [or to 100 in the \ini.] </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Frame skipping </b>: These +settings allow MameUI to skip frames of animation when playing games, if the +host CPU is not fast enough to run the game. Optimally this should be +toggled off and 'draw every frame' selected.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Full screen gamma</b> : This +option is similar to the gamma correction in the display tab but works on all +graphic elements of the screen including the UI.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Full screen brightness </b>: +This option is similar to the brightness correction in the display tab but +works on all graphic elements of the screen including the UI.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Full screen contrast</b> : This +option is similar to the contrast correction in the display tab but works on +all graphic elements of the screen including the UI.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Effect</b> : Starting with +version .107 simulated arcade monitor effects are handled by the overlay of +*.png masks on the game. The *.png files reside in the \artwork directory +and are simple patterns creatable and editable in applications like +Photoshop. If scan lines are desired and a very high resolution is being +used [1280x1024 or above] the Scanlines75x4 item is suggested. For games +with artwork whose playfields are smaller on screen as the results of bezels, it's +recommended to use Scanlines75x3 or Scanlines75x2.</p> + +<p class=MsoNormal style='margin-left:.75in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1039" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Screen Tab</span></b> : This tab allows +the alteration of the various screen output settings.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Number of screens </b>:<b> </b>This +slider controls the number of screens MameUI will draw. In windowed mode up +to four different output windows can be created of varying sizes, shapes, +etc. In full screen mode the number of screens can match the physical +number of monitors connected to the host system. This allows playing +multi-monitor arcade games like Punch-Out or similar on 2 physical computer +monitors in dual head mode.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Screen </b>: This option allows +the choice of the physical monitor to use in conjunction with number of screens +and screennumber. The drop down is populated by the \\.\DISPLAY1 and/or \\.\DISPLAY2 +and so forth. Leaving this toggle to Auto will have MameUI attempt to +order the game screens as it sees fit, for Punch-Out for example it will place +the main fighting screen on \\.\DISPLAY1 and the status/display screen on +secondary monitor \\.\DISPLAY2. </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Aspect Ratio </b>: Allows +control over the physical aspect ratio of the physical monitor for each +screen. If running full screen and auto aspect ratio is <b>off</b>, then +switch resolutions to fit must be toggled on to work. Typically this +should be set to autoselect unless weird shaped windows for game play are +desired.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>View</b> : This drop down +allows the selection of the default view of the in-game display. This can +be auto which is effectively 4:3 for horizontal games or 3:4 for vertical +games, native, which is the game's original native resolution, or cocktail +which is duplicated view for 2 people playing the game on opposite sides of a +cocktail cabinet.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Screennumber</b> : This drop +down is populated based on the slider setting of number of screens to its +left. Each item in the screennumber drop down can be individually +tailored with screen, resolution, aspect ratio, and view. Thus it is possible +to have elaborate combinations for game play, for example. Number of +screens 3, run in windowed mode, have screen0 go to the secondary \\.\DISPLAY2, +running in 320x240 resolution at a color depth of 16bpp with a refresh of 75Hz, +screen1 go to primary display \\.\DISPLAY1, run at 640x480x32@60 and use the +cocktail view, etc. Each item in the Screennumber drop down will populate +its own settings and maintain those settings until returned to a default.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Resolution</b> : These options +control the size and refresh rate of the screennumbers. In windowed mode +only the resolution is selectable.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Switch resolutions to fit</b> : +This toggle must be <b>on</b> if any of the resolution choices are altered away +from auto in full screen mode. It does not impact windowed mode.</p> + +<p class=MsoNormal style='margin-left:.75in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1038" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Sound Tab</span> </b>: This tab allows for +setting the sound options.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Enable sound and sound CPUs </b>: +This setting toggles sound on or off in games.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Use samples </b>: This setting +allows MameUI to utilize samples for games which do not have their sound +hardware emulated, or were using analogue circuitry.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Sample Rate </b>: This setting +tells MameUI at what rate to output sound, the higher, the better. +Lowering this setting can also result in faster performance on lower end +machines.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Volume attenuation </b>: This +setting allows MameUI to set the initial volume level, the default is 0dB.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Audio latency </b>: This slider +allows the adjustment of the amount of latency built into the audio +streaming. Increasing the slider to the right on faster machines can help +alleviate some desync and scratchiness in the sound on some configurations.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1037" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Controllers Tab</span> </b>: This tab +allows for setting the game controller options.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Enable joystick input </b>: +This setting tells MameUI to utilize any currently connected joysticks. +MameUI will interrogate the game controllers control panel and use ID#1 and up.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Analog joystick deadzone</b> : +This setting controls how MameUI translates analog input to games that require +digital input.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Enable lightgun input</b> : +This setting tells MameUI to utilize a lightgun for target/shooting games that +require analogue control, like Crossbow, Police Trainer, Rev X, etc. and will +only be available on non-XP based systems. If using XP then mouse input +should be toggled on to allow mapping of the lightgun functions in the in-game +[<b>TAB</b>] menu.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Offscreen shots reload</b> : +This option if checked will internally remap the second mouse button and allow +it to be used for simulated 'reloading' in gun games that require it.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Dual lightguns</b> : This is a +legacy switch for non-XP systems which activates code to handle internal +mapping of the second light gun connected to the system. If WinXP is used +this is not required and is grayed out, the second gun is mapped like a +joystick or mouse in the in-game [<b>TAB</b>] menu.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Enable mouse input </b>: This +setting tells MameUI to utilize the mouse in games that require analogue +control methods. On XP systems the mouse toggle should be on if a +lightgun is to be utilised.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Enable steadykey support </b>: +This option tells MameUI to use a different keyboard handling routine that +makes it easier to register simultaneous key presses for games that require it +for special moves [Street Fighter II, etc.]. However it can produce more +sluggish results in other games.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Default input layout </b>: This +drop down menu allows MameUI to choose between multiple key mappings, including +keyboard mapping for various third-party control panels. It will also +display user defined controller mappings, if created in the \ctrlr +directory. Various arcade game controller companies produce custom made +configuration files for their setups; these *.cfg files need to go in the +\MameUI\ctrlr folder to be recognized in the MameUI controllers tab. +These files are the responsibility of the controller companies themselves and +are not included or endorsed by MameUI, they can typically be found at the +companies’ web sites.</p> + +<p class=MsoNormal style='margin-left:.75in'><strong><span style='font-family: +"Arial","sans-serif"'>Multiple keyboards</span></strong> : Enabling this +checkbox tells MameUI to allow mapping to different physical keyboards that may +be attached to the host system, this allows rather esoteric options like +multiple keyboards for games like 2 player Keyboard Mania or Typing of the Dead +etc. If left off MameUI maps all keyboard controls to all keyboard +devices.</p> + +<p class=MsoNormal style='margin-left:.75in'><strong><span style='font-family: +"Arial","sans-serif"'>Multiple mice</span></strong> : Enabling this checkbox +tells MameUI to allow mapping to different physical mice devices. Useful +for systems that have spinners, trackballs, main system mice etc. If left +off MameUI maps all mice controls to all mouse devices.</p> + +<p class=MsoNormal style='margin-left:.75in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1036" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Controller Mapping Tab</span> </b>: This +tab allows choosing which analogue device connected to the system for MameUI to +map a game's internal analogue controls to. These options should be used +in lieu of the global 'mouse' setting which can conflict with attached +joysticks/gamepads.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11 +id="_x0000_i1035" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Miscellaneous Tab</span> </b>: This tab +allows for setting additional options.</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Enable game cheats </b>: This +setting if toggled on allows MameUI to use external cheat.dat files.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Error log (for developers) </b>: +This setting if toggled on produces an error log of illegal memory accesses.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Sleep when possible </b>: This +setting if toggled on allows MameUI to be more multitasking friendly in that it +does not use as much processor time. If this setting is toggled off +MameUI will utilize 100% of the CPU for playing games. Some machines slow +down dramatically if this setting is toggled on, particularly laptops. +This maps to the -sleep option in Mame.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Skip game info</b> : If this +options is on, MameUI will immediately launch a game without information +screens. However screens regarding problems in the drivers will still be +shown [missing sound, unemulated protection, problems with video etc.].</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Save game state on exit</b> : This +toggle will allow MameUI to automatically save the current machine state when +the game is exited with the ESC key. As a result when the game is +re-launched it's like the machine was never turned off. This feature +allows older games to maintain their hi-scores indefinitely where it wasn't +originally supported. The files are stored in the MameUI\sta +directory. The list of games that support save states is present in the +left hand folder view pane of the UI as 'Save State'.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Thread Priority slider</b> : +Increasing the Windows thread priority for MameUI giving it more CPU and +resources slices, can negatively impact other running processes. Using +setting 1 sets it to real-time which interferes with keyboard and joystick +controls as well as other running apps. Setting 1 is not recommended as a +result. Some Dells and other laptop computers may require setting slider +to -15 to get keyboard control working properly.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Multi-threaded rendering </b>: +This toggle allows multi-core or multi-chip or HyperThreaded machines to pass +the final video blit off to a second thread. This can lead up to a 40% +increase in unthrottled FPS using D3D in GPU limited games. However it +does not have a real world effect on games that are CPU bound, like the heavy +seattle.c, or vegas.c games. Unless in possession of one of these types +of machines, this should be toggled off to avoid potential slowdowns.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Use additional game artwork </b>: +This setting if toggled on allows MameUI to utilize the external artwork +packages available at <a href="http://www.mameworld.net/mrdo" target="_blank">Mr. +Do’s site</a> for display in games like Armor Attack, Discs of Tron, Lunar +Lander, Warrior, etc. The artwork packages are placed in the \artwork +directory. Each element of the artwork package can be toggled: bezel, +overlay, and background. </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Crop Artwork</b> : Selecting +the crop artwork toggle will shrink the scene down to the games original +dimensions, cropping any available art pieces.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>BIOS</b> : This drop down +allows the use of a variety of different supported NeoGeo or Sega BIOS +files. The option will only be available when altering the driver family +via the source folder view on the left pane, or individual games in the driver +family.</p> + +<p class=MsoNormal style='margin-left:.75in'> </p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span +style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11 +id="_x0000_i1034" src="../images/mame321.gif" alt="*"></span><span +style='font-size:7.0pt;font-family:"Times New Roman","serif"'> +</span><b><span style='color:maroon'>Vector Tab</span> </b>: This tab allows +for setting additional options for games that originally utilized a vector +monitor instead of a raster monitor. [Asteroids, Battlezone, Armor Attack, +etc.]</p> + +<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'> </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Draw antialiased vectors </b>: +This setting if toggled on tells MameUI to draw vector lines with an additional +pleasing antialiased look.</p> + +<p class=MsoNormal style='margin-left:.75in'><b>Beam width</b> : This slider +allows MameUI to set the beam width on the vector lines drawn, increasing it +creates wider vectors. </p> + +<p class=MsoNormal style='margin-left:.75in'><b>Flicker</b> : This slider tells +MameUI to artificially create a flicker effect on the vector lines.</p> + +<p class=MsoNormal style='margin-left:.75in'> </p> + +<p class=MsoNormal><span style='mso-no-proof:yes'><img border=0 width=250 +height=344 id="_x0000_i1033" src="../images/1.jpg"></span><span +style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1032" +src="../images/2.jpg"></span><span style='mso-no-proof:yes'><img border=0 +width=250 height=344 id="_x0000_i1031" src="../images/3.jpg"></span><span +style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1030" +src="../images/4.jpg"></span><span style='mso-no-proof:yes'><img border=0 +width=250 height=344 id="_x0000_i1029" src="../images/5.jpg"></span><span +style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1028" +src="../images/6.jpg"></span><span style='mso-no-proof:yes'><img border=0 +width=250 height=344 id="_x0000_i1027" src="../images/7.jpg"></span><span +style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1026" +src="../images/8.jpg"></span></p> + +<p class=MsoNormal style='margin-left:.75in'> </p> + +<p class=MsoNormal><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --><span +style='font-size:7.5pt'>/ john iv</span></p> + +</div> + +</body> + +</html> diff --git a/docs/release/src/osd/winui/help/html/mameui_settings.htm b/docs/release/src/osd/winui/help/html/mameui_settings.htm new file mode 100644 index 00000000000..0224c694af2 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_settings.htm @@ -0,0 +1,96 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI Settings</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +<base target="_blank"> +</head> + +<body background="../images/bkground.gif"> + +<h2>MameUI Settings</h2> + +<h3><font face="Arial">Suggested MameUI Default Settings</font></h3> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span> +<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext"> +Advanced / Triple Buffering ensures there should be no 'tearing' of screen +images if the frame rate doesn't exactly match the monitor screen refresh in +full-screen mode. +</span>Particularly evident in vertical scrolling games. This however can +lead to sound stuttering on games that are above 60Hz [early Namco games like +Pac-Man, etc.] if the user's monitor is +not capable of being driven at a higher refresh rate, like modern LCDs. If +a modern LCD fixed at 60Hz is in use, toggle on the Advanced • Refresh game +speed. </p> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span> +<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext"> +Simulated monitor effects are now handled via *.png files in the \artwork +directory. They are accessed in Advanced / Select Effect. +Scanlines75x4 provides a 75% black line every four pixel rows.</span></p> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<span style="font-family: Symbol; color: windowtext"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> +</span></span>Bitmap prescaling in Display is the new control for determining +how fuzzy or sharp the bilinear filtering of D3D is. Increasing this +number sharpens the game pixels.</p> +<h3> +<img border="0" src="../images/1.jpg"><img border="0" src="../images/2.jpg"><img border="0" src="../images/3.jpg"><img border="0" src="../images/4.jpg"><img border="0" src="../images/5.jpg"><img border="0" src="../images/6.jpg"><img border="0" src="../images/7.jpg"><img border="0" src="../images/8.jpg"></h3> +<h3> +<img border="0" src="../images/int.jpg" width="500" height="347"></h3> +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +</p> + +<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> + </p> + +<p style="margin-left: 0; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt"> +<font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_support.htm b/docs/release/src/osd/winui/help/html/mameui_support.htm new file mode 100644 index 00000000000..0049b964cb2 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_support.htm @@ -0,0 +1,739 @@ +<html xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"> + +<head> +<style type="text/css"> +div.Section1 + {page:Section1;} + h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:"Arial","sans-serif"; + color:windowtext; + font-weight:bold; +} +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:"Arial","sans-serif"; + color:black; +} +a:link + {color:blue; + text-decoration:underline; + text-underline:single; +} +</style> +</head> + +<body style="background-image: url('../images/bkground.gif')"> + +<div class="Section1"> + <h1 style="mso-margin-bottom-alt: auto"><span style="COLOR: black">MameUI + Troubleshooting [& Tips]<o:p></o:p></span></h1> + <p style="MARGIN-TOP: 0in">MameUI [previously Mame32] has been in development since 1997.<span style="mso-spacerun: yes"> + </span>It is mature, complex, and robust. However, since the Mame + project itself is a documentation effort, and development is continuous, + there will be times when changes to the core program effect MameUI. + When problems do occur with a specific game in a specific version of MameUI, + a previous version of MameUI may be used. </p> + <p style="MARGIN-TOP: 0in">MameUI is now an integrated GUI front end which + passes user input from the GUI to the + <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/"> + <span style="COLOR: black">Mame</span></a></b> engine/core.<span style="mso-spacerun: yes"> + </span>Thus, any problems that occur in the + <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org"> + <span style="COLOR: black">Mame</span></a></b> engine will be inherited by + MameUI. Prior to <b> + <a href="http://www.mameworld.info/ubbthreads/postlist.php?Cat=&Board=mameui"> + <span style="COLOR: black">reporting problems</span></a> </b> + <span style="mso-bidi-font-weight: bold">against MameUI</span>, verify that + the issue is not a known, core defect in + <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/"> + <span style="COLOR: black">Mame</span></a></b>. The <b> + <a target="_blank" href="http://mametesters.org/mantis/my_view_page.php"> + <span style="COLOR: black">Mametesters.org</span></a></b> site is designed + to track and report bugs in the baseline + <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/"> + <span style="COLOR: black">Mame</span></a></b> version. To find if a + problem plagues the game in question, do an + <b style="mso-bidi-font-weight: normal">alt-enter</b> on the game and note + its driver/source name at the bottom of the general properties tab; then + search the Mametesters’ bug database.<span style="mso-spacerun: yes"> + </span>The current list of known MameUI specific issues and defect tracking + is available at <b> + <a target="_blank" href="http://mameui.info//MameUI_Bugs.xls"> + <span style="COLOR: black">MameUI</span></a></b>. </p> + <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong> + <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">ROMs and + CHDs Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Utilization of an external ROMs management utility like + <b style="mso-bidi-font-weight: normal"><a href="http://www.clrmame.com/"> + <span style="COLOR: black">Clrmame</span></a></b> is recommended for repair + and identification of damaged or incomplete sets.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If receiving missing ROMs error messages when + attempting to run a game, secondary click on the game in the list and choose + properties, do an audit on that game [or use <b>Alt-A</b>].<span style="mso-spacerun: yes"> + </span>The audit will determine which files are missing from the ROMset + currently being played.<span style="mso-spacerun: yes"> </span>MameUI + will not run a game which fails its internal audit.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Mame is an ongoing documentation project. Sometimes old + ROM sets are found to have miss-dumped, missing, or damaged ROMs, which need + to be replaced. As new versions of Mame are released, the Mame + developers add support for these new iterations of ROMs, supplanting or + renaming the old supported versions.<span style="mso-spacerun: yes"> + </span>Thus, often, older versions of ROMs which did work in older versions + of MameUI, will <u>not</u> work with newer versions of MameUI because they + are now read as incomplete or wrong.<span style="mso-spacerun: yes"> + </span>MameUI will not play the game in question until the updated ROMs are + utilized.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI utilizes the idea of a parent / clone + relationship for its games. If trying to play a clone or a bootleg of + a game, MameUI will need the ROMs for the clone game, <b>and</b> the parent + set. MameUI indicates the parent set of a clone at the bottom of the + game’s properties tab, or more easily in grouped view, View \ Grouped.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI utilizes the idea of having single zip files to + house the BIOS files for a large number of similar games.<span style="mso-spacerun: yes"> + </span>The NeoGeo games for example, share upwards of ten BIOS files in + every game. Mame will look to neogeo.zip as the BIOS zip, if this file + is freestanding along with the other NeoGeo games, it will use it. + Otherwise, MameUI expects all the BIOS files in every NeoGeo game’s zip + file. DECO cassette, PGM, and Playchoice are some examples of other BIOS + games. An error message will occur if the BIOS files are not present + and those games are run.<span style="mso-spacerun: yes"> </span> + Occasionally, new ROMs will need to be added to the BIOS packages + themselves, this occurred recently with the ‘ng-lo.rom’ and then 6 new + regional BIOSes in the neogeo.zip. MameUI will not audit a game as correct + without all the BIOS files with the correct CRC, while it may however be + possible to play the game after an error message.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Games that support .CHD [compressed hunks of data] + images [Max Force, Killer Instinct I & II, Area 51, Vicious Circle, War + Gods, beatmania games, and items in the CHD folder view on the left pane] + have to have their ROMs and .CHD files in a very specific directory + structure. The <b style="mso-bidi-font-weight: normal">single</b> large .CHD + file needs to go in the \ROMs\gamename\ directory, and have the *.CHD + extension, e.g. \ROMs\area51\area51.chd.<span style="mso-spacerun: yes"> + </span>These games also have ROMs, these go one level up in the \ROMs folder + proper like any other game.<span style="mso-spacerun: yes"> </span>So + in the end two files should exist for these games one *.zip in the \ROMs + folder and the *.chd in a sub-directory named for the game.<span style="mso-spacerun: yes"> + </span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span><b>F5 </b>/ View • Refresh in the GUI. (Do this anytime + ROMs are altered, renaming, etc.)</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If games are not displaying in the game list, ensure + the appropriate folder view on the far left is toggled, i.e. 'all games' and + it doesn't have filtering on it to stop the display of the game being + searched for.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Use the Options • Reset to default menu choice and + check all of the items, restart MameUI.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Final option, manually delete the MameUI32/64.ini and the + Mame.ini file in the \ini directory.</p> + <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong> + <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Crash + Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Delete the \cfg\*.CFG, \diff\*.DIF, \ini\*.INI, or + \nv\*.NV files for the game that's crashing.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Check to see that the zip file is valid and that it's + not corrupt or read-only.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Verify the presence of the \ini directory under + MameUI.exe’s location.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If versions of MameUI prior to .66 had been installed + on the system, verify that the old registry key has been deleted with + regedit.exe. HKEY_CURRENT_USER/Software/Freeware/Mame32</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If crashing during an audit or an [<b>F5</b>] refresh, + it could be a corrupt .zip file. Extract it and re-zip. Pkunzip -t *.zip. + Note the file that dies during the audit and concentrate on that one. Also + verify that if zip files are not used, that the folder is not empty, or + contains partial or damaged ROMs.<span style="mso-spacerun: yes"> + </span>Utilization of an external ROMs management utility like + <b style="mso-bidi-font-weight: normal"><a href="http://www.clrmame.com/"> + <span style="COLOR: black">Clrmame</span></a></b> is recommended for repair + and identification of damaged sets.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If seeing crashes or weird screen coloration, try + disabling running background apps [in Win98, use msconfig.exe], Norton + Crashguard, PnP programs like Kaaza, eDonkey, LimeWire, popup killers, + viruscans, MS Office Fast Find, the Microsoft Office Bar, Intellimouse, even + IE subscription updates, etc. Try moving MameUI away from compressed + [DriveSpace, DoubleSpace, stacker] drives. IntelliMouse and Office + Toolbars have been known to cause conflicts.<span style="mso-spacerun: yes"> + </span>Also disable items in the system tray, like the CD player, etc. + It may also be necessary to download and install the latest version of + DirectX from Microsoft to prevent some errors.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If MameUI crashes with an access violation it may be + the DEP (Data Execution Prevention) setting on that machine.<span style="mso-spacerun: yes"> + </span>Add MameUI to the exception list in Control Panel / System / Advanced + / DEP.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>In some instances games may fail to start if the + installed directory path contains a large number of characters and spaces, + to alleviate this, install MameUI and its support directory structure into a + shorter path name, i.e. c:\MameUI\.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI may fail to launch its games in situations where + an errant, non-DX compliant, or badly written gamepad USB adapter + driver/software is used.<span style="mso-spacerun: yes"> </span>This + includes some cheap Playstation, SNES, U64 converters.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Games may fail to start if a video cards DirectX driver + is flakey, utilise an earlier one to test or re-install DirectX.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Some recent viruses which attach to .exes will cause + page faults and access violations in MameUI when it's run. Use an + anti-virus check and verify MameUI is not infected.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Odd behaviour may be exhibited in NT based systems if + attempting to run games while security/permissions settings do not allow it + or the user is not an administrator or member of the administrator’s group.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Some anti-virus packages may slow down navigation + within the MameUI directory.<span style="mso-spacerun: yes"> </span> + These are false positives and the anti-virus vendors should update their + virus dat signatures.<span style="mso-spacerun: yes"> </span>It may + also be possible to exclude the MameUI.exe from real-time scanning as a + workaround.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>In the event of MameUI not launching a game and just + sitting there, try placing the entire MameUI directory and its + sub-directories including \ROMs into a more simple path, like c:\MameUI + instead of "c:\Games for Fun\MameUI Goes Here\".<span style="mso-spacerun: yes"> + </span>Simplify the path.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>On rare occasions malformed or damaged *.dat files + [history.dat, mameinfo.dat, cheat.dat] can cause MameUI to error on startup + when it tries to read them.<span style="mso-spacerun: yes"> </span> + Remove those files individually to check for the one causing the crash.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>With the move to XML based Controller *.cfg files in + the .8x era it is necessary to remove the old \Ctrlr\*.ini files and use + their new *.cfg counterparts, otherwise MameUI may launch games then + immediately return to the GUI.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Use the Options • Reset to default menu choice and + check all of the items, restart MameUI.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Final option, manually delete the MameUI32/64.ini and the + Mame.ini file in the \ini directory.</p> + <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong> + <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Performance + Related Topics [incl. sound scratchiness and stuttering]</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI will start to crackle, scratch, or echo if the + game running is too taxing for the processor in use. This can be visually + confirmed by turning on FPS display with [<b>F11</b>], and frame skip to + auto with [<b>F8</b>]. If the FPS dips anywhere or frame skipping + rises anywhere during the game play, the game is maxing out the CPU and + sound breakup could occur.<span style="mso-spacerun: yes"> It is also + possible to determine if the host CPU can run the game at 100% by + unthrottling the emulation with the [F10] key, if the CPU can do it, it will + run the game faster than 100%. </span>If + upgrading machine components, provide MameUI with as much hardware as + possible; a faster CPU makes the most difference, followed by video card, + and RAM.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI will start to 'skip' sound on games that run + slightly over the host monitor refresh rate in full-screen mode with + triplebuffer. For example, Pac-Man and other early Namco games run at + 60.60Hz and if they are run on a fixed 60Hz LCD monitor using triplebuffer + they will skip since the emulation is outpacing the monitor. In this + instance it is necessary to toggle on the 'Refresh Speed' switch in the + Options • Default Options • Advanced tab. This issue can also be + overcome by running the game in windowed mode.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>As Mame has continued development, infrastructure and + accuracy has improved.<span style="mso-spacerun: yes"> </span>As such, + the optimization point of the games has shifted so that older games may be + slower unthrottled overall than when run on earlier versions.<span style="mso-spacerun: yes"> + </span>For example, in version .36 Donkey Kong may have run unthrottled at + 1900 FPS, but in .77 it runs 1500 FPS.<span style="mso-spacerun: yes"> + Thus older machines [P3 and prior] will continue to have trouble playing the + same games as earlier versions of Mame. M</span>odern machines should have no problem running these + early 80's games at their intended ~60 FPS rate.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Periodically, speed-up hacks in the core code will be + removed to provide more accurate emulation of the games.<span style="mso-spacerun: yes"> + </span>This can result in a drop in FPS for that particular family of games, + but can be offset by upgrading the machine MameUI is used on.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>On certain system setups (older), DirectDraw may be a + faster option than the D3D settings.<span style="mso-spacerun: yes"> + </span>Choose Ddraw as the video mode in Default Options • Display. </p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>With the advent of MameUI .120 some historically + host CPU punishing games become playable on high end overclocked [3.6Ghz+] + Intel Core2Duo and Quad Cores. These processors combined with 64bit + operating systems and native 64bit MameUI provide almost 100% playability in + namcos21.c / namcos22.c / seattle.c and midvunit.c games. MameUI64 + + Vista64 + C2D chips is the best current combination for MameUI gaming on the + Windows platform.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Some of the largest games supported by MameUI [NeoGeo + mainly] can run into the hundreds of megabyte range when they are + uncompressed into memory, this combined with MameUI in memory, plus OS + overhead can lead to very slow performance as Windows swaps the information + out to disk if there is not enough physical memory. 512M to 1G of + memory is recommended for all current games [.118].</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>AMD’s Cool ‘n Quiet technology on certain setups has + been known to cause slowdowns and lags while working in the MameUI GUI as + well as causing some in-game sound and graphic stuttering.<span style="mso-spacerun: yes"> + </span>Disable the feature in the BIOS to verify.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If seeing a severe slowdown in games that previously + didn't, toggle the 'Sleep when possible' menu item in Options • + Default Options • Miscellaneous. This happens to laptop users + particularly.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Certain games in MameUI perform better on machines that + cannot handle them 100% if auto-frame skipping is turned <b>off</b>. + </p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Certain games if run with D3D settings will perform + better if Triplebuffering is set to <b style="mso-bidi-font-weight: normal"> + off</b>.<span style="mso-spacerun: yes"> </span>D3D will double buffer + if triple is turned off.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>There may be certain sound anomalies in games if the + *.cfg files have become damaged, delete all the files in \cfg to remedy.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If games are running too <b>fast</b>, verify in the + Options • Default Game Options menu that the throttle option is turned <b>on</b>, + that sync to monitor refresh is turned <b>off </b>and Wait for Vertical Sync + is turned <b>off</b> in the Options • Default Game Options • Advanced menu.<span style="mso-spacerun: yes"> + </span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI video performance can be greatly enhanced if + running in 32bpp mode by ensuring AGP Fast Writes are toggled on in the + motherboard BIOS.<span style="mso-spacerun: yes"> </span>The videocard + drivers also need to support this setting, the switch for this may be in the + advanced tab of the Windows display control panel applet.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>There are some soundcards like early PCI + <span class="SpellE">SoundBlaster</span> 128 that will cause scratchiness + if their hardware acceleration is turned up too high. Move the slider + down various steps to troubleshoot in Control Panel • Sound • Advanced + Audio.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>There are some older video card/video driver + combinations that <b>can</b> do hardware stretching, but are slower than + running with hardware stretch <b>off</b>. If games are too sluggish with the + hw stretch on, toggle it off if possible. Some old PCI graphic cards have + been seen to have this problem.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If a large number of icons are being used in the GUI, + it is typically quicker to unzip them into the \icons folder instead of + leaving them zipped as icons.zip.</p> + <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong> + <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Joysticks / + Mice / Gamepad / Lightgun Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Gamepads and mouse are disabled by default on first + MameUI launch, enable them by toggling their check boxes on in Options • + Default Options • Controllers.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI relies on DirectX’s DirectInput for joystick + support, ensure the game pad is seen as present and active in the game + controller control panel: start menu • settings • control panel • game + controllers.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If seeing keys ‘stick’ while playing, verify that the + operating systems’ accessibility options and their shortcut keys are turned + off, things like ‘sticky keys’, and verify that Popup killers or other + resident programs are not mapped to the sticking key.<span style="mso-spacerun: yes"> + </span>Also keys can stick on some KVM switch boxes if their hotkey switches + are set to [<b style="mso-bidi-font-weight: normal">Ctrl</b>] etc.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Daisy chained gameport Microsoft Sidewinders [original] + in Win2k or XP do not work very well. Use USB gamepads instead. Single + Sidewinders may also cause odd behavior like ghost button presses.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Lightguns and mice are treated like mappable joysticks + in current versions of MameUI.<span style="mso-spacerun: yes"> </span>If + multiple mice are in use it is necessary to enter the in-game [<b style="mso-bidi-font-weight: normal">TAB</b>] + menu and map their axes in the ‘Input General’ section.</p> + <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong> + <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Settings + Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>With the advent of version 0.66 MameUI no longer stores + its configuration information in the Windows registry, it stores it in + \MameUI32/64.ini and \ini\Mame.ini.<span style="mso-spacerun: yes"> + </span>To remove vestiges of the old versions, run regedit.exe and delete + the following key: HKEY_CURRENT_USER\Software\Freeware\MameUI.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If having trouble saving keyboard mappings and + configuration, verify that the *.cfg files are not read-only and that a + \MameUI\cfg directory is present.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If GUI settings and/or audit results aren’t being + maintained, verify the existence of a writeable MameUI32/64.ini and that the + \ini directory is present and writeable [not read only] under the MameUI.exe + location.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If baseline Mame settings like directories and game + options are not being maintained, verify the existence of a writeable + Mame.ini [not read-only] in the \ini directory and that the \ini directory + itself is writeable.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If experiencing odd behavior with MameUI saving files + or not appearing to clear its settings, verify that there are not multiple + shortcuts pointing to different versions, that an .exe is not being used by + itself instead of a shortcut to the .exe, or a shortcut pointing to an old + version of the .exe.<span style="mso-spacerun: yes"> </span>Also + verify that there are not multiple versions of MameUI running in memory as + the last one out will save the settings.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If seeing MameUI folders being created on the desktop, + verify that the .exe itself is not sitting on the desktop and being launched + which is not correct. Verify that a short-cut to the original is being + properly utilised.<span style="mso-spacerun: yes"> </span>This means + setting the properties on the shortcut to ‘start in’ the appropriate + directory that the original .exe resides in.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If the in-game [<b>TAB</b>] menu is no longer working + or can’t be accessed, it has been mapped to another key; delete the + default.cfg file in the \MameUI\cfg directory.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If in-game [<b style="mso-bidi-font-weight: normal">TAB</b>] + settings need to be completely reset due to bad mappings, delete the + default.cfg file in the \MameUI\cfg directory.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>To remove the mappings on an individual game from the [<b style="mso-bidi-font-weight: normal">TAB</b>] + menu, delete its *.cfg file in the \MameUI\cfg directory, i.e. dkong.cfg, + asteroid.cfg.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If having trouble mapping keys with the [<b style="mso-bidi-font-weight: normal">TAB</b>] + menu, verify the game is not paused while mapping.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI inherits a limit from baseline Mame on the + amount of characters that can be used for the ROM paths.<span style="mso-spacerun: yes"> + </span>If directory settings are not being maintained, pare down the number + and names of the directories being added or simply use a single \ROMs + directory which MameUI expects.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If having trouble getting games to display in the + proper orientation [they will not rotate] verify that rotation is set to + default, and that there are no video-card specific hot-keys set in Windows’ + advanced display settings tab that could impact rotation, ATI and NVIDIA + both now include the ability to rotate the Windows screen to portrait + orientation.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If games are appearing sideways regardless of rotation + settings, an onboard Intel graphic chipset or similar may be in use.<span style="mso-spacerun: yes"> + </span>Disable the auto rotation capabilities of the Intel graphic chip.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI now supports the core’s –<span class="SpellE">mt</span> + switch.<span style="mso-spacerun: yes"> </span>This allows + multi-threading of the final video blit during games. Dual core chips [X2, + C2D, etc.] can take advantage of this feature to offload the work to the + second thread and make MameUI more efficient.<span style="mso-spacerun: yes"> + </span>Speed gains are seen on the unthrottled GPU bound games like dkong, + invaders, etc.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI now stores its settings in external *.ini files + instead of the registry.<span style="mso-spacerun: yes"> </span>If it + is necessary to return MameUI to baseline, simply delete the MameUI32/64.ini + file and the Mame.ini file in the \ini directory.<span style="mso-spacerun: yes"> + </span>The next time MameUI runs it will recreate those files with the + default settings.</p> + <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong> + <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">GUI Related + Topics & Miscellaneous Tips</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI will read freestanding icons in the \icons + directory first, then icons in the icons.zip file. </p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>If seeing icon palette corruption in the GUI when + returning from a full screen game, try increasing the desktop color depth to + 24bpp or 32bpp.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Sometimes icons in large icon view may appear to be + missing their white color or have portions transparent, this is the result + of having white chosen as the windows desktop window setting in Control + Panel / Display. Change the window setting to slightly off-white or + another color to return the icons to their appropriate look.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>To toggle the MameUI UI fullscreen [no Windows titlebar + and potentially no toolbar or status bar] and back use the [<b style="mso-bidi-font-weight: normal">F11</b>] + key.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>The GUI text may disappear from the folder view if the + GUI font color chosen is very close to the Windows system background color + scheme or if it is a large enough font [or bold] to anti-alias. </p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>MameUI no longer supports *.bmp format and may show a + blank or empty background if a *.bmp is erroneously renamed and used for + bkground.png, or if the bkground directory is marked as read only and MameUI + cannot create the bkground.png file when run.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>To return to a blank gray background in the GUI, delete + the bkground.png file in the \MameUI\bkground directory.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Quickly navigate through games in the details view by + simply typing the first few letters in the name of the game, the highlight + will jump to that game and become more granular as the name is typed out.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Select a random game with [<b>Ctrl-R</b>].</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Audit an individual game with [<b>Alt-A</b>].</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Various arcade game controller companies produce custom + made configuration files for their setups; these *.cfg files need to go in + the \MameUI\ctrlr folder to be recognized in the MameUI controllers tab.<span style="mso-spacerun: yes"> + </span>These files are the responsibility of the controller companies + themselves and are not included or endorsed by MameUI, they can typically be + found at the companies’ web sites.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>In grouped view, clones are indented regardless of + whether their parents are visible; in a non-All Games folder this means that + there is not a direct relationship of a clone to the game item above it if + that games’ parent is not shown. This behaviour can be changed by the + setting Interface Options • No offset for clones missing parent in view.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>Certain items in the GUI may be missing if MameUI is + run on a Win2K/XP box and the user is not an admin or member of the admin + group.</p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span>The unavailable folder and the available filter are + disabled in MameUI due to a direct request from Nicola.</p> + <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong> + <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Keyboard + Shortcuts</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo14; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span><b style="mso-bidi-font-weight: normal">Type letters of + game name</b> to jump directly to its first instance.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">Alt-1 through Alt-7</b>: + Toggle art views.<span style="mso-spacerun: yes"> </span> + <b style="mso-bidi-font-weight: normal">Alt-A</b>: Audit selected game.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">Alt-B</b>: Toggle art tabs.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">Alt-D</b>: Toggle folder + pane.<span style="mso-spacerun: yes"> </span> + <b style="mso-bidi-font-weight: normal">Alt-P</b>: Toggle screenshot area.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">Alt-S</b>: Toggle status bar. + <b style="mso-bidi-font-weight: normal">Alt-T</b>: Toggle toolbar. + <b style="mso-bidi-font-weight: normal">Alt-U</b>: Audit selected folder. + <b style="mso-bidi-font-weight: normal">Alt-Enter</b>: Show games’ + properties.<span style="mso-spacerun: yes"> </span> + <b style="mso-bidi-font-weight: normal">Ctrl-F</b>: Text filter.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">Ctrl-R</b>: Choose random + game from GUI. <b style="mso-bidi-font-weight: normal">Ctrl-Page Up</b>: + Scroll up in history.dat text window.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">Ctrl-Page Down</b>: Scroll + down in history.dat text window. <b style="mso-bidi-font-weight: normal">F11</b>: + Fullscreen mode toggle.</p> + <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong> + <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Refresh + Restart Instructions<o:p></o:p></span></strong></p> + <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo14; tab-stops: list .5in"> + <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"> + <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'"> + </span></span></span><b style="mso-bidi-font-weight: normal">a.</b> + Re-download the binary dist package from + <a href="http://mameui.info/"> + <span style="COLOR: black">MameUI</span></a>.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">b.</b> Disable running + anti-virus packages before extracting the files. + <b style="mso-bidi-font-weight: normal">c.</b> Double-click the + self-extracting archive. <span style="mso-spacerun: yes"> </span><b style="mso-bidi-font-weight: normal">d.</b> + When prompted, enter “c:\” [no quotes] as the destination folder.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">e.</b> Launch MameUI by + double-clicking its .exe, allow the audit/refresh to finish, it should go + quick as there are no ROMs.<span style="mso-spacerun: yes"> </span> + <b style="mso-bidi-font-weight: normal">f.</b> Put a couple of zipped ROMs + from <a href="http://www.mamedev.org/roms"><span style="COLOR: black"> + mamedev.org</span></a> in the c:\MameUI\ROMs directory.<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">g.</b> Launch MameUI, audit + the two games individually with [<b style="mso-bidi-font-weight: normal">Alt-A</b>].<span style="mso-spacerun: yes"> + </span><b style="mso-bidi-font-weight: normal">h.</b> Launch Robby or + Gridlee.<span style="mso-spacerun: yes"> </span> + <b style="mso-bidi-font-weight: normal">i.</b> Quit the game, then quit + MameUI.<span style="mso-spacerun: yes"> </span> + <b style="mso-bidi-font-weight: normal">j.</b> Add more ROMs and try again.<br style="mso-special-character: line-break"> + <br style="mso-special-character: line-break"> + </p> + <p style="MARGIN: 0in 0in 5pt 0.25in"><span style="FONT-SIZE: 8pt"> + <span style="mso-no-proof: yes">8/17/2007 1:17:01 AM</span> / john iv<o:p></o:p></span></p> +</div> + + +</html> diff --git a/docs/release/src/osd/winui/help/html/mameui_systemreq.htm b/docs/release/src/osd/winui/help/html/mameui_systemreq.htm new file mode 100644 index 00000000000..65871f6a806 --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_systemreq.htm @@ -0,0 +1,82 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI System Requirements</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +<base target="_blank"> +</head> + +<body background="../images/bkground.gif"> + +<p class="MsoNormal" style="page-break-after: avoid; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin-bottom: 3.0pt"> +<b><i><span style="font-size: 14.0pt">System Requirements</span></i></b></p> +<p class="MsoNormal">MameUI runs on Microsoft Windows 98SE, Windows +ME, Windows 2000, Windows XP, Windows 2003 Server, Windows Vista, and Windows 7.</p> +<p class="MsoNormal"> </p> +<p class="MsoNormal">Because of the wide range of arcade hardware supported by +MameUI, system requirements vary considerably. The +more complex the original arcade hardware, the more CPU power is needed to +emulate it. Mame strives for accuracy in its emulation; as such, over +time, the performance point shifts as the underlying engine has been reworked +and refined. Early games now require a bit more PC processing power to run +than they did in earlier versions of Mame. This is typically not a great +concern as modern PCs can run these early games easily at thousands of times +their original speed. More recent games can often take upwards of 512M of memory, and +Phenom / Core2 chips to emulate at 100% speed with effects. For those +wishing to upgrade their systems; <b>MameUI benefits most from adding more CPU +power, using a 64bit build on a 64bit OS</b>, and then memory and upgraded video card.</p> +<p class="MsoNormal"> </p> +<p class="MsoNormal">Currently there are some games supported in MameUI which are not +playable at full frame rate on today's PC hardware. Many of these are +mid to late 90's and beyond advanced 3D games which MameUI renders in software for accuracy sake. +Recent developments in Mame [.120] have allowed some of these games to get close +to 100% playable on high-end overclocked [3.6Ghz+] Intel Core2Duo and Quad Core +cpus. Additionally the fastest combination for MameUI is one of the +previously mentioned CPUs plus the 64bit version of MameUI combined with a 64bit +Operating System like Windows 7 x64.</p> + +<p class="MsoNormal"> </p> +<p class="MsoNormal"><font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2009-12-24 12:33 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37922" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_viewmenu.htm b/docs/release/src/osd/winui/help/html/mameui_viewmenu.htm new file mode 100644 index 00000000000..6e897d4a85d --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_viewmenu.htm @@ -0,0 +1,160 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI View Menu</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +</head> + +<body background="../images/bkground.gif"> + +<h2>View Menu</h2> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Toolbar</b> : Selecting this option from the view menu will +toggle the toolbar on or off.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Status Bar</b> : Selecting this option from the view menu will +toggle the status bar on or off.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Folder List</b> : Selecting this option from the view menu will +toggle the folder list view on or off.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Screenshot</b> : Selecting this option from the view menu will +toggle the screenshot area on or off.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Screenshot Tab</b> : Selecting this option from the view menu will +toggle the screenshot area tabs, allowing to choose between the multiple +different art types. Note that history.dat information is only displayed +in the snapshot view.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Fullscreen</b> : Selecting this option from the view menu will + +switch the GUI into full screen mode. This will expand to fill the current +desktop resolution, it will hide the menu bar, and it will hide the windows +taskbar. Toggle in and out of it with F11, other alt shortcut keys are +still active.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Show Pictures</b> : Selecting this option from the view menu will +allow toggling the display of the individual art tabs in the screenshot area.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Large Icons</b> : Selecting this option from the view menu will +display large icons in the gamelist area.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Small Icons</b> : Selecting this option from the view menu will +display small icons in a different grid pattern in the gamelist area.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>List</b> : Selecting this option from the view menu will +display small icons in the gamelist area.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Details</b> : Selecting this option from the view menu will +display small icons along with full game name and any other fields chosen with +the View • Customize Fields option.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Grouped</b> : Selecting this option from the view menu will +display small icons along with full game name and any other fields chosen with +the View • Customize Fields option, however the clone games will be displayed +indented and alphabetized under their parents..</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Arrange Icons </b>: Selecting this option from the view menu +will order the gamelist area by the choice made; game, directory, manufacturer, +times played, type, or year.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Line Up Icons </b>: Selecting this option from the view menu +will re-align the icons in views where it does not automatically happen.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Refresh </b>: Selecting this option from the view menu will +initiate an update of the gamelist while MameUI searches for the existence of +zip files that match game directory names. This is not as exhaustive as the +audit function on the File menu.</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Custom Filters </b>: Selecting this option from the view menu +will allow for the selective hiding of certain types of games. Manually typing +in a phrase in the filter text box will only display games that have that text +in their names [note valid input for the description filter are, game name, +driver name e.g. 'cps2.c', and manufacturer].</p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<span style="font-family: Symbol"> +<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt "Times New Roman""> +</span></span><b>Customize Fields </b>: Selecting this option from the view menu +will allow choosing which fields are displayed in columnar mode in the game list +details view, selectable from the View • Details. The columns can also be +ordered by moving them up and down the right hand side of the well. The game +name field is always the first item and cannot be changed. </p> + +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> </p> +<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in"> +<font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-11 01:11 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37427" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_visual_elements.htm b/docs/release/src/osd/winui/help/html/mameui_visual_elements.htm new file mode 100644 index 00000000000..c25e916cf8d --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_visual_elements.htm @@ -0,0 +1,155 @@ +<html> + +<head> +<meta name="GENERATOR" content="Microsoft FrontPage 12.0"> +<meta name="ProgId" content="FrontPage.Editor.Document"> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<title>MameUI Toolbar / Status Bar / Windows</title> +<style> +<!-- +p + {margin-right:0in; + margin-left:0in; + font-size:10.0pt; + font-family:Arial; + color:black} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:16.0pt; + font-family:Arial; + color:windowtext; + font-weight:bold} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + page-break-after:avoid; + font-size:14.0pt; + font-family:Arial; + font-style:italic} + p.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + font-size:10.0pt; + font-family:Arial; + margin-left:0in; margin-right:0in; margin-top:0in} +--> +</style> +</head> + +<body background="../images/bkground.gif"> + +<h2>MameUI Toolbar / Status Bar / Windows</h2> +<p class="MsoNormal"> </p> +<p class="MsoNormal">The MameUI <b>toolbar</b> extends the width of the application +at the top and +can be toggled on by using the View • Toolbar menu item, or the <b>Alt-T </b>keyboard +shortcut. The buttons on the toolbar from left to right are : toggle folder +list, toggle screenshot, large icons view, small icons view, list view, details +view, help about, and help file. Click the items to toggle them on or off. +The toolbar also contains the game search box, typing into this text box will +filter out games. It is similar in function to the <strong>Ctrl-F</strong> filter but only +filters on game descriptive name, it is also accessible with the <strong>Ctrl-E</strong> +shortcut.</p> +<p class="MsoNormal"> +<img border="0" src="../images/toolbar.gif" width="632" height="28"></p> +<p class="MsoNormal"> </p> +<p class="MsoNormal">The MameUI <b>status bar</b> extends the width of the application +at the bottom and can be toggled on by using the View • Status Bar menu item, or +the <b>Alt-S</b> keyboard shortcut. The status bar indicates the full name of the game +highlighted, and gives its internal status flag as to whether it’s working or if +there are some issues with the emulation. The status bar also indicates the +game count for the particular view used.</p> +<p class="MsoNormal"> +<img border="0" src="../images/statusbar.gif" width="632" height="20"></p> +<p class="MsoNormal"> + </p> +<p class="MsoNormal"><b>MameUI can be divided into three windowed sections:</b></p> +<p class="MsoNormal"> </p> +<p class="MsoNormal">The first section on the far left is the <b>folder view</b>, +toggled on by using the View • Folder List menu item, or the Alt-D keyboard +shortcut. This contains a tree style list that expands for certain items like +year, manufacturer, and custom. By selecting one of these items, MameUI will +display the games that meet that criterion. For example: selecting year / 1978, +MameUI will +display all the supported games manufactured in 1978. </p> +<ul> + <li> +<p class="MsoNormal">MameUI will display user +created folders based on *.ini files located in the \MameUI\folders directory. +See files in that location for examples. This location also houses the +favorites.ini, where favorite games can be added to the text file and easily +moved to other computers.<br> + </p> + </li> + <li> +<p class="MsoNormal">MameUI supports dragging and dropping games from the middle +section game list into a custom folder in the left pane. MameUI supports +the same procedure by secondary clicking on the game in the game list and +choosing the 'add to custom folder' option.<br> + </p> + </li> + <li> +<p class="MsoNormal">MameUI also supports secondary clicking on a custom folder +and renaming it, editing the custom folder name can also be accomplished by +clicking the name of the folder three times quickly.<br> + </p> + </li> + <li> +<p class="MsoNormal">Secondary clicking on any of the folders also allows +selectively displaying or hiding them in the tree.<br> + </p> + </li> + <li> +<p class="MsoNormal">Secondary clicking the vector folders and the \source\gamedriver +folder allows for customizing +away from default the games in that folder.<font face="Arial" size="2"> +Secondary click on the vector folder • properties in the folder pane to set +options for that group of games. To alter global settings for game +families select the properties for it, e.g. dkong.c for the Donkey Kong family +of games This will change options for +all games based on that driver. Thus there is the possibility to have +four levels of alterations when a game's individual properties are viewed +in All Games or any folder. The changes can be backed out of +hierarchically with reset to default on each respective properties, or by +deleting the .ini files in the \ini directory.</font></p> + </li> +</ul> +<p class="MsoNormal">The second, middle section of MameUI is the <b>game list</b>, +always toggled on. This is where MameUI lists all of the games chosen +in the left folder view. MameUI has the option to display the games as large +icons, small icons, a list icons view, or details. Choosing details allows +MameUI to display, in columnar mode, the game name as well as additional +informational fields, chosen in the View • Customize Fields menu item.</p> +<p class="MsoNormal"> </p> +<p class="MsoNormal">The third section, on the far right, is the <b>screenshot/art +area</b>, toggled on by using the View • Screenshot menu item, or the <b>Alt-P</b> keyboard +shortcut. This area of the GUI will display the optional artwork for each game +selected, the artwork modes are toggled through by clicking on the picture area. The +modes are: screenshot, flyer, cabinet, marquees, title shots, control panels, +and history. <b>Alt-B</b> +will toggle the screenshot tabs which give a visual selection method besides +clicking the artwork area. Secondary clicking on the screenshot area will +also bring up a shortcut dialogue with the file types available and allow +toggling on or off individual tabs. The area under the screenshot mode +will also display the history.dat information if that file is present [it will +not display in the screenshot area if the history tab is enabled]. Each of +the tabs can be navigated to by their accelerator keys, <b>Alt-1</b>, <b>Alt-2</b>, +<b>Alt-3</b>, etc. Further +information about these files is in +<a style="color: blue; text-decoration: underline; text-underline: single" href="mameui_art.htm">Art and Support Files</a>.</p> + +<p class="MsoNormal"> </p> + +<p class="MsoNormal"><font size="1"> +<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-07-16 12:03 AM -0700<!--webbot bot="Timestamp" endspan i-checksum="37949" --> +/ john iv</font></p> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/html/mameui_whatsnew32.htm b/docs/release/src/osd/winui/help/html/mameui_whatsnew32.htm new file mode 100644 index 00000000000..f686d1c627c --- /dev/null +++ b/docs/release/src/osd/winui/help/html/mameui_whatsnew32.htm @@ -0,0 +1,2058 @@ +</style> + +<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"> + +<title>MameUI Whatsnew</title> +<!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Author>john4</o:Author> + <o:Template>Normal</o:Template> + <o:LastAuthor>john4</o:LastAuthor> + <o:Revision>100</o:Revision> + <o:TotalTime>113</o:TotalTime> + <o:Created>2003-11-03T04:49:00Z</o:Created> + <o:LastSaved>2004-08-30T18:21:00Z</o:LastSaved> + <o:Pages>6</o:Pages> + <o:Words>3470</o:Words> + <o:Characters>19785</o:Characters> + <o:Lines>164</o:Lines> + <o:Paragraphs>46</o:Paragraphs> + <o:CharactersWithSpaces>23209</o:CharactersWithSpaces> + <o:Version>11.6360</o:Version> + </o:DocumentProperties> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:WordDocument> + <w:DisplayBackgroundShape/> + <w:ActiveWritingStyle Lang="EN-US" VendorID="64" DLLVersion="131078" + NLCheck="1">1</w:ActiveWritingStyle> + <w:SpellingState>Clean</w:SpellingState> + <w:GrammarState>Clean</w:GrammarState> + <w:ValidateAgainstSchemas/> + <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> + <w:IgnoreMixedContent>false</w:IgnoreMixedContent> + <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> + <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> + </w:WordDocument> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> + </w:LatentStyles> +</xml><![endif]--> +<style> +<!-- + /* Font Definitions */ + @font-face + {font-family:Wingdings; + panose-1:5 0 0 0 0 0 0 0 0 0; + mso-font-charset:2; + mso-generic-font-family:auto; + mso-font-pitch:variable; + mso-font-signature:0 268435456 0 0 -2147483648 0;} +@font-face + {font-family:SimSun; + panose-1:2 1 6 0 3 1 1 1 1 1; + mso-font-alt:\5B8B\4F53; + mso-font-charset:134; + mso-generic-font-family:auto; + mso-font-format:other; + mso-font-pitch:variable; + mso-font-signature:1 135135232 16 0 262144 0;} +@font-face + {font-family:"\@SimSun"; + mso-font-charset:134; + mso-generic-font-family:auto; + mso-font-pitch:variable; + mso-font-signature:3 135135232 16 0 262145 0;} + /* Style Definitions */ + p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-parent:""; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:Arial; + mso-fareast-font-family:"Times New Roman"; + color:windowtext; margin-left:0in; margin-right:0in; margin-top:0in} +h1 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:1; + font-size:16.0pt; + font-family:Arial; + mso-fareast-font-family:SimSun; + color:windowtext; + font-weight:bold;} +h2 + {margin-top:12.0pt; + margin-right:0in; + margin-bottom:3.0pt; + margin-left:0in; + mso-pagination:widow-orphan; + page-break-after:avoid; + mso-outline-level:2; + font-size:14.0pt; + font-family:Arial; + mso-fareast-font-family:SimSun; + color:windowtext; + font-weight:bold; + font-style:italic;} +p + {mso-margin-top-alt:auto; + margin-right:0in; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:Arial; + mso-fareast-font-family:"Times New Roman"; + color:black;} +span.GramE + {mso-style-name:""; + mso-gram-e:yes} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} + /* List Definitions */ + @list l0 + {mso-list-id:8872955; + mso-list-template-ids:-1360482768;} +@list l0:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l0:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l0:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1 + {mso-list-id:45884847; + mso-list-template-ids:-1235059890;} +@list l1:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l1:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l1:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2 + {mso-list-id:439879227; + mso-list-template-ids:1518119328;} +@list l2:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l2:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l2:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3 + {mso-list-id:489293858; + mso-list-template-ids:1845671390;} +@list l3:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l3:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l3:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4 + {mso-list-id:619726884; + mso-list-template-ids:-1537423390;} +@list l4:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l4:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l4:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l5 + {mso-list-id:621153244; + mso-list-template-ids:995154020;} +@list l5:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l5:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l5:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l5:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l5:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l5:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l5:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l5:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l5:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l6 + {mso-list-id:730887387; + mso-list-template-ids:-2040104406;} +@list l6:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l6:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l6:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l6:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l6:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l6:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l6:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l6:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l6:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l7 + {mso-list-id:1220288851; + mso-list-template-ids:880986230;} +@list l7:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l7:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l7:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l7:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l7:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l7:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l7:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l7:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l7:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l8 + {mso-list-id:1275020199; + mso-list-template-ids:551206706;} +@list l8:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l8:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l8:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l8:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l8:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l8:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l8:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l8:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l8:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l9 + {mso-list-id:1357196694; + mso-list-template-ids:795358278;} +@list l9:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l9:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l9:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l9:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l9:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l9:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l9:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l9:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l9:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l10 + {mso-list-id:1503541588; + mso-list-template-ids:823551726;} +@list l10:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l10:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l10:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l10:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l10:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l10:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l10:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l10:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l10:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l11 + {mso-list-id:1535195385; + mso-list-template-ids:-778014484;} +@list l11:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l11:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l11:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l11:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l11:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l11:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l11:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l11:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l11:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l12 + {mso-list-id:1924140378; + mso-list-template-ids:-893489372;} +@list l12:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l12:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l12:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l12:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l12:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l12:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l12:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l12:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l12:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l13 + {mso-list-id:1983192207; + mso-list-template-ids:-1719795094;} +@list l13:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l13:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l13:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l13:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l13:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l13:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l13:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l13:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l13:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l14 + {mso-list-id:1997802346; + mso-list-template-ids:325871162;} +@list l14:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l14:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l14:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l14:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l14:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l14:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l14:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l14:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l14:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l15 + {mso-list-id:2000308197; + mso-list-template-ids:-1152595466;} +@list l15:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l15:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l15:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l15:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l15:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l15:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l15:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l15:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l15:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l16 + {mso-list-id:2035185965; + mso-list-template-ids:57055450;} +@list l16:level1 + {mso-level-number-format:bullet; + mso-level-text:\F0A7; + mso-level-tab-stop:.5in; + mso-level-number-position:left; + text-indent:-.25in; + mso-ansi-font-size:10.0pt; + font-family:Wingdings;} +@list l16:level2 + {mso-level-tab-stop:1.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l16:level3 + {mso-level-tab-stop:1.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l16:level4 + {mso-level-tab-stop:2.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l16:level5 + {mso-level-tab-stop:2.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l16:level6 + {mso-level-tab-stop:3.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l16:level7 + {mso-level-tab-stop:3.5in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l16:level8 + {mso-level-tab-stop:4.0in; + mso-level-number-position:left; + text-indent:-.25in;} +@list l16:level9 + {mso-level-tab-stop:4.5in; + mso-level-number-position:left; + text-indent:-.25in;} +ol + {margin-bottom:0in;} +ul + {margin-bottom:0in;} +--> +</style> +<!--[if gte mso 10]> +<style> + /* Style Definitions */ + table.MsoNormalTable + {mso-style-name:"Table Normal"; + mso-tstyle-rowband-size:0; + mso-tstyle-colband-size:0; + mso-style-noshow:yes; + mso-style-parent:""; + mso-padding-alt:0in 5.4pt 0in 5.4pt; + mso-para-margin:0in; + mso-para-margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:10.0pt; + font-family:"Times New Roman"; + mso-ansi-language:#0400; + mso-fareast-language:#0400; + mso-bidi-language:#0400} +</style> +<![endif]--><!--[if gte mso 9]><xml> + <o:shapedefaults v:ext="edit" spidmax="1026"/> +</xml><![endif]--><!--[if gte mso 9]><xml> + <o:shapelayout v:ext="edit"> + <o:idmap v:ext="edit" data="1"/> + </o:shapelayout></xml><![endif]--> +</head> + +<body bgcolor=white background="../images/bkground.gif" lang=EN-US +style='tab-interval:.5in'> + +<div class=Section1> + +<h1>Changes to MameUI</h1> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">127.5</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed issue w/ BIOS games not + being passed properly to core or stored in *.ini files. [<strong>Curt Coder</strong>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed sorting on source column + in gamelist. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">126.1</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Moved search bar over to the + flush right on the toolbar, made it take the UI font, and also made it + accessible with Ctrl-E like any search in Vista, Firefox, or IE. Added + a new debug tab to the options and loaded it w/ the missing items from the core. [<b style='mso-bidi-font-weight: + normal'>René Single / John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">122.1</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed long standing issue + where icons would corrupt and return to their defaults if scrolled through + entire game list [<b style='mso-bidi-font-weight: + normal'>René Single / John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">120.2</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Rebranded Mame32 to MameUI32 + and MameUI64 to avoid confusion with the baseline builds that are now being + released as 64bit native apps. [<b style='mso-bidi-font-weight: + normal'>Mike Haaland / John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">120.2</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for a + 'nonworking.png' which will appear for non-working games in the art panes if + the specific game *.png doesn't exist <strong>and</strong> the game is + flagged as non-working in the core.<font face="Arial" size="2"> </font>[<b style='mso-bidi-font-weight: + normal'>Mike Haaland / John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.6</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added game search/filter to + the toolbar. Works similarly to the Ctrl-F filter but doesn't search + on manufacturer, driver name, or shortname.<font face="Arial" size="2"> + Added PCB art pane view. </font>[<b style='mso-bidi-font-weight: + normal'>René Single / John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.5</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Per MameDEV request; removed + the ROMs view customization item, and reworked auditing to not show an icon + change state for unavailable sets in all games folder view. This was + to bring MameUI into compliance w/ the section of the Mame terms of usage + which states '<font face="Arial" size="2">Do not provide a means of + generating a list of games that specifically identifies those games for + which the user does not have image files'. Audit functionality and + game search on start is still present to populate the 'Available' folder + view. </font>[<b style='mso-bidi-font-weight: + normal'>Mike Haaland</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Promoted screen orientation + folder view to 'horizontal' and 'vertical' top level views and added them to + the Ctrl-F filter dialogue. [<b style='mso-bidi-font-weight: + normal'>Mike Haaland</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.2</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed all recent options + related bugs as well as expanding the functionality of the audit control so + it doesn't cut off anymore. [<b style='mso-bidi-font-weight: + normal'>Mike Haaland</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">110.2</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-arranged UI elements in + Options menus. [<b style='mso-bidi-font-weight: + normal'>Radius</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">107.1</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Updated the help file to + include the new UI support for the core's latest video changes. [<b style='mso-bidi-font-weight: + normal'>John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">107</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added UI support for the large + amount of core changes made by Aaron Giles for the new video renderer. [<b style='mso-bidi-font-weight: + normal'>René Single / John IV</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Created the new scanline *.png + files in \artwork for use with the new -effect switch. [<b>John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">105.2</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added BIOS folder view on the + left pane. This folder lists all the BIOSes supported by MameUI and + allows launching them as if turning on a machine without a cartridge etc. in + it, like the Neo-Geo. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">104.7</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added properties for driver.c + and vector on secondary click shortcut menu. This is the same as + altering the properties on the vector folder and the \source\driver folder + on the left pane. [<b style='mso-bidi-font-weight: + normal'>René Single / John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">104.4</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for priority + switch, now a slider. Note: there may be system related issues going + to setting 1 (lagging keyboard, joystick controls), default is 0. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Removed multi-screen folder + view on left pane as that flag has been removed in the core. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added mngwrite option to + launch a game and immediately begin recording a MNG movie file. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">101.1</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for savestate + game folder view on left. Added switch for autosave. + [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.</span><font size="3">100</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>New Galaxian homage about.bmp. + [<b style='mso-bidi-font-weight: + normal'>John IV</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.99.</span><font size="3">3</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-implemented history.dat for + MameUI which had its support removed from core. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.98.</span><font size="3">3</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>UI dialogues realignment. [<b>Radius</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added ability to type in Mame + shortname in the Ctrl-F text filter, i.e. 'ddonpach'. [<b>John IV / Mash</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.96.4</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>First pass at adding support + for the analogue and digital controller section of the core. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.95.</span><font size="3">5</font></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added core's -screen switch to + UI to allow playing games on secondary/tertiary monitors in multi-head + setups. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.90.3</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>More UI dialogues realignment. [<b style='mso-bidi-font-weight: + normal'>Radius</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.89.3</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-aligned UI elements in + Options menus and added some XP-style icons. [<b style='mso-bidi-font-weight: + normal'>Radius</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.88.1<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added switch to toggle + validity checking in the binary. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.87.1<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Increased start up speed via + driver info caching. [<b>Sauro Puccini / Chris Kirmse</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.86.1<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked MameUI folder + properties and their initial memory allocation.<span + style='mso-spacerun:yes'> </span>Results in halving MameUI’s memory + footprint on most systems. [<b style='mso-bidi-font-weight:normal'>René + Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.86<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked MameUI multisession + behaviour.<span style='mso-spacerun:yes'> </span>When launching a game, + MameUI + will now dynamically resize itself in memory rather than spawning a + separate core process, saving some memory (this new feature impacts the + icons on windowed mode playing and the show caption option). [<b + style='mso-bidi-font-weight:normal'>Chris Kirmse</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-added support for custom + controller selection again in the controller tab. [<b style='mso-bidi-font-weight: + normal'>Chris Kirmse</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.84.5<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Cleaned up the Options • + Interface Options menu, adding sliders. [<b style='mso-bidi-font-weight: + normal'>René Single</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Internal clean-ups to provide + support for the new core changes. [<b style='mso-bidi-font-weight:normal'>Chris + Kirmse</b> / <b style='mso-bidi-font-weight:normal'>Nathan Woods</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.84.2<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added feature request to + place a border around the artwork in the art pane, user selectable size + and color (0=no border). [<b>René Single</b><b style='mso-bidi-font-weight: + normal'> / John IV</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added dump status folder + view, an easy reference for un-dumped and badly dumped ROMs for folks who + may be in a position to update them. [<b>René Single</b><span + style='mso-bidi-font-weight:bold'>]</span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight: + bold'>Expanded game list font control to go beyond the original 16 color + choices allowing access to a greater UI customization (see last color on + drop down list ‘custom’). [<b>René Single</b>]</span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight: + bold'>Added wave output option to match the core.<span + style='mso-spacerun:yes'> </span>File menu / Play and Record Wave output. + [<b>Chris Kirmse</b>]</span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.84<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Various internal treeview + fixes [year / manufacturer] and cleanups. [<b style='mso-bidi-font-weight: + normal'>Nathan Woods / <span style='mso-bidi-font-weight:bold'>René Single</span> + / Mamesick / Chris Kirmse</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Factored out list view + handling into its own module, picker.c.<span style='mso-spacerun:yes'> + </span>Auto_malloc() now used and appears to result in a speed up of the + GUI game list scrolling, however at the moment it does cause slight pauses + moving from one ‘view’ to another. [<b style='mso-bidi-font-weight:normal'>Nathan + Woods</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added ability to display + games in windowed mode without their titlebar caption. Not fully + functioning w/ GCC compile. [<b>René Single / John IV</b><span + style='mso-bidi-font-weight:bold'>]</span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.82<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Brought game ‘not working’ + status messages in-line with core [status bar, general properties, etc.] + and rearranged status area on properties tab.<span + style='mso-spacerun:yes'> </span>[<b style='mso-bidi-font-weight:normal'>Mamesick</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added sample folder view. [<b + style='mso-bidi-font-weight:normal'>Mamesick</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Renamed Hard Disk folder view + to CHD due to newly supported CD CHDs. [<b style='mso-bidi-font-weight: + normal'>John IV / Nathan Woods</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.81<o:p></o:p></span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Moved placement of + bkground.png to \bkground folder instead of \snap folder. [<b>René Single</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed erroneous behaviour for + Imperfect folder view. [<b>René Single</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Corrected audio latency + slider movement and setting past notch 4. [<b>René Single</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added customizable quit key + [default Alt-Q] for the mappable keyboard solution option. [<b>René Single</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added new History.dat option + to allow display under any or all of the art views in Options • Interface + Options. [<b>René Single</b>]</li> +</ul> + +<h2><span style='font-size:12.0pt'>v.79</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added an ‘Imperfect’ folder + view on the left pane, this categorizes the various problems flagged in + games. [<b>René Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked handling of the BIOS + option, now that there are multiple drivers that support different BIOSes + [neogeo.c, stv.c] the global setting is not appropriate.<span + style='mso-spacerun:yes'> </span>Select the driver from the source folder + view on the left pane and change its BIOS settings, this will alter it for + all games in that driver.<span style='mso-spacerun:yes'> </span>The + functionality remains the same for altering individual games settings in + all games view or anywhere else. [<b>René Single</b>]</li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added the ability to control + the MameUI GUI via mappable keyboard solutions.<span + style='mso-spacerun:yes'> </span>This feature is intended to compliment + the GUI control via joystick option first offered in version .70 + below.<span style='mso-spacerun:yes'> </span>It is designed to allow + users of Mame cabinets with keyboard encoders the same functionality and + is controlled in the mameUI32/64.ini file [mapping the enter key to button 1 + to launch a game for example], using the same syntax as the \ctrlr files. + [<b style='mso-bidi-font-weight:normal'>Jarek Burczynski / Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for the new + core switches for lightgun modifications; reload to allow mapping reload + to keys, and dual gun setups. [<b style='mso-bidi-font-weight:normal'>Chris + Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added accelerator key for + folder level ‘mini-audits’, Alt-U [<b>René Single</b><b style='mso-bidi-font-weight: + normal'> / John IV</b>].<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added accelerator key support + for scrolling up and down through history.dat text window. CTRL-Page Up / + CTRL-Page Down.<b style='mso-bidi-font-weight:normal'> </b>[<b>René Single</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added toggle in Grouped view + to allow clones missing a parent to display non-indented. [<b>René Single</b><span + style='mso-bidi-font-weight:bold'>]</span><span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight: + bold'>Added support for the core’s new save state loading on game + start.<span style='mso-spacerun:yes'> </span>[<b>René Single</b>]</span><span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight: + bold'>Added support for the core’s new keyboard LED choices, USB or PS/2. + [<b>René Single</b>]</span><span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.78</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added the ability to do ‘mini-audits’ + on each of the folders on the left pane.<span style='mso-spacerun:yes'> + </span>Secondary click on the folders to see audit as a choice. [<b>René + Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Changed behaviour of MameUI + when displaying games that have the protection not emulated flag, + previously it would flag these games as non-working and display the + warning.ico.<span style='mso-spacerun:yes'> </span>Now warning.ico and + non-working status will only occur if the game has the non-working flag + attached in the driver. [<b>René Single / </b><b style='mso-bidi-font-weight: + normal'>Mamesick / John IV / Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Increased CPU and sound area + on games’ properties page to accommodate 5 lines now that tceptor and tmnt + utilise it. [<b>René Single / Chris Kirmse</b>]<span style='font-size: + 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Altered behaviour of + properties titlebar on driver.ini to show the driver name instead of + ‘folder’ properties. [<b>René Single / Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>No longer UPX compressing the + MameUI .exe.<span style='mso-spacerun:yes'> </span>This saves 20 Megs + when MameUI is loaded into memory, will allow for better dynamic loading, + and won’t trip off virus detectors that have trouble w/ UPX compression.<span + style='mso-spacerun:yes'> </span>As a result, MameUI.exe is now 20 Megs + in size on the hard drive.<span style='mso-spacerun:yes'> </span>The + distribution package is also being changed and compressed with 7-Zip as a + self-extracting archive, this actually makes the distribution package + about 1 Meg smaller than previous releases. [<b style='mso-bidi-font-weight: + normal'>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Switched default settings in + MameUI to disable auto frameskipping and to use draw every frame per + discussion on MameDEV list. [<b style='mso-bidi-font-weight:normal'>John + IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added 48000 as a sample rate + option, works well with modern soundcards and chips. [<b style='mso-bidi-font-weight: + normal'>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.77</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fulfilling the longstanding + feature req. added the ability to globally alter vector.ini and driver.ini + to match the core. Secondary click on the vector folder • properties + in the folder pane to set options for that group of games. To alter + global settings for game families, drill down into the source folder in + the folder pane, and secondary click on a driver's properties i.e. + 1942.c. This will change options for all games based on that + driver. The different levels of alteration are color coded, + vector.ini changes are red, driver.ini changes are green, and individual + game settings are blue. Thus there is the possibility to have four + color/levels of alterations when a game's individual properties are viewed + in All Games or any folder. The changes can be backed out of + hierarchically with reset to default on each respective properties, the + reset to default global option, or by deleting the .ini files in the \ini + directory.<span style='mso-spacerun:yes'> </span><b style='mso-bidi-font-weight: + normal'>Note</b>: Currently the color alterations do not display properly + with XP in themed mode, but the functionality works [bug 462].<span + style='mso-spacerun:yes'> </span>Coded solutions to this issue via DIFF + are welcomed. [<b>René Single / Chris Kirmse / John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.76</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added programmatically + populated lightgun and multi-monitor folders. [<b>René Single</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added reset play count and + play time for individual games, and globally. [Secondary click on game, + & Options • Interface Options. [<b>René Single</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l7 level1 lfo2;tab-stops:list .5in'>Allowed filter propagation + downward from parent folders, toggle this feature in Options • Interface + Options. [<b>René Single</b>]<span style='font-size:12.0pt;font-family: + "Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l7 level1 lfo2;tab-stops:list .5in'>Changed behavior of vertical + scrollbar in history pane, will not show if there is less text than + available room. [<b>René Single</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l7 level1 lfo2;tab-stops:list .5in'>Extended game not working + status support to show more flags in status bar and game properties. [<b>René + Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added tool tip text to status + bar if longer than displayable name is selected. [<b>René Single</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l7 level1 lfo2;tab-stops:list .5in'>Increased history.dat buffer + to prevent cut-off and overflow. [<b>René Single</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l7 level1 lfo2;tab-stops:list .5in'>Re-implemented ability to + show game's icon on title bar in windowed mode. [<b>René Single</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.72</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l0 level1 lfo3;tab-stops:list .5in'>Added the ability to scale + the right side art pane contents upwards as the window size increases, + toggle on Options • Interface Options. [<b>René Single / Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l0 level1 lfo3;tab-stops:list .5in'>Expanded the reach of the + CTRL-F text filter, it can now act on name, driver name e.g. 'cps2.c', and + manufacturer. This is a quick method for immediately seeing a driver + family instead of drilling down through the source folder on the left. [<b>René + Single / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.71</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to + selectively disable built in folder views on the left pane, secondary + click in the window area for the dialogue box. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added control panel art tab. + [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo4;tab-stops:list .5in'>Fixed audit control overflow + issue. [<b>René Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo4;tab-stops:list .5in'>Designed art tab state + toggles to be more readable in MameUI32/64.ini. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to have + MameUI automatically cycle the selected art views at an interval, in + seconds. Accessible in Options • Interface Options. [<b>René Single + / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to track + the amount of time spent playing each game in minutes and seconds. + Displays in details or grouped view. Add the column in View • Customize + fields. [<b>René Single / Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to view + game's icon on title bar in windowed mode. [<b>René Single / Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.70.1</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l12 level1 lfo5;tab-stops:list .5in'>Removed saturate slider from + D3D tab. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family: + "Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l12 level1 lfo5;tab-stops:list .5in'>Fixed cleanstretch and + prescale settings not holding. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l12 level1 lfo5;tab-stops:list .5in'>Implemented BIOS selection + on per game basis [only Neo Geo games currently] and allowed temporary + global settings for BIOS via number. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.70</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added art tab with only + history.dat. If this tab is enabled and history.dat is present + history text will no longer appear beneath the screenshot. [<b>Tor Arne + Vestbø / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added option to hide the + mouse cursor on launch in full screen on Options • Interface Options. [<b>Tor + Arne Vestbø</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Addressed some long standing + bugs dealing with icon decimation and windows title bar size, and + details/grouped view not holding the column size on return from large icon + view post-session restart. [<b>René Single</b>]<span style='font-size: + 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added option to expand MameUI + to full screen kiosk mode without any windows controls [F11]. [<b>Tor Arne + Vestbø / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Created new Berzerk homage about.bmp. [<b>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Reworked drop down for D3D + prescale effect, now allowing various levels of sharpness to be used. [<b>Chris + Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Updated win32ui.c to pull + certain information more appropriately out of layout.c. [<b>Nathan + Woods/MESS32</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Removed obsoleted version + mismatch toggle. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added a built in orientation + folder view for displaying vertical and horizontal games. [<b>René Single</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added support for the new + cleanstretch options. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added ability to map joystick + actions in MameUI32/64.ini to control GUI navigation instead of being hard + coded:<br> + <b>Format</b>: joystick_number, stick_type, axis_or_button, direction<br> + <br> + #define JOYCODE_STICK_BTN 0<br> + #define JOYCODE_STICK_AXIS 1<br> + #define JOYCODE_STICK_POV 2<br> + #define JOYCODE_DIR_BTN 0<br> + #define JOYCODE_DIR_NEG 1<br> + #define JOYCODE_DIR_POS 2<span style='font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<p style='margin-left:.5in'>So, pressing button 3 on joystick one would be: +1,0,3,0<br> +<br> +ui_joy_up 1,1,2,1<br> +ui_joy_down 1,1,2,2<br> +ui_joy_left 1,1,1,1<br> +ui_joy_right 1,1,1,2<br> +ui_joy_start 1,0,1,0<br> +ui_joy_pgup 2,1,2,1<br> +ui_joy_pgdwn 2,1,2,2<br> +ui_joy_home 0,0,0,0<br> +ui_joy_end 0,0,0,0<br> +ui_joy_ss_change 2,0,3,0<br> +ui_joy_history_up 2,0,4,0<br> +ui_joy_history_down 2,0,1,0<br> +ui_joy_exec 0,0,0,0</p> + +<p style='margin-left:.5in'>For stick type POV there are no directions, only +four axes (0-3) [<b>Tor Arne Vestbø</b>]</p> + +<h2><span style='font-size:12.0pt'>v.69</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l11 level1 lfo7;tab-stops:list .5in'>Added support for the new + D3D filter and effects options in Options • Default Game Options • + Direct3D, see help menu contents for further descriptions of the new + features. [<b>John IV / Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l11 level1 lfo7;tab-stops:list .5in'>Added support for the new + core toggle -bios to allow selection of the various supported Neo Geo + BIOSes. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family: + "Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.68</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added code to allow clicking + anywhere in the screenshot window to toggle the art views. No longer + necessary to click directly on the default image. [<b>K&K</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added code to allow disabling + / toggling individual art views on the view menu and the context menu of + the art window. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added support for the new + core D3D items, accessible on the Options • Default Game Options • Direct3D. + [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added support for the new + core audio latency settings. [<b>Chris Kirmse</b>]<span style='font-size: + 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.67</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l14 level1 lfo9;tab-stops:list .5in'>Re-worked the rotation + options to a drop down, and included the new switches for auto-clockwise / + auto-anti-clockwise for pivot monitors. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.66</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l4 level1 lfo10;tab-stops:list .5in'>Moved towards an *.ini based + settings storage scheme to more closely match the Mame.exe core, + individual game *.inis whose settings are altered are stored in the \ini + directory. The MameUI GUI settings are stored in MameUI32/64.ini in the root + w/ MameUI.exe, and MameUI.ini is stored in the \ini directory and should + be interchangeable with a regular Mame.ini. Purge these two items to + return to baseline, the registry is no longer used for MameUI. [<b>Chris + Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l4 level1 lfo10;tab-stops:list .5in'>Provided an additional 'migration' + version of MameUI which will copy the contents of the registry key and + write it out to the new *.ini scheme when exiting. Useful for people + who have a large number of individual game customizations. [<b>John IV / + Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l4 level1 lfo10;tab-stops:list .5in'>Added toggle for high thread + priority in Options • Interface Options to match the core's new + -high_priority switch. This will devote more system resources and + time to MameUI at the expense of other already running programs. [<b>Chris + Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.65</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l10 level1 lfo11;tab-stops:list .5in'>Updated columnedit.c to + allow for MESS32 usage in software view. [<b>Nathan Woods/MESS32</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l10 level1 lfo11;tab-stops:list .5in'>Reworked F5/refresh + routines to utilise more audit code and logic. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l10 level1 lfo11;tab-stops:list .5in'>Reworked -lightgun + handling, enabling independently selectable mouse control for those games. + [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l10 level1 lfo11;tab-stops:list .5in'>Custom icons are included + in the distribution \icons directory to show what the control/tree icons + are without having to go through the source. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.63.1</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l5 level1 lfo12;tab-stops:list .5in'>Fixed analogue dead-zone not + being maintained, and pre-0.63 timing not being maintained. [<b>Chris + Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l5 level1 lfo12;tab-stops:list .5in'>Added folder view for hard + drive based games. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l5 level1 lfo12;tab-stops:list .5in'>Addressed missing/blank + custom icon display indexing issue on F5/refresh. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l5 level1 lfo12;tab-stops:list .5in'>Sped up MameUI launch / + folder reading routine. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l5 level1 lfo12;tab-stops:list .5in'>Fixed screenshot area + decimation when resizing images larger than the viewable area. [<b>John IV + / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l5 level1 lfo12;tab-stops:list .5in'>Added additional help topic + IDs and tool tips. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.63</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added code to ROM loading + dialogue to visually indicate user intervention when the game being + launched may not work due to 'no good dump' this will match the baseline + Mame [press ok to continue]. Examples include the game Astyanax, + 64th Street etc. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Return to baseline non-I686 + compile as it prevented MameUI working on a variety of machines. [<b>John + IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Made numerous code changes + to allow MameUI to be compiled with the new MinGW 2.0 package. [<b>Chris + Kirmse / Mike Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Distribution compiles are + now done using above mentioned MinGW 2.0 package. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added code to allow for a + tool tip to appear showing the full name of a game whose description is + cut-off by column width in details/grouped view. Hover cursor over + game to activate. [<b>Andrew Kirmse / Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>The default + \folders\Favorites.ini has been cleaned out. Now that it is easy to + drag and drop or secondary click to add games from the main list to the + custom folders, it no longer needs to serve as an example using personal + favorites. Be sure to backup existing \folders\Favorites.ini if using the + built in installer version of the MameUI distribution. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Tweaked code for drag & + drop of games into custom folders. In a custom folder to drag an + item out for deletion, it must go out of the game list pane either left, + right, up, or down beneath the last item in the pane or further out of the + GUI. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Reworked internal file + handling code to interface with Aaron's substantial core updates. [<b>Chris + Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Submitted code suggestion + to allow for more granular sorting and display of items in the Manufacturers + view, so companies will no longer be grouped with others incorrectly. [<b>René + Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Created new main icon and + about.bmp 'Ladybug Homage'. [<b>John IV</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Fixed ascending/descending + toggle via View • Arrange Icons for columns other than Game. Added + some logic to the -listsourcefile column display. Prevented color depth + and refresh rate settings from being displayed if games are played in + windowed mode. [<b>René Single / Chris Kirmse</b>]<span style='font-size: + 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Made Misc. art option gray + properly when its parent control was deselected. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Submitted code to clean up + some issues with the list and small icons view and icons squishing in + details view upon return from another view like large icons. [<b>René + Single / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Upgraded MameUI to utilize + the new common controls from Windows XP, allowing the proper look of an XP + application without the need for an external manifest file. [<b>Chris + Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added ability to rename + custom folders from the tree view, secondary click on them and choose + rename folder from the context menu, or click the name of the folder three + times quickly. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added the 'Source' folder + view, this will display all the driver.c files and all the games within + each family. [<b>Mike Haaland</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Removed the + \folders\BIOS.ini as it is now obviated by the built-in Source folder + view. [<b>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added -sourcefileinfo + information to the general tab for each <span class=GramE>games'</span> + properties, to easily and quickly see what driver family a game belongs + to. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added the long requested + clone offset aka 'Grouped' view. This will display the parent games + flush left, with all their clones alphabetized beneath them indented + inward. Excellent for grouping the clones whose names may be considerably + different than their <span class=GramE>parents,</span> and allowing typing + the name of the game to go to the parent set immediately. [<b>John + IV / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Reworked the Startup + Options to now be Interface Options, and added checkboxes to support + Aaron's new disclaimer / info screen toggle. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added new switches -rdtsc / + -pause_brightness to match the core. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.62</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Internalized the code for + rotate.exe, MameUI can now choose its background images from Options • + Background Image, and choose a random one on startup. Options • + Startup Options • Select Random Background Image. [<b>K&K</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added tabs for the + screenshot art <span class=GramE>area,</span> toggle with Alt-b. [<b>K&K</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added code to increase speed + of audit. [<b>K&K</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added secondary click menu + pop-up for screenshot area. [<b>Sword</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Allowed bkground.png to be displayed + in history.dat area under screenshot, font color changed to match GUI font + color. [<b>K&K</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created new icons for the + various tabs in Default Options / Game Properties dialogue boxes. [<b>John + IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Updated the ColumnEdit and + Properties code to make them both more extensible. [<b>Nathan Woods/MESS32</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Included index fixes to + speed load time in treeview.c, particularly with extra \folders *.inis. [<b>Jeff + Miller</b>] <span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Fixed an issue where the + startup focus in the details list would jump to the top of the list before + returning to the prior selection. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Main distribution now + compiled with I686=1 for Pentium Pro optimization. Doesn't impact + high end AMD chips at all but provides speed increases to lower range PII, + P3 machines. [<b>John IV</b>]<span style='font-size:12.0pt;font-family: + "Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created new *.ini files for + the \folders directory. Replace the old ones with these (<span + class=GramE>except</span> any user-modified of course). [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created a new MameUI MSI + installer package. This should be easier for beginners. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added the ability to drag and + drop games into the custom *.ini folders. [<b>Chris Kirmse</b>] <span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added the ability to + secondary click on a game to add or remove it from an *.ini file in the + \folders directory. [<b>Patrick Jones / Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.61</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Fixed a nasty crasher where + MameUI would hang if loading a game that required user intervention in + Mame[w] <span class=GramE>like</span> 'The Astyanax', and there was no + joystick connected to the system. [<b>Sword</b>]<span style='font-size: + 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Fixed a couple of fringe + case crashers when Windows is shut down beneath MameUI, i.e. a cabinet + setting. [<b>Robert John Sheppard</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Removed -dirty / -nodirty + options to match Aaron's core changes. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added dialogue box support + for new artwork switches, added -ini support to Options • Directories. [<b>Mike + Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added dialogue box support + for LED disablement, artwork resolution. [<b>Mike Haaland</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added brightness slider, + removed -bpp per Aaron's changes. [<b>Mike Haaland</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added sound chip and CPU + information to the folder views. Added the long requested feature to + create user defined folder views, see \folders files for examples. [<b>Sword, + BUT, Emuman / Mike Haaland</b>] <span style='font-size:12.0pt;font-family: + "Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created Artwork, BIOS, and + Custom folder views. [<b>John IV</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added support for displaying + -listsourcefile [source] field to the View • Customize Fields. Handy + for sorting to test global driver changes across all its <span + class=GramE>games.,</span> or using to report game problems to + MameTesters.com. [<b>Mike Haaland</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created new Version and + Classification folder views. [<b>John IV</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added support for the new + -lightgun switch. [<b>John IV</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Removed 'add to favorites' + from context menus and file menu since it is now possible/preferable to + have favorites stored in the portable, user-defined, external text file + [\folders]. <span class=GramE>Which also of course would survive a + registry key purge.</span> <span class=GramE>Times played is</span> still + accessible as a column in details view. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Updated help file with new + settings, added baseline Mame[w] documents to help file. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added \titles directory + support to allow for title screenshots viewing. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created new MameUI icon and <span + class=GramE>About</span> graphic. [<b>John IV</b>]<span style='font-size: + 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.60</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l13 level1 lfo16;tab-stops:list .5in'>Created and added the new + MameUI HTML Help File. [<b>John IV</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l13 level1 lfo16;tab-stops:list .5in'>Updated context sensitive + help support to MameUI, all controls should be mapped to pop-up help. [<b>Mike + Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added 'Use less CPU if + possible' check box in Options • Default Options • Miscellaneous. + This toggles the new baseline Mame[w] sleep / -nosleep switch. If + toggled on, it will return more time slices to the processor and be more + amenable to multi-tasking with other applications. If toggled off, + MameUI will continue to take 100% of the CPU time as it has historically. + It should be toggled 'off' for people experiencing severe slowdowns, + particularly laptop users. [<b>John IV / Mike Haaland</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added option to set the + directory for hard drive image diff files to match Mame[w] in Options • + Directories. Fixed screenshot area decimation when image sized too large + for area. Scales properly now and looks great. Fixed flip + options. [<b>Sword</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added option to set the + directory for icons in Options • Directories. [<b>John IV</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added support for new + external controller mapping. This adds support for common arcade + controllers and provides the ability to create user defined mappings for + home built solutions. See Options • Default Options • Controllers. + Also see the controller mapping document in the Mame Documents help + section. [<b>Ron Fries</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<h2><span style='font-size:12.0pt'>v.59</span></h2> + +<ul type=square> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l15 level1 lfo17;tab-stops:list .5in'>Added 'Allow game selection + by joystick' check box to Startup Options. Allows navigation and + game launch via controller<span class=GramE>:</span><br> + joystick 1 up = up arrow<br> + joystick 1 down = down arrow<br> + joystick 1 left = left arrow<br> + joystick 1 right = right arrow<br> + joystick 1 button 1 = play game<br> + joystick 1 button 2 = page up<br> + joystick 1 button 5 = page down<br> + joystick 1 button 3 = end<br> + joystick 1 button 6 = home. [<b>Chris Kirmse</b>]<span style='font-size: + 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l15 level1 lfo17;tab-stops:list .5in'>Fixed a few files to allow + a MinGW compile without errors. [<b>Sword</b>]<span style='font-size:12.0pt; + font-family:"Times New Roman"'><o:p></o:p></span></li> + <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; + mso-list:l15 level1 lfo17;tab-stops:list .5in'>Added 'Broadcast selected game + to all windows' check box in Startup Options, this allows third party + applications to be programmatically told what game is being played in + MameUI. It can be used to hook into applications like LED reader + boards, or instant message clients, etc. [<b>Chris Kirmse</b>]<span + style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li> +</ul> + +<p><font size="1"> +<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-09-23 09:01 PM -0700<!--webbot bot="Timestamp" endspan i-checksum="37950" -->/ <span class=GramE>john</span> iv</font></p> + +</div> + +</body> + +</html>
\ No newline at end of file diff --git a/docs/release/src/osd/winui/help/images/1.jpg b/docs/release/src/osd/winui/help/images/1.jpg Binary files differnew file mode 100644 index 00000000000..0ea95f36b2c --- /dev/null +++ b/docs/release/src/osd/winui/help/images/1.jpg diff --git a/docs/release/src/osd/winui/help/images/2.jpg b/docs/release/src/osd/winui/help/images/2.jpg Binary files differnew file mode 100644 index 00000000000..645f70feab9 --- /dev/null +++ b/docs/release/src/osd/winui/help/images/2.jpg diff --git a/docs/release/src/osd/winui/help/images/3.jpg b/docs/release/src/osd/winui/help/images/3.jpg Binary files differnew file mode 100644 index 00000000000..4eb620fd2fe --- /dev/null +++ b/docs/release/src/osd/winui/help/images/3.jpg diff --git a/docs/release/src/osd/winui/help/images/4.jpg b/docs/release/src/osd/winui/help/images/4.jpg Binary files differnew file mode 100644 index 00000000000..76b3c7c1176 --- /dev/null +++ b/docs/release/src/osd/winui/help/images/4.jpg diff --git a/docs/release/src/osd/winui/help/images/5.jpg b/docs/release/src/osd/winui/help/images/5.jpg Binary files differnew file mode 100644 index 00000000000..ee797a92b1b --- /dev/null +++ b/docs/release/src/osd/winui/help/images/5.jpg diff --git a/docs/release/src/osd/winui/help/images/6.jpg b/docs/release/src/osd/winui/help/images/6.jpg Binary files differnew file mode 100644 index 00000000000..c2d6e48d904 --- /dev/null +++ b/docs/release/src/osd/winui/help/images/6.jpg diff --git a/docs/release/src/osd/winui/help/images/7.jpg b/docs/release/src/osd/winui/help/images/7.jpg Binary files differnew file mode 100644 index 00000000000..1635cfe0ccd --- /dev/null +++ b/docs/release/src/osd/winui/help/images/7.jpg diff --git a/docs/release/src/osd/winui/help/images/8.jpg b/docs/release/src/osd/winui/help/images/8.jpg Binary files differnew file mode 100644 index 00000000000..8c18f298077 --- /dev/null +++ b/docs/release/src/osd/winui/help/images/8.jpg diff --git a/docs/release/src/osd/winui/help/images/bkground.gif b/docs/release/src/osd/winui/help/images/bkground.gif Binary files differnew file mode 100644 index 00000000000..3fc4ac0a81a --- /dev/null +++ b/docs/release/src/osd/winui/help/images/bkground.gif diff --git a/docs/release/src/osd/winui/help/images/folder.gif b/docs/release/src/osd/winui/help/images/folder.gif Binary files differnew file mode 100644 index 00000000000..e28e6f4033c --- /dev/null +++ b/docs/release/src/osd/winui/help/images/folder.gif diff --git a/docs/release/src/osd/winui/help/images/int.jpg b/docs/release/src/osd/winui/help/images/int.jpg Binary files differnew file mode 100644 index 00000000000..cab16e39c26 --- /dev/null +++ b/docs/release/src/osd/winui/help/images/int.jpg diff --git a/docs/release/src/osd/winui/help/images/mame321.gif b/docs/release/src/osd/winui/help/images/mame321.gif Binary files differnew file mode 100644 index 00000000000..4260dc3848a --- /dev/null +++ b/docs/release/src/osd/winui/help/images/mame321.gif diff --git a/docs/release/src/osd/winui/help/images/statusbar.gif b/docs/release/src/osd/winui/help/images/statusbar.gif Binary files differnew file mode 100644 index 00000000000..8619a6f618d --- /dev/null +++ b/docs/release/src/osd/winui/help/images/statusbar.gif diff --git a/docs/release/src/osd/winui/help/images/toolbar.gif b/docs/release/src/osd/winui/help/images/toolbar.gif Binary files differnew file mode 100644 index 00000000000..3a1d1ad5ed3 --- /dev/null +++ b/docs/release/src/osd/winui/help/images/toolbar.gif diff --git a/docs/release/src/osd/winui/help/mameui.hhc b/docs/release/src/osd/winui/help/mameui.hhc new file mode 100644 index 00000000000..e989d217a60 --- /dev/null +++ b/docs/release/src/osd/winui/help/mameui.hhc @@ -0,0 +1,122 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<HTML> +<HEAD> +<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"> +<!-- Sitemap 1.0 --> +</HEAD><BODY> +<OBJECT type="text/site properties"> + <param name="Window Styles" value="0x800625"> + <param name="ImageType" value="Folder"> +<param name="Font" value="Tahoma,8,0"> +</OBJECT> +<UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="MameUI Overview & History"> + <param name="Local" value="html\mameui_overview.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="MameUI Changes"> + <param name="Local" value="html\mameui_whatsnew32.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="MameUI Installation"> + </OBJECT> + <UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="System Requirements"> + <param name="Local" value="html\mameui_systemreq.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Download Locations"> + <param name="Local" value="html\mameUI_download.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Installation Procedures"> + <param name="Local" value="html\mameUI_installprocedures.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Art and Support Files"> + <param name="Local" value="html\mameUI_art.htm"> + </OBJECT> + </UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="MameUI Usage"> + </OBJECT> + <UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="MameUI Suggested Settings"> + <param name="Local" value="html\mameui_settings.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Playing a Game & Internal Controls"> + <param name="Local" value="html\mameui_playing.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Toolbar, Status Bar, & Windows"> + <param name="Local" value="html\mameui_visual_elements.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="File Menu"> + <param name="Local" value="html\mameui_filemenu.htm"> + </OBJECT> + <UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Game Properties"> + <param name="Local" value="html\mameui_properties.htm"> + </OBJECT> + </UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="View Menu"> + <param name="Local" value="html\mameui_viewmenu.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Options Menu"> + <param name="Local" value="html\mameui_optionsmenu.htm"> + </OBJECT> + <UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Game Properties"> + <param name="Local" value="html\mameui_properties.htm"> + </OBJECT> + </UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Help Menu"> + <param name="Local" value="html\mameui_help.htm"> + </OBJECT> + </UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="MameUI Troubleshooting"> + <param name="Local" value="html\mameui_support.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="MameUI Credits & Resources"> + <param name="Local" value="html\mameui_credits.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Game Changes"> + <param name="Local" value="html\mameui_changes.txt"> + <param name="New" value="1"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Mame Documents"> + </OBJECT> + <UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Mame License"> + <param name="Local" value="docs\Mame License.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Mame Terms of Use"> + <param name="Local" value="docs\Mame Statement of Purpose.htm"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Mame Release Notes"> + <param name="Local" value="docs\whatsnew.txt"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Mame Configuration & Usage"> + <param name="Local" value="docs\Command Line Settings.htm"> + </OBJECT> + </UL> +</UL> +</BODY></HTML> diff --git a/docs/release/src/osd/winui/help/mameui.hhk b/docs/release/src/osd/winui/help/mameui.hhk new file mode 100644 index 00000000000..c0ba08a9ac4 --- /dev/null +++ b/docs/release/src/osd/winui/help/mameui.hhk @@ -0,0 +1,9 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<HTML> +<HEAD> +<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"> +<!-- Sitemap 1.0 --> +</HEAD><BODY> +<UL> +</UL> +</BODY></HTML> diff --git a/docs/release/src/osd/winui/help/mameui.hhp b/docs/release/src/osd/winui/help/mameui.hhp new file mode 100644 index 00000000000..c0e4e40c160 --- /dev/null +++ b/docs/release/src/osd/winui/help/mameui.hhp @@ -0,0 +1,24 @@ +[OPTIONS] +Binary Index=No +Compatibility=1.1 or later +Compiled file=MameUI.chm +Contents file=mameui.hhc +Default Window=Baseline +Default topic=.\html\mameUI_changes.txt +Display compile progress=No +Full text search stop list file=stoplist.stp +Full-text search=Yes +Index file=mameui.hhk +Language=0x409 English (United States) +Title=MameUI Help + +[WINDOWS] +Baseline="MameUI Help","mameUI.hhc",,"html\mameUI_changes.txt",,,,,,0x22520,260,0x300c,[100,100,974,615],,,,,,,0 + + +[TEXT POPUPS] +cntx_help.txt +reshelp.h + +[INFOTYPES] + diff --git a/docs/release/src/osd/winui/help/mameui.hm b/docs/release/src/osd/winui/help/mameui.hm new file mode 100644 index 00000000000..a1f1e82f2ea --- /dev/null +++ b/docs/release/src/osd/winui/help/mameui.hm @@ -0,0 +1,135 @@ +// MAKEHELP.BAT generated Help Map file. Used by MAME32.HHP. + +// Commands (ID_* and IDM_*) +HID_TOOLBAR_EDIT 0x1005C +HID_CONTEXT_SHOW_FOLDER_START 0x19858 +HID_CONTEXT_SHOW_FOLDER_END 0x19920 +HID_FILE_EXIT 0x19C41 +HID_ABOUT 0x19C43 +HID_FILE_PLAY 0x19C44 +HID_HELP_ABOUT 0x19C46 +HID_VIEW_LARGE_ICON 0x19C47 +HID_VIEW_SMALL_ICON 0x19C48 +HID_VIEW_LIST_MENU 0x19C49 +HID_VIEW_DETAIL 0x19C4A +HID_VIEW_GROUPED 0x19C4B +HID_OPTIONS_FONT 0x19C4C +HID_OPTIONS_CLONE_COLOR 0x19C4D +HID_OPTIONS_DIR 0x19C4E +HID_OPTIONS_DEFAULTS 0x19C4F +HID_OPTIONS_RESET_DEFAULTS 0x19C50 +HID_OPTIONS_INTERFACE 0x19C51 +HID_FILE_AUDIT 0x19C52 +HID_FILE_PLAY_RECORD 0x19C53 +HID_FILE_PLAY_BACK 0x19C54 +HID_FILE_PLAY_RECORD_WAVE 0x19C55 +HID_FILE_PLAY_RECORD_MNG 0x19C56 +HID_VIEW_PICTURE_AREA 0x19C57 +HID_FILE_PLAY_RECORD_AVI 0x19C58 +HID_HELP_CONTENTS 0x19C59 +HID_HELP_WHATS_NEW32 0x19C5A +HID_HELP_TROUBLE 0x19C5B +HID_HELP_RELEASE 0x19C5C +HID_HELP_WHATS_NEW 0x19C5D +HID_HELP_CHEATS 0x19C5E +HID_VIEW_BYGAME 0x19C62 +HID_VIEW_BYDIRECTORY 0x19C63 +HID_VIEW_BYMANUFACTURER 0x19C64 +HID_VIEW_BYYEAR 0x19C65 +HID_VIEW_BYTYPE 0x19C66 +HID_VIEW_BYTIMESPLAYED 0x19C67 +HID_VIEW_LINEUPICONS 0x19C68 +HID_UPDATE_GAMELIST 0x19C6A +HID_SORT_ASCENDING 0x19C6D +HID_SORT_DESCENDING 0x19C6E +HID_CUSTOMIZE_FIELDS 0x19C70 +HID_GAME_PROPERTIES 0x19C71 +HID_VIEW_PAGETAB 0x19C72 +HID_VIEW_FOLDERS 0x19C73 +HID_VIEW_TOOLBARS 0x19C74 +HID_VIEW_STATUS 0x19C75 +HID_CONTEXT_FILTERS 0x19C76 +HID_CONTEXT_RENAME_CUSTOM 0x19C77 +HID_CONTEXT_ADD_CUSTOM 0x19C79 +HID_CONTEXT_REMOVE_CUSTOM 0x19C7A +HID_GAME_AUDIT 0x19C7B +HID_CONTEXT_SELECT_RANDOM 0x19C7C +HID_OPTIONS_LANGUAGE 0x19C7D +HID_VIEW_TAB_SCREENSHOT 0x19C7E +HID_VIEW_TAB_FLYER 0x19C7F +HID_VIEW_TAB_CABINET 0x19C80 +HID_VIEW_TAB_MARQUEE 0x19C81 +HID_VIEW_TAB_TITLE 0x19C82 +HID_VIEW_TAB_CONTROL_PANEL 0x19C83 +HID_VIEW_TAB_PCB 0x19C84 +HID_VIEW_TAB_HISTORY 0x19C85 +HID_OPTIONS_BG 0x19C86 +HID_TOGGLE_TAB_SCREENSHOT 0x19C87 +HID_TOGGLE_TAB_FLYER 0x19C88 +HID_TOGGLE_TAB_CABINET 0x19C89 +HID_TOGGLE_TAB_MARQUEE 0x19C8A +HID_TOGGLE_TAB_TITLE 0x19C8B +HID_TOGGLE_TAB_CONTROL_PANEL 0x19C8C +HID_TOGGLE_TAB_PCB 0x19C8D +HID_TOGGLE_TAB_HISTORY 0x19C8E +HID_VIEW_FULLSCREEN 0x19C8F +HID_CONTEXT_RESET_PLAYTIME 0x19C90 +HID_CONTEXT_RESET_PLAYCOUNT 0x19C91 +HID_FOLDER_PROPERTIES 0x19C92 +HID_FOLDER_AUDIT 0x19C93 +HID_UI_UP 0x19C94 +HID_UI_DOWN 0x19C95 +HID_UI_LEFT 0x19C96 +HID_UI_RIGHT 0x19C97 +HID_UI_START 0x19C98 +HID_UI_PGUP 0x19C99 +HID_UI_PGDOWN 0x19C9A +HID_UI_HOME 0x19C9B +HID_UI_END 0x19C9C +HID_UI_HISTORY_UP 0x19C9D +HID_UI_HISTORY_DOWN 0x19C9E +HID_FILE_LOADSTATE 0x19C9F +HID_FOLDER_SOURCEPROPERTIES 0x19CA0 +HID_FOLDER_VECTORPROPERTIES 0x19CA1 +HID_ARRANGE_ICONS 0x19CA2 + +// Prompts (IDP_*) + +// Resources (IDR_*) +HIDR_MAIN_MENU 0x2006D +HIDR_UI_MENU 0x2006E +HIDR_CONTEXT_MENU 0x20076 +HIDR_CONTEXT_HEADER 0x20097 +HIDR_CONTEXT_TREE 0x200A8 +HIDR_CONTEXT_SCREENSHOT 0x200B5 + +// Dialogs (IDD_*) +HIDD_MAIN 0x20065 +HIDD_ABOUT 0x2006C +HIDD_DIRECTX 0x20072 +HIDD_AUDIT 0x20073 +HIDD_DIRECTORIES 0x20074 +HIDD_CUSTOM_FILE 0x20075 +HIDD_PROP_GAME 0x20098 +HIDD_PROP_AUDIT 0x20099 +HIDD_PROP_DISPLAY 0x2009A +HIDD_PROP_SOUND 0x2009B +HIDD_PROP_ADVANCED 0x2009C +HIDD_PROP_INPUT 0x2009D +HIDD_PROP_MISC 0x2009E +HIDD_PROP_VECTOR 0x2009F +HIDD_COLUMNS 0x200A0 +HIDD_FILTERS 0x200A9 +HIDD_RESET 0x200AA +HIDD_LOAD_PROGRESS 0x200AB +HIDD_INTERFACE_OPTIONS 0x200AD +HIDD_PROP_HISTORY 0x200B0 +HIDD_ROM_ERROR 0x200B1 +HIDD_LANGUAGE 0x200B2 +HIDD_ERROR 0x200B3 +HIDD_PROP_DIRECT3D 0x200B8 +HIDD_PROP_CONTROLLER 0x200B9 +HIDD_PROP_SCREEN 0x200BB + +// Frame Controls (IDW_*) +HIDW_STATUS 0x50070 diff --git a/docs/release/src/osd/winui/help/reshelp.h b/docs/release/src/osd/winui/help/reshelp.h new file mode 100644 index 00000000000..709a8058cb1 --- /dev/null +++ b/docs/release/src/osd/winui/help/reshelp.h @@ -0,0 +1,4 @@ +// Include the Microsoft Developer Studio generated Help ID include file. +// +#include "..\resource.hm" +#include "mame32.hm" diff --git a/docs/release/src/osd/winui/help/stoplist.stp b/docs/release/src/osd/winui/help/stoplist.stp new file mode 100644 index 00000000000..11255546e24 --- /dev/null +++ b/docs/release/src/osd/winui/help/stoplist.stp @@ -0,0 +1,88 @@ +a +about +after +against +all +also +among +an +and +are +as +at +be +became +because +been +between +but +by +can +come +do +during +each +early +for +form +found +from +had +has +have +he +mame32 +his +however +in +include +into +is +it +its +late +later +me +med +made +many +may +more +most +near +no +non +not +of +on +only +or +other +over +several +she +some +such +than +that +the +their +then +there +these +they +this +through +to +under +until +use +was +we +were +when +where +which +who +with +you
\ No newline at end of file diff --git a/docs/release/src/osd/winui/helpids.cpp b/docs/release/src/osd/winui/helpids.cpp new file mode 100644 index 00000000000..19b3e980f98 --- /dev/null +++ b/docs/release/src/osd/winui/helpids.cpp @@ -0,0 +1,126 @@ +/* + * Help ID array - Generated by mkhelp + */ + +#include <windows.h> +#include "resource.h" +#include "resource.hm" + +extern const DWORD dwHelpIDs[] = +{ + IDC_ADSTICK ,HIDC_ADSTICK, + IDC_ANTIALIAS ,HIDC_ANTIALIAS, + IDC_ARTWORK_CROP ,HIDC_ARTWORK_CROP, + IDC_ASPECT ,HIDC_ASPECT, + IDC_ASPECTRATIOD ,HIDC_ASPECTRATIOD, + IDC_ASPECTRATION ,HIDC_ASPECTRATION, + IDC_AUDIO_LATENCY ,HIDC_AUDIO_LATENCY, + IDC_AUTOFRAMESKIP ,HIDC_AUTOFRAMESKIP, + IDC_BACKDROPS ,HIDC_BACKDROPS, + IDC_BEAM ,HIDC_BEAM, + IDC_BEZELS ,HIDC_BEZELS, + IDC_BIOS ,HIDC_BIOS, + IDC_BRIGHTCORRECT ,HIDC_BRIGHTCORRECT, + IDC_CHEAT ,HIDC_CHEAT, + IDC_COINLOCKOUT ,HIDC_COINLOCKOUT, + IDC_CONTRAST ,HIDC_CONTRAST, + IDC_CYCLETIMESEC ,HIDC_CYCLETIMESEC, + IDC_D3D_FILTER ,HIDC_D3D_FILTER, + IDC_DEBUG ,HIDC_DEBUG, + IDC_DEFAULT_INPUT ,HIDC_DEFAULT_INPUT, + IDC_DIAL ,HIDC_DIAL, + IDC_DUAL_LIGHTGUN ,HIDC_DUAL_LIGHTGUN, + IDC_ENABLE_AUTOSAVE ,HIDC_ENABLE_AUTOSAVE, + IDC_FILTER_CLONES ,HIDC_FILTER_CLONES, + IDC_FILTER_EDIT ,HIDC_FILTER_EDIT, + IDC_FILTER_HORIZONTAL ,HIDC_FILTER_HORIZONTAL, + IDC_FILTER_MECHANICAL ,HIDC_FILTER_MECHANICAL, + IDC_FILTER_NONWORKING ,HIDC_FILTER_NONWORKING, + IDC_FILTER_ORIGINALS ,HIDC_FILTER_ORIGINALS, + IDC_FILTER_RASTER ,HIDC_FILTER_RASTER, + IDC_FILTER_UNAVAILABLE ,HIDC_FILTER_UNAVAILABLE, + IDC_FILTER_VECTOR ,HIDC_FILTER_VECTOR, + IDC_FILTER_VERTICAL ,HIDC_FILTER_VERTICAL, + IDC_FILTER_WORKING ,HIDC_FILTER_WORKING, + IDC_FLICKER ,HIDC_FLICKER, + IDC_FLIPX ,HIDC_FLIPX, + IDC_FLIPY ,HIDC_FLIPY, + IDC_FRAMESKIP ,HIDC_FRAMESKIP, + IDC_FSBRIGHTNESS ,HIDC_FSBRIGHTNESS, + IDC_FSCONTRAST ,HIDC_FSCONTRAST, + IDC_FSGAMMA ,HIDC_FSGAMMA, + IDC_GAMMA ,HIDC_GAMMA, + IDC_HIDE_MOUSE ,HIDC_HIDE_MOUSE, + IDC_HIGH_PRIORITY ,HIDC_HIGH_PRIORITY, + IDC_HISTORY ,HIDC_HISTORY, + IDC_HWSTRETCH ,HIDC_HWSTRETCH, + IDC_JDZ ,HIDC_JDZ, + IDC_JOY_GUI ,HIDC_JOY_GUI, + IDC_JOYSTICK ,HIDC_JOYSTICK, + IDC_JSAT ,HIDC_JSAT, + IDC_KEEPASPECT ,HIDC_KEEPASPECT, + IDC_LIGHTGUN ,HIDC_LIGHTGUN, + IDC_LIGHTGUNDEVICE ,HIDC_LIGHTGUNDEVICE, + IDC_LOG ,HIDC_LOG, + IDC_MAXIMIZE ,HIDC_MAXIMIZE, + IDC_MOUSE ,HIDC_MOUSE, + IDC_MULTIKEYBOARD ,HIDC_MULTIKEYBOARD, + IDC_MULTIMOUSE ,HIDC_MULTIMOUSE, + IDC_MULTITHREAD_RENDERING ,HIDC_MULTITHREAD_RENDERING, + IDC_NUMSCREENS ,HIDC_NUMSCREENS, + IDC_OSLOG ,HIDC_OSLOG, + IDC_OVERLAYS ,HIDC_OVERLAYS, + IDC_PADDLE ,HIDC_PADDLE, + IDC_PAUSEBRIGHT ,HIDC_PAUSEBRIGHT, + IDC_PEDAL ,HIDC_PEDAL, + IDC_POSITIONAL ,HIDC_POSITIONAL, + IDC_PRESCALE ,HIDC_PRESCALE, + IDC_PROP_RESET ,HIDC_PROP_RESET, + IDC_REFRESH ,HIDC_REFRESH, + IDC_REFRESHSPEED ,HIDC_REFRESHSPEED, + IDC_RELOAD ,HIDC_RELOAD, + IDC_RESET_DEBUGSCRIPT ,HIDC_RESET_DEBUGSCRIPT, + IDC_RESET_DEFAULT ,HIDC_RESET_DEFAULT, + IDC_RESET_EFFECT ,HIDC_RESET_EFFECT, + IDC_RESET_FILTERS ,HIDC_RESET_FILTERS, + IDC_RESET_GAMES ,HIDC_RESET_GAMES, + IDC_RESET_JOYSTICKMAP ,HIDC_RESET_JOYSTICKMAP, + IDC_RESET_UI ,HIDC_RESET_UI, + IDC_ROTATE ,HIDC_ROTATE, + IDC_SAMPLERATE ,HIDC_SAMPLERATE, + IDC_SAMPLES ,HIDC_SAMPLES, + IDC_SCREEN ,HIDC_SCREEN, + IDC_SCREENSELECT ,HIDC_SCREENSELECT, + IDC_SECONDSTORUN ,HIDC_SECONDSTORUN, + IDC_SELECT_DEBUGSCRIPT ,HIDC_SELECT_DEBUGSCRIPT, + IDC_SELECT_EFFECT ,HIDC_SELECT_EFFECT, + IDC_SELECT_JOYSTICKMAP ,HIDC_SELECT_JOYSTICKMAP, + IDC_SIZES ,HIDC_SIZES, + IDC_SKIP_GAME_INFO ,HIDC_SKIP_GAME_INFO, + IDC_SLEEP ,HIDC_SLEEP, + IDC_SNAPNAME ,HIDC_SNAPNAME, + IDC_SNAPSIZE ,HIDC_SNAPSIZE, + IDC_SNAPSIZEHEIGHT ,HIDC_SNAPSIZEHEIGHT, + IDC_SNAPSIZEWIDTH ,HIDC_SNAPSIZEWIDTH, + IDC_SNAPVIEW ,HIDC_SNAPVIEW, + IDC_SPEED ,HIDC_SPEED, + IDC_START_GAME_CHECK ,HIDC_START_GAME_CHECK, + IDC_STEADYKEY ,HIDC_STEADYKEY, + IDC_STRETCH_SCREENSHOT_LARGER ,HIDC_STRETCH_SCREENSHOT_LARGER, + IDC_SWITCHRES ,HIDC_SWITCHRES, + IDC_SYNCREFRESH ,HIDC_SYNCREFRESH, + IDC_THROTTLE ,HIDC_THROTTLE, + IDC_TRACKBALL ,HIDC_TRACKBALL, + IDC_TRIPLE_BUFFER ,HIDC_TRIPLE_BUFFER, + IDC_UPDATEINPAUSE ,HIDC_UPDATEINPAUSE, + IDC_USE_DEFAULT ,HIDC_USE_DEFAULT, + IDC_USE_MOUSE ,HIDC_USE_MOUSE, + IDC_VERBOSE ,HIDC_VERBOSE, + IDC_VIDEO_MODE ,HIDC_VIDEO_MODE, + IDC_VIEW ,HIDC_VIEW, + IDC_VOLUME ,HIDC_VOLUME, + IDC_WAITVSYNC ,HIDC_WAITVSYNC, + IDC_WINDOWED ,HIDC_WINDOWED, + 0 ,0 + +}; diff --git a/docs/release/src/osd/winui/history.cpp b/docs/release/src/osd/winui/history.cpp new file mode 100644 index 00000000000..1fcd5d388a1 --- /dev/null +++ b/docs/release/src/osd/winui/history.cpp @@ -0,0 +1,64 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +/*************************************************************************** + + history.c + + history functions. + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <stdio.h> + +// MAME/MAMEUI headers +#include "emu.h" +#include "drivenum.h" +#include "mui_util.h" +#include "datafile.h" +#include "history.h" + +/************************************************************** + * functions + **************************************************************/ + +// Load indexes from history.dat if found +char * GetGameHistory(int driver_index) +{ + static char dataBuf[2048 * 2048]; + static char buffer[2048 * 2048]; + + memset(&buffer, 0, sizeof(buffer)); + memset(&dataBuf, 0, sizeof(dataBuf)); + + if (load_driver_mameinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 2) == 0) + strcat(dataBuf, buffer); + + if (load_driver_history(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 0) == 0) + strcat(dataBuf, buffer); + + if (load_driver_history(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 1) == 0) + strcat(dataBuf, buffer); + + if (load_driver_mameinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 0) == 0) + strcat(dataBuf, buffer); + + if (load_driver_driverinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 0) == 0) + strcat(dataBuf, buffer); + + if (load_driver_mameinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 1) == 0) + strcat(dataBuf, buffer); + + if (load_driver_driverinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 1) == 0) + strcat(dataBuf, buffer); + + if (load_driver_command(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer)) == 0) + strcat(dataBuf, buffer); + + if (load_driver_scoreinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer)) == 0) + strcat(dataBuf, buffer); + + return ConvertToWindowsNewlines(dataBuf); +} diff --git a/docs/release/src/osd/winui/history.h b/docs/release/src/osd/winui/history.h new file mode 100644 index 00000000000..65fbf6ec505 --- /dev/null +++ b/docs/release/src/osd/winui/history.h @@ -0,0 +1,11 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#pragma once + +#ifndef HISTORY_H +#define HISTORY_H + +char * GetGameHistory(int driver_index); + +#endif diff --git a/docs/release/src/osd/winui/layout.cpp b/docs/release/src/osd/winui/layout.cpp new file mode 100644 index 00000000000..44ee90f9633 --- /dev/null +++ b/docs/release/src/osd/winui/layout.cpp @@ -0,0 +1,273 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/*************************************************************************** + + layout.c + + MAME specific TreeView definitions (and maybe more in the future) + +***************************************************************************/ +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <commctrl.h> + +// MAME/MAMEUI headers +#include "bitmask.h" +#include "treeview.h" +#include "emu.h" +#include "mui_util.h" +#include "resource.h" +#include "mui_opts.h" +#include "splitters.h" +#include "help.h" +#include "mui_audit.h" +#include "properties.h" +//#define MESS + +static BOOL FilterAvailable(int driver_index); + +#ifdef MESS +#include "drivenum.h" + +static BOOL DriverIsComputer(int driver_index) +{ + return (driver_list::driver(driver_index).flags & MACHINE_TYPE_COMPUTER) != 0; +} + +static BOOL DriverIsConsole(int driver_index) +{ + return (driver_list::driver(driver_index).flags & MACHINE_TYPE_CONSOLE) != 0; +} + +static BOOL DriverIsModified(int driver_index) +{ + return (driver_list::driver(driver_index).flags & MACHINE_UNOFFICIAL) != 0; +} + +extern const FOLDERDATA g_folderData[] = +{ + {"All Systems", "allgames", FOLDER_ALLGAMES, IDI_FOLDER, 0, 0, NULL, NULL, TRUE }, + {"Available", "available", FOLDER_AVAILABLE, IDI_FOLDER_AVAILABLE, F_AVAILABLE, 0, NULL, FilterAvailable, TRUE }, + {"Unavailable", "unavailable", FOLDER_UNAVAILABLE, IDI_FOLDER_UNAVAILABLE, 0, F_AVAILABLE, NULL, FilterAvailable, FALSE }, + {"Console", "console", FOLDER_CONSOLE, IDI_FOLDER, F_CONSOLE, F_COMPUTER, NULL, DriverIsConsole, TRUE }, + {"Computer", "computer", FOLDER_COMPUTER, IDI_FOLDER, F_COMPUTER, F_CONSOLE, NULL, DriverIsComputer, TRUE }, + {"Modified/Hacked", "modified", FOLDER_MODIFIED, IDI_FOLDER, 0, 0, NULL, DriverIsModified, TRUE }, + {"Manufacturer", "manufacturer", FOLDER_MANUFACTURER, IDI_FOLDER_MANUFACTURER, 0, 0, CreateManufacturerFolders }, + {"Year", "year", FOLDER_YEAR, IDI_FOLDER_YEAR, 0, 0, CreateYearFolders }, + {"Source", "source", FOLDER_SOURCE, IDI_FOLDER_SOURCE, 0, 0, CreateSourceFolders }, + {"CPU", "cpu", FOLDER_CPU, IDI_FOLDER, 0, 0, CreateCPUFolders }, + {"Sound", "sound", FOLDER_SND, IDI_FOLDER, 0, 0, CreateSoundFolders }, + {"Imperfect", "imperfect", FOLDER_DEFICIENCY, IDI_FOLDER, 0, 0, CreateDeficiencyFolders }, + {"Dumping Status", "dumping", FOLDER_DUMPING, IDI_FOLDER, 0, 0, CreateDumpingFolders }, + {"Working", "working", FOLDER_WORKING, IDI_WORKING, F_WORKING, F_NONWORKING, NULL, DriverIsBroken, FALSE }, + {"Not Working", "nonworking", FOLDER_NONWORKING, IDI_NONWORKING, F_NONWORKING, F_WORKING, NULL, DriverIsBroken, TRUE }, + {"Originals", "originals", FOLDER_ORIGINAL, IDI_FOLDER, F_ORIGINALS, F_CLONES, NULL, DriverIsClone, FALSE }, + {"Clones", "clones", FOLDER_CLONES, IDI_FOLDER, F_CLONES, F_ORIGINALS, NULL, DriverIsClone, TRUE }, + {"Raster", "raster", FOLDER_RASTER, IDI_FOLDER, F_RASTER, F_VECTOR, NULL, DriverIsVector, FALSE }, + {"Vector", "vector", FOLDER_VECTOR, IDI_FOLDER, F_VECTOR, F_RASTER, NULL, DriverIsVector, TRUE }, + {"Mouse", "mouse", FOLDER_MOUSE, IDI_FOLDER, 0, 0, NULL, DriverUsesMouse, TRUE }, + {"Trackball", "trackball", FOLDER_TRACKBALL, IDI_FOLDER, 0, 0, NULL, DriverUsesTrackball, TRUE }, + {"Stereo", "stereo", FOLDER_STEREO, IDI_SOUND, 0, 0, NULL, DriverIsStereo, TRUE }, + { NULL } +}; +#else +extern const FOLDERDATA g_folderData[] = +{ + {"All Games", "allgames", FOLDER_ALLGAMES, IDI_FOLDER, 0, 0, NULL, NULL, TRUE }, + {"Available", "available", FOLDER_AVAILABLE, IDI_FOLDER_AVAILABLE, F_AVAILABLE, 0, NULL, FilterAvailable, TRUE }, + {"Unavailable", "unavailable", FOLDER_UNAVAILABLE, IDI_FOLDER_UNAVAILABLE, 0, F_AVAILABLE, NULL, FilterAvailable, FALSE }, + {"Manufacturer", "manufacturer", FOLDER_MANUFACTURER, IDI_FOLDER_MANUFACTURER, 0, 0, CreateManufacturerFolders }, + {"Year", "year", FOLDER_YEAR, IDI_FOLDER_YEAR, 0, 0, CreateYearFolders }, + {"Source", "source", FOLDER_SOURCE, IDI_FOLDER_SOURCE, 0, 0, CreateSourceFolders }, +// These 3 work, but cause MAMEUI to take a long time to start (approx 2 secs each) +// {"CPU", "cpu", FOLDER_CPU, IDI_CPU, 0, 0, CreateCPUFolders }, +// {"Sound", "sound", FOLDER_SND, IDI_SOUND, 0, 0, CreateSoundFolders }, +// {"Dumping Status", "dumping", FOLDER_DUMPING, IDI_FOLDER, 0, 0, CreateDumpingFolders }, + {"BIOS", "bios", FOLDER_BIOS, IDI_FOLDER, 0, 0, CreateBIOSFolders, DriverIsBios, TRUE }, + {"CHD", "harddisk", FOLDER_HARDDISK, IDI_HARDDISK, 0, 0, NULL, DriverIsHarddisk, TRUE }, + {"Samples", "samples", FOLDER_SAMPLES, IDI_FOLDER, 0, 0, NULL, DriverUsesSamples, TRUE }, + {"Working", "working", FOLDER_WORKING, IDI_WORKING, F_WORKING, F_NONWORKING, NULL, DriverIsBroken, FALSE }, + {"Imperfect", "imperfect", FOLDER_DEFICIENCY, IDI_FOLDER, 0, 0, CreateDeficiencyFolders }, + {"Not Working", "nonworking", FOLDER_NONWORKING, IDI_NONWORKING, F_NONWORKING, F_WORKING, NULL, DriverIsBroken, TRUE }, + {"Originals", "originals", FOLDER_ORIGINAL, IDI_FOLDER, F_ORIGINALS, F_CLONES, NULL, DriverIsClone, FALSE }, + {"Clones", "clones", FOLDER_CLONES, IDI_FOLDER, F_CLONES, F_ORIGINALS, NULL, DriverIsClone, TRUE }, + {"Screens", "screens", FOLDER_SCREENS, IDI_FOLDER, 0, 0, CreateScreenFolders }, +// These 2 stop MAMEUI from starting +// {"Resolution", "resolution", FOLDER_RESOLUTION, IDI_FOLDER, 0, 0, CreateResolutionFolders }, +// {"FPS", "fps", FOLDER_FPS, IDI_FOLDER, 0, 0, CreateFPSFolders }, + {"Horizontal", "horizontal", FOLDER_HORIZONTAL, IDI_FOLDER_HORIZONTAL, F_HORIZONTAL, F_VERTICAL, NULL, DriverIsVertical, FALSE }, + {"Vertical", "vertical", FOLDER_VERTICAL, IDI_FOLDER_VERTICAL, F_VERTICAL, F_HORIZONTAL, NULL, DriverIsVertical, TRUE }, + {"Raster", "raster", FOLDER_RASTER, IDI_FOLDER, F_RASTER, F_VECTOR, NULL, DriverIsVector, FALSE }, + {"Vector", "vector", FOLDER_VECTOR, IDI_FOLDER, F_VECTOR, F_RASTER, NULL, DriverIsVector, TRUE }, + {"Trackball", "trackball", FOLDER_TRACKBALL, IDI_FOLDER, 0, 0, NULL, DriverUsesTrackball, TRUE }, + {"Lightgun", "Lightgun", FOLDER_LIGHTGUN, IDI_FOLDER, 0, 0, NULL, DriverUsesLightGun, TRUE }, + {"Stereo", "stereo", FOLDER_STEREO, IDI_FOLDER, 0, 0, NULL, DriverIsStereo, TRUE }, + {"Save State", "savestate", FOLDER_SAVESTATE, IDI_FOLDER, 0, 0, NULL, DriverSupportsSaveState, TRUE }, + {"Mechanical", "mechanical", FOLDER_MECHANICAL, IDI_FOLDER, 0, 0, NULL, DriverIsMechanical, TRUE }, + {"Non Mechanical", "nonmechanical", FOLDER_NONMECHANICAL,IDI_FOLDER, 0, 0, NULL, DriverIsMechanical, FALSE }, + { NULL } +}; +#endif + +/* list of filter/control Id pairs */ +#ifdef MESS +extern const FILTER_ITEM g_filterList[] = +{ + { F_COMPUTER, IDC_FILTER_COMPUTER, DriverIsComputer, TRUE }, + { F_CONSOLE, IDC_FILTER_CONSOLE, DriverIsConsole, TRUE }, + { F_MODIFIED, IDC_FILTER_MODIFIED, DriverIsModified, TRUE }, + { F_CLONES, IDC_FILTER_CLONES, DriverIsClone, TRUE }, + { F_NONWORKING, IDC_FILTER_NONWORKING, DriverIsBroken, TRUE }, + { F_UNAVAILABLE, IDC_FILTER_UNAVAILABLE, FilterAvailable, FALSE }, + { F_RASTER, IDC_FILTER_RASTER, DriverIsVector, FALSE }, + { F_VECTOR, IDC_FILTER_VECTOR, DriverIsVector, TRUE }, + { F_ORIGINALS, IDC_FILTER_ORIGINALS, DriverIsClone, FALSE }, + { F_WORKING, IDC_FILTER_WORKING, DriverIsBroken, FALSE }, + { F_AVAILABLE, IDC_FILTER_AVAILABLE, FilterAvailable, TRUE }, + { F_ARCADE, IDC_FILTER_ARCADE, DriverIsArcade, TRUE }, + { F_MESS, IDC_FILTER_MESS, DriverIsArcade, FALSE }, + { 0 } +}; +#else +extern const FILTER_ITEM g_filterList[] = +{ + { F_CLONES, IDC_FILTER_CLONES, DriverIsClone, TRUE }, + { F_NONWORKING, IDC_FILTER_NONWORKING, DriverIsBroken, TRUE }, + { F_UNAVAILABLE, IDC_FILTER_UNAVAILABLE, FilterAvailable, FALSE }, + { F_RASTER, IDC_FILTER_RASTER, DriverIsVector, FALSE }, + { F_VECTOR, IDC_FILTER_VECTOR, DriverIsVector, TRUE }, + { F_ORIGINALS, IDC_FILTER_ORIGINALS, DriverIsClone, FALSE }, + { F_WORKING, IDC_FILTER_WORKING, DriverIsBroken, FALSE }, + { F_AVAILABLE, IDC_FILTER_AVAILABLE, FilterAvailable, TRUE }, + { F_HORIZONTAL, IDC_FILTER_HORIZONTAL, DriverIsVertical, FALSE }, + { F_VERTICAL, IDC_FILTER_VERTICAL, DriverIsVertical, TRUE }, + { F_MECHANICAL, IDC_FILTER_MECHANICAL, DriverIsMechanical, TRUE }, + { F_ARCADE, IDC_FILTER_ARCADE, DriverIsArcade, TRUE }, + { F_MESS, IDC_FILTER_MESS, DriverIsArcade, FALSE }, + { 0 } +}; +#endif + +#ifdef MESS +extern const SPLITTERINFO g_splitterInfo[] = +{ + { 0.2, IDC_SPLITTER, IDC_TREE, IDC_LIST, AdjustSplitter1Rect }, + { 0.4, IDC_SPLITTER2, IDC_LIST, IDC_SWLIST, AdjustSplitter1Rect }, + { 0.6, IDC_SPLITTER3, IDC_SWTAB, IDC_SSFRAME, AdjustSplitter2Rect }, + { -1 } +}; +#else +extern const SPLITTERINFO g_splitterInfo[] = +{ + { 0.25, IDC_SPLITTER, IDC_TREE, IDC_LIST, AdjustSplitter1Rect }, + { 0.5, IDC_SPLITTER2, IDC_LIST, IDC_SSFRAME, AdjustSplitter2Rect }, + { -1 } +}; +#endif + +#ifdef MESS +extern const MAMEHELPINFO g_helpInfo[] = +{ + //{ ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP"::/windows/main.htm") }, + { ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP) }, // 0 - call up CHM file + //{ ID_HELP_RELEASE, TRUE, TEXT(MAMEUIHELP) }, + //{ ID_HELP_WHATS_NEW, TRUE, TEXT(MAMEUIHELP"::/messnew.txt") }, + { ID_HELP_WHATS_NEW, TRUE, TEXT("") }, // 1 - call up whatsnew at mamedev.org + { -1 } +}; +#else +extern const MAMEHELPINFO g_helpInfo[] = +{ + { ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP) }, + //{ ID_HELP_WHATS_NEWUI, TRUE, TEXT(MAMEUIHELP"::/html/mameui_changes.txt") }, + //{ ID_HELP_TROUBLE, TRUE, TEXT(MAMEUIHELP"::/html/mameui_support.htm") }, + //{ ID_HELP_RELEASE, FALSE, TEXT("windows.txt") }, + { ID_HELP_WHATS_NEW, TRUE, TEXT(MAMEUIHELP"::/docs/whatsnew.txt") }, + { -1 } +}; +#endif + +#ifdef MESS +extern const PROPERTYSHEETINFO g_propSheets[] = +{ + { FALSE, NULL, IDD_PROP_GAME, GamePropertiesDialogProc }, + { FALSE, NULL, IDD_PROP_AUDIT, GameAuditDialogProc }, + { TRUE, NULL, IDD_PROP_DISPLAY, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_ADVANCED, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_SCREEN, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_SOUND, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_INPUT, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_CONTROLLER, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_DEBUG, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_MISC, GameOptionsProc }, + { FALSE, NULL, IDD_PROP_SOFTWARE, GameMessOptionsProc }, + { FALSE, DriverHasRam, IDD_PROP_CONFIGURATION, GameMessOptionsProc }, // PropSheetFilter_Config not needed + { TRUE, DriverIsVector, IDD_PROP_VECTOR, GameOptionsProc }, // PropSheetFilter_Vector not needed + { FALSE } +}; +#else +extern const PROPERTYSHEETINFO g_propSheets[] = +{ + { FALSE, NULL, IDD_PROP_GAME, GamePropertiesDialogProc }, + { FALSE, NULL, IDD_PROP_AUDIT, GameAuditDialogProc }, + { TRUE, NULL, IDD_PROP_DISPLAY, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_ADVANCED, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_SCREEN, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_SOUND, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_INPUT, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_CONTROLLER, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_MISC, GameOptionsProc }, + { TRUE, NULL, IDD_PROP_DEBUG, GameOptionsProc }, + { TRUE, DriverIsVector, IDD_PROP_VECTOR, GameOptionsProc }, + { FALSE } +}; +#endif + +#ifdef MESS +extern const ICONDATA g_iconData[] = +{ + { IDI_WIN_NOROMS, "noroms" }, + { IDI_WIN_ROMS, "roms" }, + { IDI_WIN_UNKNOWN, "unknown" }, + { IDI_WIN_CLONE, "clone" }, + { IDI_WIN_REDX, "warning" }, + { IDI_WIN_NOROMSNEEDED, "noromsneeded" }, + { IDI_WIN_MISSINGOPTROM, "missingoptrom" }, + { IDI_WIN_FLOP, "floppy" }, + { IDI_WIN_CASS, "cassette" }, + { IDI_WIN_SERL, "serial" }, + { IDI_WIN_SNAP, "snapshot" }, + { IDI_WIN_PRIN, "printer" }, + { IDI_WIN_HARD, "hard" }, + { 0 } +}; +#else +extern const ICONDATA g_iconData[] = +{ + { IDI_WIN_NOROMS, "noroms" }, + { IDI_WIN_ROMS, "roms" }, + { IDI_WIN_UNKNOWN, "unknown" }, + { IDI_WIN_CLONE, "clone" }, + { IDI_WIN_REDX, "warning" }, + { 0 } +}; +#endif + +#ifdef MESS +extern const TCHAR g_szPlayGameString[] = TEXT("&Run %s"); +extern const char g_szGameCountString[] = "%d systems"; +static const char g_szHistoryFileName[] = "history.dat"; // This can only be history.dat or sysinfo.dat +static const char g_szMameInfoFileName[] = "messinfo.dat"; // This can only be mameinfo.dat or messinfo.dat +#else +extern const TCHAR g_szPlayGameString[] = TEXT("&Play %s"); +extern const char g_szGameCountString[] = "%d games"; +extern const char g_szHistoryFileName[] = "history.dat"; +extern const char g_szMameInfoFileName[] = "mameinfo.dat"; +#endif + +static BOOL FilterAvailable(int driver_index) +{ + return !DriverUsesRoms(driver_index) || IsAuditResultYes(GetRomAuditResults(driver_index)); +} diff --git a/docs/release/src/osd/winui/mameui.rc b/docs/release/src/osd/winui/mameui.rc new file mode 100644 index 00000000000..754d2a25adf --- /dev/null +++ b/docs/release/src/osd/winui/mameui.rc @@ -0,0 +1,1459 @@ +// Microsoft Visual C++ generated resource script. +// +#include "newuires.h" +#include "resource.h" + +// Generated Help ID header file +#define APSTUDIO_HIDDEN_SYMBOLS +#include "resource.hm" +#undef APSTUDIO_HIDDEN_SYMBOLS + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "windows.h" +#include "commctrl.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (USA) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAIN_MENU MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Exit", ID_FILE_EXIT + END + POPUP "&Help" + BEGIN + MENUITEM "&About MAMEUI", ID_ABOUT + END +END + +IDR_UI_MENU MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Play", ID_FILE_PLAY + MENUITEM SEPARATOR + MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD + MENUITEM "P&layback Input...", ID_FILE_PLAY_BACK + MENUITEM SEPARATOR + MENUITEM "Play and Record &Wave Output...", ID_FILE_PLAY_RECORD_WAVE + MENUITEM SEPARATOR + MENUITEM "Play and Record &MNG Output...", ID_FILE_PLAY_RECORD_MNG + MENUITEM SEPARATOR + MENUITEM "Play and Record &uncompressed AVI Output...", + ID_FILE_PLAY_RECORD_AVI + MENUITEM SEPARATOR + MENUITEM "Loa&d Savestate...", ID_FILE_LOADSTATE + MENUITEM SEPARATOR + + MENUITEM "Pr&operties", ID_GAME_PROPERTIES + MENUITEM SEPARATOR + MENUITEM "Audi&t existing sets", ID_FILE_AUDIT_X + MENUITEM "&Audit all sets", ID_FILE_AUDIT + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_FILE_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Toolbar\tAlt+T", ID_VIEW_TOOLBARS + MENUITEM "&Status bar\tAlt+S", ID_VIEW_STATUS + MENUITEM "Fold&er List\tAlt+D", ID_VIEW_FOLDERS + MENUITEM "&Picture Area\tAlt+P", ID_VIEW_PICTURE_AREA + MENUITEM "Screenshot Ta&b\tAlt+B", ID_VIEW_PAGETAB + MENUITEM SEPARATOR + MENUITEM "&Fullscreen\tF11", ID_VIEW_FULLSCREEN + MENUITEM SEPARATOR + POPUP "S&how Pictures" + BEGIN + MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT + MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER + MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET + MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE + MENUITEM "&Title", ID_TOGGLE_TAB_TITLE + MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL + + MENUITEM "PC&B", ID_TOGGLE_TAB_PCB + MENUITEM "&History", ID_TOGGLE_TAB_HISTORY + END + MENUITEM SEPARATOR + MENUITEM "L&arge Icons", ID_VIEW_LARGE_ICON + MENUITEM "S&mall Icons", ID_VIEW_SMALL_ICON + MENUITEM "&List", ID_VIEW_LIST_MENU + MENUITEM "&Details", ID_VIEW_DETAIL + MENUITEM "&Grouped", ID_VIEW_GROUPED + MENUITEM SEPARATOR + POPUP "Arrange &Icons" + BEGIN + MENUITEM "by &Name", ID_VIEW_BYGAME + MENUITEM "by D&irectory", ID_VIEW_BYDIRECTORY + MENUITEM "by &Manufacturer", ID_VIEW_BYMANUFACTURER + MENUITEM "by Times &Played", ID_VIEW_BYTIMESPLAYED + MENUITEM "by &Type", ID_VIEW_BYTYPE + MENUITEM "by &Date", ID_VIEW_BYYEAR + END + MENUITEM "Line &Up Icons", ID_VIEW_LINEUPICONS + MENUITEM SEPARATOR + MENUITEM "&Refresh\tF5", ID_UPDATE_GAMELIST + MENUITEM "&Custom Filters...\tCtrl+F", ID_CONTEXT_FILTERS + MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS + END + POPUP "&Options" + BEGIN + MENUITEM "&Interface Options", ID_OPTIONS_INTERFACE + MENUITEM "Default Game &Options", ID_OPTIONS_DEFAULTS + MENUITEM "&Directories", ID_OPTIONS_DIR + MENUITEM SEPARATOR + MENUITEM "Game List &Font", ID_OPTIONS_FONT + MENUITEM "Game List &Clone Color", ID_OPTIONS_CLONE_COLOR + MENUITEM SEPARATOR + + MENUITEM "&Background Image", ID_OPTIONS_BG + MENUITEM SEPARATOR + MENUITEM "&Reset to Default", ID_OPTIONS_RESET_DEFAULTS + + END + POPUP "&Help" + BEGIN + MENUITEM "&Contents\tF1", ID_HELP_CONTENTS + MENUITEM "&Troubleshooting", ID_HELP_TROUBLE + MENUITEM SEPARATOR + MENUITEM "&New Game Changes", ID_HELP_WHATS_NEWUI + MENUITEM "&Mame Release Notes", ID_HELP_WHATS_NEW + MENUITEM SEPARATOR + MENUITEM "&About", ID_HELP_ABOUT + END +END + +IDR_CONTEXT_MENU MENU +BEGIN + POPUP "Context Menu" + BEGIN + MENUITEM "&Play", ID_FILE_PLAY + MENUITEM SEPARATOR + MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD + MENUITEM SEPARATOR + MENUITEM "&Add to Custom Folder...", ID_CONTEXT_ADD_CUSTOM + MENUITEM "R&emove From This Folder", ID_CONTEXT_REMOVE_CUSTOM + MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS + MENUITEM SEPARATOR + MENUITEM "&Select Random Game", ID_CONTEXT_SELECT_RANDOM + MENUITEM SEPARATOR + MENUITEM "Rese&t Playcount", ID_CONTEXT_RESET_PLAYCOUNT + MENUITEM "Reset Pla&y Time", ID_CONTEXT_RESET_PLAYTIME + MENUITEM SEPARATOR + MENUITEM "A&udit", ID_GAME_AUDIT + MENUITEM SEPARATOR + MENUITEM "Pr&operties", ID_GAME_PROPERTIES + MENUITEM "Source propert&ies", ID_FOLDER_SOURCEPROPERTIES + MENUITEM "&Vector properties", ID_FOLDER_VECTORPROPERTIES + END +END + +IDR_CONTEXT_HEADER MENU +BEGIN + POPUP "Header Context Menu" + BEGIN + MENUITEM "Sort &Ascending", ID_SORT_ASCENDING + MENUITEM "Sort &Descending", ID_SORT_DESCENDING + MENUITEM SEPARATOR + MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS + END +END + +IDR_CONTEXT_TREE MENU +BEGIN + POPUP "Context Menu Tree" + BEGIN + MENUITEM "&Rename", ID_CONTEXT_RENAME_CUSTOM + MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS + MENUITEM SEPARATOR + POPUP "&Show Folders" + BEGIN + MENUITEM "overridden by code", ID_CONTEXT_SHOW_FOLDER_START + + END + MENUITEM SEPARATOR + MENUITEM "&Audit", ID_FOLDER_AUDIT + MENUITEM SEPARATOR + MENUITEM "&Properties", ID_FOLDER_PROPERTIES + END +END + +IDR_CONTEXT_SCREENSHOT MENU +BEGIN + POPUP "Context Screen Shot" + BEGIN + MENUITEM "Show Tab &Control", ID_VIEW_PAGETAB + MENUITEM SEPARATOR + POPUP "S&how Pictures" + BEGIN + MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT + MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER + MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET + MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE + MENUITEM "&Title", ID_TOGGLE_TAB_TITLE + MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL + + MENUITEM "PC&B", ID_TOGGLE_TAB_PCB + MENUITEM "&History", ID_TOGGLE_TAB_HISTORY + END + MENUITEM SEPARATOR + MENUITEM "&Snapshot", ID_VIEW_TAB_SCREENSHOT + MENUITEM "&Flyer", ID_VIEW_TAB_FLYER + MENUITEM "&Cabinet", ID_VIEW_TAB_CABINET + MENUITEM "&Marquee", ID_VIEW_TAB_MARQUEE + MENUITEM "&Title", ID_VIEW_TAB_TITLE + MENUITEM "Control &Panel", ID_VIEW_TAB_CONTROL_PANEL + MENUITEM "PC&B", ID_VIEW_TAB_PCB + MENUITEM "&History", ID_VIEW_TAB_HISTORY + END +END + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_RUNTIME_MENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Load State...", ID_FILE_LOADSTATE_NEWUI, GRAYED + MENUITEM "&Save State", ID_FILE_SAVESTATE, GRAYED + MENUITEM "S&ave State As...", ID_FILE_SAVESTATE_AS, GRAYED + MENUITEM SEPARATOR + MENUITEM "Save Sc&reenshot", ID_FILE_SAVESCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Hide Menubar", ID_FILE_TOGGLEMENUBAR + MENUITEM "&Full Screen\tAlt+Enter", ID_FILE_FULLSCREEN + MENUITEM "Partial Keyboard Emulation", ID_FILE_UIACTIVE + MENUITEM "Show Tab Menu", ID_FILE_OLDUI + MENUITEM SEPARATOR + MENUITEM "&Exit", ID_FILE_EXIT_NEWUI + END + POPUP "&Edit" + BEGIN + MENUITEM "Paste", ID_EDIT_PASTE + END + POPUP "&Options" + BEGIN + MENUITEM "&Pause", ID_OPTIONS_PAUSE, GRAYED + MENUITEM "Soft &Reset", ID_OPTIONS_SOFTRESET + MENUITEM "Ha&rd Reset", ID_OPTIONS_HARDRESET + MENUITEM SEPARATOR + POPUP "&Keyboard" + BEGIN + MENUITEM "Emulated", ID_KEYBOARD_EMULATED + MENUITEM "Natural", ID_KEYBOARD_NATURAL + MENUITEM SEPARATOR + MENUITEM "Customise Emulated Keyboard...", ID_KEYBOARD_CUSTOMIZE + END + MENUITEM "&Joysticks", ID_OPTIONS_JOYSTICKS, GRAYED + POPUP "&Video" + BEGIN + MENUITEM SEPARATOR + MENUITEM "Rotate 0 degrees", ID_VIDEO_ROTATE_0 + MENUITEM "Rotate 90 degrees", ID_VIDEO_ROTATE_90 + MENUITEM "Rotate 180 degrees", ID_VIDEO_ROTATE_180 + MENUITEM "Rotate 270 degrees", ID_VIDEO_ROTATE_270 + END + MENUITEM "&Configuration...", ID_OPTIONS_CONFIGURATION + MENUITEM "&DIP Switches...", ID_OPTIONS_DIPSWITCHES + MENUITEM "&Miscellaneous Inputs...", ID_OPTIONS_MISCINPUT + MENUITEM "&Analog Controls...", ID_OPTIONS_ANALOGCONTROLS + MENUITEM SEPARATOR + POPUP "&Frameskip" + BEGIN + MENUITEM "Auto", ID_FRAMESKIP_AUTO + END + POPUP "Maximum &Speed" + BEGIN + MENUITEM "50%", ID_THROTTLE_50 + MENUITEM "100%", ID_THROTTLE_100 + MENUITEM "200%", ID_THROTTLE_200 + MENUITEM "500%", ID_THROTTLE_500 + MENUITEM "1000%", ID_THROTTLE_1000 + MENUITEM "Unlimited", ID_THROTTLE_UNTHROTTLED + END + MENUITEM "Show &FPS", ID_OPTIONS_TOGGLEFPS + END + POPUP "&Media" + BEGIN + MENUITEM SEPARATOR + END + POPUP "&Help" + BEGIN + MENUITEM "About This System...", ID_HELP_ABOUTSYSTEM + MENUITEM "&About MAME...", ID_HELP_ABOUT_NEWUI + END +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE MOVEABLE PURE +BEGIN + "resource.h\\r\n" + "newuires.h\0" +END + +2 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#define NOWINRES\r\n" + "#include ""windows.h""\r\n" + "#include ""commctrl.h""\r\n" + "\0" +END + +3 TEXTINCLUDE MOVEABLE PURE +BEGIN + "#include ""mamevers.rc"" // Version block\r\n" + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_MAMEUI_ICON ICON "res\\mameui.ico" +IDI_WIN_ROMS ICON "res\\win_roms.ico" +IDI_WIN_NOROMS ICON "res\\win_noro.ico" +IDI_WIN_UNKNOWN ICON "res\\win_unkn.ico" +IDI_WIN_CLONE ICON "res\\win_clone.ico" +IDI_WIN_REDX ICON "res\\win_redx.ico" +IDI_FOLDER_AVAILABLE ICON "res\\foldavail.ico" +IDI_FOLDER ICON "res\\folder.ico" +IDI_FOLDER_MANUFACTURER ICON "res\\foldmanu.ico" +IDI_FOLDER_OPEN ICON "res\\foldopen.ico" +IDI_FOLDER_UNAVAILABLE ICON "res\\foldunav.ico" +IDI_FOLDER_HORIZONTAL ICON "res\\horz.ico" +IDI_FOLDER_VERTICAL ICON "res\\vert.ico" +IDI_MANUFACTURER ICON "res\\manufact.ico" +IDI_FOLDER_YEAR ICON "res\\foldyear.ico" +IDI_FOLDER_SOURCE ICON "res\\foldsrc.ico" +IDI_WORKING ICON "res\\working.ico" +IDI_NONWORKING ICON "res\\nonwork.ico" +IDI_YEAR ICON "res\\year.ico" +IDI_KEYBOARD ICON "res\\keyboard.ico" +IDI_JOYSTICK ICON "res\\joystick.ico" +IDI_CPU ICON "res\\cpu.ico" +IDI_SOUND ICON "res\\samples.ico" +IDI_SOUNDTAB ICON "res\\sound.ico" +IDI_SOURCE ICON "res\\source.ico" +IDI_HARDDISK ICON "res\\harddisk.ico" +IDI_DISPLAY ICON "res\\display.ico" +IDI_CHECKMARK ICON "res\\checkmark.ico" +IDI_HEADER_UP ICON "res\\header_up.ico" +IDI_HEADER_DOWN ICON "res\\header_down.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUT DIALOG DISCARDABLE 0, 0, 296, 129 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About MAMEUI" +FONT 8, "Tahoma" +BEGIN + DEFPUSHBUTTON "&OK",IDOK,200,109,50,14,WS_GROUP + CTEXT "Multiple Arcade Machine Emulator",IDC_STATIC,147,7,142, + 11,NOT WS_GROUP + CTEXT "Version 0",IDC_VERSION,147,18,142,11,NOT WS_GROUP + CTEXT "Copyright (C) 1997-2015 The MAME Team",IDC_STATIC,147, + 29,142,10,NOT WS_GROUP + CTEXT "MAMEUI version by",IDC_STATIC,147,51,142,10,NOT + WS_GROUP + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,147,44,142,1 + CTEXT "Christopher Kirmse and the MAMEUI team",IDC_STATIC,147, + 62,142,9,NOT WS_GROUP + CTEXT "Additional MAMEUI code by",IDC_STATIC,147,74,142,9 + CTEXT "Mike Haaland, Andrew Kirmse, Jeff Miller",IDC_STATIC, + 147,85,142,9 + CTEXT "John Hardy IV and Michael Soderstrom",IDC_STATIC,147,96, + 142,9 + CONTROL "",IDC_ABOUT,"Static",SS_BITMAP | SS_SUNKEN,7,7,16,14 +END + +IDD_DIRECTX DIALOG DISCARDABLE 0, 0, 236, 69 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "MAMEUI" +FONT 8, "Tahoma" +BEGIN + DEFPUSHBUTTON "Go to Microsoft's DirectX Web Page",IDB_WEB_PAGE,48,52, + 140,14 + EDITTEXT IDC_DIRECTX_HELP,7,0,222,48,ES_MULTILINE | + ES_AUTOHSCROLL | ES_READONLY +END + +IDD_AUDIT DIALOG DISCARDABLE 0, 0, 283, 188 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "File Audit" +FONT 8, "Tahoma" +BEGIN + PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14 + PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14 + GROUPBOX "ROMs",IDC_STATIC,6,4,132,65 + LTEXT "Correct:",IDC_STATIC,51,28,32,8 + CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32", + PBS_SMOOTH | WS_BORDER,14,16,116,8 + LTEXT "Incorrect:",IDC_STATIC,51,42,32,8 + LTEXT "Total:",IDC_STATIC,51,56,32,8 + LTEXT "0",IDC_ROMS_CORRECT,87,28,20,8 + LTEXT "0",IDC_ROMS_INCORRECT,87,42,20,8 + LTEXT "0",IDC_ROMS_TOTAL,87,56,20,8 + GROUPBOX "Samples",IDC_STATIC,145,4,132,65 + CONTROL "Progress1",IDC_SAMPLES_PROGRESS,"msctls_progress32", + PBS_SMOOTH | WS_BORDER,153,16,116,8 + LTEXT "Correct:",IDC_STATIC,191,28,33,8 + LTEXT "Incorrect:",IDC_STATIC,191,42,33,8 + LTEXT "Total:",IDC_STATIC,191,56,33,8 + LTEXT "0",IDC_SAMPLES_CORRECT,227,28,20,8 + LTEXT "0",IDC_SAMPLES_INCORRECT,227,42,20,8 + LTEXT "0",IDC_SAMPLES_TOTAL,227,56,20,8 + GROUPBOX "Details",IDC_STATIC,6,72,271,90 + EDITTEXT IDC_AUDIT_DETAILS,12,82,259,74,ES_MULTILINE | + ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL | + NOT WS_TABSTOP +END + +IDD_DIRECTORIES DIALOG DISCARDABLE 0, 0, 230, 107 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Directories" +FONT 8, "Tahoma" +BEGIN + LTEXT "Show directories for:",IDC_STATIC,6,6,67,10 + COMBOBOX IDC_DIR_COMBO,6,18,160,79,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "Directories:",IDC_STATIC,6,38,38,10 + CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS | + LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER | + WS_TABSTOP,6,50,160,51 + DEFPUSHBUTTON "OK",IDOK,173,8,50,14 + PUSHBUTTON "Cancel",IDCANCEL,173,26,50,14 + PUSHBUTTON "Browse...",IDC_DIR_BROWSE,173,50,50,14 + PUSHBUTTON "Insert",IDC_DIR_INSERT,173,68,50,14 + PUSHBUTTON "Delete",IDC_DIR_DELETE,173,87,50,14 +END + +IDD_COLUMNS DIALOG DISCARDABLE 0, 0, 302, 145 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Customize Fields" +FONT 8, "Tahoma" +BEGIN + LTEXT "Available fields:",IDC_STATIC,6,6,80,10,SS_CENTERIMAGE + CONTROL "List1",IDC_LISTAVAILABLECOLUMNS,"SysListView32", + LVS_LIST | LVS_SINGLESEL | LVS_NOCOLUMNHEADER | + LVS_NOSORTHEADER | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6, + 18,90,100 + PUSHBUTTON "Add ->",IDC_BUTTONADD,102,18,46,14,WS_DISABLED + PUSHBUTTON "<- Remove",IDC_BUTTONREMOVE,102,36,46,14,WS_DISABLED + LTEXT "Show these fields in this order:",IDC_STATIC,154,6,96, + 10,SS_CENTERIMAGE + CONTROL "List1",IDC_LISTSHOWCOLUMNS,"SysListView32",LVS_LIST | + LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | + WS_BORDER | WS_HSCROLL | WS_TABSTOP,154,18,90,100 + PUSHBUTTON "Move Up",IDC_BUTTONMOVEUP,250,18,46,14,WS_DISABLED + PUSHBUTTON "Move Down",IDC_BUTTONMOVEDOWN,250,36,46,14,WS_DISABLED + DEFPUSHBUTTON "OK",IDOK,105,124,44,14 + PUSHBUTTON "Cancel",IDCANCEL,155,124,44,14 +END + +IDD_PROP_CONTROLLER DIALOGEX 0, 0, 220, 240 +STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Controller Mapping" +FONT 8, "Tahoma" +BEGIN + ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + GROUPBOX "Paddle device",IDC_STATIC,4,40,102,28 + COMBOBOX IDC_PADDLE,10,50,91,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_PADDLE + GROUPBOX "ADStick device",IDC_STATIC,4,71,102,28 + COMBOBOX IDC_ADSTICK,10,80,91,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_ADSTICK + GROUPBOX "Pedal device",IDC_STATIC,4,102,102,28 + COMBOBOX IDC_PEDAL,10,112,91,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_PEDAL + GROUPBOX "Mouse device",IDC_STATIC,4,133,102,28 + COMBOBOX IDC_MOUSE,10,142,90,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_MOUSE + GROUPBOX "Dial device",IDC_STATIC,113,40,102,28 + COMBOBOX IDC_DIAL,119,50,90,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_DIAL + GROUPBOX "Trackball device",IDC_STATIC,113,71,102,28 + COMBOBOX IDC_TRACKBALL,119,80,90,62,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_TRACKBALL + GROUPBOX "Lightgun device",IDC_STATIC,113,102,102,28 + COMBOBOX IDC_LIGHTGUNDEVICE,119,112,90,62,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP,0,HIDC_LIGHTGUNDEVICE + GROUPBOX "Positional device",IDC_STATIC,113,133,102,28 + COMBOBOX IDC_POSITIONAL,119,142,90,62,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP,0,HIDC_POSITIONAL + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14, + 0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_SCREEN DIALOGEX 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Screen" +FONT 8, "Tahoma" +BEGIN + ICON IDI_DISPLAY,IDC_STATIC,20,10,21,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX + + GROUPBOX "Number of screens",IDC_STATIC,4,40,103,24 + CONTROL "GammaSlider",IDC_NUMSCREENS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,50,75,10,0,HIDC_NUMSCREENS + RTEXT "1",IDC_NUMSCREENSDISP,84,49,14,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Screen",IDC_STATIC,4,66,103,29 + COMBOBOX IDC_SCREEN,10,76,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREEN + + GROUPBOX "",IDC_STATIC,4,97,103,28 + CONTROL "Autoselect aspect",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,97,73,10,0,HIDC_ASPECT + LTEXT "Aspect ratio",IDC_ASPECTRATIOTEXT,17,108,40,11,SS_CENTERIMAGE | NOT WS_GROUP + EDITTEXT IDC_ASPECTRATION,60,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATION + LTEXT ":",IDC_STATIC,76,108,8,10,SS_CENTERIMAGE | NOT WS_GROUP + EDITTEXT IDC_ASPECTRATIOD,80,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATIOD + + GROUPBOX "View",IDC_STATIC,4,128,103,28 + COMBOBOX IDC_VIEW,10,137,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIEW + + GROUPBOX "Screennumber",IDC_SCREENSELECTTEXT,113,40,102,28 + COMBOBOX IDC_SCREENSELECT,119,50,90,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREENSELECT + + GROUPBOX "Resolution",IDC_STATIC,113,71,102,76,WS_GROUP + GROUPBOX "Size",IDC_STATIC,119,81,90,28,WS_GROUP + COMBOBOX IDC_SIZES,126,91,77,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SIZES + + GROUPBOX "Refresh",IDC_REFRESHTEXT,119,112,90,28,WS_GROUP + COMBOBOX IDC_REFRESH,126,121,77,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_REFRESH + CONTROL "Switch resolutions to fit",IDC_SWITCHRES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,151,93,10,0,HIDC_SWITCHRES + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_GAME DIALOG DISCARDABLE 0, 0, 220, 276 +STYLE WS_CHILD | WS_CAPTION +CAPTION "General" +FONT 8, "Tahoma" +BEGIN + ICON IDI_MAMEUI_ICON,IDC_GAME_ICON,20,10,21,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,38,178,1 + LTEXT "Manufactured:",IDC_STATIC,18,43,47,8 + LTEXT "Static",IDC_PROP_MANUFACTURED,65,43,155,9,SS_NOPREFIX + LTEXT "Status:",IDC_STATIC,18,52,47,8 + LTEXT "Static",IDC_PROP_STATUS,65,52,155,32 + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,85,178,1 + LTEXT "CPU:",IDC_STATIC,18,90,47,8 + LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_CPU,65,90,155,40 + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,130,178,1 + LTEXT "Sound:",IDC_STATIC,18,135,47,8 + LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_SOUND,65,135,155,45 + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,181,178,1 + LTEXT "Screen:",IDC_STATIC,18,186,47,8 + LTEXT "Static\nStatic\nStatic",IDC_PROP_SCREEN,65,186,155,27 + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,218,178,1 + LTEXT "Source:",IDC_STATIC,16,223,47,8 + LTEXT "Static",IDC_PROP_SOURCE,65,223,139,8 + LTEXT "Clone of:",IDC_PROP_CLONEOF_TEXT,16,232,50,8 + LTEXT "Static",IDC_PROP_CLONEOF,65,232,130,33 +END + +IDD_PROP_AUDIT DIALOG DISCARDABLE 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Audit" +FONT 8, "Tahoma" +BEGIN + ICON IDI_CHECKMARK,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + LTEXT "ROM check:",IDC_STATIC,10,40,50,8 + LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8 + LTEXT "Sample check:",IDC_STATIC,10,52,50,8 + LTEXT "Checking...",IDC_PROP_SAMPLES,66,52,139,8 + GROUPBOX "Details",IDC_STATIC,4,64,211,171 + EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,199,155,ES_MULTILINE | + ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL | + NOT WS_TABSTOP +END + +IDD_PROP_DISPLAY DIALOGEX 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Display" +FONT 8, "Tahoma" +BEGIN + ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,169,25,SS_NOPREFIX + + CONTROL "Run in a window",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,69,10,0,HIDC_WINDOWED + CONTROL "Start out maximized",IDC_MAXIMIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,74,10,0,HIDC_MAXIMIZE + CONTROL "Enforce aspect ratio",IDC_KEEPASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,77,10,0,HIDC_KEEPASPECT + CONTROL "Throttle",IDC_THROTTLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,39,10,0,HIDC_THROTTLE + + GROUPBOX "Bitmap prescaling",IDC_PRESCALETEXT,4,89,103,24 + CONTROL "GammaSlider",IDC_PRESCALE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,99,71,10,0,HIDC_PRESCALE + RTEXT "1.00",IDC_PRESCALEDISP,84,98,14,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Gamma Correction",IDC_STATIC,4,115,103,24 + CONTROL "GammaSlider",IDC_GAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,125,71,10,0,HIDC_GAMMA + RTEXT "2.00",IDC_GAMMADISP,84,124,14,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Brightness Correction",IDC_STATIC,4,141,103,24 + CONTROL "GammaSlider",IDC_BRIGHTCORRECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,151,71,10,0,HIDC_BRIGHTCORRECT + RTEXT "1.00",IDC_BRIGHTCORRECTDISP,84,150,14,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Contrast Correction",IDC_STATIC,4,167,103,24 + CONTROL "GammaSlider",IDC_CONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,176,71,10,0,HIDC_CONTRAST + RTEXT "1.00",IDC_CONTRASTDISP,84,175,14,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Pause Brightness",IDC_STATIC,4,193,103,24 + CONTROL "Slider1",IDC_PAUSEBRIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,203,71,10,0,HIDC_PAUSEBRIGHT + RTEXT "0.65",IDC_PAUSEBRIGHTDISP,84,202,14,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Video mode",IDC_STATIC,113,40,102,28 + COMBOBOX IDC_VIDEO_MODE,119,50,90,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE + + GROUPBOX "Rotation",IDC_STATIC,113,71,102,55 + COMBOBOX IDC_ROTATE,119,81,90,57,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_ROTATE + CONTROL "Flip screen upside-down",IDC_FLIPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,98,91,10,0,HIDC_FLIPY + CONTROL "Flip screen left-right",IDC_FLIPX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,110,77,10,0,HIDC_FLIPX + + GROUPBOX "Direct3D",IDC_STATIC,113,128,102,57 + CONTROL "Use Bilinear filtering",IDC_D3D_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,138,85,10,0,HIDC_D3D_FILTER + +// GROUPBOX "Version",IDC_STATIC,119,150,90,28 +// COMBOBOX IDC_D3D_VERSION,125,160,78,95,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_D3D_VERSION + + GROUPBOX "DirectDraw",IDC_STATIC,113,187,102,26 + CONTROL "Stretch using hardware",IDC_HWSTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,197,85,10,0,HIDC_HWSTRETCH + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_SOUND DIALOGEX 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Sound" +FONT 8, "Tahoma" +BEGIN + ICON IDI_SOUNDTAB,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX + + GROUPBOX "",IDC_STATIC,4,40,211,155 + + GROUPBOX "Soundmode",IDC_STATIC,60,50,100,28 + COMBOBOX IDC_SOUND_MODE,66,60,88,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE + + CONTROL "Use samples",IDC_SAMPLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,84,55,10,0,HIDC_SAMPLES + + GROUPBOX "Sample rate",IDC_RATETEXT,60,96,100,28 + COMBOBOX IDC_SAMPLERATE,66,106,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SAMPLERATE + + GROUPBOX "Volume attenuation",IDC_VOLUMETEXT,60,127,100,28 + CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,139,68,10,0,HIDC_VOLUME + RTEXT "0dB",IDC_VOLUMEDISP,132,138,20,11,SS_CENTERIMAGE + + GROUPBOX "Audio latency",IDC_AUDIO_LATENCY_TEXT,60,158,100,28 + CONTROL "Slider1",IDC_AUDIO_LATENCY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,170,68,10,0,HIDC_AUDIO_LATENCY + RTEXT "1/5",IDC_AUDIO_LATENCY_DISP,132,169,20,11,SS_CENTERIMAGE + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_ADVANCED DIALOGEX 0, 0, 220, 255 +STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION +CAPTION "Advanced" +FONT 8, "Tahoma" +BEGIN + ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX + + CONTROL "Triple buffering",IDC_TRIPLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,93,10,0,HIDC_TRIPLE_BUFFER + CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH + CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC + CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED + + GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42 + CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP + COMBOBOX IDC_FRAMESKIP,10,127,91,88,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_FRAMESKIP + + GROUPBOX "Full screen gamma",IDC_FSGAMMATEXT,113,40,102,24 + CONTROL "Slider1",IDC_FSGAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,50,71,10,0,HIDC_FSGAMMA + RTEXT "2.00",IDC_FSGAMMADISP,193,49,16,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Full screen brightness",IDC_FSBRIGHTNESSTEXT,113,67,102,24 + CONTROL "Slider1",IDC_FSBRIGHTNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,77,71,10,0,HIDC_FSBRIGHTNESS + RTEXT "2.00",IDC_FSBRIGHTNESSDISP,193,76,16,10,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Full screen contrast",IDC_FSCONTRASTTEXT,113,94,102,24 + CONTROL "Slider1",IDC_FSCONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,104,71,10,0,HIDC_FSCONTRAST + RTEXT "2.00",IDC_FSCONTRASTDISP,193,103,16,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Seconds to run",IDC_SECONDSTORUNTEXT,113,122,102,24 + CONTROL "",IDC_SECONDSTORUN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,132,71,10,0,HIDC_SECONDSTORUN + RTEXT "60",IDC_SECONDSTORUNDISP,193,130,16,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Emulation speed",IDC_SPEEDTEXT,4,155,211,24 + CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,12,165,180,10,0,HIDC_SPEED + RTEXT "1.00",IDC_SPEEDDISP,191,164,20,11,SS_CENTERIMAGE | NOT WS_GROUP + + GROUPBOX "Effect",IDC_STATIC,4,182,211,50 + EDITTEXT IDC_EFFECT,12,192,200,14,ES_AUTOHSCROLL | WS_DISABLED + PUSHBUTTON "Select Effect",IDC_SELECT_EFFECT,12,211,60,14,0,0,HIDC_SELECT_EFFECT + PUSHBUTTON "Reset Effect",IDC_RESET_EFFECT,152,211,60,14,0,0,HIDC_RESET_EFFECT + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_DEBUG DIALOGEX 0, 0, 220, 255 +STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION +CAPTION "Debug" +FONT 8, "Tahoma" +BEGIN + ICON IDI_MANUFACTURER,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX + + CONTROL "Output log to Windows Debugger",IDC_OSLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,124,10,0,HIDC_OSLOG + CONTROL "Output log to Logfile",IDC_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_LOG + CONTROL "Output diagnostic information",IDC_VERBOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,111,10,0,HIDC_VERBOSE + CONTROL "Update Main window during paused emulation",IDC_UPDATEINPAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,171,10,0,HIDC_UPDATEINPAUSE + CONTROL "Activate Integrated Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,118,10,0,HIDC_DEBUG + + GROUPBOX "Debugscript",IDC_STATIC,6,104,211,50 + EDITTEXT IDC_DEBUGSCRIPT,14,114,200,14,ES_AUTOHSCROLL | WS_DISABLED + PUSHBUTTON "Select Debugscript",IDC_SELECT_DEBUGSCRIPT,14,133,67,14,0,0,HIDC_SELECT_DEBUGSCRIPT + PUSHBUTTON "Reset Debugscript",IDC_RESET_DEBUGSCRIPT,149,133,65,14,0,0,HIDC_RESET_DEBUGSCRIPT + + PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT +END + +IDD_PROP_INPUT DIALOGEX 0, 0, 220, 240 +STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION +CAPTION "Controllers" +FONT 8, "Tahoma" +BEGIN + ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + CONTROL "Enable mouse input",IDC_USE_MOUSE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,40,86,10,0, + HIDC_USE_MOUSE + CONTROL "Enable steadykey support",IDC_STEADYKEY,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,52,95,10,0, + HIDC_STEADYKEY + GROUPBOX "",IDC_STATIC,4,64,103,74 + CONTROL "Enable joystick input",IDC_JOYSTICK,"Button", + BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,10,64,78,10,0, + HIDC_JOYSTICK + GROUPBOX "Joystick deadzone",IDC_JDZTEXT,10,76,91,28 + CONTROL "IntensitySlider",IDC_JDZ,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,15,88,60,10,0,HIDC_JDZ + RTEXT "0.3",IDC_JDZDISP,76,87,16,11,SS_CENTERIMAGE | NOT + WS_GROUP + GROUPBOX "Default input layout",IDC_STATIC,113,40,102,28 + COMBOBOX IDC_DEFAULT_INPUT,119,50,90,53,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP,0,HIDC_DEFAULT_INPUT + GROUPBOX "",IDC_STATIC,113,71,102,66 + CONTROL "Enable lightgun input",IDC_LIGHTGUN,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,71,80,10,0, + HIDC_LIGHTGUN + CONTROL "Offscreen shots reload",IDC_RELOAD,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,83,86,10,0,HIDC_RELOAD + CONTROL "Dual lightguns",IDC_DUAL_LIGHTGUN,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,96,86,10,0, + HIDC_DUAL_LIGHTGUN + CONTROL "Multiple keyboards",IDC_MULTIKEYBOARD,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,109,75,10,0, + HIDC_MULTIKEYBOARD + CONTROL "Multiple mice",IDC_MULTIMOUSE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,122,56,10,0,HIDC_MULTIMOUSE + GROUPBOX "Joystick saturation",IDC_JSATTEXT,10,106,91,28 + CONTROL "IntensitySlider",IDC_JSAT,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,16,118,60,10,0,HIDC_JSAT + RTEXT "0.85",IDC_JSATDISP,76,116,16,11,SS_CENTERIMAGE | NOT + WS_GROUP + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14, + 0,0,HIDC_USE_DEFAULT + GROUPBOX "Joystickmap",IDC_STATIC,4,143,211,50 + EDITTEXT IDC_JOYSTICKMAP,12,153,200,14,ES_AUTOHSCROLL | + WS_DISABLED + PUSHBUTTON "Select Joystickmap",IDC_SELECT_JOYSTICKMAP,12,172,67,14, + 0,0,HIDC_SELECT_JOYSTICKMAP + PUSHBUTTON "Reset Joystickmap",IDC_RESET_JOYSTICKMAP,147,172,65,14, + 0,0,HIDC_RESET_JOYSTICKMAP +END + +IDD_PROP_MISC DIALOGEX 0, 0, 220, 240 +STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION +CAPTION "Miscellaneous" +FONT 8, "Tahoma" +BEGIN + ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + CONTROL "Enable cheats",IDC_CHEAT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,10,40,86,10,0,HIDC_CHEAT + CONTROL "Sleep when possible",IDC_SLEEP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,10,52,86,10,0,HIDC_SLEEP + CONTROL "Save game state on exit",IDC_ENABLE_AUTOSAVE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,76,96,10,0, + HIDC_ENABLE_AUTOSAVE + CONTROL "Coin lockout",IDC_COINLOCKOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,10,100,96,10,0,HIDC_COINLOCKOUT + GROUPBOX "Thread Priority",IDC_HIGH_PRIORITY_TEXT,7,112,103,34 + CONTROL "Slider1",IDC_HIGH_PRIORITY,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,13,122,75,10,0, + HIDC_HIGH_PRIORITY + LTEXT "idle",IDC_STATIC,17,132,12,8 + RTEXT "-15",IDC_HIGH_PRIORITYTXT,87,122,14,10,SS_CENTERIMAGE + RTEXT "real-time",IDC_STATIC,57,134,28,8 + GROUPBOX "Snapshot view",IDC_STATIC,7,148,103,28 + COMBOBOX IDC_SNAPVIEW,13,158,90,60,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_SNAPVIEW + GROUPBOX "Artwork options",IDC_STATIC,113,40,102,85 + CONTROL "Backdrops",IDC_BACKDROPS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,50,86,10,0,HIDC_BACKDROPS + CONTROL "Bezels",IDC_BEZELS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,62,86,10,0,HIDC_BEZELS + CONTROL "Overlays",IDC_OVERLAYS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,74,84,10,0,HIDC_OVERLAYS + CONTROL "CPanels",IDC_CPANELS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,86,84,10,0 + CONTROL "Marquees",IDC_MARQUEES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,98,84,10,0 + CONTROL "Crop artwork",IDC_ARTWORK_CROP,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,119,110,53,10,0,HIDC_ARTWORK_CROP + GROUPBOX "BIOS",IDC_STATIC,113,128,102,28 + COMBOBOX IDC_BIOS,119,138,90,60,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_BIOS + GROUPBOX "",IDC_STATIC,7,178,208,28 + CONTROL "Autoselect snapshot size",IDC_SNAPSIZE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,13,178,95,10,0, + HIDC_SNAPSIZE + LTEXT "Snapshotsize",IDC_SNAPSIZETEXT,11,189,44,11, + SS_CENTERIMAGE | NOT WS_GROUP + EDITTEXT IDC_SNAPSIZEWIDTH,122,187,32,12,ES_RIGHT | + ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEWIDTH + EDITTEXT IDC_SNAPSIZEHEIGHT,172,187,32,12,ES_RIGHT | + ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEHEIGHT + LTEXT "x",IDC_SNAPSIZEX,162,189,8,8 + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14, + 0,0,HIDC_USE_DEFAULT + CONTROL "Show Menu",IDC_SHOW_MENU,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,119,160,86,10,0 +END + +IDD_PROP_VECTOR DIALOGEX 0, 0, 220, 240 +STYLE WS_CHILD | WS_CAPTION +CAPTION "Vector" +FONT 8, "Tahoma" +BEGIN + ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20 + LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25, + SS_NOPREFIX + CONTROL "Draw antialiased vectors",IDC_ANTIALIAS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,10,40,92,10,0, + HIDC_ANTIALIAS + GROUPBOX "Beam width",IDC_BEAMTEXT,60,53,100,28 + CONTROL "BeamSlider",IDC_BEAM,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,66,65,64,10,0,HIDC_BEAM + RTEXT "16.00",IDC_BEAMDISP,132,64,20,11,SS_CENTERIMAGE + GROUPBOX "Flicker",IDC_FLICKERTEXT,60,84,100,28 + CONTROL "FlickerSlider",IDC_FLICKER,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,66,96,64,10,0,HIDC_FLICKER + RTEXT "100.00",IDC_FLICKERDISP,128,95,24,11,SS_CENTERIMAGE | + NOT WS_GROUP + PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET + PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14, + 0,0,HIDC_USE_DEFAULT +END + +IDD_MAIN DIALOGEX 0, 0, 364, 206 +STYLE DS_3DLOOK | DS_NOFAILCREATE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | DS_SETFONT +EXSTYLE WS_EX_CONTROLPARENT +CAPTION "MAMEUI - overwritten at runtime" +CLASS "MainClass" +FONT 8, "Verdana" +BEGIN + CONTROL "",IDC_DIVIDER,"Static",SS_ETCHEDHORZ,0,5,304,1 + CONTROL "Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS | + TVS_SHOWSELALWAYS | TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,5,28,48,172 + CONTROL "List1",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE | + LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,65,28,42,172 + GROUPBOX "",IDC_SPLITTER,55,28,8,172,BS_NOTIFY | NOT WS_VISIBLE + GROUPBOX "",IDC_SPLITTER2,109,28,8,172,BS_NOTIFY | NOT WS_VISIBLE + CONTROL "",IDC_SSFRAME,"Static",SS_ETCHEDFRAME | SS_NOTIFY,121,11,181,194 + CONTROL "",IDC_SSTAB,"SysTabControl32",TCS_HOTTRACK,121,0,181,18 + CONTROL "",IDC_SSPICTURE,"Static",SS_BITMAP | NOT WS_VISIBLE,141,18,141,127 + EDITTEXT IDC_HISTORY,129,150,167,49,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,0,HIDC_HISTORY +END + +IDD_FILTERS DIALOGEX 0, 0, 190, 196 +STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | + WS_SYSMENU +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Game Filters" +FONT 8, "Tahoma" +BEGIN + GROUPBOX "Game filters",IDC_STATIC,6,4,178,99 + CONTROL "&Vector Graphics",IDC_FILTER_VECTOR,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,16,70,10,0, + HIDC_FILTER_VECTOR + CONTROL "C&lones",IDC_FILTER_CLONES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,14,30,41,10,0,HIDC_FILTER_CLONES + CONTROL "Non-Wor&king",IDC_FILTER_NONWORKING,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,44,61,10,0, + HIDC_FILTER_NONWORKING + CONTROL "&Horizontal",IDC_FILTER_HORIZONTAL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,58,57,10,0, + HIDC_FILTER_HORIZONTAL + CONTROL "&Unavailable",IDC_FILTER_UNAVAILABLE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,72,57,10,0, + HIDC_FILTER_UNAVAILABLE + CONTROL "Arcade",IDC_FILTER_ARCADE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,86,57,10,0 + CONTROL "&Raster Graphics",IDC_FILTER_RASTER,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,100,16,70,10,0, + HIDC_FILTER_RASTER + CONTROL "Ori&ginals",IDC_FILTER_ORIGINALS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,100,30,47,10,0, + HIDC_FILTER_ORIGINALS + CONTROL "&Working",IDC_FILTER_WORKING,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,100,44,47,10,0,HIDC_FILTER_WORKING + CONTROL "&Vertical",IDC_FILTER_VERTICAL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,100,58,47,10,0,HIDC_FILTER_VERTICAL + CONTROL "&Mechanical",IDC_FILTER_MECHANICAL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,100,72,58,10,0,HIDC_FILTER_MECHANICAL + CONTROL "MESS",IDC_FILTER_MESS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,100,86,58,10,0,HIDC_FILTER_MECHANICAL + LTEXT "(*) = inherited from parent folder",IDC_INHERITED,14,72, + 99,10 + CTEXT "Game filters allow customizing the games that are displayed in each folder by hiding games that match the filters applied.", + IDC_STATIC,6,108,178,27 + GROUPBOX "&Description filter",IDC_STATIC,6,136,178,33 + EDITTEXT IDC_FILTER_EDIT,14,148,162,13,ES_AUTOHSCROLL,0, + HIDC_FILTER_EDIT + DEFPUSHBUTTON "&OK",IDOK,42,175,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,98,175,50,14 +END + +IDD_RESET DIALOGEX 0, 0, 190, 122 +STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Reset Options" +FONT 8, "Tahoma" +BEGIN + GROUPBOX "Categories",IDC_STATIC,6,4,178,70 + CONTROL "&User Interface (Fonts, Colors, Sizes)",IDC_RESET_UI, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,146,10,0, + HIDC_RESET_UI + CONTROL "&Default game options",IDC_RESET_DEFAULT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,30,146,10,0, + HIDC_RESET_DEFAULT + CONTROL "&All games to use default options",IDC_RESET_GAMES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,146,10,0, + HIDC_RESET_GAMES + CONTROL "&Folder 'filters'",IDC_RESET_FILTERS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,58,146,10,0, + HIDC_RESET_FILTERS + CTEXT "Select the options to be restored to the default settings.", + IDC_STATIC,6,79,178,20 + DEFPUSHBUTTON "&OK",IDOK,42,101,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,98,101,50,14 +END + + +IDD_INTERFACE_OPTIONS DIALOGEX 0, 0, 378, 225 +STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Interface Options" +FONT 8, "Tahoma" +BEGIN + GROUPBOX "Game Selection",IDC_STATIC,6,4,189,194 + CONTROL "&Search for new games on start",IDC_START_GAME_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,111,10,0, + HIDC_START_GAME_CHECK + CONTROL "Allow game selection by a &joystick (requires restart)", + IDC_JOY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30, + 174,10,0,HIDC_JOY_GUI + CONTROL "Allow game selection by custom &key sequences", + IDC_KEY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44, + 166,10 + CONTROL "Hide &mouse cursor (requires restart)",IDC_HIDE_MOUSE, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,86,126,10,0, + HIDC_HIDE_MOUSE + CONTROL "Inheritable Filters",IDC_FILTER_INHERIT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,14,100,68,10 + CONTROL "No offset for clones missing parent in view", + IDC_NOOFFSET_CLONES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,14,114,148,10 + GROUPBOX "Show History on Tab",IDC_STATIC,14,128,173,28 + COMBOBOX IDC_HISTORY_TAB,57,138,88,50,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + GROUPBOX "Snapshot Pattern",IDC_STATIC,202,4,170,28 + GROUPBOX "Bookkeeping",IDC_STATIC,202,36,170,43 + CONTROL "Reset all Playcounts",IDC_RESET_PLAYCOUNT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,210,48,80,10 + CONTROL "Reset all Play Times",IDC_RESET_PLAYTIME,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,210,62,79,10 + GROUPBOX "Screenshot Area",IDC_STATIC,202,83,170,115 + CONTROL "S&tretch screenshot larger than natural size", + IDC_STRETCH_SCREENSHOT_LARGER,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,210,95,148,10,0, + HIDC_STRETCH_SCREENSHOT_LARGER + GROUPBOX "Screenshot Cycletime in Seconds",IDC_STATIC,210,109,154, + 28 + CONTROL "Slider1",IDC_CYCLETIMESEC,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,218,121,120,10,0, + HIDC_CYCLETIMESEC + RTEXT "60",IDC_CYCLETIMESECTXT,340,120,13,10,SS_CENTERIMAGE + GROUPBOX "Screenshot Bordersize",IDC_STATIC,210,141,154,28 + CONTROL "Slider1",IDC_SCREENSHOT_BORDERSIZE,"msctls_trackbar32", + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,153,120,10 + RTEXT "100",IDC_SCREENSHOT_BORDERSIZETXT,340,152,13,10, + SS_CENTERIMAGE + PUSHBUTTON "Set Screenshot Border Color",IDC_SCREENSHOT_BORDERCOLOR, + 210,176,154,14 + DEFPUSHBUTTON "&OK",IDOK,136,204,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,192,204,50,14 + COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP,0,HIDC_SNAPNAME +END + +IDD_CUSTOM_FILE DIALOG DISCARDABLE 0, 0, 190, 135 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Add Game To Custom Folder" +FONT 8, "Tahoma" +BEGIN + LTEXT "",IDC_CUSTOMFILE_GAME,6,6,175,10,SS_NOPREFIX | + SS_CENTERIMAGE + CONTROL "CustomTree",IDC_CUSTOM_TREE,"SysTreeView32", + TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | + TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | + TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,6,18,178,90 + DEFPUSHBUTTON "OK",IDOK,42,114,50,14 + PUSHBUTTON "Cancel",IDCANCEL,98,114,50,14 +END + + + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDA_TAB_KEYS ACCELERATORS MOVEABLE PURE +BEGIN + "1", ID_VIEW_TAB_SCREENSHOT, VIRTKEY, ALT, NOINVERT + "2", ID_VIEW_TAB_FLYER, VIRTKEY, ALT, NOINVERT + "3", ID_VIEW_TAB_CABINET, VIRTKEY, ALT, NOINVERT + "4", ID_VIEW_TAB_MARQUEE, VIRTKEY, ALT, NOINVERT + "5", ID_VIEW_TAB_TITLE, VIRTKEY, ALT, NOINVERT + "6", ID_VIEW_TAB_CONTROL_PANEL, VIRTKEY, ALT, NOINVERT + "7", ID_VIEW_TAB_PCB, VIRTKEY, ALT, NOINVERT + "8", ID_VIEW_TAB_HISTORY, VIRTKEY, ALT, NOINVERT + "A", ID_GAME_AUDIT, VIRTKEY, ALT, NOINVERT + "B", ID_VIEW_PAGETAB, VIRTKEY, ALT, NOINVERT + "D", ID_VIEW_FOLDERS, VIRTKEY, ALT, NOINVERT + "E", ID_TOOLBAR_EDIT, VIRTKEY, CONTROL, NOINVERT + "F", ID_CONTEXT_FILTERS, VIRTKEY, CONTROL, NOINVERT + "U", ID_FOLDER_AUDIT, VIRTKEY, ALT, NOINVERT + "P", ID_VIEW_PICTURE_AREA, VIRTKEY, ALT, NOINVERT + "R", ID_CONTEXT_SELECT_RANDOM, VIRTKEY, CONTROL, NOINVERT + "S", ID_VIEW_STATUS, VIRTKEY, ALT, NOINVERT + "T", ID_VIEW_TOOLBARS, VIRTKEY, ALT, NOINVERT + VK_F1, ID_HELP_CONTENTS, VIRTKEY, NOINVERT + VK_F11, ID_VIEW_FULLSCREEN, VIRTKEY, NOINVERT + VK_F5, ID_UPDATE_GAMELIST, VIRTKEY, NOINVERT + VK_NEXT, ID_UI_HISTORY_DOWN, VIRTKEY, CONTROL, NOINVERT + VK_PRIOR, ID_UI_HISTORY_UP, VIRTKEY, CONTROL, NOINVERT + VK_RETURN, ID_GAME_PROPERTIES, VIRTKEY, ALT, NOINVERT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO MOVEABLE PURE +BEGIN + IDD_ABOUT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 289 + TOPMARGIN, 7 + BOTTOMMARGIN, 123 + END + + IDD_DIRECTX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 229 + TOPMARGIN, 7 + BOTTOMMARGIN, 62 + END + + IDD_AUDIT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 280 + TOPMARGIN, 7 + BOTTOMMARGIN, 187 + HORZGUIDE, 19 + END + + IDD_DIRECTORIES, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 224 + TOPMARGIN, 7 + BOTTOMMARGIN, 98 + END + + IDD_COLUMNS, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 301 + TOPMARGIN, 7 + BOTTOMMARGIN, 143 + END + + IDD_PROP_CONTROLLER, DIALOG + BEGIN + RIGHTMARGIN, 210 + BOTTOMMARGIN, 154 + END + + IDD_PROP_SCREEN, DIALOG + BEGIN + LEFTMARGIN, 4 + VERTGUIDE, 7 + VERTGUIDE, 123 + BOTTOMMARGIN, 199 + HORZGUIDE, 179 + END + + IDD_PROP_GAME, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 19 + VERTGUIDE, 66 + VERTGUIDE, 74 + VERTGUIDE, 201 + BOTTOMMARGIN, 268 + END + + IDD_PROP_AUDIT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 12 + VERTGUIDE, 208 + BOTTOMMARGIN, 198 + HORZGUIDE, 38 + END + + IDD_PROP_DISPLAY, DIALOG + BEGIN + LEFTMARGIN, 4 + VERTGUIDE, 7 + VERTGUIDE, 123 + HORZGUIDE, 179 + END + + IDD_PROP_SOUND, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 50 + BOTTOMMARGIN, 198 + END + + IDD_PROP_ADVANCED, DIALOG + BEGIN + LEFTMARGIN, 10 + BOTTOMMARGIN, 240 + END + + IDD_PROP_INPUT, DIALOG + BEGIN + LEFTMARGIN, 4 + RIGHTMARGIN, 215 + VERTGUIDE, 50 + VERTGUIDE, 170 + END + + IDD_PROP_MISC, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 25 + VERTGUIDE, 40 + VERTGUIDE, 104 + VERTGUIDE, 114 + VERTGUIDE, 204 + BOTTOMMARGIN, 236 + END + + IDD_PROP_VECTOR, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 213 + VERTGUIDE, 50 + BOTTOMMARGIN, 198 + END + + IDD_FILTERS, DIALOG + BEGIN + LEFTMARGIN, 7 + TOPMARGIN, 7 + BOTTOMMARGIN, 178 + END + + IDD_RESET, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 175 + VERTGUIDE, 18 + VERTGUIDE, 164 + TOPMARGIN, 7 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + + + + +IDB_ABOUT BITMAP "res\\about.bmp" +IDB_TOOLBAR BITMAP "res\\toolbar.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Cursor +// + +IDC_CURSOR_HSPLIT CURSOR "res\\splith.cur" + +///////////////////////////////////////////////////////////////////////////// +// +// RT_MANIFEST +// + +1 RT_MANIFEST "res\\mameui.manifest" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_UI_FILE "Contains commands for working with the selected items" + IDS_UI_VIEW "Contains commands for manipulating the view" + IDS_UI_OPTIONS "Contains commands for user interface options" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_UI_HELP "Contains commands for displaying help" + IDS_VIEW_TOOLBAR "Show or hide the toolbar" + IDS_VIEW_STATUSBAR "Show or hide the status bar" + IDS_VIEW_FOLDERLIST "Show or hide the folder list" + IDS_VIEW_SCREENSHOT "Show or hide the screen shot" + IDS_VIEW_PICTURETABS "Show or hide tabs in the picture area" + IDS_VIEW_SPACER1 "Spacer" + IDS_VIEW_FULLSCREEN "Toggle full screen mode" + IDS_VIEW_SPACER2 "Spacer" + IDS_VIEW_SHOWPICTURES "Contains commands to select tabs shown in the picture area" + IDS_VIEW_SPACER3 "Spacer" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_VIEW_LARGEICONS "Display items by using large icons." + IDS_VIEW_SMALLICONS "Display items by using small icons." + IDS_VIEW_LIST "Displays items in a list." + IDS_VIEW_DETAILS "Displays detailed information about each item in the window." + IDS_VIEW_GROUPED "Displays items grouped by parent game" + IDS_VIEW_SPACER4 "Spacer" + IDS_VIEW_ARRANGE "Contains commands for sorting by various columns" + IDS_VIEW_LINEUPICONS "Arranges icons in a grid" + IDS_VIEW_SPACER5 "Spacer" + IDS_VIEW_REFRESH "Refresh game list" + IDS_VIEW_CONTEXTFILTERS "Allows filtering out games from a folder" + IDS_VIEW_CUSTOMIZEFIELDS + "Customize which columns are used in the game list" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_EXIT "Exit the application" + ID_FILE_PLAY "Play currently selected game" + ID_HELP_ABOUT "Displays program and copyright information" + ID_VIEW_LARGE_ICON "Display items by using large icons." + ID_VIEW_SMALL_ICON "Display items by using small icons." + ID_VIEW_LIST_MENU "Displays items in a list." + ID_VIEW_DETAIL "Displays detailed information about each item in the window." + ID_VIEW_GROUPED "Show items grouped by parent game" + ID_OPTIONS_FONT "Set game list and folder list font" + ID_OPTIONS_CLONE_COLOR "Set the clone font color" + ID_OPTIONS_DIR "Set directory configuration" + ID_OPTIONS_DEFAULTS "Set default game options" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_OPTIONS_RESET_DEFAULTS "Allow restoring options to 'sane' values." + ID_OPTIONS_INTERFACE "Customize interface options." + ID_FILE_AUDIT "Audit ROM and samples sets" + ID_FILE_PLAY_RECORD "Record a game for later playback" + ID_FILE_PLAY_BACK "Playback a recorded game" + ID_FILE_PLAY_RECORD_WAVE "Record the audio output of a game" + ID_FILE_PLAY_RECORD_MNG "Record the video output of a game" + ID_FILE_PLAY_RECORD_AVI "Record the complete output of a game" + ID_VIEW_PICTURE_AREA "Show or hide the picture area" + ID_HELP_CONTENTS "Display help contents" + ID_HELP_WHATS_NEWUI "New game changes" + ID_HELP_TROUBLE "Troubleshooting Documentation" + ID_HELP_RELEASE "MAME release notes" + ID_HELP_WHATS_NEW "What's new in MAME" + ID_HELP_CHEATS "How cheats work" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_CONTEXT_RESET_PLAYTIME "Reset time played for selected item" + ID_CONTEXT_RESET_PLAYCOUNT "Reset number of plays for selected item" + ID_FOLDER_PROPERTIES "Display folder properties" + ID_FOLDER_AUDIT "Audit items in this folder" + ID_FILE_LOADSTATE "Play a game starting with the given savestate" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_TAB_CABINET "Select Cabinet tab" + ID_VIEW_TAB_MARQUEE "Select Marquee tab" + ID_VIEW_TAB_TITLE "Select Title tab" + ID_VIEW_TAB_CONTROL_PANEL "Select Control panel tab" + ID_VIEW_TAB_PCB "Select PCB tab" + ID_VIEW_TAB_HISTORY "Select History tab" + ID_OPTIONS_BG "Set the background image" + ID_TOGGLE_TAB_SCREENSHOT "Enable the screenshot tab" + ID_TOGGLE_TAB_FLYER "Enable the flyer tab" + ID_TOGGLE_TAB_CABINET "Enable the cabinet tab" + ID_TOGGLE_TAB_MARQUEE "Enable the marquee tab" + ID_TOGGLE_TAB_TITLE "Enable the title tab" + ID_TOGGLE_TAB_CONTROL_PANEL "Enable the control panel tab" + ID_TOGGLE_TAB_PCB "Enable the PCB tab" + ID_TOGGLE_TAB_HISTORY "Enable the history tab" + ID_VIEW_FULLSCREEN "Toggle Fullscreen mode" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_CUSTOMIZE_FIELDS "Customize which columns are used in the game list" + ID_GAME_PROPERTIES "Display the properties of the selected item" + ID_VIEW_PAGETAB "Show or hide the tabs in the picture area" + ID_VIEW_FOLDERS "Show or hide the folder list" + ID_VIEW_TOOLBARS "Show or hide the toolbar" + ID_VIEW_STATUS "Show or hide the status bar" + ID_CONTEXT_FILTERS "Allows filtering out games from a folder" + ID_CONTEXT_RENAME_CUSTOM "Rename this folder" + ID_CONTEXT_ADD_CUSTOM "Add selected item to custom folder" + ID_CONTEXT_REMOVE_CUSTOM "Remove selected item from this folder" + ID_GAME_AUDIT "Audit the selected item" + ID_CONTEXT_SELECT_RANDOM "Randomly select a game." + ID_VIEW_TAB_SCREENSHOT "Select Snapshot tab" + ID_VIEW_TAB_FLYER "Select Flyer tab" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_BYGAME "Sort items by game description" + ID_VIEW_BYDIRECTORY "Sort items by name" + ID_VIEW_BYMANUFACTURER "Sort items by manufacturer" + ID_VIEW_BYYEAR "Sort items by year" + ID_VIEW_BYTYPE "Sort items by type" + ID_VIEW_BYTIMESPLAYED "Sort by number of plays" + ID_VIEW_LINEUPICONS "Arranges icons in a grid" + ID_UPDATE_GAMELIST "Refresh game list" + ID_SORT_ASCENDING "Sort column in ascending (A-Z) order" + ID_SORT_DESCENDING "Sort column in descending (Z-A) order" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FOLDER_SOURCEPROPERTIES + "Display properties for all games in this source file" + ID_FOLDER_VECTORPROPERTIES "Display properties for all vector based games" + ID_OPTIONS_HISTORY "Set the History file to use" + ID_OPTIONS_MAMEINFO "Set the Mameinfo file to use" +END + +#endif // English (USA) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "mamevers.rc" // Version block + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/docs/release/src/osd/winui/mkhelp.cpp b/docs/release/src/osd/winui/mkhelp.cpp new file mode 100644 index 00000000000..115ded9ef8d --- /dev/null +++ b/docs/release/src/osd/winui/mkhelp.cpp @@ -0,0 +1,152 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/*************************************************************************** + + mkhelp.c + + Simple resource HIDC to Help entry tool. + + MSH - 20070815 + +***************************************************************************/ + +#include <stdio.h> +#include <stdlib.h> +#include "osdcore.h" + + +static int compare( const void *arg1, const void *arg2 ); +static void extract_help_ids(const char *buffer, FILE *fp); + +/*------------------------------------------------- + main - primary entry point +-------------------------------------------------*/ + +int main(int argc, char *argv[]) +{ + const char *resourcefile, *varname, *type; + FILE *src, *dst; + char *buffer; + int bytes = 0; + + varname = "dwHelpIDs"; + type = "DWORD"; + + /* needs at least three arguments */ + if (argc < 1) + { + fprintf(stderr, + "Usage:\n" + " mkhelp <resource.rc>\n" + "\n" + "The default <type> is DWORD, with an assumed NULL terminator pair\n" + ); + return 0; + } + + /* extract arguments */ + resourcefile = argv[1]; + + /* open source file */ + src = fopen(resourcefile, "rb"); + if (src == NULL) + { + fprintf(stderr, "Unable to open resource file '%s'\n", resourcefile); + return 1; + } + + /* determine file size */ + fseek(src, 0, SEEK_END); + bytes = ftell(src); + fseek(src, 0, SEEK_SET); + + /* allocate memory */ + buffer = (char*)malloc(bytes + 1); + if (buffer == NULL) + { + fclose(src); + fprintf(stderr, "Out of memory allocating %d byte buffer\n", bytes); + return 1; + } + + /* read the source file */ + fread(buffer, 1, bytes, src); + buffer[bytes] = 0; + fclose(src); + + /* open dest file */ + dst = stdout; + + fprintf(dst,"/*\n * Help ID array - Generated by mkhelp\n */\n\n"); + fprintf(dst, "#include <windows.h>\n#include \"resource.h\"\n#include \"resource.hm\"\n\n"); + /* write the initial header */ + fprintf(dst, "extern const %s %s[] =\n{\n", type, varname); + + extract_help_ids(buffer, dst); + + fprintf(dst, "\n};\n"); + + /* close the files */ + free(buffer); + return 0; +} + +static int compare( const void *arg1, const void *arg2 ) +{ + /* Compare all of both strings: */ + return _stricmp( * ( char** ) arg1, * ( char** ) arg2 ); +} + +static void extract_help_ids(const char *buffer, FILE *fp) +{ + const char *ptr = buffer; + char **help_ids = (char **)malloc(500 * sizeof(char *)); + int num_help_id = 0; + int i; + + //memset(help_ids, '\0', sizeof(*help_ids)); + memset(help_ids, 0, 500); + + while(*ptr) { + if (strncmp("HIDC_", ptr, 5) == 0) { + char id_name[128]; + char *end = id_name; + char *id; + memset(id_name, '\0', sizeof(id_name)); + while (*ptr && *ptr != '\x0d' && *ptr != '\x0a' ) { + *end++ = *ptr++; + } + id = (char *)malloc(strlen(id_name)); + memset(id, '\0', strlen(id_name)); + memcpy(id, &id_name[1], strlen(&id_name[1])); + help_ids[num_help_id] = id; + num_help_id++; + } else { + ptr++; + } + } + + /* Sort using Quicksort algorithm: */ + qsort( (void *)help_ids, (size_t)num_help_id, sizeof( char * ), compare ); + + // Now print them out. + ptr = help_ids[0]; + for (i = 0; i < num_help_id; i++) { + if (i > 0) { + if (strcmp(ptr, help_ids[i]) == 0) { + continue; + } + } + fprintf(fp, "\t%-30s,H%s,\n", help_ids[i], help_ids[i]); + ptr = help_ids[i]; + } + fprintf(fp, "\t%-30i,%i\n", 0, 0); + + // free our allocations. + for (i = 0; i < num_help_id; i++) { + free(help_ids[i]); + } + free (help_ids); +} + diff --git a/docs/release/src/osd/winui/mui_audit.cpp b/docs/release/src/osd/winui/mui_audit.cpp new file mode 100644 index 00000000000..3f58b8526a7 --- /dev/null +++ b/docs/release/src/osd/winui/mui_audit.cpp @@ -0,0 +1,487 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + + /*************************************************************************** + + mui_audit.c + + Audit dialog + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> +#include <commctrl.h> + +// standard C headers +#include <stdio.h> +#include <tchar.h> + +// MAME/MAMEUI headers +#include "winui.h" +#include "winutf8.h" +#include "strconv.h" +#include "audit.h" +#include "resource.h" +#include "mui_opts.h" +#include "mui_util.h" +#include "properties.h" +#include <richedit.h> + + +#ifdef _MSC_VER +#define vsnprintf _vsnprintf +#endif + +/*************************************************************************** + function prototypes + ***************************************************************************/ + +static DWORD WINAPI AuditThreadProc(LPVOID hDlg); +static INT_PTR CALLBACK AuditWindowProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +static void ProcessNextRom(void); +static void ProcessNextSample(void); +static void CLIB_DECL DetailsPrintf(const char *fmt, ...) ATTR_PRINTF(1,2); +static const char * StatusString(int iStatus); + +/*************************************************************************** + Internal variables + ***************************************************************************/ + +#define MAX_AUDITBOX_TEXT 0x7FFFFFFE + +static volatile HWND hAudit; +static volatile int rom_index = 0; +static volatile int roms_correct = 0; +static volatile int roms_incorrect = 0; +static volatile int sample_index = 0; +static volatile int samples_correct = 0; +static volatile int samples_incorrect = 0; +static volatile BOOL bPaused = FALSE; +static volatile BOOL bCancel = FALSE; +static int m_choice = 0; + +/*************************************************************************** + External functions + ***************************************************************************/ + +static int strcatprintf(std::string &str, const char *format, ...) +{ + va_list ap; + va_start(ap, format); + int retVal = strcatvprintf(str, format, ap); + va_end(ap); + return retVal; +} + +void AuditDialog(HWND hParent, int choice) +{ + HMODULE hModule = NULL; + rom_index = 0; + roms_correct = -1; // ___empty must not be counted + roms_incorrect = 0; + sample_index = 0; + samples_correct = -1; // ___empty must not be counted + samples_incorrect = 0; + m_choice = choice; + + //RS use Riched32.dll + hModule = LoadLibrary(TEXT("Riched32.dll")); + if( hModule ) + { + DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_AUDIT),hParent,AuditWindowProc); + FreeLibrary( hModule ); + hModule = NULL; + } + else + { + MessageBox(GetMainWindow(),TEXT("Unable to Load Riched32.dll"),TEXT("Error"), MB_OK | MB_ICONERROR); + } +} + +void InitGameAudit(int gameIndex) +{ + rom_index = gameIndex; +} + +const char * GetAuditString(int audit_result) +{ + switch (audit_result) + { + case media_auditor::CORRECT : + case media_auditor::BEST_AVAILABLE : + case media_auditor::NONE_NEEDED : + return "Yes"; + + case media_auditor::NOTFOUND : + case media_auditor::INCORRECT : + return "No"; + + default: + dprintf("unknown audit value %i\n",audit_result); + } + + return "?"; +} + +BOOL IsAuditResultKnown(int audit_result) +{ + return TRUE; +} + +BOOL IsAuditResultYes(int audit_result) +{ + return audit_result == media_auditor::CORRECT + || audit_result == media_auditor::BEST_AVAILABLE + || audit_result == media_auditor::NONE_NEEDED; +} + +BOOL IsAuditResultNo(int audit_result) +{ + return audit_result == media_auditor::NOTFOUND + || audit_result == media_auditor::INCORRECT; +} + + +/*************************************************************************** + Internal functions + ***************************************************************************/ +// Verifies the ROM set while calling SetRomAuditResults +int MameUIVerifyRomSet(int game, bool choice) +{ + driver_enumerator enumerator(MameUIGlobal(), driver_list::driver(game)); + enumerator.next(); + media_auditor auditor(enumerator); + media_auditor::summary summary = auditor.audit_media(AUDIT_VALIDATE_FAST); + + std::string summary_string; + + if (summary == media_auditor::NOTFOUND) + { + if (m_choice < 2) + strcatprintf(summary_string, "%s: Romset NOT FOUND\n", driver_list::driver(game).name); + } + else + if (choice) + auditor.winui_summarize(driver_list::driver(game).name, &summary_string); // audit all games + else + auditor.summarize(driver_list::driver(game).name, &summary_string); // audit one game + + // output the summary of the audit + DetailsPrintf("%s", summary_string.c_str()); + + SetRomAuditResults(game, summary); + return summary; +} + +// Verifies the Sample set while calling SetSampleAuditResults +int MameUIVerifySampleSet(int game) +{ + driver_enumerator enumerator(MameUIGlobal(), driver_list::driver(game)); + enumerator.next(); + media_auditor auditor(enumerator); + media_auditor::summary summary = auditor.audit_samples(); + + std::string summary_string; + + if (summary == media_auditor::NOTFOUND) + strcatprintf(summary_string, "%s: Sampleset NOT FOUND\n", driver_list::driver(game).name); + else + auditor.summarize(driver_list::driver(game).name, &summary_string); + + // output the summary of the audit + DetailsPrintf("%s", summary_string.c_str()); + + SetSampleAuditResults(game, summary); + return summary; +} + +static DWORD WINAPI AuditThreadProc(LPVOID hDlg) +{ + char buffer[200]; + + while (!bCancel) + { + if (!bPaused) + { + if (rom_index != -1) + { + sprintf(buffer, "Checking Set %s - %s", + driver_list::driver(rom_index).name, driver_list::driver(rom_index).description); + win_set_window_text_utf8((HWND)hDlg, buffer); + ProcessNextRom(); + } + else + if (sample_index != -1) + { + sprintf(buffer, "Checking Set %s - %s", + driver_list::driver(sample_index).name, driver_list::driver(sample_index).description); + win_set_window_text_utf8((HWND)hDlg, buffer); + ProcessNextSample(); + } + else + { + win_set_window_text_utf8((HWND)hDlg, "File Audit"); + EnableWindow(GetDlgItem((HWND)hDlg, IDPAUSE), FALSE); + ExitThread(1); + } + } + } + return 0; +} + +static INT_PTR CALLBACK AuditWindowProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + static HANDLE hThread; + static DWORD dwThreadID = 0; + DWORD dwExitCode = 0; + HWND hEdit; + + switch (Msg) + { + case WM_INITDIALOG: + hAudit = hDlg; + //RS 20030613 Set Bkg of RichEdit Ctrl + hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS); + if (hEdit != NULL) + { + SendMessage( hEdit, EM_SETBKGNDCOLOR, FALSE, GetSysColor(COLOR_BTNFACE) ); + // MSH - Set to max + SendMessage( hEdit, EM_SETLIMITTEXT, MAX_AUDITBOX_TEXT, 0 ); + + } + SendDlgItemMessage(hDlg, IDC_ROMS_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, driver_list::total())); + SendDlgItemMessage(hDlg, IDC_SAMPLES_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, driver_list::total())); + bPaused = FALSE; + bCancel = FALSE; + rom_index = 0; + hThread = CreateThread(NULL, 0, AuditThreadProc, hDlg, 0, &dwThreadID); + return 1; + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDCANCEL: + bPaused = FALSE; + if (hThread) + { + bCancel = TRUE; + if (GetExitCodeThread(hThread, &dwExitCode) && (dwExitCode == STILL_ACTIVE)) + { + PostMessage(hDlg, WM_COMMAND, wParam, lParam); + return 1; + } + CloseHandle(hThread); + } + EndDialog(hDlg,0); + m_choice = 0; + break; + + case IDPAUSE: + if (bPaused) + { + SendDlgItemMessage(hAudit, IDPAUSE, WM_SETTEXT, 0, (LPARAM)TEXT("Pause")); + bPaused = FALSE; + } + else + { + SendDlgItemMessage(hAudit, IDPAUSE, WM_SETTEXT, 0, (LPARAM)TEXT("Continue")); + bPaused = TRUE; + } + break; + } + return 1; + } + return 0; +} + +/* Callback for the Audit property sheet */ +INT_PTR CALLBACK GameAuditDialogProc(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam) +{ + switch (Msg) + { + case WM_INITDIALOG: + FlushFileCaches(); + hAudit = hDlg; + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(OPTIONS_GAME, rom_index)); + SetTimer(hDlg, 0, 1, NULL); + return 1; + + case WM_TIMER: + KillTimer(hDlg, 0); + { + int iStatus; + LPCSTR lpStatus; + + iStatus = MameUIVerifyRomSet(rom_index, 0); + lpStatus = DriverUsesRoms(rom_index) ? StatusString(iStatus) : "None required"; + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_ROMS), lpStatus); + + if (DriverUsesSamples(rom_index)) + { + iStatus = MameUIVerifySampleSet(rom_index); + lpStatus = StatusString(iStatus); + } + else + { + lpStatus = "None Required"; + } + + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SAMPLES), lpStatus); + } + ShowWindow(hDlg, SW_SHOW); + break; + } + return 0; +} + +static void ProcessNextRom() +{ + int retval = 0; + TCHAR buffer[200]; + + retval = MameUIVerifyRomSet(rom_index, 1); + switch (retval) + { + case media_auditor::BEST_AVAILABLE: /* correct, incorrect or separate count? */ + case media_auditor::CORRECT: + case media_auditor::NONE_NEEDED: + roms_correct++; + _stprintf(buffer, TEXT("%i"), roms_correct); + SendDlgItemMessage(hAudit, IDC_ROMS_CORRECT, WM_SETTEXT, 0, (LPARAM)buffer); + _stprintf(buffer, TEXT("%i"), roms_correct + roms_incorrect); + SendDlgItemMessage(hAudit, IDC_ROMS_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer); + break; + + case media_auditor::NOTFOUND: + case media_auditor::INCORRECT: + roms_incorrect++; + _stprintf(buffer, TEXT("%i"), roms_incorrect); + SendDlgItemMessage(hAudit, IDC_ROMS_INCORRECT, WM_SETTEXT, 0, (LPARAM)buffer); + _stprintf(buffer, TEXT("%i"), roms_correct + roms_incorrect); + SendDlgItemMessage(hAudit, IDC_ROMS_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer); + break; + } + + rom_index++; + SendDlgItemMessage(hAudit, IDC_ROMS_PROGRESS, PBM_SETPOS, rom_index, 0); + + if (rom_index == driver_list::total()) + { + sample_index = 0; + rom_index = -1; + } +} + +static void ProcessNextSample() +{ + int retval = 0; + TCHAR buffer[200]; + + retval = MameUIVerifySampleSet(sample_index); + + switch (retval) + { + case media_auditor::NOTFOUND: + case media_auditor::INCORRECT: + if (DriverUsesSamples(sample_index)) + { + samples_incorrect++; + _stprintf(buffer, TEXT("%i"), samples_incorrect); + SendDlgItemMessage(hAudit, IDC_SAMPLES_INCORRECT, WM_SETTEXT, 0, (LPARAM)buffer); + _stprintf(buffer, TEXT("%i"), samples_correct + samples_incorrect); + SendDlgItemMessage(hAudit, IDC_SAMPLES_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer); + break; + } + default: + if ((DriverUsesSamples(sample_index)) || (m_choice == 1)) + { + samples_correct++; + _stprintf(buffer, TEXT("%i"), samples_correct); + SendDlgItemMessage(hAudit, IDC_SAMPLES_CORRECT, WM_SETTEXT, 0, (LPARAM)buffer); + _stprintf(buffer, TEXT("%i"), samples_correct + samples_incorrect); + SendDlgItemMessage(hAudit, IDC_SAMPLES_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer); + break; + } + } + + sample_index++; + SendDlgItemMessage(hAudit, IDC_SAMPLES_PROGRESS, PBM_SETPOS, sample_index, 0); + + if (sample_index == driver_list::total()) + { + DetailsPrintf("Audit complete.\n"); + SendDlgItemMessage(hAudit, IDCANCEL, WM_SETTEXT, 0, (LPARAM)TEXT("Close")); + sample_index = -1; + } +} + +static void CLIB_DECL DetailsPrintf(const char *fmt, ...) +{ + HWND hEdit; + va_list marker; + char buffer[8000]; + TCHAR* t_s; + int textLength = 0; + + //RS 20030613 Different Ids for Property Page and Dialog + // so see which one's currently instantiated + hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS); + if (hEdit == NULL) + hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS_PROP); + + if (hEdit == NULL) + { + dprintf("audit detailsprintf() can't find any audit control\n"); + return; + } + + va_start(marker, fmt); + + vsprintf(buffer, fmt, marker); + + va_end(marker); + + t_s = tstring_from_utf8(ConvertToWindowsNewlines(buffer)); + if( !t_s || _tcscmp(TEXT(""), t_s) == 0) + return; + + textLength = Edit_GetTextLength(hEdit); + Edit_SetSel(hEdit, textLength, textLength); + SendMessage( hEdit, EM_REPLACESEL, FALSE, (WPARAM)(LPCTSTR)win_tstring_strdup(t_s) ); + + osd_free(t_s); +} + +static const char * StatusString(int iStatus) +{ + static const char *ptr; + + ptr = "Unknown"; + + switch (iStatus) + { + case media_auditor::CORRECT: + ptr = "Passed"; + break; + + case media_auditor::BEST_AVAILABLE: + ptr = "Best available"; + break; + + case media_auditor::NONE_NEEDED: + ptr = "None Required"; + break; + + case media_auditor::NOTFOUND: + ptr = "Not found"; + break; + + case media_auditor::INCORRECT: + ptr = "Failed"; + break; + } + + return ptr; +} diff --git a/docs/release/src/osd/winui/mui_audit.h b/docs/release/src/osd/winui/mui_audit.h new file mode 100644 index 00000000000..b95e1684ce1 --- /dev/null +++ b/docs/release/src/osd/winui/mui_audit.h @@ -0,0 +1,21 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef MUI_AUDIT_H +#define MUI_AUDIT_H + +void AuditDialog(HWND hParent, int choice); + +// For property sheet Game Audit tab +void InitGameAudit(int gameIndex); +INT_PTR CALLBACK GameAuditDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); + +int MameUIVerifyRomSet(int game, bool choice); +int MameUIVerifySampleSet(int game); + +const char * GetAuditString(int audit_result); +BOOL IsAuditResultKnown(int audit_result); +BOOL IsAuditResultYes(int audit_result); +BOOL IsAuditResultNo(int audit_result); + +#endif diff --git a/docs/release/src/osd/winui/mui_main.cpp b/docs/release/src/osd/winui/mui_main.cpp new file mode 100644 index 00000000000..31ba3db2e38 --- /dev/null +++ b/docs/release/src/osd/winui/mui_main.cpp @@ -0,0 +1,22 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +#ifndef WINUI +#define WINUI +#endif + +// import the main() from MAME, but rename it so we can call it indirectly +#undef main +#undef wmain +#define main mame_main +#define wmain mame_main +#include "windows/main.cpp" +#undef main +#undef wmain + +#include "winui.h" + + +int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) +{ + return MameUIMain(hInstance, lpCmdLine, nCmdShow); +} diff --git a/docs/release/src/osd/winui/mui_opts.cpp b/docs/release/src/osd/winui/mui_opts.cpp new file mode 100644 index 00000000000..f6e7bee24ce --- /dev/null +++ b/docs/release/src/osd/winui/mui_opts.cpp @@ -0,0 +1,2842 @@ +// For licensing and usage information, read docs/winui_license.txt +// MASTER +//**************************************************************************** + + /*************************************************************************** + + mui_opts.c + + Stores global options and per-game options; + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> +#include <winreg.h> +#include <commctrl.h> + +// standard C headers +#include <assert.h> +#include <stdio.h> +#include <sys/stat.h> +#include <math.h> +#include <direct.h> +#include <emu.h> +#include <mameopts.h> +#include <ui/moptions.h> +#include <stddef.h> +#include <tchar.h> + +// MAME/MAMEUI headers +#include "bitmask.h" +#include "winui.h" +#include "mui_util.h" +#include "treeview.h" +#include "splitters.h" +#include "mui_opts.h" +#include "winutf8.h" +#include "strconv.h" +#include "drivenum.h" +#include "game_opts.h" + +#ifdef _MSC_VER +#define snprintf _snprintf +#endif + +/*************************************************************************** + Internal function prototypes + ***************************************************************************/ + +// static void LoadFolderFilter(int folder_index,int filters); + +static void LoadSettingsFile(winui_options &opts, const char *filename); +static void SaveSettingsFile(winui_options &opts, const char *filename); +static void LoadSettingsFile(windows_options &opts, const char *filename); +static void SaveSettingsFile(windows_options &opts, const char *filename); + +static void LoadOptionsAndSettings(void); + +static void CusColorEncodeString(const COLORREF *value, char* str); +static void CusColorDecodeString(const char* str, COLORREF *value); + +static void SplitterEncodeString(const int *value, char* str); +static void SplitterDecodeString(const char *str, int *value); + +static void FontEncodeString(const LOGFONT *f, char *str); +static void FontDecodeString(const char* str, LOGFONT *f); + +static void TabFlagsEncodeString(int data, char *str); +static void TabFlagsDecodeString(const char *str, int *data); + +static DWORD DecodeFolderFlags(const char *buf); +static const char * EncodeFolderFlags(DWORD value); + +static void ResetToDefaults(windows_options &opts, int priority); + +//static void ui_parse_ini_file(windows_options &opts, const char *name); + + +#ifdef _MSC_VER +#define snprintf _snprintf +#endif + +/*************************************************************************** + Internal defines + ***************************************************************************/ + +#define GAMEINFO_INI_FILENAME MAMENAME "_g.ini" +#define MEWUI_FILENAME "ini\\ui.ini" + +#define MUIOPTION_LIST_MODE "list_mode" +#define MUIOPTION_CHECK_GAME "check_game" +#define MUIOPTION_JOYSTICK_IN_INTERFACE "joystick_in_interface" +#define MUIOPTION_KEYBOARD_IN_INTERFACE "keyboard_in_interface" +#define MUIOPTION_CYCLE_SCREENSHOT "cycle_screenshot" +#define MUIOPTION_STRETCH_SCREENSHOT_LARGER "stretch_screenshot_larger" +#define MUIOPTION_SCREENSHOT_BORDER_SIZE "screenshot_bordersize" +#define MUIOPTION_SCREENSHOT_BORDER_COLOR "screenshot_bordercolor" +#define MUIOPTION_INHERIT_FILTER "inherit_filter" +#define MUIOPTION_OFFSET_CLONES "offset_clones" +#define MUIOPTION_DEFAULT_FOLDER_ID "default_folder_id" +#define MUIOPTION_SHOW_IMAGE_SECTION "show_image_section" +#define MUIOPTION_SHOW_FOLDER_SECTION "show_folder_section" +#define MUIOPTION_HIDE_FOLDERS "hide_folders" +#define MUIOPTION_SHOW_STATUS_BAR "show_status_bar" +#define MUIOPTION_SHOW_TABS "show_tabs" +#define MUIOPTION_SHOW_TOOLBAR "show_tool_bar" +#define MUIOPTION_CURRENT_TAB "current_tab" +#define MUIOPTION_WINDOW_X "window_x" +#define MUIOPTION_WINDOW_Y "window_y" +#define MUIOPTION_WINDOW_WIDTH "window_width" +#define MUIOPTION_WINDOW_HEIGHT "window_height" +#define MUIOPTION_WINDOW_STATE "window_state" +#define MUIOPTION_CUSTOM_COLOR "custom_color" +#define MUIOPTION_LIST_FONT "list_font" +#define MUIOPTION_TEXT_COLOR "text_color" +#define MUIOPTION_CLONE_COLOR "clone_color" +#define MUIOPTION_HIDE_TABS "hide_tabs" +#define MUIOPTION_HISTORY_TAB "history_tab" +#define MUIOPTION_COLUMN_WIDTHS "column_widths" +#define MUIOPTION_COLUMN_ORDER "column_order" +#define MUIOPTION_COLUMN_SHOWN "column_shown" +#define MUIOPTION_SPLITTERS "splitters" +#define MUIOPTION_SORT_COLUMN "sort_column" +#define MUIOPTION_SORT_REVERSED "sort_reversed" +#define MUIOPTION_LANGUAGE "language" +#define MUIOPTION_ICONS_DIRECTORY "icons_directory" +#define MUIOPTION_BACKGROUND_DIRECTORY "background_directory" +#define MUIOPTION_UI_KEY_UP "ui_key_up" +#define MUIOPTION_UI_KEY_DOWN "ui_key_down" +#define MUIOPTION_UI_KEY_LEFT "ui_key_left" +#define MUIOPTION_UI_KEY_RIGHT "ui_key_right" +#define MUIOPTION_UI_KEY_START "ui_key_start" +#define MUIOPTION_UI_KEY_PGUP "ui_key_pgup" +#define MUIOPTION_UI_KEY_PGDWN "ui_key_pgdwn" +#define MUIOPTION_UI_KEY_HOME "ui_key_home" +#define MUIOPTION_UI_KEY_END "ui_key_end" +#define MUIOPTION_UI_KEY_SS_CHANGE "ui_key_ss_change" +#define MUIOPTION_UI_KEY_HISTORY_UP "ui_key_history_up" +#define MUIOPTION_UI_KEY_HISTORY_DOWN "ui_key_history_down" +#define MUIOPTION_UI_KEY_CONTEXT_FILTERS "ui_key_context_filters" +#define MUIOPTION_UI_KEY_SELECT_RANDOM "ui_key_select_random" +#define MUIOPTION_UI_KEY_GAME_AUDIT "ui_key_game_audit" +#define MUIOPTION_UI_KEY_GAME_PROPERTIES "ui_key_game_properties" +#define MUIOPTION_UI_KEY_HELP_CONTENTS "ui_key_help_contents" +#define MUIOPTION_UI_KEY_UPDATE_GAMELIST "ui_key_update_gamelist" +#define MUIOPTION_UI_KEY_VIEW_FOLDERS "ui_key_view_folders" +#define MUIOPTION_UI_KEY_VIEW_FULLSCREEN "ui_key_view_fullscreen" +#define MUIOPTION_UI_KEY_VIEW_PAGETAB "ui_key_view_pagetab" +#define MUIOPTION_UI_KEY_VIEW_PICTURE_AREA "ui_key_view_picture_area" +#define MUIOPTION_UI_KEY_VIEW_STATUS "ui_key_view_status" +#define MUIOPTION_UI_KEY_VIEW_TOOLBARS "ui_key_view_toolbars" +#define MUIOPTION_UI_KEY_VIEW_TAB_CABINET "ui_key_view_tab_cabinet" +#define MUIOPTION_UI_KEY_VIEW_TAB_CPANEL "ui_key_view_tab_cpanel" +#define MUIOPTION_UI_KEY_VIEW_TAB_FLYER "ui_key_view_tab_flyer" +#define MUIOPTION_UI_KEY_VIEW_TAB_HISTORY "ui_key_view_tab_history" +#define MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE "ui_key_view_tab_marquee" +#define MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT "ui_key_view_tab_screenshot" +#define MUIOPTION_UI_KEY_VIEW_TAB_TITLE "ui_key_view_tab_title" +#define MUIOPTION_UI_KEY_VIEW_TAB_PCB "ui_key_view_tab_pcb" +#define MUIOPTION_UI_KEY_QUIT "ui_key_quit" +#define MUIOPTION_UI_JOY_UP "ui_joy_up" +#define MUIOPTION_UI_JOY_DOWN "ui_joy_down" +#define MUIOPTION_UI_JOY_LEFT "ui_joy_left" +#define MUIOPTION_UI_JOY_RIGHT "ui_joy_right" +#define MUIOPTION_UI_JOY_START "ui_joy_start" +#define MUIOPTION_UI_JOY_PGUP "ui_joy_pgup" +#define MUIOPTION_UI_JOY_PGDWN "ui_joy_pgdwn" +#define MUIOPTION_UI_JOY_HOME "ui_joy_home" +#define MUIOPTION_UI_JOY_END "ui_joy_end" +#define MUIOPTION_UI_JOY_SS_CHANGE "ui_joy_ss_change" +#define MUIOPTION_UI_JOY_HISTORY_UP "ui_joy_history_up" +#define MUIOPTION_UI_JOY_HISTORY_DOWN "ui_joy_history_down" +#define MUIOPTION_UI_JOY_EXEC "ui_joy_exec" +#define MUIOPTION_EXEC_COMMAND "exec_command" +#define MUIOPTION_EXEC_WAIT "exec_wait" +#define MUIOPTION_HIDE_MOUSE "hide_mouse" +#define MUIOPTION_FULL_SCREEN "full_screen" + +#ifdef MESS +#define MUIOPTION_SHOW_SOFTWARE_SECTION "show_software_section" +#define MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA "ui_key_view_software_area" +#define MUIOPTION_DEFAULT_GAME "default_system" +#define MUIDEFAULT_SELECTION "3do" +#define MUIDEFAULT_SPLITTERS "152,310,468" +#else +#define MUIOPTION_DEFAULT_GAME "default_machine" +#define MUIDEFAULT_SELECTION "puckman" +#define MUIDEFAULT_SPLITTERS "152,362" +#endif + +#define MUIOPTION_VERSION "version" + + + +/*************************************************************************** + Internal structures + ***************************************************************************/ + + /*************************************************************************** + Internal variables + ***************************************************************************/ + +static mame_options mameopts; // core options +static ui_options mewui; // ui.ini +static winui_options settings; // mameui.ini + +static windows_options global; // Global 'default' options + +static game_options game_opts; + +// UI options in MAMEui.ini +const options_entry winui_options::s_option_entries[] = +{ + // UI options + { NULL, NULL, OPTION_HEADER, "APPLICATION OPTIONS" }, + { MUIOPTION_VERSION, "", OPTION_STRING, NULL }, + { NULL, NULL, OPTION_HEADER, "DISPLAY STATE OPTIONS" }, + { MUIOPTION_DEFAULT_GAME, MUIDEFAULT_SELECTION, OPTION_STRING, NULL }, + { MUIOPTION_DEFAULT_FOLDER_ID, "0", OPTION_INTEGER, NULL }, + { MUIOPTION_SHOW_IMAGE_SECTION, "1", OPTION_BOOLEAN, NULL }, + { MUIOPTION_FULL_SCREEN, "0", OPTION_BOOLEAN, NULL }, + { MUIOPTION_CURRENT_TAB, "0", OPTION_STRING, NULL }, + { MUIOPTION_SHOW_TOOLBAR, "1", OPTION_BOOLEAN, NULL }, + { MUIOPTION_SHOW_STATUS_BAR, "1", OPTION_BOOLEAN, NULL }, + { MUIOPTION_HIDE_FOLDERS, "", OPTION_STRING, NULL }, + { MUIOPTION_SHOW_FOLDER_SECTION, "1", OPTION_BOOLEAN, NULL }, + { MUIOPTION_SHOW_TABS, "1", OPTION_BOOLEAN, NULL }, + { MUIOPTION_HIDE_TABS, "marquee, title, cpanel, pcb, history", OPTION_STRING, NULL }, + { MUIOPTION_HISTORY_TAB, "0", OPTION_INTEGER, NULL }, +#ifdef MESS + { MUIOPTION_SHOW_SOFTWARE_SECTION, "1", OPTION_BOOLEAN, NULL }, +#endif + { MUIOPTION_SORT_COLUMN, "0", OPTION_INTEGER, NULL }, + { MUIOPTION_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL }, + { MUIOPTION_WINDOW_X, "0", OPTION_INTEGER, NULL }, + { MUIOPTION_WINDOW_Y, "0", OPTION_INTEGER, NULL }, + { MUIOPTION_WINDOW_WIDTH, "800", OPTION_INTEGER, NULL }, + { MUIOPTION_WINDOW_HEIGHT, "600", OPTION_INTEGER, NULL }, + { MUIOPTION_WINDOW_STATE, "1", OPTION_INTEGER, NULL }, + { MUIOPTION_TEXT_COLOR, "-1", OPTION_INTEGER, NULL }, + { MUIOPTION_CLONE_COLOR, "-1", OPTION_INTEGER, NULL }, + { MUIOPTION_CUSTOM_COLOR, "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", OPTION_STRING, NULL }, + /* ListMode needs to be before ColumnWidths settings */ + { MUIOPTION_LIST_MODE, "5", OPTION_INTEGER, NULL }, + { MUIOPTION_SPLITTERS, MUIDEFAULT_SPLITTERS, OPTION_STRING, NULL }, + { MUIOPTION_LIST_FONT, "-8,0,0,0,400,0,0,0,0,0,0,0,MS Sans Serif", OPTION_STRING, NULL }, + { MUIOPTION_COLUMN_WIDTHS, "185,78,84,84,64,88,74,108,60,144,84,40,40", OPTION_STRING, NULL }, + { MUIOPTION_COLUMN_ORDER, "0,1,2,3,4,5,6,7,8,9,10,11,12", OPTION_STRING, NULL }, + { MUIOPTION_COLUMN_SHOWN, "1,1,1,1,1,1,1,1,1,1,1,1,0", OPTION_STRING, NULL }, + { NULL, NULL, OPTION_HEADER, "INTERFACE OPTIONS" }, + { MUIOPTION_LANGUAGE, "english", OPTION_STRING, NULL }, + { MUIOPTION_CHECK_GAME, "0", OPTION_BOOLEAN, NULL }, + { MUIOPTION_JOYSTICK_IN_INTERFACE, "1", OPTION_BOOLEAN, NULL }, + { MUIOPTION_KEYBOARD_IN_INTERFACE, "0", OPTION_BOOLEAN, NULL }, + { MUIOPTION_HIDE_MOUSE, "0", OPTION_BOOLEAN, NULL }, + { MUIOPTION_INHERIT_FILTER, "0", OPTION_BOOLEAN, NULL }, + { MUIOPTION_OFFSET_CLONES, "0", OPTION_BOOLEAN, NULL }, + { MUIOPTION_STRETCH_SCREENSHOT_LARGER, "0", OPTION_BOOLEAN, NULL }, + { MUIOPTION_CYCLE_SCREENSHOT, "0", OPTION_INTEGER, NULL }, + { MUIOPTION_SCREENSHOT_BORDER_SIZE, "11", OPTION_INTEGER, NULL }, + { MUIOPTION_SCREENSHOT_BORDER_COLOR, "-1", OPTION_INTEGER, NULL }, + { MUIOPTION_EXEC_COMMAND, "", OPTION_STRING, NULL }, + { MUIOPTION_EXEC_WAIT, "0", OPTION_INTEGER, NULL }, + { NULL, NULL, OPTION_HEADER, "SEARCH PATH OPTIONS" }, + { MUIOPTION_BACKGROUND_DIRECTORY, "bkground", OPTION_STRING, NULL }, + { MUIOPTION_ICONS_DIRECTORY, "icons", OPTION_STRING, NULL }, + { NULL, NULL, OPTION_HEADER, "NAVIGATION KEY CODES" }, + { MUIOPTION_UI_KEY_UP, "KEYCODE_UP", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_DOWN, "KEYCODE_DOWN", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_LEFT, "KEYCODE_LEFT", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_RIGHT, "KEYCODE_RIGHT", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_START, "KEYCODE_ENTER NOT KEYCODE_LALT", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_PGUP, "KEYCODE_PGUP", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_PGDWN, "KEYCODE_PGDN", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_HOME, "KEYCODE_HOME", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_END, "KEYCODE_END", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_SS_CHANGE, "KEYCODE_INSERT", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_HISTORY_UP, "KEYCODE_DEL", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_HISTORY_DOWN, "KEYCODE_LALT KEYCODE_0", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_CONTEXT_FILTERS, "KEYCODE_LCONTROL KEYCODE_F", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_SELECT_RANDOM, "KEYCODE_LCONTROL KEYCODE_R", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_GAME_AUDIT, "KEYCODE_LALT KEYCODE_A", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_GAME_PROPERTIES, "KEYCODE_LALT KEYCODE_ENTER", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_HELP_CONTENTS, "KEYCODE_F1", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_UPDATE_GAMELIST, "KEYCODE_F5", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_FOLDERS, "KEYCODE_LALT KEYCODE_D", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_FULLSCREEN, "KEYCODE_F11", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_PAGETAB, "KEYCODE_LALT KEYCODE_B", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_PICTURE_AREA, "KEYCODE_LALT KEYCODE_P", OPTION_STRING, NULL }, +#ifdef MESS + { MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA, "KEYCODE_LALT KEYCODE_W", OPTION_STRING, NULL }, +#endif + { MUIOPTION_UI_KEY_VIEW_STATUS, "KEYCODE_LALT KEYCODE_S", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TOOLBARS, "KEYCODE_LALT KEYCODE_T", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TAB_CABINET, "KEYCODE_LALT KEYCODE_3", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TAB_CPANEL, "KEYCODE_LALT KEYCODE_6", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TAB_FLYER, "KEYCODE_LALT KEYCODE_2", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TAB_HISTORY, "KEYCODE_LALT KEYCODE_8", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE, "KEYCODE_LALT KEYCODE_4", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT, "KEYCODE_LALT KEYCODE_1", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TAB_TITLE, "KEYCODE_LALT KEYCODE_5", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_VIEW_TAB_PCB, "KEYCODE_LALT KEYCODE_7", OPTION_STRING, NULL }, + { MUIOPTION_UI_KEY_QUIT, "KEYCODE_LALT KEYCODE_Q", OPTION_STRING, NULL }, + { NULL, NULL, OPTION_HEADER, "NAVIGATION JOYSTICK CODES" }, + { MUIOPTION_UI_JOY_UP, "1,1,1,1", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_DOWN, "1,1,1,2", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_LEFT, "1,1,2,1", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_RIGHT, "1,1,2,2", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_START, "1,0,1,0", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_PGUP, "2,1,2,1", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_PGDWN, "2,1,2,2", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_HOME, "0,0,0,0", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_END, "0,0,0,0", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_SS_CHANGE, "2,0,3,0", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_HISTORY_UP, "2,0,4,0", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_HISTORY_DOWN, "2,0,1,0", OPTION_STRING, NULL }, + { MUIOPTION_UI_JOY_EXEC, "0,0,0,0", OPTION_STRING, NULL }, + { NULL } +}; + +#if 0 +// no longer used, but keep in case we need to add more per-game options in the future +static const options_entry perGameOptions[] = +{ + // per game options in messui.ini - transferred to commentpath + { "_extra_software", "", OPTION_STRING, NULL }, + { NULL } +}; +#endif + +static const options_entry filterOptions[] = +{ + // filters + { "_filters", "0", OPTION_INTEGER, NULL }, + { NULL } +}; + + + +// Screen shot Page tab control text +// these must match the order of the options flags in options.h +// (TAB_...) +static const char *const image_tabs_long_name[MAX_TAB_TYPES] = +{ + "Snapshot", + "Flyer", + "Cabinet", + "Marquee", + "Title", + "Control Panel", + "PCB", + "History", +}; + +static const char *const image_tabs_short_name[MAX_TAB_TYPES] = +{ + "snapshot", + "flyer", + "cabinet", + "marquee", + "title", + "cpanel", + "pcb", + "history" +}; + + +/*************************************************************************** + External functions + ***************************************************************************/ +winui_options::winui_options() +{ + add_entries(s_option_entries); +} + +void CreateGameOptions(windows_options &opts, int driver_index) +{ +#ifdef MESS + MessSetupGameOptions(opts, driver_index); +#endif +} + + + +BOOL OptionsInit() +{ + MessSetupSettings(settings); + +#if 0 +// keep in case we need per-game options in the future + // set up per game options + { + char buffer[128]; + int i, j; + int game_option_count = 0; + + while(perGameOptions[game_option_count].name) + game_option_count++; + + for (i = 0; i < driver_list::total(); i++) + { + for (j = 0; j < game_option_count; j++) + { + options_entry entry[2] = { { 0 }, { 0 } }; + snprintf(buffer, ARRAY_LENGTH(buffer), "%s%s", driver_list::driver(i).name, perGameOptions[j].name); + + entry[0].name = core_strdup(buffer); + entry[0].defvalue = perGameOptions[j].defvalue; + entry[0].flags = perGameOptions[j].flags; + entry[0].description = perGameOptions[j].description; + settings.add_entries(entry); + } + } + } +#endif + + game_opts.add_entries(); + // set up global options + CreateGameOptions(global, GLOBAL_OPTIONS); + // now load the options and settings + LoadOptionsAndSettings(); + + return TRUE; + +} + +void OptionsExit(void) +{ +} + +winui_options & MameUISettings(void) +{ + return settings; +} + +windows_options & MameUIGlobal(void) +{ + return global; +} + +// Restore ui settings to factory +void ResetGUI(void) +{ + settings.revert(OPTION_PRIORITY_NORMAL); + // Save the new MAMEui.ini + SaveOptions(); +} + +const char * GetImageTabLongName(int tab_index) +{ + assert(tab_index >= 0); + assert(tab_index < ARRAY_LENGTH(image_tabs_long_name)); + return image_tabs_long_name[tab_index]; +} + +const char * GetImageTabShortName(int tab_index) +{ + assert(tab_index >= 0); + assert(tab_index < ARRAY_LENGTH(image_tabs_short_name)); + return image_tabs_short_name[tab_index]; +} + +//============================================================ +// OPTIONS WRAPPERS +//============================================================ + +static COLORREF options_get_color(winui_options &opts, const char *name) +{ + const char *value_str; + unsigned int r = 0, g = 0, b = 0; + COLORREF value; + + value_str = opts.value(name); + + if (sscanf(value_str, "%u,%u,%u", &r, &g, &b) == 3) + value = RGB(r,g,b); + else + value = (COLORREF) - 1; + return value; +} + +static void options_set_color(winui_options &opts, const char *name, COLORREF value) +{ + char value_str[32]; + + if (value == (COLORREF) -1) + { + snprintf(value_str, ARRAY_LENGTH(value_str), "%d", (int) value); + } + else + { + snprintf(value_str, ARRAY_LENGTH(value_str), "%d,%d,%d", + (((int) value) >> 0) & 0xFF, + (((int) value) >> 8) & 0xFF, + (((int) value) >> 16) & 0xFF); + } + std::string error_string; + opts.set_value(name, value_str, OPTION_PRIORITY_CMDLINE,error_string); +} + +static COLORREF options_get_color_default(winui_options &opts, const char *name, int default_color) +{ + COLORREF value = options_get_color(opts, name); + if (value == (COLORREF) -1) + value = GetSysColor(default_color); + return value; +} + +static void options_set_color_default(winui_options &opts, const char *name, COLORREF value, int default_color) +{ + if (value == GetSysColor(default_color)) + options_set_color(settings, name, (COLORREF) -1); + else + options_set_color(settings, name, value); +} + +static input_seq *options_get_input_seq(winui_options &opts, const char *name) +{ +/* static input_seq seq; + const char *seq_string; + + seq_string = opts.value( name); + input_seq_from_tokens(NULL, seq_string, &seq); // HACK + return &seq;*/ + return NULL; +} + + + +//============================================================ +// OPTIONS CALLS +//============================================================ + +void SetViewMode(int val) +{ + std::string error_string; + settings.set_value(MUIOPTION_LIST_MODE, val, OPTION_PRIORITY_CMDLINE,error_string); +} + +int GetViewMode(void) +{ + return settings.int_value(MUIOPTION_LIST_MODE); +} + +void SetGameCheck(BOOL game_check) +{ + std::string error_string; + settings.set_value(MUIOPTION_CHECK_GAME, game_check, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetGameCheck(void) +{ + return settings.bool_value(MUIOPTION_CHECK_GAME); +} + +void SetJoyGUI(BOOL use_joygui) +{ + std::string error_string; + settings.set_value(MUIOPTION_JOYSTICK_IN_INTERFACE, use_joygui, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetJoyGUI(void) +{ + return settings.bool_value( MUIOPTION_JOYSTICK_IN_INTERFACE); +} + +void SetKeyGUI(BOOL use_keygui) +{ + std::string error_string; + settings.set_value(MUIOPTION_KEYBOARD_IN_INTERFACE, use_keygui, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetKeyGUI(void) +{ + return settings.bool_value( MUIOPTION_KEYBOARD_IN_INTERFACE); +} + +void SetCycleScreenshot(int cycle_screenshot) +{ + std::string error_string; + settings.set_value(MUIOPTION_CYCLE_SCREENSHOT, cycle_screenshot, OPTION_PRIORITY_CMDLINE,error_string); +} + +int GetCycleScreenshot(void) +{ + return settings.int_value(MUIOPTION_CYCLE_SCREENSHOT); +} + +void SetStretchScreenShotLarger(BOOL stretch) +{ + std::string error_string; + settings.set_value(MUIOPTION_STRETCH_SCREENSHOT_LARGER, stretch, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetStretchScreenShotLarger(void) +{ + return settings.bool_value( MUIOPTION_STRETCH_SCREENSHOT_LARGER); +} + +void SetScreenshotBorderSize(int size) +{ + std::string error_string; + settings.set_value(MUIOPTION_SCREENSHOT_BORDER_SIZE, size, OPTION_PRIORITY_CMDLINE,error_string); +} + +int GetScreenshotBorderSize(void) +{ + return settings.int_value(MUIOPTION_SCREENSHOT_BORDER_SIZE); +} + +void SetScreenshotBorderColor(COLORREF uColor) +{ + options_set_color_default(settings, MUIOPTION_SCREENSHOT_BORDER_COLOR, uColor, COLOR_3DFACE); +} + +COLORREF GetScreenshotBorderColor(void) +{ + return options_get_color_default(settings, MUIOPTION_SCREENSHOT_BORDER_COLOR, COLOR_3DFACE); +} + +void SetFilterInherit(BOOL inherit) +{ + std::string error_string; + settings.set_value(MUIOPTION_INHERIT_FILTER, inherit, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetFilterInherit(void) +{ + return settings.bool_value( MUIOPTION_INHERIT_FILTER); +} + +void SetOffsetClones(BOOL offset) +{ + std::string error_string; + settings.set_value(MUIOPTION_OFFSET_CLONES, offset, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetOffsetClones(void) +{ + return settings.bool_value( MUIOPTION_OFFSET_CLONES); +} + +void SetSavedFolderID(UINT val) +{ + std::string error_string; + settings.set_value(MUIOPTION_DEFAULT_FOLDER_ID, (int) val, OPTION_PRIORITY_CMDLINE,error_string); +} + +UINT GetSavedFolderID(void) +{ + return (UINT) settings.int_value(MUIOPTION_DEFAULT_FOLDER_ID); +} + +void SetShowScreenShot(BOOL val) +{ + std::string error_string; + settings.set_value(MUIOPTION_SHOW_IMAGE_SECTION, val, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetShowScreenShot(void) +{ + return settings.bool_value(MUIOPTION_SHOW_IMAGE_SECTION); +} + +#ifdef MESS +void SetShowSoftware(BOOL val) +{ + std::string error_string; + settings.set_value(MUIOPTION_SHOW_SOFTWARE_SECTION, val, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetShowSoftware(void) +{ + return settings.bool_value(MUIOPTION_SHOW_SOFTWARE_SECTION); +} +#endif + +void SetShowFolderList(BOOL val) +{ + std::string error_string; + settings.set_value(MUIOPTION_SHOW_FOLDER_SECTION, val, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetShowFolderList(void) +{ + return settings.bool_value(MUIOPTION_SHOW_FOLDER_SECTION); +} + +static void GetsShowFolderFlags(LPBITS bits) +{ + char s[2000]; + extern const FOLDERDATA g_folderData[]; + char *token; + + snprintf(s, ARRAY_LENGTH(s), "%s", settings.value( MUIOPTION_HIDE_FOLDERS)); + + SetAllBits(bits, TRUE); + + token = strtok(s,", \t"); + int j; + while (token) + { + for (j=0; g_folderData[j].m_lpTitle; j++) + { + if (strcmp(g_folderData[j].short_name,token) == 0) + { + ClearBit(bits, g_folderData[j].m_nFolderId); + break; + } + } + token = strtok(NULL,", \t"); + } +} + +BOOL GetShowFolder(int folder) +{ + LPBITS show_folder_flags = NewBits(MAX_FOLDERS); + GetsShowFolderFlags(show_folder_flags); + BOOL result = TestBit(show_folder_flags, folder); + DeleteBits(show_folder_flags); + return result; +} + +void SetShowFolder(int folder,BOOL show) +{ + LPBITS show_folder_flags = NewBits(MAX_FOLDERS); + int i = 0, j = 0; + int num_saved = 0; + char str[10000]; + extern const FOLDERDATA g_folderData[]; + + GetsShowFolderFlags(show_folder_flags); + + if (show) + SetBit(show_folder_flags, folder); + else + ClearBit(show_folder_flags, folder); + + strcpy(str, ""); + + // we save the ones that are NOT displayed, so we can add new ones + // and upgraders will see them + for (i=0; i<MAX_FOLDERS; i++) + { + if (TestBit(show_folder_flags, i) == FALSE) + { + if (num_saved != 0) + strcat(str,", "); + + for (j=0; g_folderData[j].m_lpTitle; j++) + { + if (g_folderData[j].m_nFolderId == i) + { + strcat(str,g_folderData[j].short_name); + num_saved++; + break; + } + } + } + } + std::string error_string; + settings.set_value(MUIOPTION_HIDE_FOLDERS, str, OPTION_PRIORITY_CMDLINE,error_string); + DeleteBits(show_folder_flags); +} + +void SetShowStatusBar(BOOL val) +{ + std::string error_string; + settings.set_value(MUIOPTION_SHOW_STATUS_BAR, val, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetShowStatusBar(void) +{ + return settings.bool_value( MUIOPTION_SHOW_STATUS_BAR); +} + +void SetShowTabCtrl (BOOL val) +{ + std::string error_string; + settings.set_value(MUIOPTION_SHOW_TABS, val, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetShowTabCtrl (void) +{ + return settings.bool_value( MUIOPTION_SHOW_TABS); +} + +void SetShowToolBar(BOOL val) +{ + std::string error_string; + settings.set_value(MUIOPTION_SHOW_TOOLBAR, val, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetShowToolBar(void) +{ + return settings.bool_value( MUIOPTION_SHOW_TOOLBAR); +} + +void SetCurrentTab(const char *shortname) +{ + std::string error_string; + settings.set_value(MUIOPTION_CURRENT_TAB, shortname, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char *GetCurrentTab(void) +{ + return settings.value( MUIOPTION_CURRENT_TAB); +} + +void SetDefaultGame(const char *name) +{ + std::string error_string; + settings.set_value(MUIOPTION_DEFAULT_GAME, name, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char *GetDefaultGame(void) +{ + return settings.value( MUIOPTION_DEFAULT_GAME); +} + +void SetWindowArea(const AREA *area) +{ + std::string error_string; + settings.set_value(MUIOPTION_WINDOW_X, area->x, OPTION_PRIORITY_CMDLINE,error_string); + settings.set_value(MUIOPTION_WINDOW_Y, area->y, OPTION_PRIORITY_CMDLINE,error_string); + settings.set_value(MUIOPTION_WINDOW_WIDTH, area->width, OPTION_PRIORITY_CMDLINE,error_string); + settings.set_value(MUIOPTION_WINDOW_HEIGHT, area->height, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetWindowArea(AREA *area) +{ + area->x = settings.int_value(MUIOPTION_WINDOW_X); + area->y = settings.int_value(MUIOPTION_WINDOW_Y); + area->width = settings.int_value(MUIOPTION_WINDOW_WIDTH); + area->height = settings.int_value(MUIOPTION_WINDOW_HEIGHT); +} + +void SetWindowState(UINT state) +{ + std::string error_string; + settings.set_value(MUIOPTION_WINDOW_STATE, (int)state, OPTION_PRIORITY_CMDLINE,error_string); +} + +UINT GetWindowState(void) +{ + return settings.int_value(MUIOPTION_WINDOW_STATE); +} + +void SetCustomColor(int iIndex, COLORREF uColor) +{ + const char *custom_color_string; + COLORREF custom_color[256]; + char buffer[80]; + + custom_color_string = settings.value( MUIOPTION_CUSTOM_COLOR); + CusColorDecodeString(custom_color_string, custom_color); + + custom_color[iIndex] = uColor; + + CusColorEncodeString(custom_color, buffer); + std::string error_string; + settings.set_value(MUIOPTION_CUSTOM_COLOR, buffer, OPTION_PRIORITY_CMDLINE,error_string); +} + +COLORREF GetCustomColor(int iIndex) +{ + const char *custom_color_string; + COLORREF custom_color[256]; + + custom_color_string = settings.value( MUIOPTION_CUSTOM_COLOR); + CusColorDecodeString(custom_color_string, custom_color); + + if (custom_color[iIndex] == (COLORREF)-1) + return (COLORREF)RGB(0,0,0); + + return custom_color[iIndex]; +} + +void SetListFont(const LOGFONT *font) +{ + char font_string[10000]; + FontEncodeString(font, font_string); + std::string error_string; + settings.set_value(MUIOPTION_LIST_FONT, font_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetListFont(LOGFONT *font) +{ + const char *font_string = settings.value( MUIOPTION_LIST_FONT); + FontDecodeString(font_string, font); +} + +void SetListFontColor(COLORREF uColor) +{ + options_set_color_default(settings, MUIOPTION_TEXT_COLOR, uColor, COLOR_WINDOWTEXT); +} + +COLORREF GetListFontColor(void) +{ + return options_get_color_default(settings, MUIOPTION_TEXT_COLOR, COLOR_WINDOWTEXT); +} + +void SetListCloneColor(COLORREF uColor) +{ + options_set_color_default(settings, MUIOPTION_CLONE_COLOR, uColor, COLOR_WINDOWTEXT); +} + +COLORREF GetListCloneColor(void) +{ + return options_get_color_default(settings, MUIOPTION_CLONE_COLOR, COLOR_WINDOWTEXT); +} + +int GetShowTab(int tab) +{ + const char *show_tabs_string; + int show_tab_flags = 0; + + show_tabs_string = settings.value( MUIOPTION_HIDE_TABS); + TabFlagsDecodeString(show_tabs_string, &show_tab_flags); + return (show_tab_flags & (1 << tab)) != 0; +} + +void SetShowTab(int tab,BOOL show) +{ + const char *show_tabs_string; + int show_tab_flags = 0; + char buffer[10000]; + + show_tabs_string = settings.value( MUIOPTION_HIDE_TABS); + TabFlagsDecodeString(show_tabs_string, &show_tab_flags); + + if (show) + show_tab_flags |= 1 << tab; + else + show_tab_flags &= ~(1 << tab); + + TabFlagsEncodeString(show_tab_flags, buffer); + std::string error_string; + settings.set_value(MUIOPTION_HIDE_TABS, buffer, OPTION_PRIORITY_CMDLINE,error_string); +} + +// don't delete the last one +BOOL AllowedToSetShowTab(int tab,BOOL show) +{ + const char *show_tabs_string; + int show_tab_flags = 0; + + if (show == TRUE) + return TRUE; + + show_tabs_string = settings.value( MUIOPTION_HIDE_TABS); + TabFlagsDecodeString(show_tabs_string, &show_tab_flags); + + show_tab_flags &= ~(1 << tab); + return show_tab_flags != 0; +} + +int GetHistoryTab(void) +{ + return settings.int_value(MUIOPTION_HISTORY_TAB); +} + +void SetHistoryTab(int tab, BOOL show) +{ + std::string error_string; + if (show) + settings.set_value(MUIOPTION_HISTORY_TAB, tab, OPTION_PRIORITY_CMDLINE,error_string); + else + settings.set_value(MUIOPTION_HISTORY_TAB, TAB_NONE, OPTION_PRIORITY_CMDLINE,error_string); +} + +void SetColumnWidths(int width[]) +{ + char column_width_string[80]; + ColumnEncodeStringWithCount(width, column_width_string, COLUMN_MAX); + std::string error_string; + settings.set_value(MUIOPTION_COLUMN_WIDTHS, column_width_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetColumnWidths(int width[]) +{ + const char *column_width_string; + column_width_string = settings.value(MUIOPTION_COLUMN_WIDTHS); + ColumnDecodeStringWithCount(column_width_string, width, COLUMN_MAX); +} + +void SetSplitterPos(int splitterId, int pos) +{ + const char *splitter_string; + int *splitter; + char buffer[80]; + + if (splitterId < GetSplitterCount()) + { + splitter_string = settings.value(MUIOPTION_SPLITTERS); + splitter = (int *) alloca(GetSplitterCount() * sizeof(*splitter)); + SplitterDecodeString(splitter_string, splitter); + + splitter[splitterId] = pos; + + SplitterEncodeString(splitter, buffer); + std::string error_string; + settings.set_value(MUIOPTION_SPLITTERS, buffer, OPTION_PRIORITY_CMDLINE,error_string); + } +} + +int GetSplitterPos(int splitterId) +{ + const char *splitter_string; + int *splitter; + + splitter_string = settings.value( MUIOPTION_SPLITTERS); + splitter = (int *) alloca(GetSplitterCount() * sizeof(*splitter)); + SplitterDecodeString(splitter_string, splitter); + + if (splitterId < GetSplitterCount()) + return splitter[splitterId]; + + return -1; /* Error */ +} + +void SetColumnOrder(int order[]) +{ + char column_order_string[80]; + ColumnEncodeStringWithCount(order, column_order_string, COLUMN_MAX); + std::string error_string; + settings.set_value(MUIOPTION_COLUMN_ORDER, column_order_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetColumnOrder(int order[]) +{ + const char *column_order_string; + column_order_string = settings.value( MUIOPTION_COLUMN_ORDER); + ColumnDecodeStringWithCount(column_order_string, order, COLUMN_MAX); +} + +void SetColumnShown(int shown[]) +{ + char column_shown_string[80]; + ColumnEncodeStringWithCount(shown, column_shown_string, COLUMN_MAX); + std::string error_string; + settings.set_value(MUIOPTION_COLUMN_SHOWN, column_shown_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetColumnShown(int shown[]) +{ + const char *column_shown_string; + column_shown_string = settings.value( MUIOPTION_COLUMN_SHOWN); + ColumnDecodeStringWithCount(column_shown_string, shown, COLUMN_MAX); +} + +void SetSortColumn(int column) +{ + std::string error_string; + settings.set_value(MUIOPTION_SORT_COLUMN, column, OPTION_PRIORITY_CMDLINE,error_string); +} + +int GetSortColumn(void) +{ + return settings.int_value(MUIOPTION_SORT_COLUMN); +} + +void SetSortReverse(BOOL reverse) +{ + std::string error_string; + settings.set_value(MUIOPTION_SORT_REVERSED, reverse, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetSortReverse(void) +{ + return settings.bool_value( MUIOPTION_SORT_REVERSED); +} + +const char* GetLanguage(void) // this is unused I guess +{ + return settings.value( MUIOPTION_LANGUAGE); +} + +void SetLanguage(const char* lang) // same as above, time to remove it? +{ + std::string error_string; + settings.set_value(MUIOPTION_LANGUAGE, lang, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetLanguageUI(void) +{ + return global.value(OPTION_LANGUAGE); +} + +bool GetEnablePlugins(void) +{ + return global.bool_value(OPTION_PLUGINS); +} + +const char* GetPlugins(void) +{ + return global.value(OPTION_PLUGIN); +} + +const char* GetRomDirs(void) +{ + return global.media_path(); +} + +void SetRomDirs(const char* paths) +{ + std::string error_string; + global.set_value(OPTION_MEDIAPATH, paths, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetHashDirs(void) +{ + return global.hash_path(); +} + +void SetHashDirs(const char* paths) +{ + std::string error_string; + global.set_value(OPTION_HASHPATH, paths, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetSampleDirs(void) +{ + return global.value(OPTION_SAMPLEPATH); +} + +void SetSampleDirs(const char* paths) +{ + std::string error_string; + global.set_value(OPTION_SAMPLEPATH, paths, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char * GetIniDir(void) +{ + const char *ini_dir; + const char *s; + + ini_dir = global.value(OPTION_INIPATH); + while((s = strchr(ini_dir, ';')) != NULL) + { + ini_dir = s + 1; + } + return ini_dir; + +} + +void SetIniDir(const char *path) +{ + std::string error_string; + global.set_value(OPTION_INIPATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetCtrlrDir(void) +{ + return global.value(OPTION_CTRLRPATH); +} + +void SetCtrlrDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_CTRLRPATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetCommentDir(void) +{ + return global.value(OPTION_COMMENT_DIRECTORY); +} + +void SetCommentDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_COMMENT_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetCfgDir(void) +{ + return global.value(OPTION_CFG_DIRECTORY); +} + +void SetCfgDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_CFG_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetNvramDir(void) +{ + return global.value(OPTION_NVRAM_DIRECTORY); +} + +void SetNvramDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_NVRAM_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetInpDir(void) +{ + return global.value(OPTION_INPUT_DIRECTORY); +} + +void SetInpDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_INPUT_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetImgDir(void) +{ + return global.value(OPTION_SNAPSHOT_DIRECTORY); +} + +void SetImgDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_SNAPSHOT_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetStateDir(void) +{ + return global.value(OPTION_STATE_DIRECTORY); +} + +void SetStateDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_STATE_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetArtDir(void) +{ + return global.value(OPTION_ARTPATH); +} + +void SetArtDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_ARTPATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetFontDir(void) +{ + return global.value(OPTION_FONTPATH); +} + +void SetFontDir(const char* paths) +{ + std::string error_string; + global.set_value(OPTION_FONTPATH, paths, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetCrosshairDir(void) +{ + return global.value(OPTION_CROSSHAIRPATH); +} + +void SetCrosshairDir(const char* paths) +{ + std::string error_string; + global.set_value(OPTION_CROSSHAIRPATH, paths, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetFlyerDir(void) +{ + return mewui.value(OPTION_FLYERS_PATH); +} + +void SetFlyerDir(const char* path) +{ + std::string error_string; + mewui.set_value(OPTION_FLYERS_PATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetCabinetDir(void) +{ + return mewui.value(OPTION_CABINETS_PATH); +} + +void SetCabinetDir(const char* path) +{ + std::string error_string; + mewui.set_value(OPTION_CABINETS_PATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetMarqueeDir(void) +{ + return mewui.value(OPTION_MARQUEES_PATH); +} + +void SetMarqueeDir(const char* path) +{ + std::string error_string; + mewui.set_value(OPTION_MARQUEES_PATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetTitlesDir(void) +{ + return mewui.value(OPTION_TITLES_PATH); +} + +void SetTitlesDir(const char* path) +{ + std::string error_string; + mewui.set_value(OPTION_TITLES_PATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char * GetControlPanelDir(void) +{ + return mewui.value(OPTION_CPANELS_PATH); +} + +void SetControlPanelDir(const char *path) +{ + std::string error_string; + mewui.set_value(OPTION_CPANELS_PATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char * GetPcbDir(void) +{ + return mewui.value(OPTION_PCBS_PATH); +} + +void SetPcbDir(const char *path) +{ + std::string error_string; + mewui.set_value(OPTION_PCBS_PATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetPluginsDir(void) +{ + return global.value(OPTION_PLUGINSPATH); +} + +void SetPluginsDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_PLUGINSPATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetLangDir(void) +{ + return global.value(OPTION_LANGUAGEPATH); +} + +void SetLangDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_LANGUAGEPATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char * GetDiffDir(void) +{ + return global.value(OPTION_DIFF_DIRECTORY); +} + +void SetDiffDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_DIFF_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetIconsDir(void) +{ + return settings.value( MUIOPTION_ICONS_DIRECTORY); +} + +void SetIconsDir(const char* path) +{ + std::string error_string; + settings.set_value(MUIOPTION_ICONS_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetBgDir (void) +{ + return settings.value( MUIOPTION_BACKGROUND_DIRECTORY); +} + +void SetBgDir (const char* path) +{ + std::string error_string; + settings.set_value(MUIOPTION_BACKGROUND_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char * GetDatsDir(void) +{ + return mewui.value(OPTION_HISTORY_PATH); +} + +void SetDatsDir(const char *path) +{ + std::string error_string; + mewui.set_value(OPTION_HISTORY_PATH, path, OPTION_PRIORITY_CMDLINE, error_string); +} + +const char* GetFolderDir(void) +{ + return mewui.value(OPTION_EXTRAINI_PATH); +} + +void SetFolderDir(const char* path) +{ + std::string error_string; + mewui.set_value(OPTION_EXTRAINI_PATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetCheatDir(void) +{ + return global.value(OPTION_CHEATPATH); +} + +void SetCheatDir(const char* path) +{ + std::string error_string; + global.set_value(OPTION_CHEATPATH, path, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char* GetSnapName(void) +{ + return global.value(OPTION_SNAPNAME); +} + +void SetSnapName(const char* pattern) +{ + std::string error_string; + global.set_value(OPTION_SNAPNAME, pattern, OPTION_PRIORITY_CMDLINE,error_string); +} + +void ResetGameOptions(int driver_index) +{ + assert(0 <= driver_index && driver_index < driver_list::total()); + + //save_options(NULL, OPTIONS_GAME, driver_index); +} + +void ResetGameDefaults(void) +{ + // Walk the global settings and reset everything to defaults; + ResetToDefaults(global, OPTION_PRIORITY_CMDLINE); + save_options(global, GLOBAL_OPTIONS); +} + +/* + * Reset all game, vector and source options to defaults. + * No reason to reboot if this is done. + */ +void ResetAllGameOptions(void) +{ + for (int i = 0; i < driver_list::total(); i++) + ResetGameOptions(i); +} + +int GetRomAuditResults(int driver_index) +{ + return game_opts.rom(driver_index); +} + +void SetRomAuditResults(int driver_index, int audit_results) +{ + game_opts.rom(driver_index, audit_results); +} + +int GetSampleAuditResults(int driver_index) +{ + return game_opts.sample(driver_index); +} + +void SetSampleAuditResults(int driver_index, int audit_results) +{ + game_opts.sample(driver_index, audit_results); +} + +static void IncrementPlayVariable(int driver_index, const char *play_variable, int increment) +{ + int count = 0; + + if (strcmp(play_variable, "count") == 0) + { + count = game_opts.play_count(driver_index); + game_opts.play_count(driver_index, count + increment); + } + else if (strcmp(play_variable, "time") == 0) + { + count = game_opts.play_time(driver_index); + game_opts.play_time(driver_index, count + increment); + } +} + +void IncrementPlayCount(int driver_index) +{ + IncrementPlayVariable(driver_index, "count", 1); +} + +int GetPlayCount(int driver_index) +{ + return game_opts.play_count(driver_index); +} + +static void ResetPlayVariable(int driver_index, const char *play_variable) +{ + if (driver_index < 0) + { + /* all games */ + for (int i = 0; i< driver_list::total(); i++) + { + ResetPlayVariable(i, play_variable); + } + } + else + { + if (strcmp(play_variable, "count") == 0) + game_opts.play_count(driver_index, 0); + else if (strcmp(play_variable, "time") == 0) + game_opts.play_time(driver_index, 0); + } +} + +void ResetPlayCount(int driver_index) +{ + ResetPlayVariable(driver_index, "count"); +} + +void ResetPlayTime(int driver_index) +{ + ResetPlayVariable(driver_index, "time"); +} + +int GetPlayTime(int driver_index) +{ + return game_opts.play_time(driver_index); +} + +void IncrementPlayTime(int driver_index,int playtime) +{ + IncrementPlayVariable(driver_index, "time", playtime); +} + +void GetTextPlayTime(int driver_index, char *buf) +{ + + assert(0 <= driver_index && driver_index < driver_list::total()); + int temp = GetPlayTime(driver_index); + int hour = temp / 3600; + temp = temp - 3600*hour; + int minute = temp / 60; //Calc Minutes + int second = temp - 60*minute; + + if (hour == 0) + sprintf(buf, "%d:%02d", minute, second ); + else + sprintf(buf, "%d:%02d:%02d", hour, minute, second ); +} + +input_seq* Get_ui_key_up(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_UP); +} + +input_seq* Get_ui_key_down(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_DOWN); +} + +input_seq* Get_ui_key_left(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_LEFT); +} + +input_seq* Get_ui_key_right(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_RIGHT); +} + +input_seq* Get_ui_key_start(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_START); +} + +input_seq* Get_ui_key_pgup(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_PGUP); +} + +input_seq* Get_ui_key_pgdwn(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_PGDWN); +} + +input_seq* Get_ui_key_home(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_HOME); +} + +input_seq* Get_ui_key_end(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_END); +} + +input_seq* Get_ui_key_ss_change(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_SS_CHANGE); +} + +input_seq* Get_ui_key_history_up(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_HISTORY_UP); +} + +input_seq* Get_ui_key_history_down(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_HISTORY_DOWN); +} + +input_seq* Get_ui_key_context_filters(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_CONTEXT_FILTERS); +} + +input_seq* Get_ui_key_select_random(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_SELECT_RANDOM); +} + +input_seq* Get_ui_key_game_audit(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_GAME_AUDIT); +} + +input_seq* Get_ui_key_game_properties(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_GAME_PROPERTIES); +} + +input_seq* Get_ui_key_help_contents(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_HELP_CONTENTS); +} + +input_seq* Get_ui_key_update_gamelist(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_UPDATE_GAMELIST); +} + +input_seq* Get_ui_key_view_folders(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_FOLDERS); +} + +input_seq* Get_ui_key_view_fullscreen(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_FULLSCREEN); +} + +input_seq* Get_ui_key_view_pagetab(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_PAGETAB); +} + +input_seq* Get_ui_key_view_picture_area(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_PICTURE_AREA); +} + +#ifdef MESS +input_seq* Get_ui_key_view_software_area(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA); +} +#endif + +input_seq* Get_ui_key_view_status(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_STATUS); +} + +input_seq* Get_ui_key_view_toolbars(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TOOLBARS); +} + +input_seq* Get_ui_key_view_tab_cabinet(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_CABINET); +} + +input_seq* Get_ui_key_view_tab_cpanel(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_CPANEL); +} + +input_seq* Get_ui_key_view_tab_flyer(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_FLYER); +} + +input_seq* Get_ui_key_view_tab_history(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_HISTORY); +} + +input_seq* Get_ui_key_view_tab_marquee(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE); +} + +input_seq* Get_ui_key_view_tab_screenshot(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT); +} + +input_seq* Get_ui_key_view_tab_title(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_TITLE); +} + +input_seq* Get_ui_key_view_tab_pcb(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_PCB); +} + +input_seq* Get_ui_key_quit(void) +{ + return options_get_input_seq(settings, MUIOPTION_UI_KEY_QUIT); +} + +static int GetUIJoy(const char *option_name, int joycodeIndex) +{ + const char *joycodes_string; + int joycodes[4]; + + assert(0 <= joycodeIndex && joycodeIndex < 4); + joycodes_string = settings.value( option_name); + ColumnDecodeStringWithCount(joycodes_string, joycodes, ARRAY_LENGTH(joycodes)); + return joycodes[joycodeIndex]; +} + +static void SetUIJoy(const char *option_name, int joycodeIndex, int val) +{ + const char *joycodes_string; + int joycodes[4]; + char buffer[1024]; + + assert(0 <= joycodeIndex && joycodeIndex < 4); + joycodes_string = settings.value( option_name); + ColumnDecodeStringWithCount(joycodes_string, joycodes, ARRAY_LENGTH(joycodes)); + + joycodes[joycodeIndex] = val; + ColumnEncodeStringWithCount(joycodes, buffer, ARRAY_LENGTH(joycodes)); + std::string error_string; + settings.set_value(option_name, buffer, OPTION_PRIORITY_CMDLINE,error_string); +} + +int GetUIJoyUp(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_UP, joycodeIndex); +} + +void SetUIJoyUp(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_UP, joycodeIndex, val); +} + +int GetUIJoyDown(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_DOWN, joycodeIndex); +} + +void SetUIJoyDown(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_DOWN, joycodeIndex, val); +} + +int GetUIJoyLeft(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_LEFT, joycodeIndex); +} + +void SetUIJoyLeft(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_LEFT, joycodeIndex, val); +} + +int GetUIJoyRight(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_RIGHT, joycodeIndex); +} + +void SetUIJoyRight(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_RIGHT, joycodeIndex, val); +} + +int GetUIJoyStart(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_START, joycodeIndex); +} + +void SetUIJoyStart(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_START, joycodeIndex, val); +} + +int GetUIJoyPageUp(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_PGUP, joycodeIndex); +} + +void SetUIJoyPageUp(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_PGUP, joycodeIndex, val); +} + +int GetUIJoyPageDown(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_PGDWN, joycodeIndex); +} + +void SetUIJoyPageDown(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_PGDWN, joycodeIndex, val); +} + +int GetUIJoyHome(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_HOME, joycodeIndex); +} + +void SetUIJoyHome(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_HOME, joycodeIndex, val); +} + +int GetUIJoyEnd(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_END, joycodeIndex); +} + +void SetUIJoyEnd(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_END, joycodeIndex, val); +} + +int GetUIJoySSChange(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_SS_CHANGE, joycodeIndex); +} + +void SetUIJoySSChange(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_SS_CHANGE, joycodeIndex, val); +} + +int GetUIJoyHistoryUp(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_HISTORY_UP, joycodeIndex); +} + +void SetUIJoyHistoryUp(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_HISTORY_UP, joycodeIndex, val); +} + +int GetUIJoyHistoryDown(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_HISTORY_DOWN, joycodeIndex); +} + +void SetUIJoyHistoryDown(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_HISTORY_DOWN, joycodeIndex, val); +} + +void SetUIJoyExec(int joycodeIndex, int val) +{ + SetUIJoy(MUIOPTION_UI_JOY_EXEC, joycodeIndex, val); +} + +int GetUIJoyExec(int joycodeIndex) +{ + return GetUIJoy(MUIOPTION_UI_JOY_EXEC, joycodeIndex); +} + +const char * GetExecCommand(void) +{ + return settings.value( MUIOPTION_EXEC_COMMAND); +} + +void SetExecCommand(char *cmd) +{ + std::string error_string; + settings.set_value(MUIOPTION_EXEC_COMMAND, cmd, OPTION_PRIORITY_CMDLINE,error_string); +} + +int GetExecWait(void) +{ + return settings.int_value(MUIOPTION_EXEC_WAIT); +} + +void SetExecWait(int wait) +{ + std::string error_string; + settings.set_value(MUIOPTION_EXEC_WAIT, wait, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetHideMouseOnStartup(void) +{ + return settings.bool_value( MUIOPTION_HIDE_MOUSE); +} + +void SetHideMouseOnStartup(BOOL hide) +{ + std::string error_string; + settings.set_value(MUIOPTION_HIDE_MOUSE, hide, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetRunFullScreen(void) +{ + return settings.bool_value( MUIOPTION_FULL_SCREEN); +} + +void SetRunFullScreen(BOOL fullScreen) +{ + std::string error_string; + settings.set_value(MUIOPTION_FULL_SCREEN, fullScreen, OPTION_PRIORITY_CMDLINE,error_string); +} + +/*************************************************************************** + Internal functions + ***************************************************************************/ + +static void CusColorEncodeString(const COLORREF *value, char* str) +{ + char tmpStr[256]; + + sprintf(tmpStr, "%u", (int) value[0]); + + strcpy(str, tmpStr); + + for (int i = 1; i < 16; i++) + { + sprintf(tmpStr, ",%u", (unsigned) value[i]); + strcat(str, tmpStr); + } +} + +static void CusColorDecodeString(const char* str, COLORREF *value) +{ + char *s, *p; + char tmpStr[256]; + + strcpy(tmpStr, str); + p = tmpStr; + + for (int i = 0; p && i < 16; i++) + { + s = p; + + if ((p = strchr(s,',')) != NULL && *p == ',') + { + *p = '\0'; + p++; + } + value[i] = atoi(s); + } +} + + +void ColumnEncodeStringWithCount(const int *value, char *str, int count) +{ + char buffer[256]; + + snprintf(buffer,sizeof(buffer),"%d",value[0]); + + strcpy(str,buffer); + + for (int i = 1; i < count; i++) + { + snprintf(buffer,sizeof(buffer),",%d",value[i]); + strcat(str,buffer); + } +} + +void ColumnDecodeStringWithCount(const char* str, int *value, int count) +{ + char *s, *p; + char tmpStr[256]; + + if (str == NULL) + return; + + strcpy(tmpStr, str); + p = tmpStr; + + for (int i = 0; p && i < count; i++) + { + s = p; + + if ((p = strchr(s,',')) != NULL && *p == ',') + { + *p = '\0'; + p++; + } + value[i] = atoi(s); + } +} + +static void SplitterEncodeString(const int *value, char* str) +{ + char tmpStr[256]; + + sprintf(tmpStr, "%d", value[0]); + + strcpy(str, tmpStr); + + for (int i = 1; i < GetSplitterCount(); i++) + { + sprintf(tmpStr, ",%d", value[i]); + strcat(str, tmpStr); + } +} + +static void SplitterDecodeString(const char *str, int *value) +{ + char *s, *p; + char tmpStr[256]; + + strcpy(tmpStr, str); + p = tmpStr; + + for (int i = 0; p && i < GetSplitterCount(); i++) + { + s = p; + + if ((p = strchr(s,',')) != NULL && *p == ',') + { + *p = '\0'; + p++; + } + value[i] = atoi(s); + } +} + +/* Parse the given comma-delimited string into a LOGFONT structure */ +static void FontDecodeString(const char* str, LOGFONT *f) +{ + const char* ptr; + TCHAR* t_ptr; + + sscanf(str, "%li,%li,%li,%li,%li,%i,%i,%i,%i,%i,%i,%i,%i", + &f->lfHeight, + &f->lfWidth, + &f->lfEscapement, + &f->lfOrientation, + &f->lfWeight, + (int*)&f->lfItalic, + (int*)&f->lfUnderline, + (int*)&f->lfStrikeOut, + (int*)&f->lfCharSet, + (int*)&f->lfOutPrecision, + (int*)&f->lfClipPrecision, + (int*)&f->lfQuality, + (int*)&f->lfPitchAndFamily); + ptr = strrchr(str, ','); + if (ptr) + { + t_ptr = tstring_from_utf8(ptr + 1); + if( !t_ptr ) + return; + _tcscpy(f->lfFaceName, t_ptr); + osd_free(t_ptr); + } +} + +/* Encode the given LOGFONT structure into a comma-delimited string */ +static void FontEncodeString(const LOGFONT *f, char *str) +{ + char* utf8_FaceName = utf8_from_tstring(f->lfFaceName); + if( !utf8_FaceName ) + return; + + sprintf(str, "%li,%li,%li,%li,%li,%i,%i,%i,%i,%i,%i,%i,%i,%s", + f->lfHeight, + f->lfWidth, + f->lfEscapement, + f->lfOrientation, + f->lfWeight, + f->lfItalic, + f->lfUnderline, + f->lfStrikeOut, + f->lfCharSet, + f->lfOutPrecision, + f->lfClipPrecision, + f->lfQuality, + f->lfPitchAndFamily, + utf8_FaceName); + + osd_free(utf8_FaceName); +} + +static void TabFlagsEncodeString(int data, char *str) +{ + int num_saved = 0; + + strcpy(str,""); + + // we save the ones that are NOT displayed, so we can add new ones + // and upgraders will see them + for ( int i=0; i<MAX_TAB_TYPES; i++) + { + if (((data & (1 << i)) == 0) && GetImageTabShortName(i)) + { + if (num_saved > 0) + strcat(str, ", "); + + strcat(str,GetImageTabShortName(i)); + num_saved++; + } + } +} + +static void TabFlagsDecodeString(const char *str, int *data) +{ + int j = 0; + char s[2000]; + char *token; + + snprintf(s, ARRAY_LENGTH(s), "%s", str); + + // simple way to set all tab bits "on" + *data = (1 << MAX_TAB_TYPES) - 1; + + token = strtok(s,", \t"); + while (token) + { + for (j=0; j<MAX_TAB_TYPES; j++) + { + if (!GetImageTabShortName(j) || (strcmp(GetImageTabShortName(j), token) == 0)) + { + // turn off this bit + *data &= ~(1 << j); + break; + } + } + token = strtok(NULL,", \t"); + } + + if (*data == 0) + { + // not allowed to hide all tabs, because then why even show the area? + *data = (1 << TAB_SCREENSHOT); + } +} + +static void LoadSettingsFile(ui_options &opts, const char *filename) +{ + osd_file::error filerr; + util::core_file::ptr file; + + filerr = util::core_file::open(filename, OPEN_FLAG_READ, file); + if (filerr == osd_file::error::NONE) + { + std::string error_string; + opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, OPTION_PRIORITY_CMDLINE, error_string); + file.reset(); + } +} + +static void LoadSettingsFile(winui_options &opts, const char *filename) +{ + osd_file::error filerr; + util::core_file::ptr file; + + filerr = util::core_file::open(filename, OPEN_FLAG_READ, file); + if (filerr == osd_file::error::NONE) + { + std::string error_string; + opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, OPTION_PRIORITY_CMDLINE, error_string); + file.reset(); + } +} + +static void LoadSettingsFile(windows_options &opts, const char *filename) +{ + osd_file::error filerr; + util::core_file::ptr file; + + filerr = util::core_file::open(filename, OPEN_FLAG_READ, file); + if (filerr == osd_file::error::NONE) + { + std::string error_string; + opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, OPTION_PRIORITY_CMDLINE, error_string); + file.reset(); + } +} + +// This saves changes to UI.INI only +static void SaveSettingsFile(ui_options &opts, const char *filename) +{ + osd_file::error filerr = osd_file::error::NONE; + util::core_file::ptr file; + + filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file); + + if (filerr == osd_file::error::NONE) + { + std::string inistring = opts.output_ini(); + file->puts(inistring.c_str()); + file.reset(); + } +} + + + +// This saves changes to MAMEUI.INI only +static void SaveSettingsFile(winui_options &opts, const char *filename) +{ + osd_file::error filerr = osd_file::error::NONE; + util::core_file::ptr file; + + filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file); + + if (filerr == osd_file::error::NONE) + { + std::string inistring = opts.output_ini(); + file->puts(inistring.c_str()); + file.reset(); + } +} + + + +// This saves changes to <game>.INI or MAME.INI only +static void SaveSettingsFile(windows_options &opts, const char *filename) +{ + osd_file::error filerr = osd_file::error::NONE; + util::core_file::ptr file; + + filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file); + + if (filerr == osd_file::error::NONE) + { + std::string inistring = opts.output_ini(); + // printf("=====%s=====\n%s\n",filename,inistring.c_str()); // for debugging + file->puts(inistring.c_str()); + file.reset(); + } +} + + + +/* Register access functions below */ +static void LoadOptionsAndSettings(void) +{ +// char buffer[MAX_PATH]; + + // parse MAMEui.ini - always in the current directory. + LoadSettingsFile(settings, UI_INI_FILENAME); + LoadSettingsFile(mewui, MEWUI_FILENAME); + + // parse GameInfo.ini - game options. + game_opts.load_file(GAMEINFO_INI_FILENAME); + + // parse global options ini/mame32.ini + load_options(global, GLOBAL_OPTIONS); +} + +void SetDirectories(windows_options &opts) +{ + std::string error_string; + opts.set_value(OPTION_MEDIAPATH, GetRomDirs(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_SAMPLEPATH, GetSampleDirs(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_INIPATH, GetIniDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_CFG_DIRECTORY, GetCfgDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_SNAPSHOT_DIRECTORY, GetImgDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_INPUT_DIRECTORY, GetInpDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_STATE_DIRECTORY, GetStateDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_ARTPATH, GetArtDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_NVRAM_DIRECTORY, GetNvramDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_CTRLRPATH, GetCtrlrDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_CHEATPATH, GetCheatDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_CROSSHAIRPATH, GetCrosshairDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_FONTPATH, GetFontDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_DIFF_DIRECTORY, GetDiffDir(), OPTION_PRIORITY_CMDLINE, error_string); + opts.set_value(OPTION_SNAPNAME, GetSnapName(), OPTION_PRIORITY_CMDLINE, error_string); +} + +// not used +#if 0 +const char * GetFolderNameByID(UINT nID) +{ + UINT i; + extern const FOLDERDATA g_folderData[]; + extern LPEXFOLDERDATA ExtraFolderData[]; + + for (i = 0; i < MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS; i++) + if( ExtraFolderData[i] ) + if (ExtraFolderData[i]->m_nFolderId == nID) + return ExtraFolderData[i]->m_szTitle; + + for( i = 0; i < MAX_FOLDERS; i++) + if (g_folderData[i].m_nFolderId == nID) + return g_folderData[i].m_lpTitle; + + return NULL; +} +#endif + +DWORD GetFolderFlags(int folder_index) +{ + LPTREEFOLDER lpFolder = GetFolder(folder_index); + + if (lpFolder) + return lpFolder->m_dwFlags & F_MASK; + + return 0; +} + + +/* Decode the flags into a DWORD */ +static DWORD DecodeFolderFlags(const char *buf) +{ + DWORD flags = 0; + int shift = 0; + const char *ptr = buf; + + while (*ptr && (1 << shift) & F_MASK) + { + if (*ptr++ == '1') + { + flags |= (1 << shift); + } + shift++; + } + return flags; +} + +/* Encode the flags into a string */ +static const char * EncodeFolderFlags(DWORD value) +{ + static char buf[40]; + int shift = 0; + + memset(buf,'\0', sizeof(buf)); + + while ((1 << shift) & F_MASK) + { + buf[shift] = (value & (1 << shift)) ? '1' : '0'; + shift++; + } + + return buf; +} + +/* MSH 20080813 + * Read the folder filters from MAMEui.ini. This must only + * be called AFTER the folders have all been created. + */ +void LoadFolderFlags(void) +{ + winui_options opts; + int i, numFolders = 0; + LPTREEFOLDER lpFolder; + options_entry entries[2] = { { 0 }, { 0 } }; + + memcpy(entries, filterOptions, sizeof(filterOptions)); + + numFolders = GetNumFolders(); + + for (i = 0; i < numFolders; i++) + { + lpFolder = GetFolder(i); + + if (lpFolder) + { + char folder_name[256]; + char *ptr; + + // Convert spaces to underscores + strcpy(folder_name, lpFolder->m_lpTitle); + ptr = folder_name; + while (*ptr && *ptr != '\0') + { + if (*ptr == ' ') + { + *ptr = '_'; + } + ptr++; + } + + std::string option_name = std::string(folder_name) + "_filters"; + // create entry + entries[0].name = option_name.c_str(); + opts.add_entries(entries); + } + } + + // These are overlaid at the end of our UI ini + // The normal read will skip them. + LoadSettingsFile(opts, UI_INI_FILENAME); + + // retrieve the stored values + for (i = 0; i < numFolders; i++) + { + lpFolder = GetFolder(i); + + if (lpFolder) + { + char folder_name[256]; + char *ptr; + const char *value; + + // Convert spaces to underscores + strcpy(folder_name, lpFolder->m_lpTitle); + ptr = folder_name; + while (*ptr && *ptr != '\0') + { + if (*ptr == ' ') + { + *ptr = '_'; + } + ptr++; + } + std::string option_name = std::string(folder_name) + "_filters"; + // get entry and decode it + value = opts.value(option_name.c_str()); + + if (value) + lpFolder->m_dwFlags |= DecodeFolderFlags(value) & F_MASK; + } + } +} + + + +// Adds our folder flags to a temporary winui_options, for saving. +static void AddFolderFlags(winui_options &opts) +{ + int numFolders = 0, num_entries = 0; + LPTREEFOLDER lpFolder; + options_entry entries[2] = { { 0 }, { 0 } }; + + entries[0].name = NULL; + entries[0].defvalue = NULL; + entries[0].flags = OPTION_HEADER; + entries[0].description = "FOLDER FILTERS"; + opts.add_entries(entries); + + memcpy(entries, filterOptions, sizeof(filterOptions)); + + numFolders = GetNumFolders(); + + for (int i = 0; i < numFolders; i++) + { + lpFolder = GetFolder(i); + if (lpFolder && (lpFolder->m_dwFlags & F_MASK) != 0) + { + char folder_name[256]; + char *ptr; + + // Convert spaces to underscores + strcpy(folder_name, lpFolder->m_lpTitle); + ptr = folder_name; + while (*ptr && *ptr != '\0') + { + if (*ptr == ' ') + { + *ptr = '_'; + } + ptr++; + } + + std::string option_name = std::string(folder_name) + "_filters"; + + // create entry + entries[0].name = option_name.c_str(); + opts.add_entries(entries); + + // store entry + std::string error_string; + opts.set_value(option_name.c_str(), EncodeFolderFlags(lpFolder->m_dwFlags), OPTION_PRIORITY_CMDLINE,error_string); + + // increment counter + num_entries++; + } + } +} + +// Save MAMEUI.ini +void SaveOptions(void) +{ + // Add the folder flag to settings. + AddFolderFlags(settings); + // Save opts if it is non-null, else save settings. + // It will be null if there are no filters set. + SaveSettingsFile(settings, UI_INI_FILENAME); + SaveSettingsFile(mewui, MEWUI_FILENAME); +} + +void SaveGameListOptions(void) +{ + // Save GameInfo.ini - game options. + game_opts.save_file(GAMEINFO_INI_FILENAME); +} + +void SaveDefaultOptions(void) +{ + std::string fname = std::string(GetIniDir()) + PATH_SEPARATOR + std::string(emulator_info::get_configname()).append(".ini"); + SaveSettingsFile(global, fname.c_str()); +} + +const char * GetVersionString(void) +{ + return emulator_info::get_build_version(); +} + + +/* get options, based on passed in game number. */ +void load_options(windows_options &opts, int game_num) +{ + const game_driver *driver = NULL; + CreateGameOptions(opts, game_num); + + // Try base ini first + std::string fname = std::string(emulator_info::get_configname()).append(".ini"); + LoadSettingsFile(opts, fname.c_str()); + + if (game_num > -2) + { + driver = &driver_list::driver(game_num); + // Now try global ini + fname = std::string(GetIniDir()) + PATH_SEPARATOR + std::string(emulator_info::get_configname()).append(".ini"); + LoadSettingsFile(opts, fname.c_str()); + + if (game_num > -1) + { + // global comment_dir serves a different purpose than for games, so blank it out + std::string error_string; + opts.set_value(OPTION_COMMENT_DIRECTORY, "", OPTION_PRIORITY_CMDLINE,error_string); + // Lastly, gamename.ini + driver = &driver_list::driver(game_num); + if (driver != NULL) + { + fname = std::string(GetIniDir()) + PATH_SEPARATOR + std::string(driver->name).append(".ini"); + LoadSettingsFile(opts, fname.c_str()); + } + } + } + SetDirectories(opts); +} + +/* Save ini file based on game_number. */ +void save_options(windows_options &opts, int game_num) +{ + const game_driver *driver = NULL; + std::string filename, filepath; + + if (game_num >= 0) + { + driver = &driver_list::driver(game_num); + if (driver != NULL) + filename.assign(driver->name); + } + else + if (game_num == -1) + filename = std::string(emulator_info::get_configname()); + + if (!filename.empty()) + filepath = std::string(GetIniDir()).append(PATH_SEPARATOR).append(filename.c_str()).append(".ini"); + + if (game_num == -2) + filepath = std::string(emulator_info::get_configname()).append(".ini"); + + if (!filepath.empty()) + { + SetDirectories(opts); + SaveSettingsFile(opts, filepath.c_str()); +// printf("Settings saved to %s\n",filepath.c_str()); + } +// else +// printf("Unable to save settings\n"); +} + + +// Reset the given windows_options to their default settings. +static void ResetToDefaults(windows_options &opts, int priority) +{ + // iterate through the options setting each one back to the default value. + opts.revert(priority); +} + +int GetDriverCache(int driver_index) +{ + return game_opts.cache(driver_index); +} + +void SetDriverCache(int driver_index, int val) +{ + game_opts.cache(driver_index, val); +} + +BOOL RequiredDriverCache(void) +{ + bool ret = false; + + if ( strcmp(settings.value(MUIOPTION_VERSION), GetVersionString()) != 0 ) + ret = true; + + std::string error_string; + settings.set_value(MUIOPTION_VERSION, GetVersionString(), OPTION_PRIORITY_CMDLINE,error_string); + + return ret; +} + +// from optionsms.cpp (MESSUI) + +#define MESSUI_SWLIST_COLUMN_SHOWN "swlist_column_shown" +#define MESSUI_SWLIST_COLUMN_WIDTHS "swlist_column_widths" +#define MESSUI_SWLIST_COLUMN_ORDER "swlist_column_order" +#define MESSUI_SWLIST_SORT_REVERSED "swlist_sort_reversed" +#define MESSUI_SWLIST_SORT_COLUMN "swlist_sort_column" +#define MESSUI_SOFTWARE_COLUMN_SHOWN "mess_column_shown" +#define MESSUI_SOFTWARE_COLUMN_WIDTHS "mess_column_widths" +#define MESSUI_SOFTWARE_COLUMN_ORDER "mess_column_order" +#define MESSUI_SOFTWARE_SORT_REVERSED "mess_sort_reversed" +#define MESSUI_SOFTWARE_SORT_COLUMN "mess_sort_column" +#define MESSUI_SOFTWARE_TAB "current_software_tab" +#define MESSUI_SOFTWAREPATH "softwarepath" + +#define LOG_SOFTWARE 0 + +static const options_entry mess_wingui_settings[] = +{ + { MESSUI_SWLIST_COLUMN_WIDTHS, "100,75,223,46,120,120", OPTION_STRING, NULL }, + { MESSUI_SWLIST_COLUMN_ORDER, "0,1,2,3,4,5", OPTION_STRING, NULL }, // order of columns + { MESSUI_SWLIST_COLUMN_SHOWN, "1,1,1,1,1,1", OPTION_STRING, NULL }, // 0=hide,1=show + { MESSUI_SWLIST_SORT_COLUMN, "0", OPTION_INTEGER, NULL }, + { MESSUI_SWLIST_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL }, + { MESSUI_SOFTWARE_COLUMN_WIDTHS, "400", OPTION_STRING, NULL }, + { MESSUI_SOFTWARE_COLUMN_ORDER, "0", OPTION_STRING, NULL }, // 1= dummy column + { MESSUI_SOFTWARE_COLUMN_SHOWN, "1", OPTION_STRING, NULL }, // 0=don't show it + { MESSUI_SOFTWARE_SORT_COLUMN, "0", OPTION_INTEGER, NULL }, + { MESSUI_SOFTWARE_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL }, + { MESSUI_SOFTWARE_TAB, "0", OPTION_STRING, NULL }, + { MESSUI_SOFTWAREPATH, "software", OPTION_STRING, NULL }, + { NULL } +}; + +void MessSetupSettings(winui_options &settings) +{ + settings.add_entries(mess_wingui_settings); +} + +void MessSetupGameOptions(windows_options &opts, int driver_index) +{ + if (driver_index >= 0) + mameopts.set_system_name(opts, driver_list::driver(driver_index).name); +} + +void SetSWListColumnOrder(int order[]) +{ + char column_order_string[80]; + ColumnEncodeStringWithCount(order, column_order_string, SWLIST_COLUMN_MAX); + std::string error_string; + MameUISettings().set_value(MESSUI_SWLIST_COLUMN_ORDER, column_order_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetSWListColumnOrder(int order[]) +{ + const char *column_order_string; + column_order_string = MameUISettings().value(MESSUI_SWLIST_COLUMN_ORDER); + ColumnDecodeStringWithCount(column_order_string, order, SWLIST_COLUMN_MAX); +} + +void SetSWListColumnShown(int shown[]) +{ + char column_shown_string[80]; + ColumnEncodeStringWithCount(shown, column_shown_string, SWLIST_COLUMN_MAX); + std::string error_string; + MameUISettings().set_value(MESSUI_SWLIST_COLUMN_SHOWN, column_shown_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetSWListColumnShown(int shown[]) +{ + const char *column_shown_string; + column_shown_string = MameUISettings().value(MESSUI_SWLIST_COLUMN_SHOWN); + ColumnDecodeStringWithCount(column_shown_string, shown, SWLIST_COLUMN_MAX); +} + +void SetSWListColumnWidths(int width[]) +{ + char column_width_string[80]; + ColumnEncodeStringWithCount(width, column_width_string, SWLIST_COLUMN_MAX); + std::string error_string; + MameUISettings().set_value(MESSUI_SWLIST_COLUMN_WIDTHS, column_width_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetSWListColumnWidths(int width[]) +{ + const char *column_width_string; + column_width_string = MameUISettings().value(MESSUI_SWLIST_COLUMN_WIDTHS); + ColumnDecodeStringWithCount(column_width_string, width, SWLIST_COLUMN_MAX); +} + +void SetSWListSortColumn(int column) +{ + std::string error_string; + MameUISettings().set_value(MESSUI_SWLIST_SORT_COLUMN, column, OPTION_PRIORITY_CMDLINE,error_string); +} + +int GetSWListSortColumn(void) +{ + return MameUISettings().int_value(MESSUI_SWLIST_SORT_COLUMN); +} + +void SetSWListSortReverse(BOOL reverse) +{ + std::string error_string; + MameUISettings().set_value( MESSUI_SWLIST_SORT_REVERSED, reverse, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetSWListSortReverse(void) +{ + return MameUISettings().bool_value(MESSUI_SWLIST_SORT_REVERSED); +} + +void SetMessColumnOrder(int order[]) +{ + char column_order_string[80]; + ColumnEncodeStringWithCount(order, column_order_string, MESS_COLUMN_MAX); + std::string error_string; + MameUISettings().set_value(MESSUI_SOFTWARE_COLUMN_ORDER, column_order_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetMessColumnOrder(int order[]) +{ + const char *column_order_string; + column_order_string = MameUISettings().value(MESSUI_SOFTWARE_COLUMN_ORDER); + ColumnDecodeStringWithCount(column_order_string, order, MESS_COLUMN_MAX); +} + +void SetMessColumnShown(int shown[]) +{ + char column_shown_string[80]; + ColumnEncodeStringWithCount(shown, column_shown_string, MESS_COLUMN_MAX); + std::string error_string; + MameUISettings().set_value(MESSUI_SOFTWARE_COLUMN_SHOWN, column_shown_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetMessColumnShown(int shown[]) +{ + const char *column_shown_string; + column_shown_string = MameUISettings().value(MESSUI_SOFTWARE_COLUMN_SHOWN); + ColumnDecodeStringWithCount(column_shown_string, shown, MESS_COLUMN_MAX); +} + +void SetMessColumnWidths(int width[]) +{ + char column_width_string[80]; + ColumnEncodeStringWithCount(width, column_width_string, MESS_COLUMN_MAX); + std::string error_string; + MameUISettings().set_value(MESSUI_SOFTWARE_COLUMN_WIDTHS, column_width_string, OPTION_PRIORITY_CMDLINE,error_string); +} + +void GetMessColumnWidths(int width[]) +{ + const char *column_width_string; + column_width_string = MameUISettings().value(MESSUI_SOFTWARE_COLUMN_WIDTHS); + ColumnDecodeStringWithCount(column_width_string, width, MESS_COLUMN_MAX); +} + +void SetMessSortColumn(int column) +{ + std::string error_string; + MameUISettings().set_value(MESSUI_SOFTWARE_SORT_COLUMN, column, OPTION_PRIORITY_CMDLINE,error_string); +} + +int GetMessSortColumn(void) +{ + return MameUISettings().int_value(MESSUI_SOFTWARE_SORT_COLUMN); +} + +void SetMessSortReverse(BOOL reverse) +{ + std::string error_string; + MameUISettings().set_value( MESSUI_SOFTWARE_SORT_REVERSED, reverse, OPTION_PRIORITY_CMDLINE,error_string); +} + +BOOL GetMessSortReverse(void) +{ + return MameUISettings().bool_value(MESSUI_SOFTWARE_SORT_REVERSED); +} + +const char* GetSoftwareDirs(void) +{ + return MameUISettings().value(MESSUI_SOFTWAREPATH); +} + +void SetSoftwareDirs(const char* paths) +{ + std::string error_string; + MameUISettings().set_value(MESSUI_SOFTWAREPATH, paths, OPTION_PRIORITY_CMDLINE,error_string); +} + +void SetSelectedSoftware(int driver_index, const machine_config *config, const device_image_interface *dev, const char *software) +{ + const char *opt_name = dev->instance_name(); + windows_options o; + std::string error_string; + + if (LOG_SOFTWARE) + { + dprintf("SetSelectedSoftware(): dev=%p (\'%s\') software='%s'\n", + dev, driver_list::driver(driver_index).name, software); + } + + load_options(o, driver_index); + o.set_value(opt_name, software, OPTION_PRIORITY_CMDLINE,error_string); + save_options(o, driver_index); +} + +// not used +const char *GetSelectedSoftware(int driver_index, const machine_config *config, const device_image_interface *dev) +{ + const char *opt_name = dev->instance_name(); + windows_options o; + + load_options(o, driver_index); + return o.value(opt_name); +} + +void SetCurrentSoftwareTab(const char *shortname) +{ + std::string error_string; + MameUISettings().set_value(MESSUI_SOFTWARE_TAB, shortname, OPTION_PRIORITY_CMDLINE,error_string); +} + +const char *GetCurrentSoftwareTab(void) +{ + return MameUISettings().value(MESSUI_SOFTWARE_TAB); +} + diff --git a/docs/release/src/osd/winui/mui_opts.h b/docs/release/src/osd/winui/mui_opts.h new file mode 100644 index 00000000000..7cccc31375a --- /dev/null +++ b/docs/release/src/osd/winui/mui_opts.h @@ -0,0 +1,506 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef MUI_OPTS_H +#define MUI_OPTS_H + +#include "winmain.h" +#include "winui.h" + +// These help categorise the folders on the left side +typedef enum { + OPTIONS_GLOBAL = 0, + OPTIONS_VECTOR, + OPTIONS_SOURCE, + OPTIONS_PARENT, + OPTIONS_GAME +} OPTIONS_TYPE; + + +enum +{ + COLUMN_GAMES = 0, + COLUMN_SRCDRIVERS, + COLUMN_DIRECTORY, + COLUMN_TYPE, + COLUMN_ORIENTATION, + COLUMN_MANUFACTURER, + COLUMN_YEAR, + COLUMN_PLAYED, + COLUMN_PLAYTIME, + COLUMN_CLONE, + COLUMN_TRACKBALL, +#ifdef SHOW_COLUMN_SAMPLES + COLUMN_SAMPLES, +#endif +#ifdef SHOW_COLUMN_ROMS + COLUMN_ROMS, +#endif + COLUMN_MAX +}; + +#define FOLDER_OPTIONS -2 +#define GLOBAL_OPTIONS -1 + +typedef struct +{ + int x, y, width, height; +} AREA; + +typedef struct +{ + char* screen; + char* aspect; + char* resolution; + char* view; +} ScreenParams; + +// List of artwork types to display in the screen shot area +enum +{ + // these must match array of strings image_tabs_long_name in options.c + // if you add new Tabs, be sure to also add them to the ComboBox init in dialogs.c + TAB_SCREENSHOT = 0, + TAB_FLYER, + TAB_CABINET, + TAB_MARQUEE, + TAB_TITLE, + TAB_CONTROL_PANEL, + TAB_PCB, + TAB_HISTORY, + + MAX_TAB_TYPES, + BACKGROUND, + TAB_ALL, + TAB_NONE +}; +// Because we have added the Options after MAX_TAB_TYPES, we have to subtract 3 here +// (that's how many options we have after MAX_TAB_TYPES) +#define TAB_SUBTRACT 3 + +class winui_options : public core_options +{ +public: + // construction/destruction + winui_options(); + +private: + static const options_entry s_option_entries[]; +}; + +BOOL OptionsInit(void); +void OptionsExit(void); + +#define OPTIONS_TYPE_GLOBAL -1 +#define OPTIONS_TYPE_FOLDER -2 + +void SetDirectories(windows_options &opts); + +void load_options(windows_options &opts, int game_num); +void save_options(windows_options &opts, int game_num); + +//void AddOptions(winui_options *opts, const options_entry *entrylist, BOOL is_global); +void CreateGameOptions(windows_options &opts, int driver_index); + +winui_options & MameUISettings(void); +windows_options & MameUIGlobal(void); + +void LoadFolderFlags(void); +//const char* GetFolderNameByID(UINT nID); // not used + +void SaveOptions(void); +void SaveDefaultOptions(void); +void SaveGameListOptions(void); + +void ResetGUI(void); +void ResetGameDefaults(void); +void ResetAllGameOptions(void); + +const char * GetImageTabLongName(int tab_index); +const char * GetImageTabShortName(int tab_index); + +void SetViewMode(int val); +int GetViewMode(void); + +void SetGameCheck(BOOL game_check); +BOOL GetGameCheck(void); + +void SetVersionCheck(BOOL version_check); +BOOL GetVersionCheck(void); + +void SetJoyGUI(BOOL use_joygui); +BOOL GetJoyGUI(void); + +void SetKeyGUI(BOOL use_keygui); +BOOL GetKeyGUI(void); + +void SetCycleScreenshot(int cycle_screenshot); +int GetCycleScreenshot(void); + +void SetStretchScreenShotLarger(BOOL stretch); +BOOL GetStretchScreenShotLarger(void); + +void SetScreenshotBorderSize(int size); +int GetScreenshotBorderSize(void); + +void SetScreenshotBorderColor(COLORREF uColor); +COLORREF GetScreenshotBorderColor(void); + +void SetFilterInherit(BOOL inherit); +BOOL GetFilterInherit(void); + +void SetOffsetClones(BOOL offset); +BOOL GetOffsetClones(void); + +void SetSavedFolderID(UINT val); +UINT GetSavedFolderID(void); + +void SetShowScreenShot(BOOL val); +BOOL GetShowScreenShot(void); + +void SetShowSoftware(BOOL val); +BOOL GetShowSoftware(void); + +void SetShowFolderList(BOOL val); +BOOL GetShowFolderList(void); + +BOOL GetShowFolder(int folder); +void SetShowFolder(int folder,BOOL show); + +void SetShowStatusBar(BOOL val); +BOOL GetShowStatusBar(void); + +void SetShowToolBar(BOOL val); +BOOL GetShowToolBar(void); + +void SetShowTabCtrl(BOOL val); +BOOL GetShowTabCtrl(void); + +void SetCurrentTab(const char *shortname); +const char *GetCurrentTab(void); + +void SetDefaultGame(const char *name); +const char *GetDefaultGame(void); + +void SetWindowArea(const AREA *area); +void GetWindowArea(AREA *area); + +void SetWindowState(UINT state); +UINT GetWindowState(void); + +void SetColumnWidths(int widths[]); +void GetColumnWidths(int widths[]); + +void SetColumnOrder(int order[]); +void GetColumnOrder(int order[]); + +void SetColumnShown(int shown[]); +void GetColumnShown(int shown[]); + +void SetSplitterPos(int splitterId, int pos); +int GetSplitterPos(int splitterId); + +void SetCustomColor(int iIndex, COLORREF uColor); +COLORREF GetCustomColor(int iIndex); + +void SetListFont(const LOGFONT *font); +void GetListFont(LOGFONT *font); + +DWORD GetFolderFlags(int folder_index); + +void SetListFontColor(COLORREF uColor); +COLORREF GetListFontColor(void); + +void SetListCloneColor(COLORREF uColor); +COLORREF GetListCloneColor(void); + +int GetHistoryTab(void); +void SetHistoryTab(int tab,BOOL show); + +int GetShowTab(int tab); +void SetShowTab(int tab,BOOL show); +BOOL AllowedToSetShowTab(int tab,BOOL show); + +void SetSortColumn(int column); +int GetSortColumn(void); + +void SetSortReverse(BOOL reverse); +BOOL GetSortReverse(void); + +const char* GetLanguage(void); +void SetLanguage(const char* lang); + +const char* GetLanguageUI(void); + +bool GetEnablePlugins(void); + +const char* GetPlugins(void); + +const char* GetRomDirs(void); +void SetRomDirs(const char* paths); + +const char* GetHashDirs(void); +void SetHashDirs(const char* paths); + +const char* GetSampleDirs(void); +void SetSampleDirs(const char* paths); + +const char * GetIniDir(void); +void SetIniDir(const char *path); + +const char* GetCfgDir(void); +void SetCfgDir(const char* path); + +const char* GetNvramDir(void); +void SetNvramDir(const char* path); + +const char* GetInpDir(void); +void SetInpDir(const char* path); + +const char* GetImgDir(void); +void SetImgDir(const char* path); + +const char* GetStateDir(void); +void SetStateDir(const char* path); + +const char* GetArtDir(void); +void SetArtDir(const char* path); + +const char* GetFlyerDir(void); +void SetFlyerDir(const char* path); + +const char* GetFolderDir(void); +void SetFolderDir(const char* path); + +const char* GetCabinetDir(void); +void SetCabinetDir(const char* path); + +const char* GetMarqueeDir(void); +void SetMarqueeDir(const char* path); + +const char* GetTitlesDir(void); +void SetTitlesDir(const char* path); + +const char * GetControlPanelDir(void); +void SetControlPanelDir(const char *path); + +const char * GetPcbDir(void); +void SetPcbDir(const char *path); + +const char* GetPluginsDir(void); +void SetPluginsDir(const char* path); + +const char* GetLangDir(void); +void SetLangDir(const char* path); + +const char* GetDiffDir(void); +void SetDiffDir(const char* path); + +const char* GetIconsDir(void); +void SetIconsDir(const char* path); + +const char *GetBgDir(void); +void SetBgDir(const char *path); + +const char* GetCtrlrDir(void); +void SetCtrlrDir(const char* path); + +const char* GetCommentDir(void); +void SetCommentDir(const char* path); + +const char* GetFolderDir(void); +void SetFolderDir(const char* path); + +const char* GetFontDir(void); +void SetFontDir(const char* paths); + +const char* GetCrosshairDir(void); +void SetCrosshairDir(const char* paths); + +const char* GetCheatDir(void); +void SetCheatDir(const char* path); + +const char* GetDatsDir(void); +void SetDatsDir(const char *path); + +const char* GetSnapName(void); +void SetSnapName(const char* pattern); + +void ResetGameOptions(int driver_index); + +int GetRomAuditResults(int driver_index); +void SetRomAuditResults(int driver_index, int audit_results); + +int GetSampleAuditResults(int driver_index); +void SetSampleAuditResults(int driver_index, int audit_results); + +void IncrementPlayCount(int driver_index); +int GetPlayCount(int driver_index); +void ResetPlayCount(int driver_index); + +void IncrementPlayTime(int driver_index,int playtime); +int GetPlayTime(int driver_index); +void GetTextPlayTime(int driver_index,char *buf); +void ResetPlayTime(int driver_index); + +const char * GetVersionString(void); + +void SaveDefaultOptions(void); + +BOOL IsGlobalOption(const char *option_name); + + + +// Keyboard control of ui +input_seq* Get_ui_key_up(void); +input_seq* Get_ui_key_down(void); +input_seq* Get_ui_key_left(void); +input_seq* Get_ui_key_right(void); +input_seq* Get_ui_key_start(void); +input_seq* Get_ui_key_pgup(void); +input_seq* Get_ui_key_pgdwn(void); +input_seq* Get_ui_key_home(void); +input_seq* Get_ui_key_end(void); +input_seq* Get_ui_key_ss_change(void); +input_seq* Get_ui_key_history_up(void); +input_seq* Get_ui_key_history_down(void); + +input_seq* Get_ui_key_context_filters(void); +input_seq* Get_ui_key_select_random(void); +input_seq* Get_ui_key_game_audit(void); +input_seq* Get_ui_key_game_properties(void); +input_seq* Get_ui_key_help_contents(void); +input_seq* Get_ui_key_update_gamelist(void); +input_seq* Get_ui_key_view_folders(void); +input_seq* Get_ui_key_view_fullscreen(void); +input_seq* Get_ui_key_view_pagetab(void); +input_seq* Get_ui_key_view_picture_area(void); +input_seq* Get_ui_key_view_software_area(void); +input_seq* Get_ui_key_view_status(void); +input_seq* Get_ui_key_view_toolbars(void); + +input_seq* Get_ui_key_view_tab_cabinet(void); +input_seq* Get_ui_key_view_tab_cpanel(void); +input_seq* Get_ui_key_view_tab_flyer(void); +input_seq* Get_ui_key_view_tab_history(void); +input_seq* Get_ui_key_view_tab_marquee(void); +input_seq* Get_ui_key_view_tab_screenshot(void); +input_seq* Get_ui_key_view_tab_title(void); +input_seq* Get_ui_key_view_tab_pcb(void); +input_seq* Get_ui_key_quit(void); + + +int GetUIJoyUp(int joycodeIndex); +void SetUIJoyUp(int joycodeIndex, int val); + +int GetUIJoyDown(int joycodeIndex); +void SetUIJoyDown(int joycodeIndex, int val); + +int GetUIJoyLeft(int joycodeIndex); +void SetUIJoyLeft(int joycodeIndex, int val); + +int GetUIJoyRight(int joycodeIndex); +void SetUIJoyRight(int joycodeIndex, int val); + +int GetUIJoyStart(int joycodeIndex); +void SetUIJoyStart(int joycodeIndex, int val); + +int GetUIJoyPageUp(int joycodeIndex); +void SetUIJoyPageUp(int joycodeIndex, int val); + +int GetUIJoyPageDown(int joycodeIndex); +void SetUIJoyPageDown(int joycodeIndex, int val); + +int GetUIJoyHome(int joycodeIndex); +void SetUIJoyHome(int joycodeIndex, int val); + +int GetUIJoyEnd(int joycodeIndex); +void SetUIJoyEnd(int joycodeIndex, int val); + +int GetUIJoySSChange(int joycodeIndex); +void SetUIJoySSChange(int joycodeIndex, int val); + +int GetUIJoyHistoryUp(int joycodeIndex); +void SetUIJoyHistoryUp(int joycodeIndex, int val); + +int GetUIJoyHistoryDown(int joycodeIndex); +void SetUIJoyHistoryDown(int joycodeIndex, int val); + +int GetUIJoyExec(int joycodeIndex); +void SetUIJoyExec(int joycodeIndex, int val); + +const char* GetExecCommand(void); +void SetExecCommand(char* cmd); + +int GetExecWait(void); +void SetExecWait(int wait); + +BOOL GetHideMouseOnStartup(void); +void SetHideMouseOnStartup(BOOL hide); + +BOOL GetRunFullScreen(void); +void SetRunFullScreen(BOOL fullScreen); + +void ColumnEncodeStringWithCount(const int *value, char *str, int count); +void ColumnDecodeStringWithCount(const char* str, int *value, int count); + +int GetDriverCache(int driver_index); +void SetDriverCache(int driver_index, int val); +BOOL RequiredDriverCache(void); + +// from optionsms.h (MESSUI) + +enum +{ + MESS_COLUMN_IMAGES, + MESS_COLUMN_MAX +}; + +enum +{ + SWLIST_COLUMN_IMAGES, + SWLIST_COLUMN_GOODNAME, + SWLIST_COLUMN_MANUFACTURER, + SWLIST_COLUMN_YEAR, + SWLIST_COLUMN_PLAYABLE, + SWLIST_COLUMN_USAGE, + SWLIST_COLUMN_MAX +}; + +void MessSetupSettings(winui_options &settings); +void MessSetupGameOptions(windows_options &opts, int driver_index); + +void SetMessColumnWidths(int widths[]); +void GetMessColumnWidths(int widths[]); +void SetMessColumnOrder(int order[]); +void GetMessColumnOrder(int order[]); +void SetMessColumnShown(int shown[]); +void GetMessColumnShown(int shown[]); +void SetMessSortColumn(int column); +int GetMessSortColumn(void); +void SetMessSortReverse(BOOL reverse); +BOOL GetMessSortReverse(void); + +void SetSWListColumnWidths(int widths[]); +void GetSWListColumnWidths(int widths[]); +void SetSWListColumnOrder(int order[]); +void GetSWListColumnOrder(int order[]); +void SetSWListColumnShown(int shown[]); +void GetSWListColumnShown(int shown[]); +void SetSWListSortColumn(int column); +int GetSWListSortColumn(void); +void SetSWListSortReverse(BOOL reverse); +BOOL GetSWListSortReverse(void); + +const char* GetSoftwareDirs(void); +void SetSoftwareDirs(const char* paths); + +void SetSelectedSoftware(int driver_index, const machine_config *config, const device_image_interface *device, const char *software); +const char *GetSelectedSoftware(int driver_index, const machine_config *config, const device_image_interface *device); + +void SetCurrentSoftwareTab(const char *shortname); +const char *GetCurrentSoftwareTab(void); + + +#endif + diff --git a/docs/release/src/osd/winui/mui_util.cpp b/docs/release/src/osd/winui/mui_util.cpp new file mode 100644 index 00000000000..9a010c61393 --- /dev/null +++ b/docs/release/src/osd/winui/mui_util.cpp @@ -0,0 +1,758 @@ +// For licensing and usage information, read docs/winui_license.txt +// MASTER +//**************************************************************************** + +/*************************************************************************** + + mui_util.c + + ***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <shellapi.h> + +// standard C headers +#include <stdio.h> +#include <tchar.h> + +// MAME/MAMEUI headers +#include "emu.h" +#include "unzip.h" +#include "sound/samples.h" +#include "winutf8.h" +#include "strconv.h" +#include "winui.h" +#include "mui_util.h" +#include "mui_opts.h" +#include "drivenum.h" +#include "machine/ram.h" + +#include <shlwapi.h> +#include <vector> + +/*************************************************************************** + function prototypes + ***************************************************************************/ + +/*************************************************************************** + External variables + ***************************************************************************/ + +/*************************************************************************** + Internal structures + ***************************************************************************/ +struct DriversInfo +{ + int screenCount; + bool isClone; + bool isBroken; + bool isHarddisk; + bool hasOptionalBIOS; + bool isStereo; + bool isVector; + bool usesRoms; + bool usesSamples; + bool usesTrackball; + bool usesLightGun; + bool usesMouse; + bool supportsSaveState; + bool isVertical; + bool hasRam; +}; + +static std::vector<DriversInfo> drivers_info; + + +enum +{ + DRIVER_CACHE_SCREEN = 0x000F, + DRIVER_CACHE_ROMS = 0x0010, + DRIVER_CACHE_CLONE = 0x0020, + DRIVER_CACHE_STEREO = 0x0040, + DRIVER_CACHE_BIOS = 0x0080, + DRIVER_CACHE_TRACKBALL = 0x0100, + DRIVER_CACHE_HARDDISK = 0x0200, + DRIVER_CACHE_SAMPLES = 0x0400, + DRIVER_CACHE_LIGHTGUN = 0x0800, + DRIVER_CACHE_VECTOR = 0x1000, + DRIVER_CACHE_MOUSE = 0x2000, + DRIVER_CACHE_RAM = 0x4000, +}; + +/*************************************************************************** + External functions + ***************************************************************************/ + +/* + ErrorMsg +*/ +void __cdecl ErrorMsg(const char* fmt, ...) +{ + static FILE* pFile = NULL; + DWORD dwWritten; + char buf[5000]; + char buf2[5000]; + va_list va; + + va_start(va, fmt); + + vsprintf(buf, fmt, va); + + win_message_box_utf8(GetActiveWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR); + + strcpy(buf2, MAMEUINAME ": "); + strcat(buf2,buf); + strcat(buf2, "\n"); + + WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), buf2, strlen(buf2), &dwWritten, NULL); + + if (pFile == NULL) + pFile = fopen("debug.txt", "wt"); + + if (pFile != NULL) + { + fprintf(pFile, "%s", buf2); + fflush(pFile); + } + + va_end(va); +} + +void __cdecl dprintf(const char* fmt, ...) +{ + char buf[5000]; + va_list va; + + va_start(va, fmt); + + _vsnprintf(buf,sizeof(buf),fmt,va); + + win_output_debug_string_utf8(buf); + + va_end(va); +} + +UINT GetDepth(HWND hWnd) +{ + UINT nBPP; + HDC hDC; + + hDC = GetDC(hWnd); + + nBPP = GetDeviceCaps(hDC, BITSPIXEL) * GetDeviceCaps(hDC, PLANES); + + ReleaseDC(hWnd, hDC); + + return nBPP; +} + +/* + * Return TRUE if comctl32.dll is version 4.71 or greater + * otherwise return FALSE. + */ +LONG GetCommonControlVersion() +{ + HMODULE hModule = GetModuleHandle(TEXT("comctl32")); + + if (hModule) + { + FARPROC lpfnICCE = GetProcAddress(hModule, "InitCommonControlsEx"); + + if (NULL != lpfnICCE) + { + FARPROC lpfnDLLI = GetProcAddress(hModule, "DllInstall"); + + if (NULL != lpfnDLLI) + { + /* comctl 4.71 or greater */ + + // see if we can find out exactly + + DLLGETVERSIONPROC pDllGetVersion; + pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hModule, "DllGetVersion"); + + /* Because some DLLs might not implement this function, you + must test for it explicitly. Depending on the particular + DLL, the lack of a DllGetVersion function can be a useful + indicator of the version. */ + + if(pDllGetVersion) + { + DLLVERSIONINFO dvi; + HRESULT hr; + + ZeroMemory(&dvi, sizeof(dvi)); + dvi.cbSize = sizeof(dvi); + + hr = (*pDllGetVersion)(&dvi); + + if (SUCCEEDED(hr)) + { + return PACKVERSION(dvi.dwMajorVersion, dvi.dwMinorVersion); + } + } + return PACKVERSION(4,71); + } + return PACKVERSION(4,7); + } + return PACKVERSION(4,0); + } + /* DLL not found */ + return PACKVERSION(0,0); +} + +void DisplayTextFile(HWND hWnd, const char *cName) +{ + HINSTANCE hErr; + LPCTSTR msg = 0; + LPTSTR tName; + + tName = tstring_from_utf8(cName); + if( !tName ) + return; + + hErr = ShellExecute(hWnd, NULL, tName, NULL, NULL, SW_SHOWNORMAL); + if ((FPTR)hErr > 32) + { + osd_free(tName); + return; + } + + switch((FPTR)hErr) + { + case 0: + msg = TEXT("The operating system is out of memory or resources."); + break; + + case ERROR_FILE_NOT_FOUND: + msg = TEXT("The specified file was not found."); + break; + + case SE_ERR_NOASSOC : + msg = TEXT("There is no application associated with the given filename extension."); + break; + + case SE_ERR_OOM : + msg = TEXT("There was not enough memory to complete the operation."); + break; + + case SE_ERR_PNF : + msg = TEXT("The specified path was not found."); + break; + + case SE_ERR_SHARE : + msg = TEXT("A sharing violation occurred."); + break; + + default: + msg = TEXT("Unknown error."); + } + + MessageBox(NULL, msg, tName, MB_OK); + + osd_free(tName); +} + +char* MyStrStrI(const char* pFirst, const char* pSrch) +{ + char* cp = (char*)pFirst; + char* s1; + char* s2; + + while (*cp) + { + s1 = cp; + s2 = (char*)pSrch; + + while (*s1 && *s2 && !core_strnicmp(s1, s2, 1)) + s1++, s2++; + + if (!*s2) + return cp; + + cp++; + } + return NULL; +} + +char * ConvertToWindowsNewlines(const char *source) +{ + static char buf[2048 * 2048]; + char *dest; + + dest = buf; + while (*source != 0) + { + if (*source == '\n') + { + *dest++ = '\r'; + *dest++ = '\n'; + } + else + *dest++ = *source; + source++; + } + *dest = 0; + return buf; +} + +/* Lop off path and extention from a source file name + * This assumes their is a pathname passed to the function + * like src\drivers\blah.c + */ +const char * GetDriverFilename(int nIndex) +{ + static char tmp[40]; + std::string driver = core_filename_extract_base(driver_list::driver(nIndex).source_file); + strcpy(tmp, driver.c_str()); + return tmp; +} + +BOOL isDriverVector(const machine_config *config) +{ + const screen_device *screen = config->first_screen(); + + if (screen) + { + if (SCREEN_TYPE_VECTOR == screen->screen_type()) + return TRUE; + } + return FALSE; +} + +int numberOfScreens(const machine_config *config) +{ + screen_device_iterator scriter(config->root_device()); + return scriter.count(); +} + +int numberOfSpeakers(const machine_config *config) +{ + speaker_device_iterator iter(config->root_device()); + return iter.count(); +} + +static void SetDriversInfo(void) +{ + int ndriver; + int cache = -1; + int total = driver_list::total(); + struct DriversInfo *gameinfo = NULL; + + for (ndriver = 0; ndriver < total; ndriver++) + { + gameinfo = &drivers_info[ndriver]; + cache = (gameinfo->screenCount & DRIVER_CACHE_SCREEN); + if (gameinfo->isClone) cache += DRIVER_CACHE_CLONE; + if (gameinfo->isHarddisk) cache += DRIVER_CACHE_HARDDISK; + if (gameinfo->hasOptionalBIOS) cache += DRIVER_CACHE_BIOS; + if (gameinfo->isStereo) cache += DRIVER_CACHE_STEREO; + if (gameinfo->isVector) cache += DRIVER_CACHE_VECTOR; + if (gameinfo->usesRoms) cache += DRIVER_CACHE_ROMS; + if (gameinfo->usesSamples) cache += DRIVER_CACHE_SAMPLES; + if (gameinfo->usesTrackball) cache += DRIVER_CACHE_TRACKBALL; + if (gameinfo->usesLightGun) cache += DRIVER_CACHE_LIGHTGUN; + if (gameinfo->usesMouse) cache += DRIVER_CACHE_MOUSE; + if (gameinfo->hasRam) cache += DRIVER_CACHE_RAM; + + SetDriverCache(ndriver, cache); + } +} + +static void InitDriversInfo(void) +{ + int ndriver; + int num_speakers; + int total = driver_list::total(); + const game_driver *gamedrv = NULL; + struct DriversInfo *gameinfo = NULL; + const rom_entry *region, *rom; + + for (ndriver = 0; ndriver < total; ndriver++) + { + gamedrv = &driver_list::driver(ndriver); + gameinfo = &drivers_info[ndriver]; + machine_config config(*gamedrv, MameUIGlobal()); + + gameinfo->isClone = (GetParentRomSetIndex(gamedrv) != -1); + gameinfo->isBroken = ((gamedrv->flags & MACHINE_NOT_WORKING) != 0); + gameinfo->supportsSaveState = ((gamedrv->flags & MACHINE_SUPPORTS_SAVE) != 0); + gameinfo->isHarddisk = FALSE; + gameinfo->isVertical = (gamedrv->flags & ORIENTATION_SWAP_XY) ? TRUE : FALSE; + + ram_device_iterator iter1(config.root_device()); + gameinfo->hasRam = (iter1.first() ); + + for (device_t &device : device_iterator(config.root_device())) + for (region = rom_first_region(device); region; region = rom_next_region(region)) + if (ROMREGION_ISDISKDATA(region)) + gameinfo->isHarddisk = TRUE; + + gameinfo->hasOptionalBIOS = FALSE; + if (gamedrv->rom) + for (rom = gamedrv->rom; !ROMENTRY_ISEND(rom); rom++) + if (ROMENTRY_ISSYSTEM_BIOS(rom)) + gameinfo->hasOptionalBIOS = TRUE; + + num_speakers = numberOfSpeakers(&config); + + gameinfo->isStereo = (num_speakers > 1); + gameinfo->screenCount = numberOfScreens(&config); + gameinfo->isVector = isDriverVector(&config); // ((drv.video_attributes & VIDEO_TYPE_VECTOR) != 0); + gameinfo->usesRoms = FALSE; + for (device_t &device : device_iterator(config.root_device())) + for (region = rom_first_region(device); region; region = rom_next_region(region)) + for (rom = rom_first_file(region); rom; rom = rom_next_file(rom)) + gameinfo->usesRoms = TRUE; + + gameinfo->usesSamples = FALSE; + + samples_device_iterator iter(config.root_device()); + if (iter.first()) + gameinfo->usesSamples = TRUE; + + gameinfo->usesTrackball = FALSE; + gameinfo->usesLightGun = FALSE; + if (gamedrv->ipt) + { + ioport_port *port; + ioport_list portlist; + std::string errors; + for (device_t &cfg : device_iterator(config.root_device())) + if (cfg.input_ports()) + portlist.append(cfg, errors); + + for (port = portlist.first(); port; port = port->next()) + { + for (ioport_field &field : port->fields()) + { + UINT32 type; + type = field.type(); + if (type == IPT_END) + break; + if (type == IPT_DIAL || type == IPT_PADDLE || + type == IPT_TRACKBALL_X || type == IPT_TRACKBALL_Y || + type == IPT_AD_STICK_X || type == IPT_AD_STICK_Y) + gameinfo->usesTrackball = TRUE; + if (type == IPT_LIGHTGUN_X || type == IPT_LIGHTGUN_Y) + gameinfo->usesLightGun = TRUE; + if (type == IPT_MOUSE_X || type == IPT_MOUSE_Y) + gameinfo->usesMouse = TRUE; + } + } + } + } + + SetDriversInfo(); +} + +static int InitDriversCache(void) +{ + int cache = -1; + int total = driver_list::total(); + const game_driver *gamedrv = NULL; + struct DriversInfo *gameinfo = NULL; + int ndriver; + + if (RequiredDriverCache()) + { + InitDriversInfo(); + return 0; + } + + for (ndriver = 0; ndriver < total; ndriver++) + { + gamedrv = &driver_list::driver(ndriver); + gameinfo = &drivers_info[ndriver]; + cache = GetDriverCache(ndriver); + + if (cache == -1) + { + InitDriversInfo(); + break; + } + + gameinfo->isBroken = ((gamedrv->flags & MACHINE_NOT_WORKING) != 0); + gameinfo->supportsSaveState = ((gamedrv->flags & MACHINE_SUPPORTS_SAVE) != 0); + gameinfo->isVertical = (gamedrv->flags & ORIENTATION_SWAP_XY) ? TRUE : FALSE; + gameinfo->screenCount = cache & DRIVER_CACHE_SCREEN; + gameinfo->isClone = ((cache & DRIVER_CACHE_CLONE) != 0); + gameinfo->isHarddisk = ((cache & DRIVER_CACHE_HARDDISK) != 0); + gameinfo->hasOptionalBIOS = ((cache & DRIVER_CACHE_BIOS) != 0); + gameinfo->isStereo = ((cache & DRIVER_CACHE_STEREO) != 0); + gameinfo->isVector = ((cache & DRIVER_CACHE_VECTOR) != 0); + gameinfo->usesRoms = ((cache & DRIVER_CACHE_ROMS) != 0); + gameinfo->usesSamples = ((cache & DRIVER_CACHE_SAMPLES) != 0); + gameinfo->usesTrackball = ((cache & DRIVER_CACHE_TRACKBALL) != 0); + gameinfo->usesLightGun = ((cache & DRIVER_CACHE_LIGHTGUN) != 0); + gameinfo->usesMouse = ((cache & DRIVER_CACHE_MOUSE) != 0); + gameinfo->hasRam = ((cache & DRIVER_CACHE_RAM) != 0); + } + + return 0; +} + +static struct DriversInfo* GetDriversInfo(int driver_index) +{ + static bool bFirst = true; + + if (bFirst) + { + bFirst = false; + + drivers_info.clear(); + drivers_info.reserve(driver_list::total()); + + InitDriversCache(); + } + + return &drivers_info[driver_index]; +} + +BOOL DriverIsClone(int driver_index) +{ + return GetDriversInfo(driver_index)->isClone; +} + +BOOL DriverIsBroken(int driver_index) +{ + return GetDriversInfo(driver_index)->isBroken; +} + +BOOL DriverIsHarddisk(int driver_index) +{ + return GetDriversInfo(driver_index)->isHarddisk; +} + +BOOL DriverIsBios(int driver_index) +{ + return ( driver_list::driver(driver_index).flags & MACHINE_IS_BIOS_ROOT ) ? TRUE : FALSE; +} + +BOOL DriverIsMechanical(int driver_index) +{ + return ( driver_list::driver(driver_index).flags & MACHINE_MECHANICAL ) ? TRUE : FALSE; +} + +BOOL DriverIsArcade(int driver_index) +{ + return ( driver_list::driver(driver_index).flags & MACHINE_TYPE_ARCADE ) ? TRUE : FALSE; +} + +BOOL DriverHasOptionalBIOS(int driver_index) +{ + return GetDriversInfo(driver_index)->hasOptionalBIOS; +} + +BOOL DriverIsStereo(int driver_index) +{ + return GetDriversInfo(driver_index)->isStereo; +} + +int DriverNumScreens(int driver_index) +{ + return GetDriversInfo(driver_index)->screenCount; +} + +BOOL DriverIsVector(int driver_index) +{ + return GetDriversInfo(driver_index)->isVector; +} + +BOOL DriverUsesRoms(int driver_index) +{ + return GetDriversInfo(driver_index)->usesRoms; +} + +BOOL DriverUsesSamples(int driver_index) +{ + return GetDriversInfo(driver_index)->usesSamples; +} + +BOOL DriverUsesTrackball(int driver_index) +{ + return GetDriversInfo(driver_index)->usesTrackball; +} + +BOOL DriverUsesLightGun(int driver_index) +{ + return GetDriversInfo(driver_index)->usesLightGun; +} + +BOOL DriverUsesMouse(int driver_index) +{ + return GetDriversInfo(driver_index)->usesMouse; +} + +BOOL DriverSupportsSaveState(int driver_index) +{ + return GetDriversInfo(driver_index)->supportsSaveState; +} + +BOOL DriverIsVertical(int driver_index) +{ + return GetDriversInfo(driver_index)->isVertical; +} + +BOOL DriverHasRam(int driver_index) +{ + return GetDriversInfo(driver_index)->hasRam; +} + +void FlushFileCaches(void) +{ + util::archive_file::cache_clear(); +} + +BOOL StringIsSuffixedBy(const char *s, const char *suffix) +{ + return (strlen(s) > strlen(suffix)) && (strcmp(s + strlen(s) - strlen(suffix), suffix) == 0); +} + +/*************************************************************************** + Win32 wrappers + ***************************************************************************/ + +BOOL SafeIsAppThemed(void) +{ + BOOL bResult = FALSE; + HMODULE hThemes; + BOOL (WINAPI *pfnIsAppThemed)(void); + + hThemes = LoadLibrary(TEXT("uxtheme.dll")); + if (hThemes) + { + pfnIsAppThemed = (BOOL (WINAPI *)(void)) GetProcAddress(hThemes, "IsAppThemed"); + if (pfnIsAppThemed) + bResult = pfnIsAppThemed(); + FreeLibrary(hThemes); + } + return bResult; + +} + + +void GetSystemErrorMessage(DWORD dwErrorId, TCHAR **tErrorMessage) +{ + if( FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErrorId, 0, (LPTSTR)tErrorMessage, 0, NULL) == 0 ) + { + *tErrorMessage = (LPTSTR)LocalAlloc(LPTR, MAX_PATH * sizeof(TCHAR)); + _tcscpy(*tErrorMessage, TEXT("Unknown Error")); + } +} + + +//============================================================ +// win_extract_icon_utf8 +//============================================================ + +HICON win_extract_icon_utf8(HINSTANCE inst, const char* exefilename, UINT iconindex) +{ + HICON icon = 0; + TCHAR* t_exefilename = tstring_from_utf8(exefilename); + if( !t_exefilename ) + return icon; + + icon = ExtractIcon(inst, t_exefilename, iconindex); + + osd_free(t_exefilename); + + return icon; +} + + + +//============================================================ +// win_tstring_strdup +//============================================================ + +TCHAR* win_tstring_strdup(LPCTSTR str) +{ + TCHAR *cpy = NULL; + if (str) + { + cpy = (TCHAR*)osd_malloc((_tcslen(str) + 1) * sizeof(TCHAR)); + if (cpy) + _tcscpy(cpy, str); + } + return cpy; +} + +//============================================================ +// win_create_file_utf8 +//============================================================ + +HANDLE win_create_file_utf8(const char* filename, DWORD desiredmode, DWORD sharemode, + LPSECURITY_ATTRIBUTES securityattributes, DWORD creationdisposition, + DWORD flagsandattributes, HANDLE templatehandle) +{ + HANDLE result = 0; + TCHAR* t_filename = tstring_from_utf8(filename); + if( !t_filename ) + return result; + + result = CreateFile(t_filename, desiredmode, sharemode, securityattributes, creationdisposition, + flagsandattributes, templatehandle); + + osd_free(t_filename); + + return result; +} + +//============================================================ +// win_get_current_directory_utf8 +//============================================================ + +DWORD win_get_current_directory_utf8(DWORD bufferlength, char* buffer) +{ + DWORD result = 0; + TCHAR* t_buffer = NULL; + char* utf8_buffer = NULL; + + if( bufferlength > 0 ) { + t_buffer = (TCHAR*)malloc((bufferlength * sizeof(TCHAR)) + 1); + if( !t_buffer ) + return result; + } + + result = GetCurrentDirectory(bufferlength, t_buffer); + + if( bufferlength > 0 ) { + utf8_buffer = utf8_from_tstring(t_buffer); + if( !utf8_buffer ) { + osd_free(t_buffer); + return result; + } + } + + strncpy(buffer, utf8_buffer, bufferlength); + + if( utf8_buffer ) + osd_free(utf8_buffer); + + if( t_buffer ) + free(t_buffer); + + return result; +} + +//============================================================ +// win_find_first_file_utf8 +//============================================================ + +HANDLE win_find_first_file_utf8(const char* filename, LPWIN32_FIND_DATA findfiledata) +{ + HANDLE result = 0; + TCHAR* t_filename = tstring_from_utf8(filename); + if( !t_filename ) + return result; + + result = FindFirstFile(t_filename, findfiledata); + + osd_free(t_filename); + + return result; +} + diff --git a/docs/release/src/osd/winui/mui_util.h b/docs/release/src/osd/winui/mui_util.h new file mode 100644 index 00000000000..b1267e59fc0 --- /dev/null +++ b/docs/release/src/osd/winui/mui_util.h @@ -0,0 +1,70 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef MUI_UTIL_H +#define MUI_UTIL_H + +#include "emucore.h" + +extern void __cdecl ErrorMsg(const char* fmt, ...); +extern void __cdecl dprintf(const char* fmt, ...); + + +extern UINT GetDepth(HWND hWnd); + +/* Open a text file */ +extern void DisplayTextFile(HWND hWnd, const char *cName); + +#define PACKVERSION(major,minor) MAKELONG(minor,major) + +/* Check for old version of comctl32.dll */ +extern LONG GetCommonControlVersion(void); + +extern char * MyStrStrI(const char* pFirst, const char* pSrch); +extern char * ConvertToWindowsNewlines(const char *source); + +extern const char * GetDriverFilename(int nIndex); + +BOOL DriverIsClone(int driver_index); +BOOL DriverIsBroken(int driver_index); +BOOL DriverIsHarddisk(int driver_index); +BOOL DriverHasOptionalBIOS(int driver_index); +BOOL DriverIsStereo(int driver_index); +BOOL DriverIsVector(int driver_index); +int DriverNumScreens(int driver_index); +BOOL DriverIsBios(int driver_index); +BOOL DriverUsesRoms(int driver_index); +BOOL DriverUsesSamples(int driver_index); +BOOL DriverUsesTrackball(int driver_index); +BOOL DriverUsesLightGun(int driver_index); +BOOL DriverUsesMouse(int driver_index); +BOOL DriverSupportsSaveState(int driver_index); +BOOL DriverIsVertical(int driver_index); +BOOL DriverIsMechanical(int driver_index); +BOOL DriverIsArcade(int driver_index); +BOOL DriverHasRam(int driver_index); + +int isDriverVector(const machine_config *config); +int numberOfSpeakers(const machine_config *config); +int numberOfScreens(const machine_config *config); + +void FlushFileCaches(void); + +BOOL StringIsSuffixedBy(const char *s, const char *suffix); + +BOOL SafeIsAppThemed(void); + +// provides result of FormatMessage() +// resulting buffer must be free'd with LocalFree() +void GetSystemErrorMessage(DWORD dwErrorId, TCHAR **tErrorMessage); + +HICON win_extract_icon_utf8(HINSTANCE inst, const char* exefilename, UINT iconindex); +TCHAR* win_tstring_strdup(LPCTSTR str); +HANDLE win_create_file_utf8(const char* filename, DWORD desiredmode, DWORD sharemode, + LPSECURITY_ATTRIBUTES securityattributes, DWORD creationdisposition, + DWORD flagsandattributes, HANDLE templatehandle); +DWORD win_get_current_directory_utf8(DWORD bufferlength, char* buffer); +HANDLE win_find_first_file_utf8(const char* filename, LPWIN32_FIND_DATA findfiledata); + +#endif /* MUI_UTIL_H */ + diff --git a/docs/release/src/osd/winui/newui.cpp b/docs/release/src/osd/winui/newui.cpp new file mode 100644 index 00000000000..5430c8dedf7 --- /dev/null +++ b/docs/release/src/osd/winui/newui.cpp @@ -0,0 +1,3976 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +// MASTER +//============================================================ +// +// newui.c - This is the NEWUI Windows dropdown menu system +// +//============================================================ + +// Needed for better file dialog +//#ifdef _WIN32_WINNT +//#undef _WIN32_WINNT +//#endif // _WIN32_WINNT +//#define _WIN32_WINNT 0x500 + + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include "newui.h" + +// stupid hack; not sure why this is needed +//#ifdef const +//#undef const +//#endif // const +#include <shellapi.h> + + +enum _win_file_dialog_type +{ + WIN_FILE_DIALOG_OPEN = 1, + WIN_FILE_DIALOG_SAVE +}; +typedef enum _win_file_dialog_type win_file_dialog_type; + +typedef struct _win_open_file_name win_open_file_name; +struct _win_open_file_name +{ + win_file_dialog_type type; // type of file dialog + HWND owner; // owner of the dialog + HINSTANCE instance; // instance + const char * filter; // pipe char ("|") delimited strings + DWORD filter_index; // index into filter + char filename[MAX_PATH]; // filename buffer + const char * initial_directory; // initial directory for dialog + DWORD flags; // standard flags + LPARAM custom_data; // custom data for dialog hook + LPOFNHOOKPROC hook; // custom dialog hook + LPCTSTR template_name; // custom dialog template +}; + + +typedef struct _dialog_box dialog_box; + +struct dialog_layout +{ + short label_width; + short combo_width; +}; + +typedef void (*dialog_itemstoreval)(void *param, int val); +typedef void (*dialog_itemchangedproc)(dialog_box *dialog, HWND dlgitem, void *changed_param); +typedef void (*dialog_notification)(dialog_box *dialog, HWND dlgwnd, NMHDR *notification, void *param); + +#ifdef UNICODE +#define win_dialog_tcsdup win_dialog_wcsdup +#else +#define win_dialog_tcsdup win_dialog_strdup +#endif + +static const TCHAR guide_prop[] = TEXT("opcntrl_guide"); +static const TCHAR spec_prop[] = TEXT("opcntrl_optspec"); +static const TCHAR value_prop[] = TEXT("opcntrl_value"); + +#define SEQWM_SETFOCUS (WM_APP + 0) +#define SEQWM_KILLFOCUS (WM_APP + 1) + +enum +{ + TRIGGER_INITDIALOG = 1, + TRIGGER_APPLY = 2, + TRIGGER_CHANGED = 4 +}; + +typedef LRESULT (*trigger_function)(dialog_box *dialog, HWND dlgwnd, UINT message, WPARAM wparam, LPARAM lparam); + +struct dialog_info_trigger +{ + struct dialog_info_trigger *next; + WORD dialog_item; + WORD trigger_flags; + UINT message; + WPARAM wparam; + LPARAM lparam; + void (*storeval)(void *param, int val); + void *storeval_param; + trigger_function trigger_proc; +}; + +struct dialog_object_pool +{ + HGDIOBJ objects[16]; +}; + +struct _dialog_box +{ + HGLOBAL handle; + size_t handle_size; + struct dialog_info_trigger *trigger_first; + struct dialog_info_trigger *trigger_last; + WORD item_count; + WORD size_x, size_y; + WORD pos_x, pos_y; + WORD cursize_x, cursize_y; + WORD home_y; + DWORD style; + int combo_string_count; + int combo_default_value; + //object_pool *mempool; + struct dialog_object_pool *objpool; + const struct dialog_layout *layout; + + // singular notification callback; hack + UINT notify_code; + dialog_notification notify_callback; + void *notify_param; +}; + +enum _seqselect_state +{ + SEQSELECT_STATE_NOT_POLLING, + SEQSELECT_STATE_POLLING, + SEQSELECT_STATE_POLLING_COMPLETE +}; +typedef enum _seqselect_state seqselect_state; + +// this is the structure that gets associated with each input_seq edit box +typedef struct _seqselect_info seqselect_info; +struct _seqselect_info +{ + WNDPROC oldwndproc; + ioport_field *field; // pointer to the field + ioport_field::user_settings settings; // the new settings + input_seq *code; // the input_seq within settings + WORD pos; + BOOL is_analog; + seqselect_state poll_state; +}; + + + +//============================================================ +// PARAMETERS +//============================================================ + +#define DIM_VERTICAL_SPACING 3 +#define DIM_HORIZONTAL_SPACING 5 +#define DIM_NORMAL_ROW_HEIGHT 10 +#define DIM_COMBO_ROW_HEIGHT 12 +#define DIM_SLIDER_ROW_HEIGHT 18 +#define DIM_BUTTON_ROW_HEIGHT 12 +#define DIM_EDIT_WIDTH 120 +#define DIM_BUTTON_WIDTH 50 +#define DIM_ADJUSTER_SCR_WIDTH 12 +#define DIM_ADJUSTER_HEIGHT 12 +#define DIM_SCROLLBAR_WIDTH 10 +#define DIM_BOX_VERTSKEW -3 + +#define DLGITEM_BUTTON ((const WCHAR *) dlgitem_button) +#define DLGITEM_EDIT ((const WCHAR *) dlgitem_edit) +#define DLGITEM_STATIC ((const WCHAR *) dlgitem_static) +#define DLGITEM_LISTBOX ((const WCHAR *) dlgitem_listbox) +#define DLGITEM_SCROLLBAR ((const WCHAR *) dlgitem_scrollbar) +#define DLGITEM_COMBOBOX ((const WCHAR *) dlgitem_combobox) + +#define DLGTEXT_OK "OK" +#define DLGTEXT_APPLY "Apply" +#define DLGTEXT_CANCEL "Cancel" + +#define FONT_SIZE 8 +#define FONT_FACE L"Arial" + +#define SCROLL_DELTA_LINE 10 +#define SCROLL_DELTA_PAGE 100 + +#define LOG_WINMSGS 0 +#define DIALOG_STYLE WS_POPUP | WS_BORDER | WS_SYSMENU | DS_MODALFRAME | WS_CAPTION | DS_SETFONT +#define MAX_DIALOG_HEIGHT 200 + + + +//============================================================ +// LOCAL VARIABLES +//============================================================ + +static running_machine *Machine; // HACK - please fix + +static double pixels_to_xdlgunits; +static double pixels_to_ydlgunits; + +static const struct dialog_layout default_layout = { 80, 140 }; +static const WORD dlgitem_button[] = { 0xFFFF, 0x0080 }; +static const WORD dlgitem_edit[] = { 0xFFFF, 0x0081 }; +static const WORD dlgitem_static[] = { 0xFFFF, 0x0082 }; +static const WORD dlgitem_listbox[] = { 0xFFFF, 0x0083 }; +static const WORD dlgitem_scrollbar[] = { 0xFFFF, 0x0084 }; +static const WORD dlgitem_combobox[] = { 0xFFFF, 0x0085 }; + + +//============================================================ +// PROTOTYPES +//============================================================ + +static void dialog_prime(dialog_box *di); +static int dialog_write_item(dialog_box *di, DWORD style, short x, short y, + short width, short height, const char *str, const WCHAR *class_name, WORD *id); + + + +//============================================================ +// PARAMETERS +//============================================================ + +#define ID_FRAMESKIP_0 10000 +#define ID_DEVICE_0 11000 +#define ID_JOYSTICK_0 12000 +#define ID_INPUT_0 13000 +#define ID_VIDEO_VIEW_0 14000 +#define MAX_JOYSTICKS (8) + +enum +{ + DEVOPTION_OPEN, + DEVOPTION_CREATE, + DEVOPTION_CLOSE, + DEVOPTION_CASSETTE_PLAYRECORD, + DEVOPTION_CASSETTE_STOPPAUSE, + DEVOPTION_CASSETTE_PLAY, + DEVOPTION_CASSETTE_RECORD, + DEVOPTION_CASSETTE_REWIND, + DEVOPTION_CASSETTE_FASTFORWARD, + DEVOPTION_MAX +}; + + +//============================================================ +// LOCAL VARIABLES +//============================================================ + +static int joystick_menu_setup = 0; +static char state_filename[MAX_PATH]; +static int add_filter_entry(char *dest, size_t dest_len, const char *description, const char *extensions); +static const char* software_dir; + +struct file_dialog_params +{ + device_image_interface *dev; + int *create_format; + option_resolution **create_args; +}; + + + + + +//============================================================ +// win_get_file_name_dialog - sanitize all of the ugliness +// in invoking GetOpenFileName() and GetSaveFileName() +//============================================================ + +static BOOL win_get_file_name_dialog(win_open_file_name *ofn) +{ + BOOL result = FALSE; + BOOL dialog_result; + OSVERSIONINFO vers; + OPENFILENAME os_ofn; + DWORD os_ofn_size; + LPTSTR t_filter = NULL; + LPTSTR t_file = NULL; + DWORD t_file_size = 0; + LPTSTR t_initial_directory = NULL; + LPTSTR buffer; + char *utf8_file; + int i; + + // determine the version of Windows + memset(&vers, 0, sizeof(vers)); + vers.dwOSVersionInfoSize = sizeof(vers); + GetVersionEx(&vers); + + // based on the version of Windows, determine the correct struct size + if (vers.dwMajorVersion >= 5) + os_ofn_size = sizeof(os_ofn); + else +#ifdef __GNUC__ + os_ofn_size = 76; // MinGW does not define OPENFILENAME_NT4 +#else + os_ofn_size = sizeof(OPENFILENAME_NT4); +#endif + + // do we have to translate the filter? + if (ofn->filter) + { + buffer = tstring_from_utf8(ofn->filter); + if (!buffer) + goto done; + + // convert a pipe-char delimited string into a NUL delimited string + t_filter = (LPTSTR) alloca((_tcslen(buffer) + 2) * sizeof(*t_filter)); + for (i = 0; buffer[i] != '\0'; i++) + t_filter[i] = (buffer[i] != '|') ? buffer[i] : '\0'; + t_filter[i++] = '\0'; + t_filter[i++] = '\0'; + osd_free(buffer); + } + + // do we need to translate the file parameter? + if (ofn->filename) + { + buffer = tstring_from_utf8(ofn->filename); + if (!buffer) + goto done; + + t_file_size = MAX(_tcslen(buffer) + 1, MAX_PATH); + t_file = (LPTSTR) alloca(t_file_size * sizeof(*t_file)); + _tcscpy(t_file, buffer); + osd_free(buffer); + } + + // do we need to translate the initial directory? + if (ofn->initial_directory) + { + t_initial_directory = tstring_from_utf8(ofn->initial_directory); + if (t_initial_directory == NULL) + goto done; + } + + // translate our custom structure to a native Win32 structure + memset(&os_ofn, 0, sizeof(os_ofn)); + os_ofn.lStructSize = os_ofn_size; + os_ofn.hwndOwner = ofn->owner; + os_ofn.hInstance = ofn->instance; + os_ofn.lpstrFilter = t_filter; + os_ofn.nFilterIndex = ofn->filter_index; + os_ofn.lpstrFile = t_file; + os_ofn.nMaxFile = t_file_size; + os_ofn.lpstrInitialDir = t_initial_directory; + os_ofn.Flags = ofn->flags; + os_ofn.lCustData = ofn->custom_data; + os_ofn.lpfnHook = ofn->hook; + os_ofn.lpTemplateName = ofn->template_name; + + // invoke the correct Win32 call + switch(ofn->type) + { + case WIN_FILE_DIALOG_OPEN: + dialog_result = GetOpenFileName(&os_ofn); + break; + + case WIN_FILE_DIALOG_SAVE: + dialog_result = GetSaveFileName(&os_ofn); + break; + + default: + // should not reach here + dialog_result = FALSE; + break; + } + + // copy data out + ofn->filter_index = os_ofn.nFilterIndex; + ofn->flags = os_ofn.Flags; + + // copy file back out into passed structure + if (t_file) + { + utf8_file = utf8_from_tstring(t_file); + if (!utf8_file) + goto done; + + snprintf(ofn->filename, ARRAY_LENGTH(ofn->filename), "%s", utf8_file); + osd_free(utf8_file); + } + + // we've completed the process + result = dialog_result; + +done: + if (t_initial_directory) + osd_free(t_initial_directory); + return result; +} + + + +//============================================================ +// win_scroll_window +//============================================================ + +static void win_scroll_window(HWND window, WPARAM wparam, int scroll_bar, int scroll_delta_line) +{ + SCROLLINFO si; + int scroll_pos; + + // retrieve vital info about the scroll bar + memset(&si, 0, sizeof(si)); + si.cbSize = sizeof(si); + si.fMask = SIF_PAGE | SIF_RANGE | SIF_POS; + GetScrollInfo(window, scroll_bar, &si); + + scroll_pos = si.nPos; + + // change scroll_pos in accordance with this message + switch(LOWORD(wparam)) + { + case SB_BOTTOM: + scroll_pos = si.nMax; + break; + case SB_LINEDOWN: + scroll_pos += scroll_delta_line; + break; + case SB_LINEUP: + scroll_pos -= scroll_delta_line; + break; + case SB_PAGEDOWN: + scroll_pos += scroll_delta_line; + break; + case SB_PAGEUP: + scroll_pos -= scroll_delta_line; + break; + case SB_THUMBPOSITION: + case SB_THUMBTRACK: + scroll_pos = HIWORD(wparam); + break; + case SB_TOP: + scroll_pos = si.nMin; + break; + } + + // max out the scroll bar value + if (scroll_pos < si.nMin) + scroll_pos = si.nMin; + else if (scroll_pos > (si.nMax - si.nPage)) + scroll_pos = (si.nMax - si.nPage); + + // if the value changed, set the scroll position + if (scroll_pos != si.nPos) + { + SetScrollPos(window, scroll_bar, scroll_pos, TRUE); + ScrollWindowEx(window, 0, si.nPos - scroll_pos, NULL, NULL, NULL, NULL, SW_SCROLLCHILDREN | SW_INVALIDATE | SW_ERASE); + } +} + + + +//============================================================ +// win_append_menu_utf8 +//============================================================ + +static BOOL win_append_menu_utf8(HMENU menu, UINT flags, UINT_PTR id, const char *item) +{ + BOOL result; + const TCHAR *t_item = (const TCHAR*)item; + TCHAR *t_str = NULL; + + // only convert string when it's not a bitmap + if (!(flags & MF_BITMAP) && item) + { + t_str = tstring_from_utf8(item); + t_item = t_str; + } + + result = AppendMenu(menu, flags, id, t_item); + + if (t_str) + osd_free(t_str); + + return result; +} + + +static int get_option_count(const option_guide *guide, const char *optspec) +{ + struct OptionRange ranges[128]; + int count = 0, i; + + option_resolution_listranges(optspec, guide->parameter, ranges, ARRAY_LENGTH(ranges)); + + for (i = 0; ranges[i].min >= 0; i++) + count += ranges[i].max - ranges[i].min + 1; + + return count; +} + + + +static BOOL prepare_combobox(HWND control, const option_guide *guide, const char *optspec) +{ + struct OptionRange ranges[128]; + int default_value, default_index, current_index, option_count; + int i, j, k; + BOOL has_option; + TCHAR buf1[256]; + TCHAR buf2[256]; + LPTSTR tempstr; + + SendMessage(control, CB_GETLBTEXT, SendMessage(control, CB_GETCURSEL, 0, 0), (LPARAM) buf1); + SendMessage(control, CB_RESETCONTENT, 0, 0); + has_option = guide && optspec; + + if (has_option) + { + if ((guide->option_type != OPTIONTYPE_INT) && (guide->option_type != OPTIONTYPE_ENUM_BEGIN)) + goto unexpected; + + option_resolution_listranges(optspec, guide->parameter, + ranges, ARRAY_LENGTH(ranges)); + option_resolution_getdefault(optspec, guide->parameter, &default_value); + + option_count = 0; + default_index = -1; + current_index = -1; + + for (i = 0; ranges[i].min >= 0; i++) + { + for (j = ranges[i].min; j <= ranges[i].max; j++) + { + if (guide->option_type == OPTIONTYPE_INT) + { + _sntprintf(buf2, ARRAY_LENGTH(buf2), TEXT("%d"), j); + SendMessage(control, CB_ADDSTRING, 0, (LPARAM) buf2); + } + else + if (guide->option_type == OPTIONTYPE_ENUM_BEGIN) + { + for (k = 1; guide[k].option_type == OPTIONTYPE_ENUM_VALUE; k++) + { + if (guide[k].parameter == j) + break; + } + if (guide[k].option_type != OPTIONTYPE_ENUM_VALUE) + goto unexpected; + + tempstr = tstring_from_utf8(guide[k].display_name); + SendMessage(control, CB_ADDSTRING, 0, (LPARAM) tempstr); + osd_free(tempstr); + } + else + goto unexpected; + + SendMessage(control, CB_SETITEMDATA, option_count, j); + + if (j == default_value) + default_index = option_count; + if (!_tcscmp(buf1, buf2)) + current_index = option_count; + option_count++; + } + } + + // if there is only one option, it is effectively disabled + if (option_count <= 1) + has_option = FALSE; + + if (current_index >= 0) + SendMessage(control, CB_SETCURSEL, current_index, 0); + else if (default_index >= 0) + SendMessage(control, CB_SETCURSEL, default_index, 0); + } + else + { + // this item is non applicable + SendMessage(control, CB_ADDSTRING, 0, (LPARAM) TEXT("N/A")); + SendMessage(control, CB_SETCURSEL, 0, 0); + } + EnableWindow(control, has_option); + return TRUE; + +unexpected: + printf("Unexpected result in prepare_combobox\n"); + assert(FALSE); + return FALSE; +} + + + +static BOOL prepare_editbox(HWND control, const option_guide *guide, const char *optspec) +{ + optreserr_t err = OPTIONRESOLUTION_ERROR_SUCCESS; + char buf[32]; + int val, has_option, option_count; + + has_option = guide && optspec; + buf[0] = '\0'; + + if (has_option) + { + switch(guide->option_type) + { + case OPTIONTYPE_STRING: + break; + + case OPTIONTYPE_INT: + err = option_resolution_getdefault(optspec, guide->parameter, &val); + if (err) + goto done; + _snprintf(buf, ARRAY_LENGTH(buf), "%d", val); + break; + + default: + err = OPTIONRESOLTUION_ERROR_INTERNAL; + goto done; + } + } + + if (has_option) + { + option_count = get_option_count(guide, optspec); + if (option_count <= 1) + has_option = FALSE; + } + +done: + if (err == OPTIONRESOLTUION_ERROR_INTERNAL) + printf("Unexpected result in prepare_editbox\n"); + assert(err != OPTIONRESOLTUION_ERROR_INTERNAL); + win_set_window_text_utf8(control, buf); + EnableWindow(control, !err && has_option); + return err == OPTIONRESOLUTION_ERROR_SUCCESS; +} + + + +static BOOL win_prepare_option_control(HWND control, const option_guide *guide, const char *optspec) +{ + BOOL rc = FALSE; + TCHAR class_name[32]; + + SetProp(control, guide_prop, (HANDLE) guide); + SetProp(control, spec_prop, (HANDLE) optspec); + GetClassName(control, class_name, sizeof(class_name) + / sizeof(class_name[0])); + + if (!_tcsicmp(class_name, TEXT("ComboBox"))) + rc = prepare_combobox(control, guide, optspec); + else + if (!_tcsicmp(class_name, TEXT("Edit"))) + rc = prepare_editbox(control, guide, optspec); + + return rc; +} + + + + +//============================================================ +// call_windowproc +//============================================================ + +static LRESULT call_windowproc(WNDPROC wndproc, HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + LRESULT rc; + if (IsWindowUnicode(hwnd)) + rc = CallWindowProcW(wndproc, hwnd, msg, wparam, lparam); + else + rc = CallWindowProcA(wndproc, hwnd, msg, wparam, lparam); + return rc; +} + + + +//============================================================ +// dialog_write +//============================================================ + +static int dialog_write(struct _dialog_box *di, const void *ptr, size_t sz, int align) +{ + HGLOBAL newhandle; + size_t base; + UINT8 *mem; + UINT8 *mem2; + + if (!di->handle) + { + newhandle = GlobalAlloc(GMEM_ZEROINIT, sz); + base = 0; + } + else + { + base = di->handle_size; + base += align - 1; + base -= base % align; + newhandle = GlobalReAlloc(di->handle, base + sz, GMEM_ZEROINIT); + if (!newhandle) + { + newhandle = GlobalAlloc(GMEM_ZEROINIT, base + sz); + if (newhandle) + { + mem = (UINT8*)GlobalLock(di->handle); + mem2 = (UINT8*)GlobalLock(newhandle); + memcpy(mem2, mem, base); + GlobalUnlock(di->handle); + GlobalUnlock(newhandle); + GlobalFree(di->handle); + } + } + } + if (!newhandle) + return 1; + + mem = (UINT8*)GlobalLock(newhandle); + memcpy(mem + base, ptr, sz); + GlobalUnlock(newhandle); + di->handle = newhandle; + di->handle_size = base + sz; + return 0; +} + + + +//============================================================ +// dialog_write_string +//============================================================ + +static int dialog_write_string(dialog_box *di, const WCHAR *str) +{ + if (!str) + str = L""; + return dialog_write(di, str, (wcslen(str) + 1) * sizeof(WCHAR), 2); +} + + + + +//============================================================ +// win_dialog_exit +//============================================================ + +static void win_dialog_exit(dialog_box *dialog) +{ + int i; + struct dialog_object_pool *objpool; + + if (!dialog) + printf("No dialog passed to win_dialog_exit\n"); + assert(dialog); + + objpool = dialog->objpool; + if (objpool) + { + for (i = 0; i < ARRAY_LENGTH(objpool->objects); i++) + DeleteObject(objpool->objects[i]); + } + + if (dialog->handle) + GlobalFree(dialog->handle); + + //pool_free_lib(dialog->mempool); + free(dialog); +} + + + +//============================================================ +// win_dialog_init +//============================================================ + +dialog_box *win_dialog_init(const char *title, const struct dialog_layout *layout) +{ + struct _dialog_box *di; + DLGTEMPLATE dlg_template; + WORD w[2]; + WCHAR *w_title; + int rc; + + // use default layout if not specified + if (!layout) + layout = &default_layout; + + // create the dialog structure + di = (_dialog_box *)malloc(sizeof(struct _dialog_box)); + if (!di) + goto error; + memset(di, 0, sizeof(*di)); + + di->layout = layout; + //di->mempool = pool_alloc_lib(NULL); + + memset(&dlg_template, 0, sizeof(dlg_template)); + dlg_template.style = di->style = DIALOG_STYLE; + dlg_template.x = 10; + dlg_template.y = 10; + if (dialog_write(di, &dlg_template, sizeof(dlg_template), 4)) + goto error; + + w[0] = 0; + w[1] = 0; + if (dialog_write(di, w, sizeof(w), 2)) + goto error; + + w_title = wstring_from_utf8(title); + rc = dialog_write_string(di, w_title); + osd_free(w_title); + if (rc) + goto error; + + // set the font, if necessary + if (di->style & DS_SETFONT) + { + w[0] = FONT_SIZE; + if (dialog_write(di, w, sizeof(w[0]), 2)) + goto error; + if (dialog_write_string(di, FONT_FACE)) + goto error; + } + + return di; + +error: + if (di) + win_dialog_exit(di); + return NULL; +} + + +//============================================================ +// compute_dlgunits_multiple +//============================================================ + +static void calc_dlgunits_multiple(void) +{ + dialog_box *dialog = NULL; + short offset_x = 2048; + short offset_y = 2048; + const char *wnd_title = "Foo"; + WORD id; + HWND dlg_window = NULL; + HWND child_window; + RECT r; + + if ((pixels_to_xdlgunits == 0) || (pixels_to_ydlgunits == 0)) + { + // create a bogus dialog + dialog = win_dialog_init(NULL, NULL); + if (!dialog) + goto done; + + if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | SS_LEFT, + 0, 0, offset_x, offset_y, wnd_title, DLGITEM_STATIC, &id)) + goto done; + + dialog_prime(dialog); + dlg_window = CreateDialogIndirectParam(NULL, (const DLGTEMPLATE*)dialog->handle, NULL, NULL, 0); + child_window = GetDlgItem(dlg_window, id); + + GetWindowRect(child_window, &r); + pixels_to_xdlgunits = (double)(r.right - r.left) / offset_x; + pixels_to_ydlgunits = (double)(r.bottom - r.top) / offset_y; + +done: + if (dialog) + win_dialog_exit(dialog); + if (dlg_window) + DestroyWindow(dlg_window); + } +} + + + +//============================================================ +// dialog_trigger +//============================================================ + +static void dialog_trigger(HWND dlgwnd, WORD trigger_flags) +{ + LRESULT result; + HWND dialog_item; + struct _dialog_box *di; + struct dialog_info_trigger *trigger; + LONG_PTR l; + + l = GetWindowLongPtr(dlgwnd, GWLP_USERDATA); + di = (struct _dialog_box *) l; + if (!di) + printf("Unexpected result of di in dialog_trigger\n"); + assert(di); + for (trigger = di->trigger_first; trigger; trigger = trigger->next) + { + if (trigger->trigger_flags & trigger_flags) + { + if (trigger->dialog_item) + dialog_item = GetDlgItem(dlgwnd, trigger->dialog_item); + else + dialog_item = dlgwnd; + if (!dialog_item) + printf("Unexpected result of dialog_item in dialog_trigger\n"); + assert(dialog_item); + result = 0; + + if (trigger->message) + result = SendMessage(dialog_item, trigger->message, trigger->wparam, trigger->lparam); + if (trigger->trigger_proc) + result = trigger->trigger_proc(di, dialog_item, trigger->message, trigger->wparam, trigger->lparam); + + if (trigger->storeval) + trigger->storeval(trigger->storeval_param, result); + } + } +} + +//============================================================ +// dialog_proc +//============================================================ + +static INT_PTR CALLBACK dialog_proc(HWND dlgwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + INT_PTR handled = TRUE; + CHAR buf[32]; + WORD command; + + //if (LOG_WINMSGS) + //{ + // logerror("dialog_proc(): dlgwnd=%p msg=0x%08x wparam=0x%08x lparam=0x%08x\n", + // dlgwnd, (unsigned int) msg, (unsigned int) wparam, (unsigned int) lparam); + //} + + switch(msg) + { + case WM_INITDIALOG: + SetWindowLongPtr(dlgwnd, GWLP_USERDATA, (LONG_PTR) lparam); + dialog_trigger(dlgwnd, TRIGGER_INITDIALOG); + break; + + case WM_COMMAND: + command = LOWORD(wparam); + + win_get_window_text_utf8((HWND) lparam, buf, ARRAY_LENGTH(buf)); + if (!strcmp(buf, DLGTEXT_OK)) + command = IDOK; + else if (!strcmp(buf, DLGTEXT_CANCEL)) + command = IDCANCEL; + else + command = 0; + + switch(command) + { + case IDOK: + dialog_trigger(dlgwnd, TRIGGER_APPLY); + // fall through + + case IDCANCEL: + EndDialog(dlgwnd, 0); + break; + + default: + handled = FALSE; + break; + } + break; + + case WM_SYSCOMMAND: + if (wparam == SC_CLOSE) + EndDialog(dlgwnd, 0); + else + handled = FALSE; + + break; + + case WM_VSCROLL: + if (lparam) + // this scroll message came from an actual scroll bar window; + // pass it on + SendMessage((HWND) lparam, msg, wparam, lparam); + else + // scroll the dialog + win_scroll_window(dlgwnd, wparam, SB_VERT, SCROLL_DELTA_LINE); + + break; + + default: + handled = FALSE; + break; + } + return handled; +} + + + +//============================================================ +// dialog_write_item +//============================================================ + +static int dialog_write_item(dialog_box *di, DWORD style, short x, short y, + short width, short height, const char *str, const WCHAR *class_name, WORD *id) +{ + DLGITEMTEMPLATE item_template; + UINT class_name_length; + WORD w; + WCHAR *w_str; + int rc; + + memset(&item_template, 0, sizeof(item_template)); + item_template.style = style; + item_template.x = x; + item_template.y = y; + item_template.cx = width; + item_template.cy = height; + item_template.id = di->item_count + 1; + + if (dialog_write(di, &item_template, sizeof(item_template), 4)) + return 1; + + if (*class_name == 0xffff) + class_name_length = 4; + else + class_name_length = (wcslen(class_name) + 1) * sizeof(WCHAR); + if (dialog_write(di, class_name, class_name_length, 2)) + return 1; + + w_str = str ? wstring_from_utf8(str) : NULL; + rc = dialog_write_string(di, w_str); + if (w_str) + osd_free(w_str); + if (rc) + return 1; + + w = 0; + if (dialog_write(di, &w, sizeof(w), 2)) + return 1; + + di->item_count++; + + if (id) + *id = di->item_count; + return 0; +} + + + +//============================================================ +// dialog_add_trigger +//============================================================ + +static int dialog_add_trigger(struct _dialog_box *di, WORD dialog_item, + WORD trigger_flags, UINT message, trigger_function trigger_proc, + WPARAM wparam, LPARAM lparam, void (*storeval)(void *param, int val), void *storeval_param) +{ + if (!di) + printf("Unexpected result of di in dialog_add_trigger\n"); + assert(di); + if (!trigger_flags) + printf("Unexpected result of trigger_flags in dialog_add_trigger\n"); + assert(trigger_flags); + + dialog_info_trigger *trigger = new(dialog_info_trigger); + //dialog_info_trigger *trigger; + //trigger = global_alloc(dialog_info_trigger); + + trigger->next = NULL; + trigger->trigger_flags = trigger_flags; + trigger->dialog_item = dialog_item; + trigger->message = message; + trigger->trigger_proc = trigger_proc; + trigger->wparam = wparam; + trigger->lparam = lparam; + trigger->storeval = storeval; + trigger->storeval_param = storeval_param; + + if (di->trigger_last) + di->trigger_last->next = trigger; + else + di->trigger_first = trigger; + di->trigger_last = trigger; + return 0; +} + + + +//============================================================ +// dialog_scrollbar_init +//============================================================ + +static LRESULT dialog_scrollbar_init(dialog_box *dialog, HWND dlgwnd, UINT message, WPARAM wparam, LPARAM lparam) +{ + SCROLLINFO si; + + calc_dlgunits_multiple(); + + memset(&si, 0, sizeof(si)); + si.cbSize = sizeof(si); + si.nMin = pixels_to_ydlgunits * 0; + si.nMax = pixels_to_ydlgunits * dialog->size_y; + si.nPage = pixels_to_ydlgunits * MAX_DIALOG_HEIGHT; + si.fMask = SIF_PAGE | SIF_RANGE; + + SetScrollInfo(dlgwnd, SB_VERT, &si, TRUE); + return 0; +} + + + +//============================================================ +// dialog_add_scrollbar +//============================================================ + +static int dialog_add_scrollbar(dialog_box *dialog) +{ + if (dialog_add_trigger(dialog, 0, TRIGGER_INITDIALOG, 0, dialog_scrollbar_init, 0, 0, NULL, NULL)) + return 1; + + dialog->style |= WS_VSCROLL; + return 0; +} + + + +//============================================================ +// dialog_prime +//============================================================ + +static void dialog_prime(dialog_box *di) +{ + DLGTEMPLATE *dlg_template; + + if (di->size_y > MAX_DIALOG_HEIGHT) + { + di->size_x += DIM_SCROLLBAR_WIDTH; + dialog_add_scrollbar(di); + } + + dlg_template = (DLGTEMPLATE *) GlobalLock(di->handle); + dlg_template->cdit = di->item_count; + dlg_template->cx = di->size_x; + dlg_template->cy = (di->size_y > MAX_DIALOG_HEIGHT) ? MAX_DIALOG_HEIGHT : di->size_y; + dlg_template->style = di->style; + GlobalUnlock(di->handle); +} + + + +//============================================================ +// dialog_get_combo_value +//============================================================ + +static LRESULT dialog_get_combo_value(dialog_box *dialog, HWND dialog_item, UINT message, WPARAM wparam, LPARAM lparam) +{ + int idx; + idx = SendMessage(dialog_item, CB_GETCURSEL, 0, 0); + if (idx == CB_ERR) + return 0; + return SendMessage(dialog_item, CB_GETITEMDATA, idx, 0); +} + + + +//============================================================ +// dialog_get_adjuster_value +//============================================================ + +static LRESULT dialog_get_adjuster_value(dialog_box *dialog, HWND dialog_item, UINT message, WPARAM wparam, LPARAM lparam) +{ + TCHAR buf[32]; + GetWindowText(dialog_item, buf, ARRAY_LENGTH(buf)); + return _ttoi(buf); +} + + + +//============================================================ +// dialog_new_control +//============================================================ + +static void dialog_new_control(struct _dialog_box *di, short *x, short *y) +{ + *x = di->pos_x + DIM_HORIZONTAL_SPACING; + *y = di->pos_y + DIM_VERTICAL_SPACING; +} + + + +//============================================================ +// dialog_finish_control +//============================================================ + +static void dialog_finish_control(struct _dialog_box *di, short x, short y) +{ + di->pos_y = y; + + // update dialog size + if (x > di->size_x) + di->size_x = x; + if (y > di->size_y) + di->size_y = y; + if (x > di->cursize_x) + di->cursize_x = x; + if (y > di->cursize_y) + di->cursize_y = y; +} + + + +//============================================================ +// dialog_combo_changed +//============================================================ + +static LRESULT dialog_combo_changed(dialog_box *dialog, HWND dlgitem, UINT message, WPARAM wparam, LPARAM lparam) +{ + dialog_itemchangedproc changed = (dialog_itemchangedproc) wparam; + changed(dialog, dlgitem, (void *) lparam); + return 0; +} + + + +//============================================================ +// win_dialog_wcsdup +//============================================================ + +static WCHAR *win_dialog_wcsdup(dialog_box *dialog, const WCHAR *s) +{ + WCHAR *result = global_alloc_array(WCHAR, wcslen(s) + 1); + if (result) + wcscpy(result, s); + return result; +} + + + +//============================================================ +// win_dialog_add_active_combobox +//============================================================ + +static int win_dialog_add_active_combobox(dialog_box *dialog, const char *item_label, int default_value, + dialog_itemstoreval storeval, void *storeval_param, dialog_itemchangedproc changed, void *changed_param) +{ + int rc = 1; + short x; + short y; + + dialog_new_control(dialog, &x, &y); + + if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | SS_LEFT, + x, y, dialog->layout->label_width, DIM_COMBO_ROW_HEIGHT, item_label, DLGITEM_STATIC, NULL)) + goto done; + + y += DIM_BOX_VERTSKEW; + + x += dialog->layout->label_width + DIM_HORIZONTAL_SPACING; + if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, + x, y, dialog->layout->combo_width, DIM_COMBO_ROW_HEIGHT * 8, NULL, DLGITEM_COMBOBOX, NULL)) + goto done; + dialog->combo_string_count = 0; + dialog->combo_default_value = default_value; + + // add the trigger invoked when the apply button is pressed + if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_APPLY, 0, dialog_get_combo_value, 0, 0, storeval, storeval_param)) + goto done; + + // if appropriate, add the optional changed trigger + if (changed) + { + if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG | TRIGGER_CHANGED, 0, dialog_combo_changed, (WPARAM) changed, (LPARAM) changed_param, NULL, NULL)) + goto done; + } + + x += dialog->layout->combo_width + DIM_HORIZONTAL_SPACING; + y += DIM_COMBO_ROW_HEIGHT + DIM_VERTICAL_SPACING * 2; + + dialog_finish_control(dialog, x, y); + rc = 0; + +done: + return rc; +} + + + +//============================================================ +// win_dialog_add_combobox +//============================================================ + +static int win_dialog_add_combobox(dialog_box *dialog, const char *item_label, int default_value, + void (*storeval)(void *param, int val), void *storeval_param) +{ + return win_dialog_add_active_combobox(dialog, item_label, default_value, + storeval, storeval_param, NULL, NULL); +} + + + +//============================================================ +// win_dialog_add_combobox_item +//============================================================ + +static int win_dialog_add_combobox_item(dialog_box *dialog, const char *item_label, int item_data) +{ + // create our own copy of the string + size_t newsize = strlen(item_label) + 1; + wchar_t * t_item_label = new wchar_t[newsize]; + //size_t convertedChars = 0; + //mbstowcs_s(&convertedChars, t_item_label, newsize, item_label, _TRUNCATE); + mbstowcs(t_item_label, item_label, newsize); + + if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, CB_ADDSTRING, NULL, 0, (LPARAM) t_item_label, NULL, NULL)) + return 1; + dialog->combo_string_count++; + if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, CB_SETITEMDATA, NULL, dialog->combo_string_count-1, (LPARAM) item_data, NULL, NULL)) + return 1; + if (item_data == dialog->combo_default_value) + { + if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, CB_SETCURSEL, NULL, dialog->combo_string_count-1, 0, NULL, NULL)) + return 1; + } + return 0; +} + + + +//============================================================ +// adjuster_sb_wndproc +//============================================================ + +struct adjuster_sb_stuff +{ + WNDPROC oldwndproc; + int min_value; + int max_value; +}; + +static INT_PTR CALLBACK adjuster_sb_wndproc(HWND sbwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + INT_PTR result; + struct adjuster_sb_stuff *stuff; + char buf[64]; + HWND dlgwnd, editwnd; + int value, id; + LONG_PTR l; + + l = GetWindowLongPtr(sbwnd, GWLP_USERDATA); + stuff = (struct adjuster_sb_stuff *) l; + + if (msg == WM_VSCROLL) + { + id = GetWindowLong(sbwnd, GWL_ID); + dlgwnd = GetParent(sbwnd); + editwnd = GetDlgItem(dlgwnd, id - 1); + win_get_window_text_utf8(editwnd, buf, ARRAY_LENGTH(buf)); + value = atoi(buf); + + switch(wparam) + { + case SB_LINEDOWN: + case SB_PAGEDOWN: + value--; + break; + + case SB_LINEUP: + case SB_PAGEUP: + value++; + break; + } + + if (value < stuff->min_value) + value = stuff->min_value; + else if (value > stuff->max_value) + value = stuff->max_value; + _snprintf(buf, ARRAY_LENGTH(buf), "%d", value); + win_set_window_text_utf8(editwnd, buf); + result = 0; + } + else + result = call_windowproc(stuff->oldwndproc, sbwnd, msg, wparam, lparam); + + return result; +} + + +//============================================================ +// win_dialog_malloc +//============================================================ + +//static void *win_dialog_malloc(dialog_box *dialog, size_t size) +//{ +// return pool_malloc_lib(dialog->mempool, size); +//} + + + +//============================================================ +// adjuster_sb_setup +//============================================================ + +static LRESULT adjuster_sb_setup(dialog_box *dialog, HWND sbwnd, UINT message, WPARAM wparam, LPARAM lparam) +{ + struct adjuster_sb_stuff *stuff; + LONG_PTR l; + + stuff = global_alloc(adjuster_sb_stuff); + if (!stuff) + return 1; + stuff->min_value = (WORD) (lparam >> 0); + stuff->max_value = (WORD) (lparam >> 16); + + l = (LONG_PTR) stuff; + SetWindowLongPtr(sbwnd, GWLP_USERDATA, l); + l = (LONG_PTR) adjuster_sb_wndproc; + l = SetWindowLongPtr(sbwnd, GWLP_WNDPROC, l); + stuff->oldwndproc = (WNDPROC) l; + return 0; +} + + + +//============================================================ +// win_dialog_add_adjuster +//============================================================ + +static int win_dialog_add_adjuster(dialog_box *dialog, const char *item_label, int default_value, + int min_value, int max_value, BOOL is_percentage, dialog_itemstoreval storeval, void *storeval_param) +{ + short x; + short y; + TCHAR buf[32]; + TCHAR *s; + + dialog_new_control(dialog, &x, &y); + + if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | SS_LEFT, + x, y, dialog->layout->label_width, DIM_ADJUSTER_HEIGHT, item_label, DLGITEM_STATIC, NULL)) + goto error; + x += dialog->layout->label_width + DIM_HORIZONTAL_SPACING; + + y += DIM_BOX_VERTSKEW; + + if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_NUMBER, + x, y, dialog->layout->combo_width - DIM_ADJUSTER_SCR_WIDTH, DIM_ADJUSTER_HEIGHT, NULL, DLGITEM_EDIT, NULL)) + goto error; + x += dialog->layout->combo_width - DIM_ADJUSTER_SCR_WIDTH; + + _sntprintf(buf, ARRAY_LENGTH(buf), + is_percentage ? TEXT("%d%%") : TEXT("%d"), + default_value); + s = win_dialog_tcsdup(dialog, buf); + osd_free(buf); + if (!s) + return 1; + if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, WM_SETTEXT, NULL, + 0, (LPARAM) s, NULL, NULL)) + goto error; + + // add the trigger invoked when the apply button is pressed + if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_APPLY, 0, dialog_get_adjuster_value, 0, 0, storeval, storeval_param)) + goto error; + + if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | WS_TABSTOP | SBS_VERT, + x, y, DIM_ADJUSTER_SCR_WIDTH, DIM_ADJUSTER_HEIGHT, NULL, DLGITEM_SCROLLBAR, NULL)) + goto error; + x += DIM_ADJUSTER_SCR_WIDTH + DIM_HORIZONTAL_SPACING; + + if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, 0, adjuster_sb_setup, + 0, MAKELONG(min_value, max_value), NULL, NULL)) + return 1; + + y += DIM_COMBO_ROW_HEIGHT + DIM_VERTICAL_SPACING * 2; + + dialog_finish_control(dialog, x, y); + return 0; + +error: + return 1; +} + + + + +//============================================================ +// get_seqselect_info +//============================================================ + +static seqselect_info *get_seqselect_info(HWND editwnd) +{ + LONG_PTR lp; + lp = GetWindowLongPtr(editwnd, GWLP_USERDATA); + return (seqselect_info *) lp; +} + + + +//============================================================ +// seqselect_settext +//============================================================ +//#pragma GCC diagnostic push +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-value" +#endif + +static void seqselect_settext(HWND editwnd) +{ + seqselect_info *stuff; + std::string seqstring; + char buffer[128]; + + // the basics + stuff = get_seqselect_info(editwnd); + if (stuff == NULL) + return; // this should not happen - need to fix this + + // retrieve the seq name + seqstring = Machine->input().seq_name(*stuff->code); + + // change the text - avoid calls to SetWindowText() if we can + win_get_window_text_utf8(editwnd, buffer, ARRAY_LENGTH(buffer)); + if (strcmp(buffer, seqstring.c_str())!=0) + win_set_window_text_utf8(editwnd, seqstring.c_str()); + + // reset the selection + if (GetFocus() == editwnd) + { + DWORD start = 0, end = 0; + SendMessage(editwnd, EM_GETSEL, (WPARAM) (LPDWORD) &start, (LPARAM) (LPDWORD) &end); + if ((start != 0) || (end != strlen(buffer))) + SendMessage(editwnd, EM_SETSEL, 0, -1); + } +} + +#ifdef __GNUC__ +#pragma GCC diagnostic error "-Wunused-value" +#endif + + +//============================================================ +// seqselect_start_read_from_main_thread +//============================================================ + +static void seqselect_start_read_from_main_thread(void *param) +{ + seqselect_info *stuff; + + // get the basics + HWND editwnd = (HWND) param; + stuff = get_seqselect_info(editwnd); + + // are we currently polling? if so bail out + if (stuff->poll_state != SEQSELECT_STATE_NOT_POLLING) + return; + + // change the state + stuff->poll_state = SEQSELECT_STATE_POLLING; + + // the Win32 OSD code thinks that we are paused, we need to temporarily + // unpause ourselves or else we will block + int pause_count = 0; + while(Machine->paused() && !winwindow_ui_is_paused(*Machine)) + { + winwindow_ui_pause(*Machine, FALSE); + pause_count++; + } + + // start the polling + (*Machine).input().seq_poll_start(stuff->is_analog ? ITEM_CLASS_ABSOLUTE : ITEM_CLASS_SWITCH, NULL); + + while(stuff->poll_state == SEQSELECT_STATE_POLLING) + { + // poll + if (Machine->input().seq_poll()) + { + *stuff->code = Machine->input().seq_poll_final(); + seqselect_settext(editwnd); + } + } + + // we are no longer polling + stuff->poll_state = SEQSELECT_STATE_NOT_POLLING; + + // repause the OSD code + while(pause_count--) + winwindow_ui_pause(*Machine, TRUE); +} + + + +//============================================================ +// seqselect_stop_read_from_main_thread +//============================================================ + +static void seqselect_stop_read_from_main_thread(void *param) +{ + HWND editwnd; + seqselect_info *stuff; + + // get the basics + editwnd = (HWND) param; + stuff = get_seqselect_info(editwnd); + + // stop the read + if (stuff->poll_state == SEQSELECT_STATE_POLLING) + stuff->poll_state = SEQSELECT_STATE_POLLING_COMPLETE; +} + + + +//============================================================ +// seqselect_wndproc +//============================================================ + +static INT_PTR CALLBACK seqselect_wndproc(HWND editwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + seqselect_info *stuff; + INT_PTR result = 0; + BOOL call_baseclass = TRUE; + + stuff = get_seqselect_info(editwnd); + + switch(msg) + { + case WM_KEYDOWN: + case WM_SYSKEYDOWN: + case WM_CHAR: + case WM_KEYUP: + case WM_SYSKEYUP: + result = 1; + call_baseclass = FALSE; + break; + + case WM_SETFOCUS: + PostMessage(editwnd, SEQWM_SETFOCUS, 0, 0); + break; + + case WM_KILLFOCUS: + PostMessage(editwnd, SEQWM_KILLFOCUS, 0, 0); + break; + + case SEQWM_SETFOCUS: + // if we receive the focus, we should start a polling loop + seqselect_start_read_from_main_thread( (void *) editwnd); + break; + + case SEQWM_KILLFOCUS: + // when we abort the focus, end any current polling loop + seqselect_stop_read_from_main_thread( (void *) editwnd); + break; + + case WM_LBUTTONDOWN: + case WM_RBUTTONDOWN: + SetFocus(editwnd); + SendMessage(editwnd, EM_SETSEL, 0, -1); + call_baseclass = FALSE; + result = 0; + break; + } + + if (call_baseclass) + result = call_windowproc(stuff->oldwndproc, editwnd, msg, wparam, lparam); + return result; +} + + + +//============================================================ +// seqselect_setup +//============================================================ + +static LRESULT seqselect_setup(dialog_box *dialog, HWND editwnd, UINT message, WPARAM wparam, LPARAM lparam) +{ + seqselect_info *stuff = (seqselect_info *) lparam; + LONG_PTR lp; + + lp = SetWindowLongPtr(editwnd, GWLP_WNDPROC, (LONG_PTR) seqselect_wndproc); + stuff->oldwndproc = (WNDPROC) lp; + SetWindowLongPtr(editwnd, GWLP_USERDATA, lparam); + seqselect_settext(editwnd); + return 0; +} + + + +//============================================================ +// seqselect_apply +//============================================================ + +static LRESULT seqselect_apply(dialog_box *dialog, HWND editwnd, UINT message, WPARAM wparam, LPARAM lparam) +{ + seqselect_info *stuff; + stuff = get_seqselect_info(editwnd); + + // store the settings + stuff->field->set_user_settings(stuff->settings); + + return 0; +} + +//============================================================ +// dialog_add_single_seqselect +//============================================================ + +static int dialog_add_single_seqselect(struct _dialog_box *di, short x, short y, + short cx, short cy, ioport_field *field, int is_analog, int seqtype) +{ + // write the dialog item + if (dialog_write_item(di, WS_CHILD | WS_VISIBLE | SS_ENDELLIPSIS | ES_CENTER | SS_SUNKEN, + x, y, cx, cy, NULL, DLGITEM_EDIT, NULL)) + return 1; + + // allocate a seqselect_info + seqselect_info *stuff = new(seqselect_info); + //seqselect_info *stuff; + //stuff = global_alloc(seqselect_info); + if (!stuff) + return 1; + + // initialize the structure + memset(stuff, 0, sizeof(*stuff)); + field->get_user_settings(stuff->settings); + stuff->field = field; + stuff->pos = di->item_count; + stuff->is_analog = is_analog; + + // This next line is completely unsafe, but I do not know what to use ***************** + stuff->code = const_cast <input_seq*> (&field->seq( (input_seq_type) seqtype) ); + + if (dialog_add_trigger(di, di->item_count, TRIGGER_INITDIALOG, 0, seqselect_setup, di->item_count, (LPARAM) stuff, NULL, NULL)) + return 1; + if (dialog_add_trigger(di, di->item_count, TRIGGER_APPLY, 0, seqselect_apply, 0, 0, NULL, NULL)) + return 1; + return 0; +} + + + +//============================================================ +// win_dialog_add_seqselect +//============================================================ + +static int win_dialog_add_portselect(dialog_box *dialog, ioport_field *field) +{ + dialog_box *di = dialog; + short x; + short y; + const char *port_name; + const char *this_port_name; + char *s; + int seq; + int seq_count = 0; + const char *port_suffix[3]; + int seq_types[3]; + int is_analog[3]; + int len; + + port_name = field->name(); + if (!port_name) + printf("Blank port_name encountered in win_dialog_add_portselect\n"); + assert(port_name); + + if (field->type() > IPT_ANALOG_FIRST && field->type() < IPT_ANALOG_LAST) + { + seq_types[seq_count] = SEQ_TYPE_STANDARD; + port_suffix[seq_count] = " Analog"; + is_analog[seq_count] = TRUE; + seq_count++; + + seq_types[seq_count] = SEQ_TYPE_DECREMENT; + port_suffix[seq_count] = " Dec"; + is_analog[seq_count] = FALSE; + seq_count++; + + seq_types[seq_count] = SEQ_TYPE_INCREMENT; + port_suffix[seq_count] = " Inc"; + is_analog[seq_count] = FALSE; + seq_count++; + } + else + { + seq_types[seq_count] = SEQ_TYPE_STANDARD; + port_suffix[seq_count] = NULL; + is_analog[seq_count] = FALSE; + seq_count++; + } + + for (seq = 0; seq < seq_count; seq++) + { + // create our local name for this entry; also convert from + // MAME strings to wide strings + len = strlen(port_name); + s = (char *) alloca((len + (port_suffix[seq] ? strlen(port_suffix[seq]) + : 0) + 1) * sizeof(*s)); + strcpy(s, port_name); + + if (port_suffix[seq]) + strcpy(s + len, port_suffix[seq]); + this_port_name = s; + + // no positions specified + dialog_new_control(di, &x, &y); + + if (dialog_write_item(di, WS_CHILD | WS_VISIBLE | SS_LEFT | SS_NOPREFIX, x, y, + dialog->layout->label_width, DIM_NORMAL_ROW_HEIGHT, this_port_name, DLGITEM_STATIC, NULL)) + return 1; + x += dialog->layout->label_width + DIM_HORIZONTAL_SPACING; + + if (dialog_add_single_seqselect(di, x, y, DIM_EDIT_WIDTH, DIM_NORMAL_ROW_HEIGHT, + field, is_analog[seq], seq_types[seq])) + return 1; + y += DIM_VERTICAL_SPACING + DIM_NORMAL_ROW_HEIGHT; + x += DIM_EDIT_WIDTH + DIM_HORIZONTAL_SPACING; + + dialog_finish_control(di, x, y); + } + return 0; +} + + + +//============================================================ +// win_dialog_add_notification +//============================================================ + +static int win_dialog_add_notification(dialog_box *dialog, UINT notification, dialog_notification callback, void *param) +{ + // hack + if (!dialog->notify_callback) + printf("Unexpected result in win_dialog_add_notification\n"); + assert(!dialog->notify_callback); + dialog->notify_code = notification; + dialog->notify_callback = callback; + dialog->notify_param = param; + return 0; +} + + + +//============================================================ +// win_dialog_add_standard_buttons +//============================================================ + +static int win_dialog_add_standard_buttons(dialog_box *dialog) +{ + dialog_box *di = dialog; + short x; + short y; + + // Handle the case of an empty dialog box (size_x & size_y will be 0) + if (!di->size_x) + di->size_x = 3 * DIM_HORIZONTAL_SPACING + 2 * DIM_BUTTON_WIDTH; + if (!di->size_y) + di->size_y = DIM_VERTICAL_SPACING; + + // work out where cancel button goes + x = di->size_x - DIM_HORIZONTAL_SPACING - DIM_BUTTON_WIDTH; + y = di->size_y + DIM_VERTICAL_SPACING; + + // display cancel button + if (dialog_write_item(di, WS_CHILD | WS_VISIBLE | SS_LEFT, + x, y, DIM_BUTTON_WIDTH, DIM_BUTTON_ROW_HEIGHT, DLGTEXT_CANCEL, DLGITEM_BUTTON, NULL)) + return 1; + + // work out where OK button goes + x -= DIM_HORIZONTAL_SPACING + DIM_BUTTON_WIDTH; + + // display OK button + if (dialog_write_item(di, WS_CHILD | WS_VISIBLE | SS_LEFT, + x, y, DIM_BUTTON_WIDTH, DIM_BUTTON_ROW_HEIGHT, DLGTEXT_OK, DLGITEM_BUTTON, NULL)) + return 1; + + di->size_y += DIM_BUTTON_ROW_HEIGHT + DIM_VERTICAL_SPACING * 2; + + return 0; +} + + + +//============================================================ +// before_display_dialog +//============================================================ + +static void before_display_dialog(running_machine &machine) +{ + Machine = &machine; + winwindow_ui_pause(machine, TRUE); +} + + + +//============================================================ +// after_display_dialog +//============================================================ + +static void after_display_dialog(running_machine &machine) +{ + winwindow_ui_pause(machine, FALSE); + //Machine = NULL; +} + + + +//============================================================ +// win_dialog_runmodal +//============================================================ + +static void win_dialog_runmodal(running_machine &machine, HWND wnd, dialog_box *dialog) +{ + if (!dialog) + printf("Unexpected result in win_dialog_runmodal\n"); + assert(dialog); + + // finishing touches on the dialog + dialog_prime(dialog); + + // show the dialog + before_display_dialog(machine); + DialogBoxIndirectParamW(NULL, (const DLGTEMPLATE*)dialog->handle, wnd, (DLGPROC) dialog_proc, (LPARAM) dialog); + after_display_dialog(machine); +} + + + +//============================================================ +// file_dialog_hook +//============================================================ + +static UINT_PTR CALLBACK file_dialog_hook(HWND dlgwnd, UINT message, WPARAM wparam, LPARAM lparam) +{ + OPENFILENAME *ofn; + dialog_box *dialog; + UINT_PTR rc = 0; + LPNMHDR notify; + LONG_PTR l; + + switch(message) + { + case WM_INITDIALOG: + ofn = (OPENFILENAME *) lparam; + dialog = (dialog_box *) ofn->lCustData; + + SetWindowLongPtr(dlgwnd, GWLP_USERDATA, (LONG_PTR) dialog); + dialog_trigger(dlgwnd, TRIGGER_INITDIALOG); + rc = 1; + + // hack + if (dialog->notify_callback && (dialog->notify_code == CDN_TYPECHANGE)) + dialog->notify_callback(dialog, dlgwnd, NULL, dialog->notify_param); + break; + + case WM_NOTIFY: + notify = (LPNMHDR) lparam; + switch(notify->code) + { + case CDN_FILEOK: + dialog_trigger(dlgwnd, TRIGGER_APPLY); + break; + } + + // hack + l = GetWindowLongPtr(dlgwnd, GWLP_USERDATA); + dialog = (dialog_box *) l; + if (dialog->notify_callback && (notify->code == dialog->notify_code)) + dialog->notify_callback(dialog, dlgwnd, notify, dialog->notify_param); + break; + + case WM_COMMAND: + switch(HIWORD(wparam)) + { + case CBN_SELCHANGE: + dialog_trigger(dlgwnd, TRIGGER_CHANGED); + break; + } + break; + } + return rc; +} + + + +//============================================================ +// win_file_dialog +//============================================================ + +static BOOL win_file_dialog(running_machine &machine, + HWND parent, win_file_dialog_type dlgtype, dialog_box *custom_dialog, const char *filter, + const char *initial_dir, char *filename, size_t filename_len) +{ + win_open_file_name ofn; + BOOL result = FALSE; + + // set up the OPENFILENAME data structure + memset(&ofn, 0, sizeof(ofn)); + ofn.type = dlgtype; + ofn.owner = parent; + ofn.flags = OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY; + ofn.filter = filter; + ofn.initial_directory = initial_dir; + + if (dlgtype == WIN_FILE_DIALOG_OPEN) + ofn.flags |= OFN_FILEMUSTEXIST; + + if (custom_dialog) + { + custom_dialog->style = WS_CHILD | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL | DS_SETFONT; + dialog_prime(custom_dialog); + + ofn.flags |= OFN_ENABLETEMPLATEHANDLE | OFN_ENABLEHOOK; + ofn.instance = (HINSTANCE)custom_dialog->handle; + ofn.custom_data = (LPARAM) custom_dialog; + ofn.hook = file_dialog_hook; + } + + snprintf(ofn.filename, ARRAY_LENGTH(ofn.filename), "%s", filename); + + before_display_dialog(machine); + result = win_get_file_name_dialog(&ofn); + after_display_dialog(machine); + + snprintf(filename, filename_len, "%s", ofn.filename); + return result; +} + + + + +//============================================================ +// input_item_from_serial_number +//============================================================ + +static int input_item_from_serial_number(running_machine &machine, int serial_number, + ioport_port **port, ioport_field **field, ioport_setting **setting) +{ + ioport_port *this_port = NULL; + ioport_field *this_field = NULL; + ioport_setting *this_setting = NULL; + + int i = 0; + for (this_port = machine.ioport().ports().first(); (i != serial_number) && (this_port); this_port = this_port->next()) + { + i++; + for (this_field = this_port->fields().first(); (i != serial_number) && (this_field); this_field = this_field->next()) + { + i++; + for (this_setting = this_field->settings().first(); (i != serial_number) && (this_setting); this_setting = this_setting->next()) + i++; + } + } + + if (this_field) + this_port = &this_field->port(); + + if (port) + *port = this_port; + if (field) + *field = this_field; + if (setting) + *setting = this_setting; + + return (i == serial_number); +} + + + +//============================================================ +// customise_input +//============================================================ + +static void customise_input(running_machine &machine, HWND wnd, const char *title, int player, int inputclass) +{ + dialog_box *dlg; + ioport_port *port; + ioport_field *field; + int this_inputclass = 0; + int this_player = 0, portslot_count = 0, i = 0; + const int max_portslots = 256; + + struct + { + ioport_field *field; + } portslots[max_portslots]; + + /* create the dialog */ + dlg = win_dialog_init(title, NULL); + if (!dlg) + return; + + for (port = machine.ioport().ports().first(); port; port = port->next()) + { + for (field = port->fields().first(); field; field = field->next()) + { + /* add if we match the group and we have a valid name */ + const char *name = field->name(); + this_inputclass = field->type_class(); + this_player = field->player(); + + if ((name) + && (field->enabled()) +//check me && ((field->type() == IPT_OTHER && field->name()) || (machine.ioport().type_group(field->type(), field->player()) != IPG_INVALID)) + && (this_player == player) + && (this_inputclass == inputclass)) + { + /* store this InputPort/RECT combo in our list. we do not + * necessarily want to add it yet because we the INI might + * want to reorder the tab order */ + if (portslot_count < max_portslots) + { + portslots[portslot_count].field = field; + portslot_count++; + } + } + } + } + + /* finally add the portselects to the dialog */ + if (portslot_count > max_portslots) + portslot_count = max_portslots; + + /* No keyboard? Just exit */ + if (!portslot_count) + goto done; + + for (i = 0; i < portslot_count; i++) + { + if (portslots[i].field) + { + if (win_dialog_add_portselect(dlg, portslots[i].field)) + goto done; + } + } + + /* ...and now add OK/Cancel */ + if (win_dialog_add_standard_buttons(dlg)) + goto done; + + /* ...and finally display the dialog */ + win_dialog_runmodal(machine, wnd, dlg); + +done: + if (dlg) + win_dialog_exit(dlg); +} + + + +//============================================================ +// customise_joystick +//============================================================ + +static void customise_joystick(running_machine &machine, HWND wnd, int joystick_num) +{ + customise_input(machine, wnd, "Joysticks/Controllers", joystick_num, INPUT_CLASS_CONTROLLER); +} + + + +//============================================================ +// customise_keyboard +//============================================================ + +static void customise_keyboard(running_machine &machine, HWND wnd) +{ + customise_input(machine, wnd, "Emulated Keyboard", 0, INPUT_CLASS_KEYBOARD); +} + + + +//============================================================ +// check_for_miscinput +// (to decide if "Miscellaneous Inputs" menu item should +// show or not). +// We do this here because the core check has been broken +// for years (always returns false). +//============================================================ + +static bool check_for_miscinput(running_machine &machine) +{ + ioport_port *port; + ioport_field *field; + int this_inputclass = 0; + + for (port = machine.ioport().ports().first(); port; port = port->next()) + { + for (field = port->fields().first(); field; field = field->next()) + { + const char *name = field->name(); + this_inputclass = field->type_class(); + + /* add if we match the group and we have a valid name */ + if ((name) + && (field->enabled()) + && ((field->type() == IPT_OTHER && field->name()) || (machine.ioport().type_group(field->type(), field->player()) != IPG_INVALID)) + && (this_inputclass != INPUT_CLASS_CONTROLLER) + && (this_inputclass != INPUT_CLASS_KEYBOARD)) + { + return TRUE; + } + } + } + return FALSE; +} + + + +//============================================================ +// customise_miscinput +//============================================================ + +static void customise_miscinput(running_machine &machine, HWND wnd) +{ + dialog_box *dlg; + ioport_port *port; + ioport_field *field; + int this_inputclass = 0; + int portslot_count = 0, i = 0; + const int max_portslots = 256; + const char *title = "Miscellaneous Inputs"; + + struct + { + ioport_field *field; + } portslots[max_portslots]; + + /* create the dialog */ + dlg = win_dialog_init(title, NULL); + if (!dlg) + return; + + for (port = machine.ioport().ports().first(); port; port = port->next()) + { + for (field = port->fields().first(); field; field = field->next()) + { + const char *name = field->name(); + this_inputclass = field->type_class(); + + /* add if we match the group and we have a valid name */ + if ((name) + && (field->enabled()) + && ((field->type() == IPT_OTHER && field->name()) || (machine.ioport().type_group(field->type(), field->player()) != IPG_INVALID)) + && (this_inputclass != INPUT_CLASS_CONTROLLER) + && (this_inputclass != INPUT_CLASS_KEYBOARD)) + { + /* store this InputPort/RECT combo in our list. we do not + * necessarily want to add it yet because we the INI might + * want to reorder the tab order */ + if (portslot_count < max_portslots) + { + portslots[portslot_count].field = field; + portslot_count++; + } + } + } + } + + /* finally add the portselects to the dialog */ + if (portslot_count > max_portslots) + portslot_count = max_portslots; + + for (i = 0; i < portslot_count; i++) + { + if (portslots[i].field) + { + if (win_dialog_add_portselect(dlg, portslots[i].field)) + goto done; + } + } + + /* ...and now add OK/Cancel */ + if (win_dialog_add_standard_buttons(dlg)) + goto done; + + /* ...and finally display the dialog */ + win_dialog_runmodal(machine, wnd, dlg); + +done: + if (dlg) + win_dialog_exit(dlg); +} + + + +//============================================================ +// storeval_inputport +//============================================================ + +static void storeval_inputport(void *param, int val) +{ + ioport_field *field = (ioport_field *) param; + ioport_field::user_settings settings; + + field->get_user_settings(settings); + settings.value = (ioport_value) val; + field->set_user_settings(settings); +} + + + +//============================================================ +// customise_switches +//============================================================ + +static void customise_switches(running_machine &machine, HWND wnd, const char* title_string, UINT32 ipt_name) +{ + dialog_box *dlg; + ioport_port *port; + ioport_field *field; + ioport_setting *setting; + const char *switch_name = NULL; + ioport_field::user_settings settings; + + UINT32 type = 0; + + dlg = win_dialog_init(title_string, NULL); + if (!dlg) + return; + + for (port = machine.ioport().ports().first(); port; port = port->next()) + { + for (field = port->fields().first(); field; field = field->next()) + { + type = field->type(); + + if (type == ipt_name) + { + switch_name = field->name(); + + field->get_user_settings(settings); + + if (win_dialog_add_combobox(dlg, switch_name, settings.value, storeval_inputport, (void *) field)) + goto done; + + for (setting = field->settings().first(); setting; setting = setting->next()) + { + if (win_dialog_add_combobox_item(dlg, setting->name(), setting->value())) + goto done; + } + } + } + } + + if (win_dialog_add_standard_buttons(dlg)) + goto done; + + win_dialog_runmodal(machine, wnd, dlg); + +done: + if (dlg) + win_dialog_exit(dlg); +} + + + +//============================================================ +// customise_dipswitches +//============================================================ + +static void customise_dipswitches(running_machine &machine, HWND wnd) +{ + customise_switches(machine, wnd, "Dip Switches", IPT_DIPSWITCH); +} + + + +//============================================================ +// customise_configuration +//============================================================ + +static void customise_configuration(running_machine &machine, HWND wnd) +{ + customise_switches(machine, wnd, "Driver Configuration", IPT_CONFIG); +} + + + +//============================================================ +// customise_analogcontrols +//============================================================ + +enum +{ + ANALOG_ITEM_KEYSPEED, + ANALOG_ITEM_CENTERSPEED, + ANALOG_ITEM_REVERSE, + ANALOG_ITEM_SENSITIVITY +}; + + + +static void store_analogitem(void *param, int val, int selected_item) +{ + ioport_field *field = (ioport_field *) param; + ioport_field::user_settings settings; + + field->get_user_settings(settings); + + switch(selected_item) + { + case ANALOG_ITEM_KEYSPEED: settings.delta = val; break; + case ANALOG_ITEM_CENTERSPEED: settings.centerdelta = val; break; + case ANALOG_ITEM_REVERSE: settings.reverse = val; break; + case ANALOG_ITEM_SENSITIVITY: settings.sensitivity = val; break; + } + field->set_user_settings(settings); +} + + + +static void store_delta(void *param, int val) +{ + store_analogitem(param, val, ANALOG_ITEM_KEYSPEED); +} + + + +static void store_centerdelta(void *param, int val) +{ + store_analogitem(param, val, ANALOG_ITEM_CENTERSPEED); +} + + + +static void store_reverse(void *param, int val) +{ + store_analogitem(param, val, ANALOG_ITEM_REVERSE); +} + + + +static void store_sensitivity(void *param, int val) +{ + store_analogitem(param, val, ANALOG_ITEM_SENSITIVITY); +} + + + +static int port_type_is_analog(int type) +{ + return (type > IPT_ANALOG_FIRST && type < IPT_ANALOG_LAST); +} + + + +static void customise_analogcontrols(running_machine &machine, HWND wnd) +{ + dialog_box *dlg; + ioport_port *port; + ioport_field *field; + ioport_field::user_settings settings; + const char *name; + char buf[255]; + static const struct dialog_layout layout = { 120, 52 }; + + dlg = win_dialog_init("Analog Controls", &layout); + if (!dlg) + return; + + for (port = machine.ioport().ports().first(); port; port = port->next()) + { + for (field = port->fields().first(); field; field = field->next()) + { + if (port_type_is_analog(field->type())) + { + field->get_user_settings(settings); + name = field->name(); + + _snprintf(buf, ARRAY_LENGTH(buf), + "%s %s", name, "Digital Speed"); + if (win_dialog_add_adjuster(dlg, buf, settings.delta, 1, 255, FALSE, store_delta, (void *) field)) + goto done; + + _snprintf(buf, ARRAY_LENGTH(buf), + "%s %s", name, "Autocenter Speed"); + if (win_dialog_add_adjuster(dlg, buf, settings.centerdelta, 1, 255, FALSE, store_centerdelta, (void *) field)) + goto done; + + _snprintf(buf, ARRAY_LENGTH(buf), + "%s %s", name, "Reverse"); + if (win_dialog_add_combobox(dlg, buf, settings.reverse ? 1 : 0, store_reverse, (void *) field)) + goto done; + if (win_dialog_add_combobox_item(dlg, "Off", 0)) + goto done; + if (win_dialog_add_combobox_item(dlg, "On", 1)) + goto done; + + _snprintf(buf, ARRAY_LENGTH(buf), + "%s %s", name, "Sensitivity"); + if (win_dialog_add_adjuster(dlg, buf, settings.sensitivity, 1, 255, TRUE, store_sensitivity, (void *) field)) + goto done; + } + } + } + + if (win_dialog_add_standard_buttons(dlg)) + goto done; + + win_dialog_runmodal(machine, wnd, dlg); + +done: + if (dlg) + win_dialog_exit(dlg); +} + + +//============================================================ +// win_dirname +//============================================================ + +static char *win_dirname(const char *filename) +{ + char *dirname; + char *c; + + // NULL begets NULL + if (!filename) + return NULL; + + // allocate space for it + dirname = (char*)malloc(strlen(filename) + 1); + if (!dirname) + return NULL; + + // copy in the name + strcpy(dirname, filename); + + // search backward for a slash or a colon + for (c = dirname + strlen(dirname) - 1; c >= dirname; c--) + if (*c == '\\' || *c == '/' || *c == ':') + { + // found it: NULL terminate and return + *(c + 1) = 0; + return dirname; + } + + // otherwise, return an empty string + dirname[0] = 0; + return dirname; +} + + +//============================================================ +// state_dialog +//============================================================ + +static void state_dialog(HWND wnd, win_file_dialog_type dlgtype, + DWORD fileproc_flags, bool is_load, + running_machine &machine) +{ + win_open_file_name ofn; + char *dir = NULL; + int result = 0; + + if (state_filename[0]) + dir = win_dirname(state_filename); + + memset(&ofn, 0, sizeof(ofn)); + ofn.type = dlgtype; + ofn.owner = wnd; + ofn.flags = OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | fileproc_flags; + ofn.filter = "State Files (*.sta)|*.sta|All Files (*.*)|*.*"; + ofn.initial_directory = dir; + + if (!core_filename_ends_with(ofn.filename, "sta")) + snprintf(ofn.filename, ARRAY_LENGTH(ofn.filename), "%s.sta", state_filename); + else + snprintf(ofn.filename, ARRAY_LENGTH(ofn.filename), "%s", state_filename); + + result = win_get_file_name_dialog(&ofn); + + if (result) + { + // the core doesn't add the extension if it's an absolute path + if (osd_is_absolute_path(ofn.filename) && !core_filename_ends_with(ofn.filename, "sta")) + snprintf(state_filename, ARRAY_LENGTH(state_filename), "%s.sta", ofn.filename); + else + snprintf(state_filename, ARRAY_LENGTH(state_filename), "%s", ofn.filename); + + if (is_load) + machine.schedule_load(state_filename); + else + machine.schedule_save(state_filename); + } + + if (dir) + free(dir); +} + + + +static void state_load(HWND wnd, running_machine &machine) +{ + state_dialog(wnd, WIN_FILE_DIALOG_OPEN, OFN_FILEMUSTEXIST, TRUE, machine); +} + +static void state_save_as(HWND wnd, running_machine &machine) +{ + state_dialog(wnd, WIN_FILE_DIALOG_SAVE, OFN_OVERWRITEPROMPT, FALSE, machine); +} + +static void state_save(running_machine &machine) +{ + machine.schedule_save(state_filename); +} + + + +//============================================================ +// format_combo_changed +//============================================================ + +static void format_combo_changed(dialog_box *dialog, HWND dlgwnd, NMHDR *notification, void *changed_param) +{ + HWND wnd; + int format_combo_val = 0; + device_image_interface *dev; + const option_guide *guide; + const char *optspec; + struct file_dialog_params *params; + int has_option = 0; + TCHAR t_buf1[128]; + char *utf8_buf1; + + params = (struct file_dialog_params *) changed_param; + + // locate the format control + format_combo_val = notification ? (((OFNOTIFY *) notification)->lpOFN->nFilterIndex - 1) : 0; + if (format_combo_val < 0) + format_combo_val = 0; + *(params->create_format) = format_combo_val; + + // compute our parameters + dev = params->dev; + guide = dev->device_get_creation_option_guide(); + optspec =dev->device_get_indexed_creatable_format(format_combo_val)->optspec(); + + // set the default extension + CommDlg_OpenSave_SetDefExt(GetParent(dlgwnd), + (const char*)dev->device_get_indexed_creatable_format(format_combo_val)->extensions()); + + // enumerate through all of the child windows + wnd = NULL; + while((wnd = FindWindowEx(dlgwnd, wnd, NULL, NULL))) + { + // get label text, removing trailing NULL + GetWindowText(wnd, t_buf1, ARRAY_LENGTH(t_buf1)); + utf8_buf1 = utf8_from_tstring(t_buf1); + assert(utf8_buf1[strlen(utf8_buf1)-1] == ':'); + utf8_buf1[strlen(utf8_buf1)-1] = '\0'; + + // find guide entry + while(guide->option_type && strcmp(utf8_buf1, guide->display_name)) + guide++; + + wnd = GetNextWindow(wnd, GW_HWNDNEXT); + if (wnd && guide) + { + // we now have the handle to the window, and the guide entry + has_option = option_resolution_contains(optspec, guide->parameter); + + SendMessage(wnd, CB_GETLBTEXT, SendMessage(wnd, CB_GETCURSEL, 0, 0), (LPARAM) t_buf1); + SendMessage(wnd, CB_RESETCONTENT, 0, 0); + + win_prepare_option_control(wnd, + has_option ? guide : NULL, + has_option ? optspec : NULL); + } + osd_free(utf8_buf1); + } +} + + + +//============================================================ +// storeval_option_resolution +//============================================================ + +struct storeval_optres_params +{ + struct file_dialog_params *fdparams; + const option_guide *guide_entry; +}; + +static void storeval_option_resolution(void *storeval_param, int val) +{ + option_resolution *resolution; + struct storeval_optres_params *params; + device_image_interface *dev; + char buf[16]; + + params = (struct storeval_optres_params *) storeval_param; + dev = params->fdparams->dev; + + // create the resolution, if necessary + resolution = *(params->fdparams->create_args); + if (!resolution) + { + const option_guide *optguide = dev->device_get_creation_option_guide(); + const image_device_format *format = dev->device_get_indexed_creatable_format(*(params->fdparams->create_format)); + + resolution = option_resolution_create(optguide, format->optspec()); + if (!resolution) + return; + *(params->fdparams->create_args) = resolution; + } + + snprintf(buf, ARRAY_LENGTH(buf), "%d", val); + option_resolution_add_param(resolution, params->guide_entry->identifier, buf); +} + + + +//============================================================ +// build_option_dialog +//============================================================ + +static dialog_box *build_option_dialog(device_image_interface *dev, char *filter, size_t filter_len, int *create_format, option_resolution **create_args) +{ + dialog_box *dialog; + const option_guide *guide_entry; + int found = 0, pos = 0; + char buf[256]; + struct file_dialog_params *params; + struct storeval_optres_params *storeval_params; + static const struct dialog_layout filedialog_layout = { 44, 220 }; + const image_device_format *format; + + // make the filter + pos = 0; + for (format = dev->formatlist().first(); format; format = format->next()) + pos += add_filter_entry(filter + pos, filter_len - pos, format->description(), format->extensions()); + + // create the dialog + dialog = win_dialog_init(NULL, &filedialog_layout); + if (!dialog) + goto error; + + // allocate the params + params = global_alloc(file_dialog_params); + if (!params) + goto error; + params->dev = dev; + params->create_format = create_format; + params->create_args = create_args; + + // set the notify handler; so that we get notified when the format dialog changed + if (win_dialog_add_notification(dialog, CDN_TYPECHANGE, format_combo_changed, params)) + goto error; + + // loop through the entries + for (guide_entry = dev->device_get_creation_option_guide(); guide_entry->option_type != OPTIONTYPE_END; guide_entry++) + { + // make sure that this entry is present on at least one option specification + found = FALSE; + for (format = dev->formatlist().first(); format; format = format->next()) + { + if (option_resolution_contains(format->optspec(), guide_entry->parameter)) + { + found = TRUE; + break; + } + } + + if (found) + { + storeval_params = global_alloc(storeval_optres_params); + if (!storeval_params) + goto error; + storeval_params->fdparams = params; + storeval_params->guide_entry = guide_entry; + + // this option is present on at least one of the specs + switch(guide_entry->option_type) + { + case OPTIONTYPE_INT: + snprintf(buf, ARRAY_LENGTH(buf), "%s:", guide_entry->display_name); + if (win_dialog_add_combobox(dialog, buf, 0, storeval_option_resolution, storeval_params)) + goto error; + break; + + default: + break; + } + } + } + + return dialog; + +error: + if (dialog) + win_dialog_exit(dialog); + return NULL; +} + + + +//============================================================ +// copy_extension_list +//============================================================ + +static int copy_extension_list(char *dest, size_t dest_len, const char *extensions) +{ + const char *s; + int pos = 0; + + // our extension lists are comma delimited; Win32 expects to see lists + // delimited by semicolons + s = extensions; + while(*s) + { + // append a semicolon if not at the beginning + if (s != extensions) + pos += snprintf(&dest[pos], dest_len - pos, ";"); + + // append ".*" + pos += snprintf(&dest[pos], dest_len - pos, "*."); + + // append the file extension + while(*s && (*s != ',')) + { + pos += snprintf(&dest[pos], dest_len - pos, "%c", *s); + s++; + } + + // if we found a comma, advance + while(*s == ',') + s++; + } + return pos; +} + + + +//============================================================ +// add_filter_entry +//============================================================ + +static int add_filter_entry(char *dest, size_t dest_len, const char *description, const char *extensions) +{ + int pos = 0; + + // add the description + pos += snprintf(&dest[pos], dest_len - pos, "%s (", description); + + // add the extensions to the description + pos += copy_extension_list(&dest[pos], dest_len - pos, extensions); + + // add the trailing rparen and '|' character + pos += snprintf(&dest[pos], dest_len - pos, ")|"); + + // now add the extension list itself + pos += copy_extension_list(&dest[pos], dest_len - pos, extensions); + + // append a '|' + pos += snprintf(&dest[pos], dest_len - pos, "|"); + + return pos; +} + + + +//============================================================ +// build_generic_filter +//============================================================ + +static void build_generic_filter(device_image_interface *dev, bool is_save, char *filter, size_t filter_len) +{ + char *s; + + const char *file_extension; + + /* copy the string */ + file_extension = dev->file_extensions(); + const char* s2 = ",zip,7z"; // Add ZIP extension as a default. + char *result = (LPSTR) alloca(strlen(file_extension)+strlen(s2)+1); + strcpy(result, file_extension); + if (!is_save) + strcat(result, s2); + + // start writing the filter + s = filter; + + // common image types + s += add_filter_entry(filter, filter_len, "Common image types", result); + //free(result); + + // all files + s += sprintf(s, "All files (*.*)|*.*|"); + + // compressed + if (!is_save) + s += sprintf(s, "Compressed Images (*.zip;*.7z)|*.zip;*.7z|"); + + *(s++) = '\0'; +} + + + +//============================================================ +// change_device +//============================================================ + +static void change_device(HWND wnd, device_image_interface *image, bool is_save) +{ + dialog_box *dialog = NULL; + char filter[2048]; + char filename[MAX_PATH]; + const char *initial_dir; + BOOL result = 0; + int create_format = 0; + option_resolution *create_args = NULL; + + // sanity check + assert(image); + + // get the file + if (image->exists()) + { + const char *imgname; + imgname = image->basename(); + snprintf(filename, ARRAY_LENGTH(filename), "%s", imgname); + } + else + filename[0] = '\0'; + + // get the working directory, but if it is ".", then use the one specified in comments_path + char *working = 0; + std::string dst; + osd_get_full_path(dst,"."); // turn local directory into full path + initial_dir = image->working_directory(); // get working directory from diimage.c + // if . use comments_dir + if (strcmp(dst.c_str(), initial_dir) == 0) // same? + initial_dir = software_dir; + + // remove any trailing backslash + working = core_strdup(initial_dir); + int temp = strlen(working) - 1; + if (temp > 2) + if (working[temp] == '\\') + { + working[temp] = '\0'; + initial_dir = working; + } + +// NOTE: the working directory can come from the .cfg file. If it's wrong delete the cfg. +//printf("%s = %s = %s = %s\n",dst,working,initial_dir,software_dir); + // add custom dialog elements, if appropriate + if (is_save + && (image->device_get_creation_option_guide()) + && (image->formatlist().first())) + { + dialog = build_option_dialog(image, filter, ARRAY_LENGTH(filter), &create_format, &create_args); + if (!dialog) + goto done; + } + else + // build a normal filter + build_generic_filter(image, is_save, filter, ARRAY_LENGTH(filter)); + + // display the dialog + result = win_file_dialog(image->device().machine(), wnd, is_save ? WIN_FILE_DIALOG_SAVE : WIN_FILE_DIALOG_OPEN, + dialog, filter, initial_dir, filename, ARRAY_LENGTH(filename)); + if (result) + { + // mount the image + if (is_save) + (image_error_t)image->create(filename, image->device_get_indexed_creatable_format(create_format), create_args); + else + (image_error_t)image->load( filename); + + // no need to check the returnvalue and show a messagebox anymore. + // a UI message will now be generated by the image code + } + +done: + if (dialog) + win_dialog_exit(dialog); + if (create_args) + option_resolution_close(create_args); +} + + + +//============================================================ +// pause +//============================================================ + +static void pause(running_machine &machine) +{ + if (!winwindow_ui_is_paused(machine)) + machine.pause(); + else + machine.resume(); +} + + + +//============================================================ +// get_menu_item_string +//============================================================ + +static BOOL get_menu_item_string(HMENU menu, UINT item, BOOL by_position, HMENU *sub_menu, LPTSTR buffer, size_t buffer_len) +{ + MENUITEMINFO mii; + + // clear out results + memset(buffer, '\0', sizeof(*buffer) * buffer_len); + if (sub_menu) + *sub_menu = NULL; + + // prepare MENUITEMINFO structure + memset(&mii, 0, sizeof(mii)); + mii.cbSize = sizeof(mii); + mii.fMask = MIIM_TYPE | (sub_menu ? MIIM_SUBMENU : 0); + mii.dwTypeData = buffer; + mii.cch = buffer_len; + + // call GetMenuItemInfo() + if (!GetMenuItemInfo(menu, item, by_position, &mii)) + return FALSE; + + // return results + if (sub_menu) + *sub_menu = mii.hSubMenu; + if (mii.fType == MFT_SEPARATOR) + _sntprintf(buffer, buffer_len, TEXT("-")); + return TRUE; +} + + + +//============================================================ +// find_sub_menu +//============================================================ + +static HMENU find_sub_menu(HMENU menu, const char *menutext, bool create_sub_menu) +{ + TCHAR buf[128]; + HMENU sub_menu; + + while(*menutext) + { + TCHAR *t_menutext = tstring_from_utf8(menutext); + + int i = -1; + do + { + if (!get_menu_item_string(menu, ++i, TRUE, &sub_menu, buf, ARRAY_LENGTH(buf))) + { + osd_free(t_menutext); + return NULL; + } + } + while(_tcscmp(t_menutext, buf)); + + osd_free(t_menutext); + + if (!sub_menu && create_sub_menu) + { + MENUITEMINFO mii; + memset(&mii, 0, sizeof(mii)); + mii.cbSize = sizeof(mii); + mii.fMask = MIIM_SUBMENU; + mii.hSubMenu = CreateMenu(); + if (!SetMenuItemInfo(menu, i, TRUE, &mii)) + { + i = GetLastError(); + return NULL; + } + sub_menu = mii.hSubMenu; + } + menu = sub_menu; + if (!menu) + return NULL; + menutext += strlen(menutext) + 1; + } + return menu; +} + + + +//============================================================ +// set_command_state +//============================================================ + +static void set_command_state(HMENU menu_bar, UINT command, UINT state) +{ + BOOL result = 0; + + MENUITEMINFO mii; + + memset(&mii, 0, sizeof(mii)); + mii.cbSize = sizeof(mii); + mii.fMask = MIIM_STATE; + mii.fState = state; + result = SetMenuItemInfo(menu_bar, command, FALSE, &mii); + result++; +} + + + + +//============================================================ +// remove_menu_items +//============================================================ + +static void remove_menu_items(HMENU menu) +{ + while(RemoveMenu(menu, 0, MF_BYPOSITION)) + ; +} + + + +//============================================================ +// setup_joystick_menu +//============================================================ + +static void setup_joystick_menu(running_machine &machine, HMENU menu_bar) +{ + int joystick_count = 0; + HMENU joystick_menu; + int i = 0; + char buf[256]; + int child_count = 0; + + joystick_menu = find_sub_menu(menu_bar, "&Options\0&Joysticks\0", TRUE); + if (!joystick_menu) + return; + + // set up joystick menu + joystick_count = machine.ioport().count_players(); + if (joystick_count > 0) + { + for (i = 0; i < joystick_count; i++) + { + snprintf(buf, ARRAY_LENGTH(buf), "Joystick %i", i + 1); + win_append_menu_utf8(joystick_menu, MF_STRING, ID_JOYSTICK_0 + i, buf); + child_count++; + } + } + + // last but not least, enable the joystick menu (or not) + set_command_state(menu_bar, ID_OPTIONS_JOYSTICKS, child_count ? MFS_ENABLED : MFS_GRAYED); +} + + + +//============================================================ +// is_windowed +//============================================================ + +static int is_windowed(void) +{ + return video_config.windowed; +} + + + +//============================================================ +// frameskip_level_count +//============================================================ + +static int frameskip_level_count(running_machine &machine) +{ + static int count = -1; + + if (count < 0) + { + int frameskip_max = 10; + count = frameskip_max + 1; + } + return count; +} + + + +//============================================================ +// prepare_menus +//============================================================ + +static void prepare_menus(HWND wnd) +{ + int i = 0; + char buf[MAX_PATH]; + TCHAR t_buf[MAX_PATH]; + const char *s; + HMENU menu_bar; + HMENU video_menu; + HMENU device_menu; + HMENU sub_menu; + UINT_PTR new_item; + UINT flags_for_exists = 0; + UINT flags_for_writing = 0; + bool has_config = 0, has_dipswitch = 0, has_keyboard = 0, has_misc = 0, has_analog = 0; + ioport_port *port; + ioport_field *field; + int frameskip = 0; + int orientation = 0; + int speed = 0; + LONG_PTR ptr = GetWindowLongPtr(wnd, GWLP_USERDATA); + win_window_info *window = (win_window_info *)ptr; + const char *view_name; + int view_index = 0; + ioport_field::user_settings settings; + + menu_bar = GetMenu(wnd); + if (!menu_bar) + return; + + if (!joystick_menu_setup) + { + setup_joystick_menu(window->machine(), menu_bar); + joystick_menu_setup = 1; + } + + frameskip = window->machine().video().frameskip(); + + orientation = window->m_target->orientation(); + + speed = window->machine().video().throttled() ? window->machine().video().speed_factor() : 0; + + has_config = window->machine().ioport().type_class_present(INPUT_CLASS_CONFIG); + has_dipswitch = window->machine().ioport().type_class_present(INPUT_CLASS_DIPSWITCH); + has_keyboard = window->machine().ioport().type_class_present(INPUT_CLASS_KEYBOARD); + has_misc = check_for_miscinput(window->machine()); + + has_analog = 0; + for (port = window->machine().ioport().ports().first(); port; port = port->next()) + { + for (field = port->fields().first(); field; field = field->next()) + { + if (port_type_is_analog(field->type())) + { + has_analog = 1; + break; + } + } + } + + if (window->machine().system().flags & MACHINE_SUPPORTS_SAVE) + { + set_command_state(menu_bar, ID_FILE_LOADSTATE_NEWUI, MFS_ENABLED); + set_command_state(menu_bar, ID_FILE_SAVESTATE_AS, MFS_ENABLED); + set_command_state(menu_bar, ID_FILE_SAVESTATE, state_filename[0] != '\0' ? MFS_ENABLED : MFS_GRAYED); + } + else + { + set_command_state(menu_bar, ID_FILE_LOADSTATE_NEWUI, MFS_GRAYED); + set_command_state(menu_bar, ID_FILE_SAVESTATE_AS, MFS_GRAYED); + set_command_state(menu_bar, ID_FILE_SAVESTATE, MFS_GRAYED); + } + + set_command_state(menu_bar, ID_EDIT_PASTE, window->machine().ioport().natkeyboard().can_post() ? MFS_ENABLED : MFS_GRAYED); + + set_command_state(menu_bar, ID_OPTIONS_PAUSE, winwindow_ui_is_paused(window->machine()) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_OPTIONS_CONFIGURATION, has_config ? MFS_ENABLED : MFS_GRAYED); + set_command_state(menu_bar, ID_OPTIONS_DIPSWITCHES, has_dipswitch ? MFS_ENABLED : MFS_GRAYED); + set_command_state(menu_bar, ID_OPTIONS_MISCINPUT, has_misc ? MFS_ENABLED : MFS_GRAYED); + set_command_state(menu_bar, ID_OPTIONS_ANALOGCONTROLS, has_analog ? MFS_ENABLED : MFS_GRAYED); + set_command_state(menu_bar, ID_FILE_FULLSCREEN, !is_windowed() ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_OPTIONS_TOGGLEFPS, mame_machine_manager::instance()->ui().show_fps() ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_FILE_UIACTIVE, window->machine().ioport().has_keyboard() ? (window->machine().ui_active() ? MFS_CHECKED : MFS_ENABLED): MFS_CHECKED | MFS_GRAYED); + + set_command_state(menu_bar, ID_KEYBOARD_EMULATED, (has_keyboard) ? (!window->machine().ui().use_natural_keyboard() ? MFS_CHECKED : MFS_ENABLED): MFS_GRAYED); + set_command_state(menu_bar, ID_KEYBOARD_NATURAL, (has_keyboard && window->machine().ioport().natkeyboard().can_post()) ? (window->machine().ui().use_natural_keyboard() ? MFS_CHECKED : MFS_ENABLED): MFS_GRAYED); + set_command_state(menu_bar, ID_KEYBOARD_CUSTOMIZE, has_keyboard ? MFS_ENABLED : MFS_GRAYED); + + set_command_state(menu_bar, ID_VIDEO_ROTATE_0, (orientation == ROT0) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_VIDEO_ROTATE_90, (orientation == ROT90) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_VIDEO_ROTATE_180, (orientation == ROT180) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_VIDEO_ROTATE_270, (orientation == ROT270) ? MFS_CHECKED : MFS_ENABLED); + + set_command_state(menu_bar, ID_THROTTLE_50, (speed == 500) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_THROTTLE_100, (speed == 1000) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_THROTTLE_200, (speed == 2000) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_THROTTLE_500, (speed == 5000) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_THROTTLE_1000, (speed == 10000) ? MFS_CHECKED : MFS_ENABLED); + set_command_state(menu_bar, ID_THROTTLE_UNTHROTTLED, (speed == 0) ? MFS_CHECKED : MFS_ENABLED); + + set_command_state(menu_bar, ID_FRAMESKIP_AUTO, (frameskip < 0) ? MFS_CHECKED : MFS_ENABLED); + for (i = 0; i < frameskip_level_count(window->machine()); i++) + set_command_state(menu_bar, ID_FRAMESKIP_0 + i, (frameskip == i) ? MFS_CHECKED : MFS_ENABLED); + + // set up screens in video menu + video_menu = find_sub_menu(menu_bar, "&Options\0&Video\0", FALSE); + do + { + get_menu_item_string(video_menu, 0, TRUE, NULL, t_buf, ARRAY_LENGTH(t_buf)); + if (_tcscmp(t_buf, TEXT("-"))) + RemoveMenu(video_menu, 0, MF_BYPOSITION); + } + while(_tcscmp(t_buf, TEXT("-"))); + i = 0; + view_index = window->m_target->view(); + while((view_name = window->m_target->view_name(i))) + { + TCHAR *t_view_name = tstring_from_utf8(view_name); + InsertMenu(video_menu, i, MF_BYPOSITION | (i == view_index ? MF_CHECKED : 0), + ID_VIDEO_VIEW_0 + i, t_view_name); + osd_free(t_view_name); + i++; + } + + // set up device menu; first remove all existing menu items + device_menu = find_sub_menu(menu_bar, "&Media\0", FALSE); + remove_menu_items(device_menu); + + int cnt = 0; + // then set up the actual devices + for (device_image_interface &img : image_interface_iterator(window->machine().root_device())) + { + new_item = ID_DEVICE_0 + (cnt * DEVOPTION_MAX); + flags_for_exists = MF_STRING; + + if (!img.exists()) + flags_for_exists |= MF_GRAYED; + + flags_for_writing = flags_for_exists; + if (img.is_readonly()) + flags_for_writing |= MF_GRAYED; + + sub_menu = CreateMenu(); + win_append_menu_utf8(sub_menu, MF_STRING, new_item + DEVOPTION_OPEN, "Mount File..."); + + if (img.is_creatable()) + win_append_menu_utf8(sub_menu, MF_STRING, new_item + DEVOPTION_CREATE, "Create..."); + + win_append_menu_utf8(sub_menu, flags_for_exists, new_item + DEVOPTION_CLOSE, "Unmount"); + + if (img.device().type() == CASSETTE) + { + cassette_state state; + state = (cassette_state)(img.exists() ? (dynamic_cast<cassette_image_device*>(&img.device())->get_state() & CASSETTE_MASK_UISTATE) : CASSETTE_STOPPED); + win_append_menu_utf8(sub_menu, MF_SEPARATOR, 0, NULL); + win_append_menu_utf8(sub_menu, flags_for_exists | ((state == CASSETTE_STOPPED) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_STOPPAUSE, "Pause/Stop"); + win_append_menu_utf8(sub_menu, flags_for_exists | ((state == CASSETTE_PLAY) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_PLAY, "Play"); + win_append_menu_utf8(sub_menu, flags_for_writing | ((state == CASSETTE_RECORD) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_RECORD, "Record"); + win_append_menu_utf8(sub_menu, flags_for_exists, new_item + DEVOPTION_CASSETTE_REWIND, "Rewind"); + win_append_menu_utf8(sub_menu, flags_for_exists, new_item + DEVOPTION_CASSETTE_FASTFORWARD, "Fast Forward"); + } + s = img.exists() ? img.filename() : "[empty slot]"; + + snprintf(buf, ARRAY_LENGTH(buf), "%s: %s", img.device().name(), s); + win_append_menu_utf8(device_menu, MF_POPUP, (UINT_PTR)sub_menu, buf); + + cnt++; + } +} + + + +//============================================================ +// set_speed +//============================================================ + +static void set_speed(running_machine &machine, int speed) +{ + std::string error_string; + if (speed != 0) + { + machine.video().set_speed_factor(speed); + machine.options().emu_options::set_value(OPTION_SPEED, speed / 1000, OPTION_PRIORITY_CMDLINE, error_string); + } + + machine.video().set_throttled(speed != 0); + machine.options().emu_options::set_value(OPTION_THROTTLE, (speed != 0), OPTION_PRIORITY_CMDLINE, error_string); +} + + + +//============================================================ +// win_toggle_menubar +//============================================================ + +static void win_toggle_menubar(void) +{ + LONG width_diff = 0; + LONG height_diff = 0; + DWORD style = 0, exstyle = 0; + HWND hwnd = 0; + HMENU menu = 0; + + for (auto window : win_window_list) + { + RECT before_rect = { 100, 100, 200, 200 }; + RECT after_rect = { 100, 100, 200, 200 }; + + hwnd = window->platform_window<HWND>(); + + // get current menu + menu = GetMenu(hwnd); + + // get before rect + style = GetWindowLong(hwnd, GWL_STYLE); + exstyle = GetWindowLong(hwnd, GWL_EXSTYLE); + AdjustWindowRectEx(&before_rect, style, menu ? TRUE : FALSE, exstyle); + + // toggle the menu + if (menu) + { + SetProp(hwnd, TEXT("menu"), (HANDLE) menu); + menu = NULL; + } + else + menu = (HMENU) GetProp(hwnd, TEXT("menu")); + + SetMenu(hwnd, menu); + + // get after rect, and width/height diff + AdjustWindowRectEx(&after_rect, style, menu ? TRUE : FALSE, exstyle); + width_diff = (after_rect.right - after_rect.left) - (before_rect.right - before_rect.left); + height_diff = (after_rect.bottom - after_rect.top) - (before_rect.bottom - before_rect.top); + + if (is_windowed()) + { + RECT window_rect; + GetWindowRect(hwnd, &window_rect); + SetWindowPos(hwnd, HWND_TOP, 0, 0, + window_rect.right - window_rect.left + width_diff, + window_rect.bottom - window_rect.top + height_diff, + SWP_NOMOVE | SWP_NOZORDER); + } + + RedrawWindow(hwnd, NULL, NULL, 0); + } +} + + + +//============================================================ +// device_command +//============================================================ + +static void device_command(HWND wnd, device_image_interface *img, int devoption) +{ + switch(devoption) + { + case DEVOPTION_OPEN: + change_device(wnd, img, FALSE); + break; + + case DEVOPTION_CREATE: + change_device(wnd, img, TRUE); + break; + + case DEVOPTION_CLOSE: + img->unload(); + break; + + default: + if (img->device().type() == CASSETTE) + { + cassette_image_device* cassette = dynamic_cast<cassette_image_device*>(&img->device()); + + switch(devoption) + { + case DEVOPTION_CASSETTE_STOPPAUSE: + cassette->change_state(CASSETTE_STOPPED, CASSETTE_MASK_UISTATE); + break; + + case DEVOPTION_CASSETTE_PLAY: + cassette->change_state(CASSETTE_PLAY, CASSETTE_MASK_UISTATE); + break; + + case DEVOPTION_CASSETTE_RECORD: + cassette->change_state(CASSETTE_RECORD, CASSETTE_MASK_UISTATE); + break; + + case DEVOPTION_CASSETTE_REWIND: + cassette->seek(-60.0, SEEK_CUR); + break; + + case DEVOPTION_CASSETTE_FASTFORWARD: + cassette->seek(+60.0, SEEK_CUR); + break; + } + } + break; + } +} + + + +//============================================================ +// help_display +//============================================================ + +static void help_display(HWND wnd, const char *chapter) +{ + typedef HWND (WINAPI *htmlhelpproc)(HWND hwndCaller, LPCTSTR pszFile, UINT uCommand, DWORD_PTR dwData); + static htmlhelpproc htmlhelp; + static DWORD htmlhelp_cookie; + LPCSTR htmlhelp_funcname; + + if (htmlhelp == NULL) + { +#ifdef UNICODE + htmlhelp_funcname = "HtmlHelpW"; +#else + htmlhelp_funcname = "HtmlHelpA"; +#endif + htmlhelp = (htmlhelpproc) GetProcAddress(LoadLibrary(TEXT("hhctrl.ocx")), htmlhelp_funcname); + if (!htmlhelp) + return; + htmlhelp(NULL, NULL, 28 /*HH_INITIALIZE*/, (DWORD_PTR) &htmlhelp_cookie); + } + + // if full screen, turn it off + if (!is_windowed()) + winwindow_toggle_full_screen(); + + TCHAR *t_chapter = tstring_from_utf8(chapter); +// htmlhelp(wnd, t_chapter, 0 /*HH_DISPLAY_TOPIC*/, 0); +// TCHAR *szSite = new TCHAR[100]; +// _tcscpy(szSite, TEXT("http://messui.the-chronicles.org/onlinehelp/")); +// _tcscat(szSite, t_chapter); +// _tcscat(szSite, TEXT(".html")); +// ShellExecute(wnd, TEXT("open"), TEXT("http://www.microsoft.com/directx"), TEXT(""), NULL, SW_SHOWNORMAL); + ShellExecute(wnd, TEXT("open"), t_chapter, TEXT(""), NULL, SW_SHOWNORMAL); + osd_free(t_chapter); +// osd_free(szSite); +} + + + +//============================================================ +// help_about_mess +//============================================================ + +static void help_about_mess(HWND wnd) +{ + //help_display(wnd, "mess.chm::/windows/main.htm"); //doesnt do anything + //help_display(wnd, "mess.chm"); + help_display(wnd, "http://www.mess.org/"); +} + + + +//============================================================ +// help_about_thissystem +//============================================================ + +static void help_about_thissystem(running_machine &machine, HWND wnd) +{ + char buf[100]; +// snprintf(buf, ARRAY_LENGTH(buf), "mess.chm::/sysinfo/%s.htm", machine.system().name); +// snprintf(buf, ARRAY_LENGTH(buf), "http://messui.the-chronicles.org/onlinehelp/%s.html", machine.system().name); + snprintf(buf, ARRAY_LENGTH(buf), "http://www.progettoemma.net/mess/system.php?machine=%s", machine.system().name); + help_display(wnd, buf); +} + + + +//============================================================ +// decode_deviceoption +//============================================================ + +static device_image_interface *decode_deviceoption(running_machine &machine, int command, int *devoption) +{ + command -= ID_DEVICE_0; + int absolute_index = command / DEVOPTION_MAX; + + if (devoption) + *devoption = command % DEVOPTION_MAX; + + image_interface_iterator iter(machine.root_device()); + return iter.byindex(absolute_index); +} + + + +//============================================================ +// set_window_orientation +//============================================================ + +static void set_window_orientation(win_window_info *window, int orientation) +{ + window->m_target->set_orientation(orientation); + if (window->m_target->is_ui_target()) + { + render_container::user_settings settings; + window->machine().render().ui_container().get_user_settings(settings); + settings.m_orientation = orientation; + window->machine().render().ui_container().set_user_settings(settings); + } + window->update(); +} + + + +//============================================================ +// pause_for_command +//============================================================ + +static int pause_for_command(UINT command) +{ + // we really should be more conservative and only pause for commands + // that do dialog stuff + return (command != ID_OPTIONS_PAUSE); +} + + + +//============================================================ +// invoke_command +//============================================================ + +static int invoke_command(HWND wnd, UINT command) +{ + std::string error_string; + int handled = 1; + int dev_command = 0; + device_image_interface *img; + ioport_field *field; + ioport_setting *setting; + LONG_PTR ptr = GetWindowLongPtr(wnd, GWLP_USERDATA); + win_window_info *window = (win_window_info *)ptr; + ioport_field::user_settings settings; + + // pause while invoking certain commands + if (pause_for_command(command)) + winwindow_ui_pause(window->machine(), TRUE); + + switch(command) + { + case ID_FILE_LOADSTATE_NEWUI: + state_load(wnd, window->machine()); + break; + + case ID_FILE_SAVESTATE: + state_save(window->machine()); + break; + + case ID_FILE_SAVESTATE_AS: + state_save_as(wnd, window->machine()); + break; + + case ID_FILE_SAVESCREENSHOT: + window->machine().video().save_active_screen_snapshots(); + break; + + case ID_FILE_UIACTIVE: + window->machine().set_ui_active(!window->machine().ui_active()); + break; + + case ID_FILE_EXIT_NEWUI: + window->machine().schedule_exit(); + break; + + case ID_EDIT_PASTE: + PostMessage(wnd, WM_PASTE, 0, 0); + break; + + case ID_KEYBOARD_NATURAL: + mame_machine_manager::instance()->ui().set_use_natural_keyboard(TRUE); + break; + + case ID_KEYBOARD_EMULATED: + mame_machine_manager::instance()->ui().set_use_natural_keyboard(FALSE); + break; + + case ID_KEYBOARD_CUSTOMIZE: + customise_keyboard(window->machine(), wnd); + break; + + case ID_VIDEO_ROTATE_0: + set_window_orientation(window, ROT0); + break; + + case ID_VIDEO_ROTATE_90: + set_window_orientation(window, ROT90); + break; + + case ID_VIDEO_ROTATE_180: + set_window_orientation(window, ROT180); + break; + + case ID_VIDEO_ROTATE_270: + set_window_orientation(window, ROT270); + break; + + case ID_OPTIONS_PAUSE: + pause(window->machine()); + break; + + case ID_OPTIONS_HARDRESET: + window->machine().schedule_hard_reset(); + break; + + case ID_OPTIONS_SOFTRESET: + window->machine().schedule_soft_reset(); + break; + + case ID_OPTIONS_CONFIGURATION: + customise_configuration(window->machine(), wnd); + break; + + case ID_OPTIONS_DIPSWITCHES: + customise_dipswitches(window->machine(), wnd); + break; + + case ID_OPTIONS_MISCINPUT: + customise_miscinput(window->machine(), wnd); + break; + + case ID_OPTIONS_ANALOGCONTROLS: + customise_analogcontrols(window->machine(), wnd); + break; + + case ID_FILE_OLDUI: + mame_machine_manager::instance()->ui().show_menu(); + break; + + case ID_FILE_FULLSCREEN: + winwindow_toggle_full_screen(); + break; + + case ID_OPTIONS_TOGGLEFPS: + mame_machine_manager::instance()->ui().set_show_fps(!mame_machine_manager::instance()->ui().show_fps()); + break; + + case ID_OPTIONS_USEMOUSE: + { + // FIXME +// extern int win_use_mouse; +// win_use_mouse = !win_use_mouse; + } + break; + + case ID_FILE_TOGGLEMENUBAR: + win_toggle_menubar(); + break; + + case ID_FRAMESKIP_AUTO: + window->machine().video().set_frameskip(-1); + window->machine().options().emu_options::set_value(OPTION_AUTOFRAMESKIP, 1, OPTION_PRIORITY_CMDLINE, error_string); + break; + + case ID_HELP_ABOUT_NEWUI: + help_about_mess(wnd); + break; + + case ID_HELP_ABOUTSYSTEM: + help_about_thissystem(window->machine(), wnd); + break; + + case ID_THROTTLE_50: + set_speed(window->machine(), 500); + break; + + case ID_THROTTLE_100: + set_speed(window->machine(), 1000); + break; + + case ID_THROTTLE_200: + set_speed(window->machine(), 2000); + break; + + case ID_THROTTLE_500: + set_speed(window->machine(), 5000); + break; + + case ID_THROTTLE_1000: + set_speed(window->machine(), 10000); + break; + + case ID_THROTTLE_UNTHROTTLED: + set_speed(window->machine(), 0); + break; + + default: + if ((command >= ID_FRAMESKIP_0) && (command < ID_FRAMESKIP_0 + frameskip_level_count(window->machine()))) + { + // change frameskip + window->machine().video().set_frameskip(command - ID_FRAMESKIP_0); + window->machine().options().emu_options::set_value(OPTION_AUTOFRAMESKIP, 0, OPTION_PRIORITY_CMDLINE, error_string); + window->machine().options().emu_options::set_value(OPTION_FRAMESKIP, (int)command - ID_FRAMESKIP_0, OPTION_PRIORITY_CMDLINE, error_string); + } + else + if ((command >= ID_DEVICE_0) && (command < ID_DEVICE_0 + (IO_COUNT*DEVOPTION_MAX))) + { + // change device + img = decode_deviceoption(window->machine(), command, &dev_command); + device_command(wnd, img, dev_command); + } + else + if ((command >= ID_JOYSTICK_0) && (command < ID_JOYSTICK_0 + MAX_JOYSTICKS)) + // customise joystick + customise_joystick(window->machine(), wnd, command - ID_JOYSTICK_0); + else + if ((command >= ID_VIDEO_VIEW_0) && (command < ID_VIDEO_VIEW_0 + 1000)) + { + // render views + window->m_target->set_view(command - ID_VIDEO_VIEW_0); + window->update(); // actually change window size + } + else + if (input_item_from_serial_number(window->machine(), command - ID_INPUT_0, NULL, &field, &setting)) + // should never happen + handled = 0; + else + // bogus command + handled = 0; + + break; + } + + // resume emulation + if (pause_for_command(command)) + winwindow_ui_pause(window->machine(), FALSE); + + return handled; +} + + + +//============================================================ +// set_menu_text +//============================================================ + +static void set_menu_text(HMENU menu_bar, int command, const char *text) +{ + TCHAR *t_text; + MENUITEMINFO mii; + + // convert to TCHAR + t_text = tstring_from_utf8(text); + + // invoke SetMenuItemInfo() + memset(&mii, 0, sizeof(mii)); + mii.cbSize = sizeof(mii); + mii.fMask = MIIM_TYPE; + mii.dwTypeData = t_text; + SetMenuItemInfo(menu_bar, command, FALSE, &mii); + + // cleanup + osd_free(t_text); +} + + + +//============================================================ +// win_setup_menus +//============================================================ + +static int win_setup_menus(running_machine &machine, HMODULE module, HMENU menu_bar) +{ + HMENU frameskip_menu; + char buf[256]; + int i = 0; + + // verify that our magic numbers work + assert((ID_DEVICE_0 + IO_COUNT * DEVOPTION_MAX) < ID_JOYSTICK_0); + + // initialize critical values + joystick_menu_setup = 0; + + // set up frameskip menu + frameskip_menu = find_sub_menu(menu_bar, "&Options\0&Frameskip\0", FALSE); + + if (!frameskip_menu) + return 1; + + for(i = 0; i < frameskip_level_count(machine); i++) + { + snprintf(buf, ARRAY_LENGTH(buf), "%i", i); + win_append_menu_utf8(frameskip_menu, MF_STRING, ID_FRAMESKIP_0 + i, buf); + } + + // set the help menu to refer to this machine + snprintf(buf, ARRAY_LENGTH(buf), "About %s (%s)...", machine.system().description, machine.system().name); + set_menu_text(menu_bar, ID_HELP_ABOUTSYSTEM, buf); + + // initialize state_filename for each driver, so we don't carry names in-between them + { + char *src; + char *dst; + + snprintf(state_filename, ARRAY_LENGTH(state_filename), + "%s State", machine.system().description); + + src = state_filename; + dst = state_filename; + do + { + if ((*src == '\0') || isalnum(*src) || isspace(*src) || strchr("(),.", *src)) + *(dst++) = *src; + } + while(*(src++)); + } + + return 0; +} + + + +//============================================================ +// win_resource_module +//============================================================ + +static HMODULE win_resource_module(void) +{ + static HMODULE module; + if (module == NULL) + { + MEMORY_BASIC_INFORMATION info; + if ((VirtualQuery((const void*)win_resource_module, &info, sizeof(info))) == sizeof(info)) + module = (HMODULE)info.AllocationBase; + } + return module; +} + +///// Interface to the core ///// + +//============================================================ +// win_create_menu +//============================================================ + +int win_create_menu(running_machine &machine, HMENU *menus) +{ + // Get the path for loose software from <gamename>.ini + // if this is invalid, then windows chooses whatever directory it used last. + const char* t = machine.options().emu_options::comment_directory(); + // This pulls out the first path from a multipath field + const char* t1 = strtok((char*)t, ";"); + if (t1) + software_dir = t1; // the first path of many + else + software_dir = t; // the only path + + // do not show in the mewui ui. + if (strcmp(machine.system().name, "___empty") == 0) + return 0; + + HMODULE module = win_resource_module(); + HMENU menu_bar = LoadMenu(module, MAKEINTRESOURCE(IDR_RUNTIME_MENU)); + + if (!menu_bar) + { + printf("No memory for the menu, running without it.\n"); + return 0; + } + + if (win_setup_menus(machine, module, menu_bar)) + { + printf("Unable to setup the menu, running without it.\n"); + if (menu_bar) + DestroyMenu(menu_bar); + return 0; // return 1 causes a crash + } + + *menus = menu_bar; + return 0; +} + + + +//============================================================ +// winwindow_video_window_proc_ui +//============================================================ + +LRESULT CALLBACK winwindow_video_window_proc_ui(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam) +{ + switch(message) + { + case WM_INITMENU: + prepare_menus(wnd); + break; + + case WM_PASTE: + { + mame_machine_manager::instance()->ui().paste(); + } + break; + + case WM_COMMAND: + if (invoke_command(wnd, wparam)) + break; + /* fall through */ + + default: + return win_window_info::video_window_proc(wnd, message, wparam, lparam); + } + return 0; +} + diff --git a/docs/release/src/osd/winui/newui.h b/docs/release/src/osd/winui/newui.h new file mode 100644 index 00000000000..5ad8c9fa638 --- /dev/null +++ b/docs/release/src/osd/winui/newui.h @@ -0,0 +1,37 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +//============================================================ +// +// newui.h - NEWUI +// +//============================================================ + +#ifndef NEWUI_H +#define NEWUI_H + +///// INCLUDES ///// + +#include <windows.h> +#include <commdlg.h> +#include <tchar.h> +#include "emu.h" +#include "mame.h" +#include "emuopts.h" +#include "ui/ui.h" +#include "newuires.h" +#include "strconv.h" +#include "debug/debugcpu.h" +#include "imagedev/cassette.h" +#include "windows/window.h" +#include "winutf8.h" + + + +// These are called from src/osd/windows/windows.c and +// provide the linkage between newui and the core. + +LRESULT CALLBACK winwindow_video_window_proc_ui(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam); + +int win_create_menu(running_machine &machine, HMENU *menus); + +#endif /* NEWUI_H */ diff --git a/docs/release/src/osd/winui/newuires.h b/docs/release/src/osd/winui/newuires.h new file mode 100644 index 00000000000..aca0d2baccb --- /dev/null +++ b/docs/release/src/osd/winui/newuires.h @@ -0,0 +1,64 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by mess.rc +// +#define ID_FILE_LOADSTATE_NEWUI 3101 +#define ID_FILE_SAVESTATE 3102 +#define ID_FILE_SAVESTATE_AS 3103 +#define ID_FILE_SAVESCREENSHOT 3104 +#define ID_FILE_EXIT_NEWUI 3105 +#define ID_EDIT_PASTE 3106 +#define ID_FILE_HIDEMENUBAR 3107 +#define ID_OPTIONS_KEYBOARD 3108 +#define ID_OPTIONS_CONFIGURATION 3109 +#define ID_OPTIONS_DIPSWITCHES 3110 +#define ID_OPTIONS_MISCINPUT 3111 +#define ID_OPTIONS_USEMOUSE 3112 +#define ID_FILE_TOGGLEMENUBAR 3113 +#define ID_OPTIONS_SOFTRESET 3114 +#define ID_OPTIONS_HARDRESET 3115 +#define ID_OPTIONS_FRAMESKIP 3116 +#define ID_OPTIONS_PAUSE 3117 +#define ID_OPTIONS_JOYSTICKS 3118 +#define ID_OPTIONS_ANALOGCONTROLS 3119 +#define ID_FILE_FULLSCREEN 3120 +#define ID_OPTIONS_TOGGLEFPS 3122 +#define ID_KEYBOARD_EMULATED 3124 +#define ID_KEYBOARD_NATURAL 3125 +#define ID_KEYBOARD_CUSTOMIZE 3126 +#define ID_VIDEO_ROTATE_0 3127 +#define ID_VIDEO_ROTATE_90 3128 +#define ID_VIDEO_ROTATE_180 3129 +#define ID_VIDEO_ROTATE_270 3130 +#define ID_THROTTLE_50 3131 +#define ID_THROTTLE_100 3132 +#define ID_THROTTLE_200 3133 +#define ID_THROTTLE_500 3134 +#define ID_THROTTLE_1000 3135 +#define ID_THROTTLE_UNTHROTTLED 3136 +#define ID_FRAMESKIP_AUTO 3137 +#define ID_DEVICES 3138 +#define ID_HELP_ABOUT_NEWUI 3139 +#define ID_HELP_ABOUTSYSTEM 3140 +#define ID_FILE_OLDUI 3141 +#define ID_FILE_UIACTIVE 3142 +#define IDC_SHOW_MENU 3143 +#define IDI_ICON_CART 3200 +#define IDI_ICON_HARD 3201 +#define IDI_ICON_CASS 3202 +#define IDI_ICON_FLOP 3203 +#define IDI_ICON_PRIN 3204 +#define IDI_ICON_SERL 3205 +#define IDI_ICON_SNAP 3206 +#define IDR_RUNTIME_MENU 3300 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 3144 +#define _APS_NEXT_COMMAND_VALUE 40008 +#define _APS_NEXT_CONTROL_VALUE 3306 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/docs/release/src/osd/winui/picker.cpp b/docs/release/src/osd/winui/picker.cpp new file mode 100644 index 00000000000..a18e1d901f3 --- /dev/null +++ b/docs/release/src/osd/winui/picker.cpp @@ -0,0 +1,1682 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#define _WIN32_IE 0x0501 +#include <windows.h> +#include <windowsx.h> +#include <shellapi.h> +#include <commctrl.h> +#include <commdlg.h> +#include <wingdi.h> + +// standard C headers +#include <stdio.h> +#include <ctype.h> +#include <string.h> +#include <sys/stat.h> +#include <time.h> +#include <tchar.h> + +// MAME/MAMEUI headers +#include "picker.h" +#include "winui.h" +#include "mui_util.h" // For dprintf +#include "mui_opts.h" +#include "bitmask.h" +#include "treeview.h" // For GetParentFound() + + +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif + +// fix warning: cast does not match function type +#if defined(__GNUC__) && defined(ListView_GetHeader) +#undef ListView_GetHeader +#endif +#if defined(__GNUC__) && defined(ListView_GetImageList) +#undef ListView_GetImageList +#undef ListView_GetItemRect +#endif + +#ifndef ListView_GetItemRect +#define ListView_GetItemRect(w,i,p,c) \ + (BOOL)SNDMSG((w),LVM_GETITEMRECT,i,((p != NULL)?(((LPRECT)(p))->left=(c),(LPARAM)(LPRECT)(p)):0)) +#endif + +#ifndef ListView_GetImageList +#define ListView_GetImageList(w,i) (HIMAGELIST)(LRESULT)(int)SendMessage((w),LVM_GETIMAGELIST,(i),0) +#endif // ListView_GetImageList + +#ifndef ListView_GetHeader +#define ListView_GetHeader(w) (HWND)(LRESULT)(int)SNDMSG((w),LVM_GETHEADER,0,0) +#endif // ListView_GetHeader + +#ifndef HDM_SETIMAGELIST +#define HDM_SETIMAGELIST (HDM_FIRST + 8) +#endif // HDM_SETIMAGELIST + +#ifndef Header_SetImageList +#define Header_SetImageList(h,i) (HIMAGELIST)(LRESULT)(int)SNDMSG((h), HDM_SETIMAGELIST, 0, (LPARAM)i) +#endif // Header_SetImageList + +#ifndef HDF_SORTUP +#define HDF_SORTUP 0x400 +#endif + +#ifndef HDF_SORTDOWN +#define HDF_SORTDOWN 0x200 +#endif + + + +struct PickerInfo +{ + const struct PickerCallbacks *pCallbacks; + WNDPROC pfnParentWndProc; + int nCurrentViewID; + int nLastItem; + int nColumnCount; + int *pnColumnsShown; + int *pnColumnsOrder; + UINT_PTR nTimer; + const LPCTSTR *ppszColumnNames; +}; + + +static struct PickerInfo *GetPickerInfo(HWND hWnd) +{ + LONG_PTR l; + l = GetWindowLongPtr(hWnd, GWLP_USERDATA); + return (struct PickerInfo *) l; +} + + + +static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc, + HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + LRESULT rc; + + if (!pfnParentWndProc) + pfnParentWndProc = GetPickerInfo(hWnd)->pfnParentWndProc; + + if (IsWindowUnicode(hWnd)) + rc = CallWindowProcW(pfnParentWndProc, hWnd, message, wParam, lParam); + else + rc = CallWindowProcA(pfnParentWndProc, hWnd, message, wParam, lParam); + return rc; +} + +static BOOL ListViewOnErase(HWND hWnd, HDC hDC) +{ + RECT rcClient; + HRGN rgnBitmap; + HPALETTE hPAL; + + int i, j; + HDC htempDC; + POINT ptOrigin; + POINT pt = {0,0}; + HBITMAP hOldBitmap; + MYBITMAPINFO *pbmDesc = GetBackgroundInfo(); + HBITMAP hBackground = GetBackgroundBitmap(); + HPALETTE hPALbg = GetBackgroundPalette(); + + // this does not draw the background properly in report view + + GetClientRect(hWnd, &rcClient); + + htempDC = CreateCompatibleDC(hDC); + hOldBitmap = (HBITMAP)SelectObject(htempDC, hBackground); + + rgnBitmap = CreateRectRgnIndirect(&rcClient); + SelectClipRgn(hDC, rgnBitmap); + DeleteBitmap(rgnBitmap); + + hPAL = (!hPALbg) ? CreateHalftonePalette(hDC) : hPALbg; + + if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL) + { + SelectPalette(htempDC, hPAL, FALSE); + RealizePalette(htempDC); + } + + // Get x and y offset + MapWindowPoints(hWnd, GetTreeView(), &pt, 1); + GetDCOrgEx(hDC, &ptOrigin); + ptOrigin.x -= pt.x; + ptOrigin.y -= pt.y; + ptOrigin.x = -GetScrollPos(hWnd, SB_HORZ); + ptOrigin.y = -GetScrollPos(hWnd, SB_VERT); + + if (pbmDesc->bmWidth && pbmDesc->bmHeight) + { + for (i = ptOrigin.x; i < rcClient.right; i += pbmDesc->bmWidth) + for (j = ptOrigin.y; j < rcClient.bottom; j += pbmDesc->bmHeight) + BitBlt(hDC, i, j, pbmDesc->bmWidth, pbmDesc->bmHeight, htempDC, 0, 0, SRCCOPY); + } + + SelectObject(htempDC, hOldBitmap); + DeleteDC(htempDC); + + if (!pbmDesc->bmColors) + { + DeletePalette(hPAL); + hPAL = 0; + } + + return TRUE; +} + + + +static BOOL ListViewNotify(HWND hWnd, LPNMHDR lpNmHdr) +{ + RECT rcClient; + DWORD dwPos; + POINT pt; + + // This code is for using bitmap in the background + // Invalidate the right side of the control when a column is resized + if (lpNmHdr->code == HDN_ITEMCHANGINGA || lpNmHdr->code == HDN_ITEMCHANGINGW) + { + dwPos = GetMessagePos(); + pt.x = LOWORD(dwPos); + pt.y = HIWORD(dwPos); + + GetClientRect(hWnd, &rcClient); + ScreenToClient(hWnd, &pt); + rcClient.left = pt.x; + InvalidateRect(hWnd, &rcClient, FALSE); + } + return FALSE; +} + + + +static BOOL ListViewContextMenu(HWND hwndPicker, LPARAM lParam) +{ + struct PickerInfo *pPickerInfo; + POINT pt, headerPt; + int i, nViewID, nColumn = -1; + HWND hwndHeader; + RECT rcCol; + + pPickerInfo = GetPickerInfo(hwndPicker); + + // Extract the point out of the lparam + pt.x = GET_X_LPARAM(lParam); + pt.y = GET_Y_LPARAM(lParam); + if (pt.x < 0 && pt.y < 0) + GetCursorPos(&pt); + + // Figure out which header column was clicked, if at all + nViewID = Picker_GetViewID(hwndPicker); + if ((nViewID == VIEW_REPORT) || (nViewID == VIEW_GROUPED)) + { + hwndHeader = ListView_GetHeader(hwndPicker); + headerPt = pt; + ScreenToClient(hwndHeader, &headerPt); + + for (i = 0; Header_GetItemRect(hwndHeader, i, &rcCol); i++) + { + if (PtInRect(&rcCol, headerPt)) + { + nColumn = i; + break; + } + } + } + + if (nColumn >= 0) + { + // A column header was clicked + if (pPickerInfo->pCallbacks->pfnOnHeaderContextMenu) + pPickerInfo->pCallbacks->pfnOnHeaderContextMenu(pt, nColumn); + } + else + { + // The body was clicked + if (pPickerInfo->pCallbacks->pfnOnBodyContextMenu) + pPickerInfo->pCallbacks->pfnOnBodyContextMenu(pt); + } + return TRUE; +} + + + +static void Picker_Free(struct PickerInfo *pPickerInfo) +{ + // Free up all resources associated with this picker structure + if (pPickerInfo->pnColumnsShown) + free(pPickerInfo->pnColumnsShown); + if (pPickerInfo->pnColumnsOrder) + free(pPickerInfo->pnColumnsOrder); + free(pPickerInfo); +} + + + +static LRESULT CALLBACK ListViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + struct PickerInfo *pPickerInfo; + LRESULT rc = 0; + BOOL bHandled = FALSE; + WNDPROC pfnParentWndProc; + HWND hwndHeaderCtrl = NULL; + HFONT hHeaderCtrlFont = NULL; + + pPickerInfo = GetPickerInfo(hWnd); + pfnParentWndProc = pPickerInfo->pfnParentWndProc; + + switch(message) + { + case WM_MOUSEMOVE: + if (MouseHasBeenMoved()) + ShowCursor(TRUE); + break; + + case WM_ERASEBKGND: + if (GetBackgroundBitmap()) + { + rc = ListViewOnErase(hWnd, (HDC) wParam); + bHandled = TRUE; + } + break; + + case WM_NOTIFY: + bHandled = ListViewNotify(hWnd, (LPNMHDR) lParam); + break; + + case WM_SETFONT: + hwndHeaderCtrl = ListView_GetHeader(hWnd); + if (hwndHeaderCtrl) + hHeaderCtrlFont = GetWindowFont(hwndHeaderCtrl); + break; + + case WM_CONTEXTMENU: + bHandled = ListViewContextMenu(hWnd, lParam); + break; + + case WM_DESTROY: + // Received WM_DESTROY; time to clean up + if (pPickerInfo->pCallbacks->pfnSetViewMode) + pPickerInfo->pCallbacks->pfnSetViewMode(pPickerInfo->nCurrentViewID); + Picker_Free(pPickerInfo); + SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR) pfnParentWndProc); + SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) NULL); + break; + } + + if (!bHandled) + rc = CallParentWndProc(pfnParentWndProc, hWnd, message, wParam, lParam); + + // If we received WM_SETFONT, reset header ctrl font back to original font + if (hwndHeaderCtrl) + SetWindowFont(hwndHeaderCtrl, hHeaderCtrlFont, TRUE); + + return rc; +} + + + +// Re/initialize the ListControl Columns +static void Picker_InternalResetColumnDisplay(HWND hWnd, BOOL bFirstTime) +{ + LV_COLUMN lvc; + int i; + int nColumn; + int *widths; + int *order; + int *shown; + //int shown_columns; + LVCOLUMN col; + struct PickerInfo *pPickerInfo; + HRESULT res; + BOOL b_res; + + pPickerInfo = GetPickerInfo(hWnd); + + widths = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*widths)); + order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order)); + shown = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*shown)); + if (!widths || !order || !shown) + goto done; + + memset(widths, 0, pPickerInfo->nColumnCount * sizeof(*widths)); + memset(order, 0, pPickerInfo->nColumnCount * sizeof(*order)); + memset(shown, 0, pPickerInfo->nColumnCount * sizeof(*shown)); + pPickerInfo->pCallbacks->pfnGetColumnWidths(widths); + pPickerInfo->pCallbacks->pfnGetColumnOrder(order); + pPickerInfo->pCallbacks->pfnGetColumnShown(shown); + + if (!bFirstTime) + { + DWORD style = GetWindowLong(hWnd, GWL_STYLE); + + // switch the list view to LVS_REPORT style so column widths reported correctly + SetWindowLong(hWnd, GWL_STYLE, + (GetWindowLong(hWnd, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_REPORT); + + // Retrieve each of the column widths + i = 0; + memset(&col, 0, sizeof(col)); + col.mask = LVCF_WIDTH; + while(ListView_GetColumn(hWnd, 0, &col)) + { + nColumn = Picker_GetRealColumnFromViewColumn(hWnd, i++); + widths[nColumn] = col.cx; + b_res = ListView_DeleteColumn(hWnd, 0); + } + + pPickerInfo->pCallbacks->pfnSetColumnWidths(widths); + + // restore old style + SetWindowLong(hWnd, GWL_STYLE, style); + } + + nColumn = 0; + for (i = 0; i < pPickerInfo->nColumnCount; i++) + { + if (shown[order[i]]) + { + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_TEXT; + lvc.pszText = (LPTSTR) pPickerInfo->ppszColumnNames[order[i]]; + lvc.iSubItem = nColumn; + lvc.cx = widths[order[i]]; + lvc.fmt = LVCFMT_LEFT; + res = ListView_InsertColumn(hWnd, nColumn, &lvc); + pPickerInfo->pnColumnsOrder[nColumn] = order[i]; + + dprintf("Visible column %d: Logical column %d; Width=%d\n", nColumn, order[i], widths[order[i]]); + + nColumn++; + } + } + + //shown_columns = nColumn; + + /* Fill this in so we can still sort on columns NOT shown */ + for (i = 0; i < pPickerInfo->nColumnCount && nColumn < pPickerInfo->nColumnCount; i++) + { + if (!shown[order[i]]) + { + pPickerInfo->pnColumnsOrder[nColumn] = order[i]; + nColumn++; + } + } + + if (GetListFontColor() == RGB(255, 255, 255)) + b_res = ListView_SetTextColor(hWnd, RGB(240, 240, 240)); + else + b_res = ListView_SetTextColor(hWnd, GetListFontColor()); + +done: + if (widths) + free(widths); + if (order) + free(order); + if (shown) + free(shown); +} + + + +void Picker_ResetColumnDisplay(HWND hWnd) +{ + Picker_InternalResetColumnDisplay(hWnd, FALSE); +} + + + +void Picker_ClearIdle(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + + pPickerInfo = GetPickerInfo(hwndPicker); + if (pPickerInfo->nTimer) + { + KillTimer(hwndPicker, 0); + pPickerInfo->nTimer = 0; + } +} + + + +static void CALLBACK Picker_TimerProc(HWND hwndPicker, UINT uMsg, + UINT_PTR idEvent, DWORD dwTime) +{ + struct PickerInfo *pPickerInfo; + BOOL bContinueIdle; + DWORD nTickCount, nBaseTickCount; + DWORD nMaxIdleTicks = 50; + + pPickerInfo = GetPickerInfo(hwndPicker); + bContinueIdle = FALSE; + nBaseTickCount = GetTickCount(); + + // This idle procedure will loop until either idling is over, or until + // a specified amount of time elapses (in this case, 50ms). This frees + // idle callbacks of any responsibility for balancing their workloads; the + // picker code will + do + { + if (pPickerInfo->pCallbacks->pfnOnIdle) + bContinueIdle = pPickerInfo->pCallbacks->pfnOnIdle(hwndPicker); + nTickCount = GetTickCount(); + } + while(bContinueIdle && ((nTickCount - nBaseTickCount) < nMaxIdleTicks)); + + if (!bContinueIdle) + Picker_ClearIdle(hwndPicker); +} + + + +// Instructs this picker to reset idling; idling will continue until the +// idle function returns FALSE +void Picker_ResetIdle(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + + pPickerInfo = GetPickerInfo(hwndPicker); + + Picker_ClearIdle(hwndPicker); + if (pPickerInfo->pCallbacks->pfnOnIdle) + pPickerInfo->nTimer = SetTimer(hwndPicker, 0, 0, Picker_TimerProc); +} + + + +BOOL Picker_IsIdling(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + pPickerInfo = GetPickerInfo(hwndPicker); + return pPickerInfo->nTimer != 0; +} + + + +BOOL SetupPicker(HWND hwndPicker, const struct PickerOptions *pOptions) +{ + struct PickerInfo *pPickerInfo; + int i; + LONG_PTR l; + HRESULT res; + + assert(hwndPicker); + + // Allocate the list view struct + pPickerInfo = (struct PickerInfo *) malloc(sizeof(struct PickerInfo)); + if (!pPickerInfo) + return FALSE; + + // And fill it out + memset(pPickerInfo, 0, sizeof(*pPickerInfo)); + pPickerInfo->pCallbacks = pOptions->pCallbacks; + pPickerInfo->nColumnCount = pOptions->nColumnCount; + pPickerInfo->ppszColumnNames = pOptions->ppszColumnNames; + pPickerInfo->nLastItem = -1; + + if (pPickerInfo->nColumnCount) + { + // Allocate space for the column order and columns shown array + pPickerInfo->pnColumnsOrder = (int*)malloc(pPickerInfo->nColumnCount * + sizeof(*pPickerInfo->pnColumnsOrder)); + pPickerInfo->pnColumnsShown = (int*)malloc(pPickerInfo->nColumnCount * + sizeof(*pPickerInfo->pnColumnsShown)); + if (!pPickerInfo->pnColumnsOrder || !pPickerInfo->pnColumnsShown) + goto error; + + // set up initial values + for (i = 0; i < pPickerInfo->nColumnCount; i++) + { + pPickerInfo->pnColumnsOrder[i] = i; + pPickerInfo->pnColumnsShown[i] = TRUE; + } + + if (GetUseOldControl()) + { + if (pPickerInfo->pCallbacks->pfnSetColumnOrder) + pPickerInfo->pCallbacks->pfnSetColumnOrder(pPickerInfo->pnColumnsOrder); + if (pPickerInfo->pCallbacks->pfnSetColumnShown) + pPickerInfo->pCallbacks->pfnSetColumnShown(pPickerInfo->pnColumnsShown); + } + else + { + if (pPickerInfo->pCallbacks->pfnGetColumnOrder) + pPickerInfo->pCallbacks->pfnGetColumnOrder(pPickerInfo->pnColumnsOrder); + if (pPickerInfo->pCallbacks->pfnGetColumnShown) + pPickerInfo->pCallbacks->pfnGetColumnShown(pPickerInfo->pnColumnsShown); + } + } + + // Hook in our wndproc and userdata pointer + l = GetWindowLongPtr(hwndPicker, GWLP_WNDPROC); + pPickerInfo->pfnParentWndProc = (WNDPROC) l; + SetWindowLongPtr(hwndPicker, GWLP_USERDATA, (LONG_PTR) pPickerInfo); + SetWindowLongPtr(hwndPicker, GWLP_WNDPROC, (LONG_PTR) ListViewWndProc); + + res = ListView_SetExtendedListViewStyle(hwndPicker, LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | + LVS_EX_UNDERLINEHOT | LVS_EX_UNDERLINECOLD | LVS_EX_LABELTIP); + + Picker_InternalResetColumnDisplay(hwndPicker, TRUE); + Picker_ResetIdle(hwndPicker); + return TRUE; + +error: + if (pPickerInfo) + Picker_Free(pPickerInfo); + return FALSE; +} + + + +int Picker_GetViewID(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + pPickerInfo = GetPickerInfo(hwndPicker); + return pPickerInfo->nCurrentViewID; +} + + + +void Picker_SetViewID(HWND hwndPicker, int nViewID) +{ + struct PickerInfo *pPickerInfo; + LONG_PTR nListViewStyle; + DWORD dwStyle; + + pPickerInfo = GetPickerInfo(hwndPicker); + + // Change the nCurrentViewID member + pPickerInfo->nCurrentViewID = nViewID; + if (pPickerInfo->pCallbacks->pfnSetViewMode) + pPickerInfo->pCallbacks->pfnSetViewMode(pPickerInfo->nCurrentViewID); + + // Change the ListView flags in accordance + switch(nViewID) + { + case VIEW_LARGE_ICONS: + nListViewStyle = LVS_ICON; + break; + case VIEW_SMALL_ICONS: + nListViewStyle = LVS_SMALLICON; + break; + case VIEW_INLIST: + nListViewStyle = LVS_LIST; + break; + case VIEW_GROUPED: + case VIEW_REPORT: + default: + nListViewStyle = LVS_REPORT; + break; + } + + dwStyle = GetWindowLong(hwndPicker, GWL_STYLE); + if (GetUseXPControl()) + { + // RS Microsoft must have changed something in the Ownerdraw handling with Version 6 of the Common Controls + // as on all other OSes it works without this... + if (nViewID == VIEW_LARGE_ICONS || nViewID == VIEW_SMALL_ICONS) + { + // remove Ownerdraw style for Icon views + dwStyle &= ~LVS_OWNERDRAWFIXED; + if( nViewID == VIEW_SMALL_ICONS ) + { + // to properly get them to arrange, otherwise the entries might overlap + // we have to call SetWindowLong to get it into effect !! + // It's no use just setting the Style, as it's changed again further down... + SetWindowLong(hwndPicker, GWL_STYLE, (GetWindowLong(hwndPicker, GWL_STYLE) + & ~LVS_TYPEMASK) | LVS_ICON); + } + } + else + { + // add again.. + dwStyle |= LVS_OWNERDRAWFIXED; + } + } + + dwStyle &= ~LVS_TYPEMASK; + dwStyle |= nListViewStyle; + SetWindowLong(hwndPicker, GWL_STYLE, dwStyle); + RedrawWindow(hwndPicker, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME); +} + + + +static BOOL PickerHitTest(HWND hWnd) +{ + RECT rect; + POINTS p; + DWORD res = GetMessagePos(); + LVHITTESTINFO htInfo; + HRESULT result; + + memset(&htInfo, 0, sizeof(htInfo)); + p = MAKEPOINTS(res); + GetWindowRect(hWnd, &rect); + htInfo.pt.x = p.x - rect.left; + htInfo.pt.y = p.y - rect.top; + result = ListView_HitTest(hWnd, &htInfo); + + return (! (htInfo.flags & LVHT_NOWHERE)); +} + + + +int Picker_GetSelectedItem(HWND hWnd) +{ + int nItem; + LV_ITEM lvi; + BOOL res; + + nItem = ListView_GetNextItem(hWnd, -1, LVIS_SELECTED | LVIS_FOCUSED); + if (nItem < 0) + return 0; + + memset(&lvi, 0, sizeof(lvi)); + lvi.iItem = nItem; + lvi.mask = LVIF_PARAM; + res = ListView_GetItem(hWnd, &lvi); + return lvi.lParam; +} + + + +void Picker_SetSelectedPick(HWND hWnd, int nIndex) +{ + BOOL res; + + if (nIndex < 0) + nIndex = 0; + + ListView_SetItemState(hWnd, nIndex, LVIS_FOCUSED | LVIS_SELECTED, + LVIS_FOCUSED | LVIS_SELECTED); + res = ListView_EnsureVisible(hWnd, nIndex, FALSE); +} + + + +void Picker_SetSelectedItem(HWND hWnd, int nItem) +{ + int i; + LV_FINDINFO lvfi; + + if (nItem < 0) + return; + + lvfi.flags = LVFI_PARAM; + lvfi.lParam = nItem; + i = ListView_FindItem(hWnd, -1, &lvfi); + if (i == -1) + { + POINT p = {0,0}; + lvfi.flags = LVFI_NEARESTXY; + lvfi.pt = p; + i = ListView_FindItem(hWnd, -1, &lvfi); + } + Picker_SetSelectedPick(hWnd, (i == -1) ? 0 : i); +} + + + +static const TCHAR *Picker_CallGetItemString(HWND hwndPicker, + int nItem, int nColumn, TCHAR *pszBuffer, UINT nBufferLength) +{ + // this call wraps the pfnGetItemString callback to properly set up the + // buffers, and normalize the results + struct PickerInfo *pPickerInfo; + const TCHAR *s; + + pPickerInfo = GetPickerInfo(hwndPicker); + pszBuffer[0] = '\0'; + s = NULL; + + if (pPickerInfo->pCallbacks->pfnGetItemString) + { + s = pPickerInfo->pCallbacks->pfnGetItemString(hwndPicker, + nItem, nColumn, pszBuffer, nBufferLength); + } + if (!s) + s = pszBuffer; + return s; +} + + + +// put the arrow on the new sort column +static void Picker_ResetHeaderSortIcon(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + HWND hwndHeader; + HD_ITEM hdi; + int i, nViewColumn; + BOOL res; + + pPickerInfo = GetPickerInfo(hwndPicker); + + hwndHeader = ListView_GetHeader(hwndPicker); + + // take arrow off non-current columns + hdi.mask = HDI_FORMAT; + hdi.fmt = HDF_STRING; + for (i = 0; i < pPickerInfo->nColumnCount; i++) + { + if (i != pPickerInfo->pCallbacks->pfnGetSortColumn()) + res = Header_SetItem(hwndHeader, Picker_GetViewColumnFromRealColumn(hwndPicker, i), &hdi); + } + + if (GetUseXPControl()) + { + // use built in sort arrows + hdi.mask = HDI_FORMAT; + hdi.fmt = HDF_STRING | (pPickerInfo->pCallbacks->pfnGetSortReverse() ? HDF_SORTDOWN : HDF_SORTUP); + } + else + { + // put our arrow icon next to the text + hdi.mask = HDI_FORMAT | HDI_IMAGE; + hdi.fmt = HDF_STRING | HDF_IMAGE | HDF_BITMAP_ON_RIGHT; + hdi.iImage = pPickerInfo->pCallbacks->pfnGetSortReverse() ? 1 : 0; + } + + nViewColumn = Picker_GetViewColumnFromRealColumn(hwndPicker, pPickerInfo->pCallbacks->pfnGetSortColumn()); + res = Header_SetItem(hwndHeader, nViewColumn, &hdi); +} + + + +struct CompareProcParams +{ + HWND hwndPicker; + struct PickerInfo *pPickerInfo; + int nSortColumn; + int nViewMode; + BOOL bReverse; +}; + + + +static void Picker_PopulateCompareProcParams(HWND hwndPicker, + struct CompareProcParams *pParams) +{ + struct PickerInfo *pPickerInfo; + + pPickerInfo = GetPickerInfo(hwndPicker); + + // populate the CompareProcParams structure + memset(pParams, 0, sizeof(*pParams)); + pParams->hwndPicker = hwndPicker; + pParams->pPickerInfo = pPickerInfo; + pParams->nViewMode = pPickerInfo->pCallbacks->pfnGetViewMode(); + if (pPickerInfo->pCallbacks->pfnGetSortColumn) + pParams->nSortColumn = pPickerInfo->pCallbacks->pfnGetSortColumn(); + if (pPickerInfo->pCallbacks->pfnGetSortReverse) + pParams->bReverse = pPickerInfo->pCallbacks->pfnGetSortReverse(); +} + + + +static int CALLBACK Picker_CompareProc(LPARAM index1, LPARAM index2, LPARAM nParamSort) +{ + struct CompareProcParams *pcpp = (struct CompareProcParams *) nParamSort; + struct PickerInfo *pPickerInfo = pcpp->pPickerInfo; + BOOL bCallCompare = TRUE; + int nResult = 0, nParent1, nParent2; + TCHAR szBuffer1[256], szBuffer2[256]; + const TCHAR *s1, *s2; + + if (pcpp->nViewMode == VIEW_GROUPED) + { + // do our fancy compare, with clones grouped under parents + // first thing we need to do is identify both item's parents + if (pPickerInfo->pCallbacks->pfnFindItemParent) + { + nParent1 = pPickerInfo->pCallbacks->pfnFindItemParent(pcpp->hwndPicker, index1); + nParent2 = pPickerInfo->pCallbacks->pfnFindItemParent(pcpp->hwndPicker, index2); + } + else + { + nParent1 = nParent2 = -1; + } + + if ((nParent1 < 0) && (nParent2 < 0)) + { + // if both entries are both parents, we just do a basic sort + } + else if ((nParent1 >= 0) && (nParent2 >= 0)) + { + // if both entries are children and the parents are different, + // sort on their parents + if (nParent1 != nParent2) + { + index1 = nParent1; + index2 = nParent2; + } + } + else + { + // one parent, one child + if (nParent1 >= 0) + { + // first one is a child + if (nParent1 == index2) + { + // if this is a child and its parent, put child after + nResult = 1; + bCallCompare = FALSE; + } + else + { + // sort on parent + index1 = nParent1; + } + } + else + { + // second one is a child + if (nParent2 == index1) + { + // if this is a child and its parent, put child after + nResult = -1; + bCallCompare = FALSE; + } + else + { + // sort on parent + index2 = nParent2; + } + } + } + } + + if (bCallCompare) + { + if (pPickerInfo->pCallbacks->pfnCompare) + { + nResult = pPickerInfo->pCallbacks->pfnCompare(pcpp->hwndPicker, + index1, index2, pcpp->nSortColumn); + } + else + { + // no default sort proc, just get the string and compare them + s1 = Picker_CallGetItemString(pcpp->hwndPicker, index1, pcpp->nSortColumn, + szBuffer1, ARRAY_LENGTH(szBuffer1)); + s2 = Picker_CallGetItemString(pcpp->hwndPicker, index2, pcpp->nSortColumn, + szBuffer2, ARRAY_LENGTH(szBuffer2)); + nResult = _tcsicmp(s1, s2); + } + + if (pcpp->bReverse) + nResult = -nResult; + } + return nResult; +} + + + +void Picker_Sort(HWND hwndPicker) +{ + LV_FINDINFO lvfi; + //struct PickerInfo *pPickerInfo; + struct CompareProcParams params; + int nItem; + BOOL res; + + //pPickerInfo = GetPickerInfo(hwndPicker); + + // populate the CompareProcParams structure + Picker_PopulateCompareProcParams(hwndPicker, ¶ms); + + res = ListView_SortItems(hwndPicker, Picker_CompareProc, (LPARAM) ¶ms); + + Picker_ResetHeaderSortIcon(hwndPicker); + + memset(&lvfi, 0, sizeof(lvfi)); + lvfi.flags = LVFI_PARAM; + lvfi.lParam = Picker_GetSelectedItem(hwndPicker); + nItem = ListView_FindItem(hwndPicker, -1, &lvfi); + + res = ListView_EnsureVisible(hwndPicker, nItem, FALSE); +} + + + +int Picker_InsertItemSorted(HWND hwndPicker, int nParam) +{ + //struct PickerInfo *pPickerInfo; + int nHigh, nLow, nMid; + struct CompareProcParams params; + int nCompareResult; + LVITEM lvi; + BOOL res; + + //pPickerInfo = GetPickerInfo(hwndPicker); + + nLow = 0; + nHigh = ListView_GetItemCount(hwndPicker); + + // populate the CompareProcParams structure + Picker_PopulateCompareProcParams(hwndPicker, ¶ms); + + while(nLow < nHigh) + { + nMid = (nHigh + nLow) / 2; + + memset(&lvi, 0, sizeof(lvi)); + lvi.mask = LVIF_PARAM; + lvi.iItem = nMid; + res = ListView_GetItem(hwndPicker, &lvi); + + nCompareResult = Picker_CompareProc(nParam, lvi.lParam, (LPARAM) ¶ms); + + if (nCompareResult > 0) + nLow = nMid + 1; + else if (nCompareResult < 0) + nHigh = nMid; + else + { + nLow = nMid; + break; + } + } + + memset(&lvi, 0, sizeof(lvi)); + lvi.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM; + lvi.iItem = nLow; + lvi.iSubItem = 0; + lvi.lParam = nParam; + lvi.pszText = LPSTR_TEXTCALLBACK; + lvi.iImage = I_IMAGECALLBACK; + + return ListView_InsertItem(hwndPicker, &lvi); +} + + + +int Picker_GetRealColumnFromViewColumn(HWND hWnd, int nViewColumn) +{ + struct PickerInfo *pPickerInfo; + int nRealColumn = 0; + + pPickerInfo = GetPickerInfo(hWnd); + if (nViewColumn >= 0 && nViewColumn < pPickerInfo->nColumnCount) + nRealColumn = pPickerInfo->pnColumnsOrder[nViewColumn]; + return nRealColumn; +} + + + +int Picker_GetViewColumnFromRealColumn(HWND hWnd, int nRealColumn) +{ + struct PickerInfo *pPickerInfo; + int i; + + pPickerInfo = GetPickerInfo(hWnd); + for (i = 0; i < pPickerInfo->nColumnCount; i++) + { + if (pPickerInfo->pnColumnsOrder[i] == nRealColumn) + return i; + } + + // major error, shouldn't be possible, but no good way to warn + return 0; +} + + + +BOOL Picker_HandleNotify(LPNMHDR lpNmHdr) +{ + struct PickerInfo *pPickerInfo; + HWND hWnd; + BOOL bResult = FALSE; + NM_LISTVIEW *pnmv; + LV_DISPINFO *pDispInfo; + int nItem, nColumn; + const TCHAR *s; + BOOL bReverse; + + hWnd = lpNmHdr->hwndFrom; + pPickerInfo = GetPickerInfo(hWnd); + pnmv = (NM_LISTVIEW *) lpNmHdr; + + switch(lpNmHdr->code) + { + case NM_RCLICK: + case NM_CLICK: + case NM_DBLCLK: + // don't allow selection of blank spaces in the listview + if (!PickerHitTest(hWnd)) + { + // we have no current item selected + if (pPickerInfo->nLastItem != -1) + { + Picker_SetSelectedItem(hWnd, pPickerInfo->nLastItem); + } + bResult = TRUE; + } + else if ((lpNmHdr->code == NM_DBLCLK) && (pPickerInfo->pCallbacks->pfnDoubleClick)) + { + // double click! + pPickerInfo->pCallbacks->pfnDoubleClick(); + bResult = TRUE; + } + break; + + case LVN_GETDISPINFO: + pDispInfo = (LV_DISPINFO *) lpNmHdr; + nItem = (int) pDispInfo->item.lParam; + + if (pDispInfo->item.mask & LVIF_IMAGE) + { + // retrieve item image + if (pPickerInfo->pCallbacks->pfnGetItemImage) + pDispInfo->item.iImage = pPickerInfo->pCallbacks->pfnGetItemImage(hWnd, nItem); + else + pDispInfo->item.iImage = 0; + bResult = TRUE; + } + + if (pDispInfo->item.mask & LVIF_STATE) + { + pDispInfo->item.state = 0; + bResult = TRUE; + } + + if (pDispInfo->item.mask & LVIF_TEXT) + { + // retrieve item text + nColumn = Picker_GetRealColumnFromViewColumn(hWnd, pDispInfo->item.iSubItem); + + s = Picker_CallGetItemString(hWnd, nItem, nColumn, + pDispInfo->item.pszText, pDispInfo->item.cchTextMax); + + pDispInfo->item.pszText = (TCHAR *) s; + bResult = TRUE; + } + break; + + case LVN_ITEMCHANGED: + if ((pnmv->uOldState & LVIS_SELECTED) + && !(pnmv->uNewState & LVIS_SELECTED)) + { + if (pnmv->lParam != -1) + pPickerInfo->nLastItem = pnmv->lParam; + if (pPickerInfo->pCallbacks->pfnLeavingItem) + pPickerInfo->pCallbacks->pfnLeavingItem(hWnd, pnmv->lParam); + } + if (!(pnmv->uOldState & LVIS_SELECTED) + && (pnmv->uNewState & LVIS_SELECTED)) + { + if (pPickerInfo->pCallbacks->pfnEnteringItem) + pPickerInfo->pCallbacks->pfnEnteringItem(hWnd, pnmv->lParam); + } + bResult = TRUE; + break; + + case LVN_COLUMNCLICK: + // if clicked on the same column we're sorting by, reverse it + if (pPickerInfo->pCallbacks->pfnGetSortColumn() == Picker_GetRealColumnFromViewColumn(hWnd, pnmv->iSubItem)) + bReverse = !pPickerInfo->pCallbacks->pfnGetSortReverse(); + else + bReverse = FALSE; + pPickerInfo->pCallbacks->pfnSetSortReverse(bReverse); + pPickerInfo->pCallbacks->pfnSetSortColumn(Picker_GetRealColumnFromViewColumn(hWnd, pnmv->iSubItem)); + Picker_Sort(hWnd); + bResult = TRUE; + break; + + case LVN_BEGINDRAG: + if (pPickerInfo->pCallbacks->pfnBeginListViewDrag) + pPickerInfo->pCallbacks->pfnBeginListViewDrag(pnmv); + break; + } + return bResult; +} + + + +int Picker_GetNumColumns(HWND hWnd) +{ + int nColumnCount = 0; + int i; + HWND hwndHeader; + int *shown; + struct PickerInfo *pPickerInfo; + + pPickerInfo = GetPickerInfo(hWnd); + + shown = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*shown)); + if (!shown) + return -1; + + pPickerInfo->pCallbacks->pfnGetColumnShown(shown); + hwndHeader = ListView_GetHeader(hWnd); + + if (GetUseOldControl() || (nColumnCount = Header_GetItemCount(hwndHeader)) < 1) + { + nColumnCount = 0; + for (i = 0; i < pPickerInfo->nColumnCount ; i++ ) + { + if (shown[i]) + nColumnCount++; + } + } + + free(shown); + return nColumnCount; +} + + + +/* Add ... to Items in ListView if needed */ +static LPCTSTR MakeShortString(HDC hDC, LPCTSTR lpszLong, int nColumnLen, int nOffset) +{ + static const TCHAR szThreeDots[] = TEXT("..."); + static TCHAR szShort[MAX_PATH]; + int nStringLen = lstrlen(lpszLong); + int nAddLen; + SIZE size; + int i; + + GetTextExtentPoint32(hDC, lpszLong, nStringLen, &size); + if (nStringLen == 0 || size.cx + nOffset <= nColumnLen) + return lpszLong; + + lstrcpy(szShort, lpszLong); + GetTextExtentPoint32(hDC, szThreeDots, ARRAY_LENGTH(szThreeDots), &size); + nAddLen = size.cx; + + for (i = nStringLen - 1; i > 0; i--) + { + szShort[i] = 0; + GetTextExtentPoint32(hDC, szShort, i, &size); + if (size.cx + nOffset + nAddLen <= nColumnLen) + break; + } + + lstrcat(szShort, szThreeDots); + + return szShort; +} + +#define ListView_GetItemRect_Modified(hwnd,i,prc,code) (BOOL)SNDMSG((hwnd),LVM_GETITEMRECT,(WPARAM)(int)(i),(((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc))) + +void Picker_HandleDrawItem(HWND hWnd, LPDRAWITEMSTRUCT lpDrawItemStruct) +{ + struct PickerInfo *pPickerInfo; + HDC hDC = lpDrawItemStruct->hDC; + RECT rcItem = lpDrawItemStruct->rcItem; + UINT uiFlags = ILD_TRANSPARENT; + HIMAGELIST hImageList; + int nItem = lpDrawItemStruct->itemID; + COLORREF clrTextSave = 0; + COLORREF clrBkSave = 0; + COLORREF clrImage = GetSysColor(COLOR_WINDOW); + static TCHAR szBuff[MAX_PATH]; + BOOL bFocus = (GetFocus() == hWnd); + LPCTSTR pszText; + UINT nStateImageMask; + BOOL bSelected; + LV_COLUMN lvc; + LV_ITEM lvi; + RECT rcAllLabels; + RECT rcLabel; + RECT rcIcon; + int offset; + SIZE size; + int i, j; + int nColumn; + int nColumnMax = 0; + int *order; + BOOL bDrawAsChild; + int indent_space; + BOOL bColorChild = FALSE; + BOOL bParentFound = FALSE; + int nParent; + HBITMAP hBackground = GetBackgroundBitmap(); + MYBITMAPINFO *pbmDesc = GetBackgroundInfo(); + BOOL res; + + pPickerInfo = GetPickerInfo(hWnd); + + order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order)); + if (!order) + return; + nColumnMax = Picker_GetNumColumns(hWnd); + + if (GetUseOldControl()) + { + pPickerInfo->pCallbacks->pfnGetColumnOrder(order); + } + else + { + /* Get the Column Order and save it */ + res = ListView_GetColumnOrderArray(hWnd, nColumnMax, order); + + /* Disallow moving column 0 */ + if (order[0] != 0) + { + for (i = 0; i < nColumnMax; i++) + { + if (order[i] == 0) + { + order[i] = order[0]; + order[0] = 0; + } + } + res = ListView_SetColumnOrderArray(hWnd, nColumnMax, order); + } + } + + /* Labels are offset by a certain amount */ + /* This offset is related to the width of a space character */ + GetTextExtentPoint32(hDC, TEXT(" "), 1, &size); + offset = size.cx; + + lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE | LVIF_PARAM; + lvi.iItem = nItem; + lvi.iSubItem = order[0]; + lvi.pszText = szBuff; + lvi.cchTextMax = ARRAY_LENGTH(szBuff); + lvi.stateMask = 0xFFFF; /* get all state flags */ + res = ListView_GetItem(hWnd, &lvi); + + bSelected = ((lvi.state & LVIS_DROPHILITED) || ( (lvi.state & LVIS_SELECTED) + && ((bFocus) || (GetWindowLong(hWnd, GWL_STYLE) & LVS_SHOWSELALWAYS)))); + + /* figure out if we indent and draw grayed */ + if (pPickerInfo->pCallbacks->pfnFindItemParent) + nParent = pPickerInfo->pCallbacks->pfnFindItemParent(hWnd, lvi.lParam); + else + nParent = -1; + bDrawAsChild = (pPickerInfo->pCallbacks->pfnGetViewMode() == VIEW_GROUPED && (nParent >= 0)); + + /* only indent if parent is also in this view */ +#if 1 // minimal listview flickering. + if ((nParent >= 0) && bDrawAsChild) + { + if (GetParentFound(lvi.lParam)) + bParentFound = TRUE; + } +#else + if ((nParent >= 0) && bDrawAsChild) + { + for (i = 0; i < ListView_GetItemCount(hWnd); i++) + { + lvi.mask = LVIF_PARAM; + lvi.iItem = i; + res = ListView_GetItem(hWnd, &lvi); + + if (lvi.lParam == nParent) + { + bParentFound = TRUE; + break; + } + } + } +#endif + + if (pPickerInfo->pCallbacks->pfnGetOffsetChildren && pPickerInfo->pCallbacks->pfnGetOffsetChildren()) + { + if (!bParentFound && bDrawAsChild) + { + /*Reset it, as no Parent is there*/ + bDrawAsChild = FALSE; + bColorChild = TRUE; + } + else + { + nParent = -1; + bParentFound = FALSE; + } + } + + res = ListView_GetItemRect_Modified(hWnd, nItem, &rcAllLabels, LVIR_BOUNDS); + res = ListView_GetItemRect_Modified(hWnd, nItem, &rcLabel, LVIR_LABEL); + + rcAllLabels.left = rcLabel.left; + + if (hBackground != NULL) + { + RECT rcClient; + HRGN rgnBitmap; + RECT rcTmpBmp = rcItem; + RECT rcFirstItem; + HPALETTE hPAL; + HDC htempDC; + HBITMAP oldBitmap; + + htempDC = CreateCompatibleDC(hDC); + + oldBitmap = (HBITMAP)SelectObject(htempDC, hBackground); + + GetClientRect(hWnd, &rcClient); + rcTmpBmp.right = rcClient.right; + /* We also need to check whether it is the last item + The update region has to be extended to the bottom if it is */ + if (nItem == ListView_GetItemCount(hWnd) - 1) + rcTmpBmp.bottom = rcClient.bottom; + + rgnBitmap = CreateRectRgnIndirect(&rcTmpBmp); + SelectClipRgn(hDC, rgnBitmap); + DeleteBitmap(rgnBitmap); + + hPAL = GetBackgroundPalette(); + if (hPAL == NULL) + hPAL = CreateHalftonePalette(hDC); + + if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL) + { + SelectPalette(htempDC, hPAL, FALSE); + RealizePalette(htempDC); + } + + res = ListView_GetItemRect_Modified(hWnd, 0, &rcFirstItem, LVIR_BOUNDS); + + for (i = rcFirstItem.left; i < rcClient.right; i += pbmDesc->bmWidth) + for (j = rcFirstItem.top; j < rcClient.bottom; j += pbmDesc->bmHeight) + BitBlt(hDC, i, j, pbmDesc->bmWidth, pbmDesc->bmHeight, htempDC, 0, 0, SRCCOPY); + + SelectObject(htempDC, oldBitmap); + DeleteDC(htempDC); + + if (GetBackgroundPalette() == NULL) + { + DeletePalette(hPAL); + hPAL = NULL; + } + } + + indent_space = 0; + + if (bDrawAsChild) + { + RECT rect; + + res = ListView_GetItemRect_Modified(hWnd, nItem, &rect, LVIR_ICON); + + /* indent width of icon + the space between the icon and text + * so left of clone icon starts at text of parent + */ + indent_space = rect.right - rect.left + offset; + } + + rcAllLabels.left += indent_space; + + if (bSelected) + { + HBRUSH hBrush; + HBRUSH hOldBrush; + + if (bFocus) + { + clrTextSave = SetTextColor(hDC, GetSysColor(COLOR_HIGHLIGHTTEXT)); + clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_HIGHLIGHT)); + hBrush = CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)); + } + else + { + clrTextSave = SetTextColor(hDC, GetSysColor(COLOR_BTNTEXT)); + clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_BTNFACE)); + hBrush = CreateSolidBrush(GetSysColor(COLOR_BTNFACE)); + } + + hOldBrush = (HBRUSH)SelectObject(hDC, hBrush); + FillRect(hDC, &rcAllLabels, hBrush); + SelectObject(hDC, hOldBrush); + DeleteBrush(hBrush); + } + else + { + if (hBackground == NULL) + { + HBRUSH hBrush; + + hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW)); + FillRect(hDC, &rcAllLabels, hBrush); + DeleteBrush(hBrush); + } + + if (pPickerInfo->pCallbacks->pfnGetOffsetChildren && pPickerInfo->pCallbacks->pfnGetOffsetChildren()) + { + if (bDrawAsChild || bColorChild) + clrTextSave = SetTextColor(hDC, GetListCloneColor()); + else + clrTextSave = SetTextColor(hDC, GetListFontColor()); + } + else + { + if (bDrawAsChild) + clrTextSave = SetTextColor(hDC, GetListCloneColor()); + else + clrTextSave = SetTextColor(hDC, GetListFontColor()); + } + + clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_WINDOW)); + } + + + if (lvi.state & LVIS_CUT) + { + clrImage = GetSysColor(COLOR_WINDOW); + uiFlags |= ILD_BLEND50; + } + else if (bSelected) + { + if (bFocus) + clrImage = GetSysColor(COLOR_HIGHLIGHT); + else + clrImage = GetSysColor(COLOR_BTNFACE); + + uiFlags |= ILD_BLEND50; + } + + nStateImageMask = lvi.state & LVIS_STATEIMAGEMASK; + + if (nStateImageMask) + { + int nImage = (nStateImageMask >> 12) - 1; + hImageList = ListView_GetImageList(hWnd, LVSIL_STATE); + if (hImageList) + ImageList_Draw(hImageList, nImage, hDC, rcItem.left, rcItem.top, ILD_TRANSPARENT); + } + + res = ListView_GetItemRect_Modified(hWnd, nItem, &rcIcon, LVIR_ICON); + + rcIcon.left += indent_space; + + res = ListView_GetItemRect_Modified(hWnd, nItem, &rcItem, LVIR_LABEL); + + hImageList = ListView_GetImageList(hWnd, LVSIL_SMALL); + if (hImageList) + { + UINT nOvlImageMask = lvi.state & LVIS_OVERLAYMASK; + if (rcIcon.left + 16 + indent_space < rcItem.right) + { + ImageList_DrawEx(hImageList, lvi.iImage, hDC, rcIcon.left, rcIcon.top, 16, 16, + GetSysColor(COLOR_WINDOW), clrImage, uiFlags | nOvlImageMask); + } + } + + res = ListView_GetItemRect_Modified(hWnd, nItem, &rcItem, LVIR_LABEL); + + pszText = MakeShortString(hDC, szBuff, rcItem.right - rcItem.left, 2*offset + indent_space); + + rcLabel = rcItem; + rcLabel.left += offset + indent_space; + rcLabel.right -= offset; + + DrawText(hDC, pszText, -1, &rcLabel, + DT_LEFT | DT_SINGLELINE | DT_NOPREFIX | DT_VCENTER); + + for (nColumn = 1; nColumn < nColumnMax; nColumn++) + { + int nRetLen; + UINT nJustify; + LV_ITEM lvItem; + + lvc.mask = LVCF_FMT | LVCF_WIDTH; + res = ListView_GetColumn(hWnd, order[nColumn], &lvc); + + lvItem.mask = LVIF_TEXT; + lvItem.iItem = nItem; + lvItem.iSubItem = order[nColumn]; + lvItem.pszText = szBuff; + lvItem.cchTextMax = ARRAY_LENGTH(szBuff); + + if (ListView_GetItem(hWnd, &lvItem) == FALSE) + continue; + + rcItem.left = rcItem.right; + rcItem.right += lvc.cx; + + nRetLen = _tcslen(szBuff); + if (nRetLen == 0) + continue; + + pszText = MakeShortString(hDC, szBuff, rcItem.right - rcItem.left, 2 * offset); + + nJustify = DT_LEFT; + + if (pszText == szBuff) + { + switch (lvc.fmt & LVCFMT_JUSTIFYMASK) + { + case LVCFMT_RIGHT: + nJustify = DT_RIGHT; + break; + + case LVCFMT_CENTER: + nJustify = DT_CENTER; + break; + + default: + break; + } + } + + rcLabel = rcItem; + rcLabel.left += offset; + rcLabel.right -= offset; + DrawText(hDC, pszText, -1, &rcLabel, + nJustify | DT_SINGLELINE | DT_NOPREFIX | DT_VCENTER); + } + + if (lvi.state & LVIS_FOCUSED && bFocus) + DrawFocusRect(hDC, &rcAllLabels); + + SetTextColor(hDC, clrTextSave); + SetBkColor(hDC, clrBkSave); + free(order); +} + + + + +const struct PickerCallbacks *Picker_GetCallbacks(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + pPickerInfo = GetPickerInfo(hwndPicker); + return pPickerInfo->pCallbacks; +} + + + +int Picker_GetColumnCount(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + pPickerInfo = GetPickerInfo(hwndPicker); + return pPickerInfo->nColumnCount; +} + + + +const LPCTSTR *Picker_GetColumnNames(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + pPickerInfo = GetPickerInfo(hwndPicker); + return pPickerInfo->ppszColumnNames; +} + + + +void Picker_SetHeaderImageList(HWND hwndPicker, HIMAGELIST hHeaderImages) +{ + HWND hwndHeader; + hwndHeader = ListView_GetHeader(hwndPicker); + SendMessage(hwndHeader, HDM_SETIMAGELIST, 0, (LPARAM) (void *) hHeaderImages); +} + + + +BOOL Picker_SaveColumnWidths(HWND hwndPicker) +{ + struct PickerInfo *pPickerInfo; + int *widths; + int *order; + int *tmpOrder; + int nColumnMax, i; + BOOL bSuccess = FALSE; + BOOL res; + + pPickerInfo = GetPickerInfo(hwndPicker); + + /* allocate space for the column info */ + widths = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*widths)); + order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order)); + tmpOrder = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*tmpOrder)); + if (!widths || !order || !tmpOrder) + goto done; + + /* retrieve the values */ + memset(widths, 0, pPickerInfo->nColumnCount * sizeof(*widths)); + memset(order, 0, pPickerInfo->nColumnCount * sizeof(*order)); + pPickerInfo->pCallbacks->pfnGetColumnWidths(widths); + pPickerInfo->pCallbacks->pfnGetColumnOrder(order); + + /* switch the list view to LVS_REPORT style so column widths reported correctly */ + SetWindowLong(hwndPicker, GWL_STYLE, + (GetWindowLong(hwndPicker, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_REPORT); + + nColumnMax = Picker_GetNumColumns(hwndPicker); + + if (GetUseOldControl()) + { + for (i = 0; i < nColumnMax; i++) + { + widths[Picker_GetRealColumnFromViewColumn(hwndPicker, i)] = + ListView_GetColumnWidth(hwndPicker, i); + } + } + else + { + /* Get the Column Order and save it */ + res = ListView_GetColumnOrderArray(hwndPicker, nColumnMax, tmpOrder); + + for (i = 0; i < nColumnMax; i++) + { + widths[Picker_GetRealColumnFromViewColumn(hwndPicker, i)] + = ListView_GetColumnWidth(hwndPicker, i); + order[i] = Picker_GetRealColumnFromViewColumn(hwndPicker, tmpOrder[i]); + } + } + + pPickerInfo->pCallbacks->pfnSetColumnWidths(widths); + pPickerInfo->pCallbacks->pfnSetColumnOrder(order); + bSuccess = TRUE; + +done: + if (widths) + free(widths); + if (order) + free(order); + if (tmpOrder) + free(tmpOrder); + return bSuccess; +} diff --git a/docs/release/src/osd/winui/picker.h b/docs/release/src/osd/winui/picker.h new file mode 100644 index 00000000000..ab514b2d28b --- /dev/null +++ b/docs/release/src/osd/winui/picker.h @@ -0,0 +1,88 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef PICKER_H +#define PICKER_H + +struct PickerCallbacks +{ + // Options retrieval + void (*pfnSetSortColumn)(int column); + int (*pfnGetSortColumn)(void); + void (*pfnSetSortReverse)(BOOL reverse); + BOOL (*pfnGetSortReverse)(void); + void (*pfnSetViewMode)(int val); + int (*pfnGetViewMode)(void); + void (*pfnSetColumnWidths)(int widths[]); + void (*pfnGetColumnWidths)(int widths[]); + void (*pfnSetColumnOrder)(int order[]); + void (*pfnGetColumnOrder)(int order[]); + void (*pfnSetColumnShown)(int shown[]); + void (*pfnGetColumnShown)(int shown[]); + BOOL (*pfnGetOffsetChildren)(void); + + int (*pfnCompare)(HWND hwndPicker, int nIndex1, int nIndex2, int nSortSubItem); + void (*pfnDoubleClick)(void); + const TCHAR *(*pfnGetItemString)(HWND hwndPicker, int nItem, int nColumn, + TCHAR *pszBuffer, UINT nBufferLength); + int (*pfnGetItemImage)(HWND hwndPicker, int nItem); + void (*pfnLeavingItem)(HWND hwndPicker, int nItem); + void (*pfnEnteringItem)(HWND hwndPicker, int nItem); + void (*pfnBeginListViewDrag)(NM_LISTVIEW *pnlv); + int (*pfnFindItemParent)(HWND hwndPicker, int nItem); + BOOL (*pfnOnIdle)(HWND hwndPicker); + void (*pfnOnHeaderContextMenu)(POINT pt, int nColumn); + void (*pfnOnBodyContextMenu)(POINT pt); +}; + +struct PickerOptions +{ + const struct PickerCallbacks *pCallbacks; + BOOL bOldControl; + BOOL bXPControl; + int nColumnCount; + const LPCTSTR *ppszColumnNames; +}; + +enum +{ + VIEW_LARGE_ICONS = 0, + VIEW_SMALL_ICONS, + VIEW_INLIST, + VIEW_REPORT, + VIEW_GROUPED, + VIEW_MAX +}; + + + +BOOL SetupPicker(HWND hwndPicker, const struct PickerOptions *pOptions); + +int Picker_GetViewID(HWND hwndPicker); +void Picker_SetViewID(HWND hwndPicker, int nViewID); +int Picker_GetRealColumnFromViewColumn(HWND hwndPicker, int nViewColumn); +int Picker_GetViewColumnFromRealColumn(HWND hwndPicker, int nRealColumn); +void Picker_Sort(HWND hwndPicker); +void Picker_ResetColumnDisplay(HWND hwndPicker); +int Picker_GetSelectedItem(HWND hwndPicker); +void Picker_SetSelectedItem(HWND hwndPicker, int nItem); +void Picker_SetSelectedPick(HWND hwndPicker, int nIndex); +int Picker_GetNumColumns(HWND hWnd); +void Picker_ClearIdle(HWND hwndPicker); +void Picker_ResetIdle(HWND hwndPicker); +BOOL Picker_IsIdling(HWND hwndPicker); +void Picker_SetHeaderImageList(HWND hwndPicker, HIMAGELIST hHeaderImages); +int Picker_InsertItemSorted(HWND hwndPicker, int nParam); +BOOL Picker_SaveColumnWidths(HWND hwndPicker); + +// These are used to handle events received by the parent regarding +// picker controls +BOOL Picker_HandleNotify(LPNMHDR lpNmHdr); +void Picker_HandleDrawItem(HWND hwndPicker, LPDRAWITEMSTRUCT lpDrawItemStruct); + +// Accessors +const struct PickerCallbacks *Picker_GetCallbacks(HWND hwndPicker); +int Picker_GetColumnCount(HWND hwndPicker); +const LPCTSTR *Picker_GetColumnNames(HWND hwndPicker); + +#endif // PICKER_H diff --git a/docs/release/src/osd/winui/properties.cpp b/docs/release/src/osd/winui/properties.cpp new file mode 100644 index 00000000000..f12630590b3 --- /dev/null +++ b/docs/release/src/osd/winui/properties.cpp @@ -0,0 +1,3348 @@ +// For licensing and usage information, read docs/winui_license.txt +// MASTER +//**************************************************************************** + +/*************************************************************************** + + Properties.c + + Properties Popup and Misc UI support routines. + + Created 8/29/98 by Mike Haaland (mhaaland@hypertech.com) + +***************************************************************************/ + +/*************************************************************************** + +MSH - 20070809 +-- +Notes on properties and ini files, reset and reset to default. +---------------------------------------------------------------------------- +Each ini contains a complete option set. + +Priority order for option sets (Lowest to Highest): + +built-in defaults +program ini (executable root filename ini) +debug ini (if running a debug build) +driver ini (source code root filename in which this driver is found) +game ini (where game is the driver name for this game) + +To determine which option set to use, start at the top level (lowest +priority), and overlay all higher priority ini's until the desired level +is reached. + +The 'default' option set is the next priority higher up the list from +the desired level. For the default (program.ini) level, it is also the +default. + +When MAME is run, the desired level is game ini. + +Expected Code behavior: +---------------------------------------------------------------------------- +This approach requires 3 option sets, 'current', 'original' and 'default'. + +'current': used to populate the property pages, and to initialize the +'original' set. + +'original': used to evaluate if the 'Reset' button is enabled. +If 'current' matches 'original', the 'Reset' button is disabled, +otherwise it is enabled. + +'default': used to evaluate if the 'Restore to Defaults' button is enabled. +If 'current' matches 'default', the 'Restore to Defaults' button is disabled, +otherwise it is enabled. + +When editing any option set, the desired level is set to the one being +edited, the default set for that level, is the next lower priority set found. + +Upon entering the properties dialog: +a) 'current' is initialized +b) 'original' is initialized by 'current' +c) 'default' is initialized +d) Populate Property pages with 'current' +e) 'Reset' and 'Restore to Defaults' buttons are evaluated. + +After any change: +a) 'current' is updated +b) 'Reset' and 'Restore to Defaults' buttons are re-evaluated. + +Reset: +a) 'current' is reinitialized to 'original' +b) Re-populate Property pages with 'current' +c) 'Reset' and 'Restore to Defaults' buttons are re-evaluated. + +Restore to Defaults: +a) 'current' is reinitialized to 'default' +b) Re-populate Property pages with 'current' +b) 'Reset' and 'Restore to Defaults' buttons are re-evaluated. + +Apply: +a) 'original' is reinitialized to 'current' +b) 'Reset' and 'Restore to defaults' are re-evaluated. +c) If they 'current' matches 'default', remove the ini from disk. + Otherwise, write the ini to disk. + +Cancel: +a) Exit the dialog. + +OK: +a) If they 'current' matches 'default', remove the ini from disk. + Otherwise, write the ini to disk. +b) Exit the dialog. + + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> + +// standard C headers +#include <tchar.h> +#include <sys/stat.h> // for S_IFDIR + +// MAME/MAMEUI headers +#include "emu.h" +#include "mui_audit.h" +#include "mui_opts.h" +#include "resource.h" +#include "dijoystick.h" /* For DIJoystick availability. */ +#include "mui_util.h" +#include "datamap.h" +#include "help.h" +#include "winui.h" +#include "strconv.h" +#include "winutf8.h" +#include "directories.h" +#include "sound/samples.h" +//#include "sound/vlm5030.h" // why is this device treated as samples? + +#ifdef _MSC_VER +#define snprintf _snprintf +#endif + +#include "newuires.h" +#include "directdraw.h" /* has to be after samples.h */ +#include "properties.h" +#include "drivenum.h" +#include "machine/ram.h" + + +#if defined(__GNUC__) +/* fix warning: cast does not match function type */ +#undef PropSheet_GetTabControl +#define PropSheet_GetTabControl(d) (HWND)(LRESULT)(int)SendMessage((d),PSM_GETTABCONTROL,0,0) +#endif /* defined(__GNUC__) */ + +/*************************************************************** + * Imported function prototypes + ***************************************************************/ + +/************************************************************** + * Local function prototypes + **************************************************************/ + +static void SetSamplesEnabled(HWND hWnd, int nIndex, BOOL bSoundEnabled); +static void InitializeOptions(HWND hDlg); +static void InitializeMisc(HWND hDlg); +static void OptOnHScroll(HWND hWnd, HWND hwndCtl, UINT code, int pos); +static void NumScreensSelectionChange(HWND hwnd); +static void RefreshSelectionChange(HWND hWnd, HWND hWndCtrl); +static void InitializeSoundUI(HWND hwnd); +static void InitializeSkippingUI(HWND hwnd); +static void InitializeRotateUI(HWND hwnd); +static void UpdateSelectScreenUI(HWND hwnd); +static void InitializeSelectScreenUI(HWND hwnd); +static void InitializeD3DVersionUI(HWND hwnd); +static void InitializeVideoUI(HWND hwnd); +static void InitializeBIOSUI(HWND hwnd); +static void InitializeControllerMappingUI(HWND hwnd); +static void UpdateOptions(HWND hDlg, datamap *map, windows_options &opts); +static void UpdateProperties(HWND hDlg, datamap *map, windows_options &opts); +static void PropToOptions(HWND hWnd, windows_options &o); +static void OptionsToProp(HWND hWnd, windows_options &o); +static void SetPropEnabledControls(HWND hWnd); +static BOOL SelectEffect(HWND hWnd); +static BOOL ResetEffect(HWND hWnd); +static BOOL SelectJoystickMap(HWND hWnd); +static BOOL ResetJoystickMap(HWND hWnd); +static BOOL SelectDebugscript(HWND hWnd); +static BOOL ResetDebugscript(HWND hWnd); + +static void BuildDataMap(void); +static void ResetDataMap(HWND hWnd); + +static void UpdateBackgroundBrush(HWND hwndTab); +static HBRUSH hBkBrush; + +#ifdef MESS +static BOOL DirListReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name); +static BOOL DirListPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name); +static BOOL RamPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name); +extern BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult); +//static BOOL g_bModifiedSoftwarePaths = FALSE; +#endif + +/************************************************************** + * Local private variables + **************************************************************/ + +/* No longer used by the core, but we need it to predefine configurable screens for all games. */ +#ifndef MAX_SCREENS +/* maximum number of screens for one game */ +#define MAX_SCREENS 4 +#endif + +static windows_options pOrigOpts, pDefaultOpts, pCurrentOpts; +static datamap *properties_datamap; + +static int g_nGame = 0; +static int g_nFolder = 0; +static int g_nFolderGame = 0; +static OPTIONS_TYPE g_nPropertyMode; +static BOOL g_bAutoAspect[MAX_SCREENS] = {FALSE, FALSE, FALSE, FALSE}; +static BOOL g_bAutoSnapSize = FALSE; +static HICON g_hIcon = NULL; + +/* Property sheets */ + +#define HIGHLIGHT_COLOR RGB(0,196,0) +static HBRUSH highlight_brush = NULL; +static HBRUSH background_brush = NULL; + +#define ORIENTATION_COLOR RGB( 190, 128, 0) //LIGHT BROWN +#define VECTOR_COLOR RGB( 190, 0, 0) //DARK RED +#define FOLDER_COLOR RGB( 0, 128, 0 ) // DARK GREEN +#define PARENT_COLOR RGB( 190, 128, 192 ) // PURPLE +#define GAME_COLOR RGB( 0, 128, 192 ) // DARK BLUE + + +BOOL PropSheetFilter_Vector(const machine_config *drv, const game_driver *gamedrv) +{ + return isDriverVector(drv); +} + +/* Help IDs - moved to auto-generated helpids.c */ +extern const DWORD dwHelpIDs[]; + +static struct ComboBoxVideo +{ + const TCHAR* m_pText; + const char* m_pData; +} g_ComboBoxVideo[] = +{ + { TEXT("Auto"), "auto" }, + { TEXT("GDI"), "gdi" }, +// { TEXT("DirectDraw"), "ddraw" }, // removed 20160217 + { TEXT("Direct3D"), "d3d" }, + { TEXT("BGFX"), "bgfx" }, + { TEXT("OpenGL"), "opengl" }, +}; +#define NUMVIDEO (sizeof(g_ComboBoxVideo) / sizeof(g_ComboBoxVideo[0])) + +static struct ComboBoxSound +{ + const TCHAR* m_pText; + const char* m_pData; +} g_ComboBoxSound[] = +{ + { TEXT("None"), "none" }, + { TEXT("Auto"), "auto" }, + { TEXT("DirectSound"), "dsound" }, +}; +#define NUMSOUND (sizeof(g_ComboBoxSound) / sizeof(g_ComboBoxSound[0])) + +static struct ComboBoxD3DVersion +{ + const TCHAR* m_pText; + const int m_pData; +} g_ComboBoxD3DVersion[] = +{ + { TEXT("Version 9"), 9 }, +// { TEXT("Version 8"), 8 }, +}; + +#define NUMD3DVERSIONS (sizeof(g_ComboBoxD3DVersion) / sizeof(g_ComboBoxD3DVersion[0])) +#define WINOPTION_D3DVERSION "9" + +static struct ComboBoxSelectScreen +{ + const TCHAR* m_pText; + const int m_pData; +} g_ComboBoxSelectScreen[] = +{ + { TEXT("Screen 0"), 0 }, + { TEXT("Screen 1"), 1 }, + { TEXT("Screen 2"), 2 }, + { TEXT("Screen 3"), 3 }, +}; +#define NUMSELECTSCREEN (sizeof(g_ComboBoxSelectScreen) / sizeof(g_ComboBoxSelectScreen[0])) + +static struct ComboBoxView +{ + const TCHAR* m_pText; + const char* m_pData; +} g_ComboBoxView[] = +{ + { TEXT("Auto"), "auto" }, + { TEXT("Standard"), "standard" }, + { TEXT("Pixel Aspect"), "pixel" }, + { TEXT("Cocktail"), "cocktail" }, +}; +#define NUMVIEW (sizeof(g_ComboBoxView) / sizeof(g_ComboBoxView[0])) + + + +static struct ComboBoxDevices +{ + const TCHAR* m_pText; + const char* m_pData; +} g_ComboBoxDevice[] = +{ + { TEXT("None"), "none" }, + { TEXT("Keyboard"), "keyboard" }, + { TEXT("Mouse"), "mouse" }, + { TEXT("Joystick"), "joystick" }, + { TEXT("Lightgun"), "lightgun" }, +}; + +#define NUMDEVICES (sizeof(g_ComboBoxDevice) / sizeof(g_ComboBoxDevice[0])) + +static struct ComboBoxSnapView +{ + const TCHAR* m_pText; + const char* m_pData; +} g_ComboBoxSnapView[] = +{ + { TEXT("Internal"), "internal" }, + { TEXT("Auto"), "auto" }, + { TEXT("Standard"), "standard" }, + { TEXT("Pixel Aspect"), "pixel" }, + { TEXT("Cocktail"), "cocktail" }, +}; +#define NUMSNAPVIEW (sizeof(g_ComboBoxSnapView) / sizeof(g_ComboBoxSnapView[0])) + + +/*************************************************************** + * Public functions + ***************************************************************/ + + +int PropertiesCurrentGame(HWND hDlg) +{ + return g_nGame; +} + +DWORD_PTR GetHelpIDs(void) +{ + return (DWORD_PTR)dwHelpIDs; +} + +static int GetSelectedScreen(HWND hWnd) +{ + int nSelectedScreen = 0; + HWND hCtrl = GetDlgItem(hWnd, IDC_SCREENSELECT); + if (hCtrl) + nSelectedScreen = ComboBox_GetCurSel(hCtrl); + if ((nSelectedScreen < 0) || (nSelectedScreen >= NUMSELECTSCREEN)) + nSelectedScreen = 0; + return nSelectedScreen; + +} + +static PROPSHEETPAGE *CreatePropSheetPages(HINSTANCE hInst, BOOL bOnlyDefault, +// const game_driver *gamedrv, UINT *pnMaxPropSheets, BOOL isGame ) + int nGame, UINT *pnMaxPropSheets, BOOL isGame ) +{ + PROPSHEETPAGE *pspages; + int maxPropSheets = 0; + int possiblePropSheets; + int i = ( isGame ) ? 0 : 2; + + for (; g_propSheets[i].pfnDlgProc; i++) + ; + + possiblePropSheets = (isGame) ? i + 1 : i - 1; + + pspages = (PROPSHEETPAGE *)malloc(sizeof(PROPSHEETPAGE) * possiblePropSheets); + if (!pspages) + return NULL; + + memset(pspages, 0, sizeof(PROPSHEETPAGE) * possiblePropSheets); + + i = ( isGame ) ? 0 : 2; + + for (; g_propSheets[i].pfnDlgProc; i++) + { + if (nGame < 0) + { + if (g_propSheets[i].bOnDefaultPage) + { + pspages[maxPropSheets].dwSize = sizeof(PROPSHEETPAGE); + pspages[maxPropSheets].dwFlags = 0; + pspages[maxPropSheets].hInstance = hInst; + pspages[maxPropSheets].pszTemplate = MAKEINTRESOURCE(g_propSheets[i].dwDlgID); + pspages[maxPropSheets].pfnCallback = NULL; + pspages[maxPropSheets].lParam = 0; + pspages[maxPropSheets].pfnDlgProc = g_propSheets[i].pfnDlgProc; + maxPropSheets++; + } + } + else + if ((nGame >= 0) || g_propSheets[i].bOnDefaultPage) + { + //machine_config config(*gamedrv,pCurrentOpts); + +// if (!gamedrv || !g_propSheets[i].pfnFilterProc || g_propSheets[i].pfnFilterProc(&config, gamedrv)) + if (nGame < 0 || !g_propSheets[i].pfnFilterProc || g_propSheets[i].pfnFilterProc(nGame)) + { + pspages[maxPropSheets].dwSize = sizeof(PROPSHEETPAGE); + pspages[maxPropSheets].dwFlags = 0; + pspages[maxPropSheets].hInstance = hInst; + pspages[maxPropSheets].pszTemplate = MAKEINTRESOURCE(g_propSheets[i].dwDlgID); + pspages[maxPropSheets].pfnCallback = NULL; + pspages[maxPropSheets].lParam = 0; + pspages[maxPropSheets].pfnDlgProc = g_propSheets[i].pfnDlgProc; + maxPropSheets++; + } + } + } + + if (pnMaxPropSheets) + *pnMaxPropSheets = maxPropSheets; + + return pspages; +} + +// This is for the DEFAULT property-page options only +void InitDefaultPropertyPage(HINSTANCE hInst, HWND hWnd) +{ + PROPSHEETHEADER pshead; + PROPSHEETPAGE *pspage; + + // clear globals + g_nGame = GLOBAL_OPTIONS; + windows_options dummy; + pCurrentOpts = dummy; + pOrigOpts = dummy; + pDefaultOpts = dummy; + + /* Get default options to populate property sheets */ + load_options(pCurrentOpts, g_nGame); + load_options(pOrigOpts, g_nGame); + load_options(pDefaultOpts, -2); + + /* Stash the result for comparing later */ + //CreateGameOptions(pOrigOpts, OPTIONS_TYPE_GLOBAL); + + g_nPropertyMode = OPTIONS_GLOBAL; + BuildDataMap(); + + ZeroMemory(&pshead, sizeof(pshead)); + + pspage = CreatePropSheetPages(hInst, TRUE, -1, &pshead.nPages, FALSE); + if (!pspage) + return; + + /* Fill in the property sheet header */ + pshead.hwndParent = hWnd; + pshead.dwSize = sizeof(PROPSHEETHEADER); + pshead.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_PROPTITLE; + pshead.hInstance = hInst; + pshead.pszCaption = TEXT("Default Game"); + pshead.nStartPage = 0; + pshead.pszIcon = MAKEINTRESOURCE(IDI_MAMEUI_ICON); + pshead.ppsp = pspage; + + /* Create the Property sheet and display it */ + if (PropertySheet(&pshead) == -1) + { + char temp[100]; + DWORD dwError = GetLastError(); + sprintf(temp, "Property Sheet Error %d %X", (int)dwError, (int)dwError); + win_message_box_utf8(0, temp, "Error", IDOK); + } + + free(pspage); +} + +/* Initialize the property pages for anything but the Default option set */ +void InitPropertyPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num) +{ + InitPropertyPageToPage(hInst, hWnd, hIcon, opt_type, folder_id, game_num, PROPERTIES_PAGE); +} + +void InitPropertyPageToPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num, int start_page ) +{ + PROPSHEETHEADER pshead; + PROPSHEETPAGE *pspage; + TCHAR* t_description = 0; +/// OPTIONS_TYPE default_type = opt_type; + + if (highlight_brush == NULL) + highlight_brush = CreateSolidBrush(HIGHLIGHT_COLOR); + + if (background_brush == NULL) + background_brush = CreateSolidBrush(GetSysColor(COLOR_3DFACE)); + + // Initialize the options + load_options(pCurrentOpts, game_num); + load_options(pOrigOpts, game_num); + if (game_num == GLOBAL_OPTIONS) + load_options(pDefaultOpts, -2); // base opts is the backup for global + else + load_options(pDefaultOpts, -1); // global is the backup for games + + // Copy current_options to original options +/// CreateGameOptions(pOrigOpts, OPTIONS_TYPE_GLOBAL); + + // Copy icon to use for the property pages + g_hIcon = CopyIcon(hIcon); + + // These MUST be valid, they are used as indicies + g_nGame = game_num; + g_nFolder = folder_id; + + // Keep track of OPTIONS_TYPE that was passed in. + g_nPropertyMode = opt_type; + + // Evaluate if the current set uses the Default set + //g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + //g_bReset = FALSE; + BuildDataMap(); + + ZeroMemory(&pshead, sizeof(PROPSHEETHEADER)); + + // Set the game to audit to this game + + // Create the property sheets + if( OPTIONS_GAME == opt_type ) + { + InitGameAudit(game_num); +// pspage = CreatePropSheetPages(hInst, FALSE, &driver_list::driver(game_num), &pshead.nPages, TRUE); + pspage = CreatePropSheetPages(hInst, FALSE, game_num, &pshead.nPages, TRUE); + } + else + pspage = CreatePropSheetPages(hInst, FALSE, -1, &pshead.nPages, FALSE); + + if (!pspage) + return; + + + // Get the description use as the dialog caption. + switch( opt_type ) + { + case OPTIONS_GAME: + t_description = tstring_from_utf8(ModifyThe(driver_list::driver(g_nGame).description)); + break; + case OPTIONS_SOURCE: + t_description = tstring_from_utf8(GetDriverFilename(g_nGame)); + break; + case OPTIONS_GLOBAL: + t_description = tstring_from_utf8("Default Settings"); + break; + default: + return; + } + // If we have no description, return. + if( !t_description ) + return; + + /* Fill in the property sheet header */ + pshead.pszCaption = t_description; + pshead.hwndParent = hWnd; + pshead.dwSize = sizeof(PROPSHEETHEADER); + pshead.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_PROPTITLE; + pshead.hInstance = hInst; + pshead.nStartPage = start_page; + pshead.pszIcon = MAKEINTRESOURCE(IDI_MAMEUI_ICON); + pshead.ppsp = pspage; + + /* Create the Property sheet and display it */ + if (PropertySheet(&pshead) == -1) + { + char temp[100]; + DWORD dwError = GetLastError(); + sprintf(temp, "Property Sheet Error %d %X", (int)dwError, (int)dwError); + win_message_box_utf8(0, temp, "Error", IDOK); + } + + osd_free(t_description); + free(pspage); +} + + +/********************************************************************* + * Local Functions + *********************************************************************/ + +/* Build CPU info string */ +static char *GameInfoCPU(UINT nIndex) +{ + static char buf[1024]; + machine_config config(driver_list::driver(nIndex),pCurrentOpts); + ZeroMemory(buf, sizeof(buf)); + + for (device_execute_interface &cpu : execute_interface_iterator(config.root_device())) + { + if (cpu.device().clock() >= 1000000) + { + sprintf(&buf[strlen(buf)], "%s %d.%06d MHz", + cpu.device().name(), + cpu.device().clock() / 1000000, + cpu.device().clock() % 1000000); + } + else + { + sprintf(&buf[strlen(buf)], "%s %d.%03d kHz", + cpu.device().name(), + cpu.device().clock() / 1000, + cpu.device().clock() % 1000); + } + + strcat(buf, "\n"); + } + + return buf; +} + +/* Build Sound system info string */ +static char *GameInfoSound(UINT nIndex) +{ + static char buf[1024]; + + buf[0] = 0; + + machine_config config(driver_list::driver(nIndex),pCurrentOpts); + + /* iterate over sound chips */ + for (device_sound_interface &sound : sound_interface_iterator(config.root_device())) + { + char tmpname[1024]; + + sprintf(tmpname,"%s",sound.device().name()); + + int clock = sound.device().clock(); + + sprintf(&buf[strlen(buf)],"%s",tmpname); + + if (clock) + { + if (clock >= 1000000) + { + sprintf(&buf[strlen(buf)]," %d.%06d MHz", + clock / 1000000, + clock % 1000000); + } + else + { + sprintf(&buf[strlen(buf)]," %d.%03d kHz", + clock / 1000, + clock % 1000); + } + } + + strcat(buf,"\n"); + } + return buf; +} + +/* Build Display info string */ +static char *GameInfoScreen(UINT nIndex) +{ + static char buf[1024]; + machine_config config(driver_list::driver(nIndex),pCurrentOpts); + memset(buf, '\0', 1024); + + if (isDriverVector(&config)) + strcpy(buf, "Vector Game"); + else + { + screen_device_iterator iter(config.root_device()); + const screen_device *screen = iter.first(); + if (screen == NULL) + strcpy(buf, "Screenless Game"); + else + { + for (screen_device &screen : screen_device_iterator(config.root_device())) + { + char tmpbuf[256]; + const rectangle &visarea = screen.visible_area(); + + if (driver_list::driver(nIndex).flags & ORIENTATION_SWAP_XY) + { + sprintf(tmpbuf,"%d x %d (V) %f Hz\n", + visarea.max_y - visarea.min_y + 1, + visarea.max_x - visarea.min_x + 1, + ATTOSECONDS_TO_HZ(screen.refresh_attoseconds())); + } + else + { + sprintf(tmpbuf,"%d x %d (H) %f Hz\n", + visarea.max_x - visarea.min_x + 1, + visarea.max_y - visarea.min_y + 1, + ATTOSECONDS_TO_HZ(screen.refresh_attoseconds())); + } + strcat(buf, tmpbuf); + } + } + } + return buf; +} + + +/* Build game status string */ +const char *GameInfoStatus(int driver_index, BOOL bRomStatus) +{ + static char buffer[1024]; + int audit_result = GetRomAuditResults(driver_index); + memset(buffer,0,sizeof(char)*1024); + if ( bRomStatus ) + { + if (IsAuditResultKnown(audit_result) == FALSE) + strcpy(buffer, "Unknown"); + else if (IsAuditResultYes(audit_result)) + { + if (DriverIsBroken(driver_index)) + { + strcpy(buffer, "Not working"); + + if (driver_list::driver(driver_index).flags & MACHINE_UNEMULATED_PROTECTION) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game protection isn't fully emulated"); + } + if (driver_list::driver(driver_index).flags & MACHINE_WRONG_COLORS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Colors are completely wrong"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_COLORS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Colors aren't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_GRAPHICS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Video emulation isn't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_NO_SOUND) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game lacks sound"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_SOUND) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Sound emulation isn't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_NO_COCKTAIL) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Screen flipping is not supported"); + } + if (driver_list::driver(driver_index).flags & MACHINE_REQUIRES_ARTWORK) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game requires artwork"); + } + } + else + { + strcpy(buffer, "Working"); + + if (driver_list::driver(driver_index).flags & MACHINE_UNEMULATED_PROTECTION) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game protection isn't fully emulated"); + } + if (driver_list::driver(driver_index).flags & MACHINE_WRONG_COLORS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Colors are completely wrong"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_COLORS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Colors aren't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_GRAPHICS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Video emulation isn't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_NO_SOUND) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game lacks sound"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_SOUND) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Sound emulation isn't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_NO_COCKTAIL) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Screen flipping is not supported"); + } + if (driver_list::driver(driver_index).flags & MACHINE_REQUIRES_ARTWORK) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game requires artwork"); + } + } + } + else + { + // audit result is no + strcpy(buffer, "BIOS missing"); + } + } + else + { + //Just show the emulation flags + if (DriverIsBroken(driver_index)) + { + strcpy(buffer, "Not working"); + } + else + { + strcpy(buffer, "Working"); + } + if (driver_list::driver(driver_index).flags & MACHINE_UNEMULATED_PROTECTION) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game protection isn't fully emulated"); + } + if (driver_list::driver(driver_index).flags & MACHINE_WRONG_COLORS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Colors are completely wrong"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_COLORS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Colors aren't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_GRAPHICS) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Video emulation isn't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_NO_SOUND) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game lacks sound"); + } + if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_SOUND) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Sound emulation isn't 100% accurate"); + } + if (driver_list::driver(driver_index).flags & MACHINE_NO_COCKTAIL) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Screen flipping is not supported"); + } + if (driver_list::driver(driver_index).flags & MACHINE_REQUIRES_ARTWORK) + { + if (*buffer != '\0') + strcat(buffer, "\r\n"); + strcat(buffer, "Game requires artwork"); + } + } + return buffer; +} + +/* Build game manufacturer string */ +static char *GameInfoManufactured(UINT nIndex) +{ + static char buffer[1024]; + + snprintf(buffer,sizeof(buffer),"%s %s",driver_list::driver(nIndex).year,driver_list::driver(nIndex).manufacturer); + return buffer; +} + +/* Build Game title string */ +char *GameInfoTitle(OPTIONS_TYPE opt_type, UINT nIndex) +{ + static char buf[1024]; + + if (OPTIONS_GLOBAL == opt_type) + strcpy(buf, "Global game options\nDefault options used by all games"); + else if ((OPTIONS_SOURCE == opt_type) || (OPTIONS_VECTOR == opt_type) ) + strcpy(buf, "Global folder options\nDefault options used by all games in the folder"); + else + if (OPTIONS_GAME == opt_type) + sprintf(buf, "%s\n\"%s\"", ModifyThe(driver_list::driver(nIndex).description), driver_list::driver(nIndex).name); + return buf; +} + +/* Build game clone information string */ +static char *GameInfoCloneOf(UINT nIndex) +{ + static char buf[1024]; + int nParentIndex= -1; + + buf[0] = '\0'; + + if (DriverIsClone(nIndex)) + { + nParentIndex = GetParentIndex(&driver_list::driver(nIndex)); + sprintf(buf, "%s - \"%s\"", + ConvertAmpersandString(ModifyThe(driver_list::driver(nParentIndex).description)), + driver_list::driver(nParentIndex).name); + } + + return buf; +} + +static const char * GameInfoSource(UINT nIndex) +{ + return GetDriverFilename(nIndex); +} + +/* Handle the information property page */ +INT_PTR CALLBACK GamePropertiesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ +HWND hWnd; + switch (Msg) + { + case WM_INITDIALOG: + if (g_hIcon) + SendDlgItemMessage(hDlg, IDC_GAME_ICON, STM_SETICON, (WPARAM) g_hIcon, 0); +#if defined(USE_SINGLELINE_TABCONTROL) + { + HWND hWnd = PropSheet_GetTabControl(GetParent(hDlg)); + DWORD tabStyle = (GetWindowLong(hWnd,GWL_STYLE) & ~TCS_MULTILINE); + SetWindowLong(hWnd,GWL_STYLE,tabStyle | TCS_SINGLELINE); + } +#endif + + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(g_nPropertyMode, g_nGame)); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_MANUFACTURED), GameInfoManufactured(g_nGame)); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_STATUS), GameInfoStatus(g_nGame, FALSE)); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_CPU), GameInfoCPU(g_nGame)); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SOUND), GameInfoSound(g_nGame)); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SCREEN), GameInfoScreen(g_nGame)); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_CLONEOF), GameInfoCloneOf(g_nGame)); + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SOURCE), GameInfoSource(g_nGame)); + + if (DriverIsClone(g_nGame)) + ShowWindow(GetDlgItem(hDlg, IDC_PROP_CLONEOF_TEXT), SW_SHOW); + else + ShowWindow(GetDlgItem(hDlg, IDC_PROP_CLONEOF_TEXT), SW_HIDE); + + hWnd = PropSheet_GetTabControl(GetParent(hDlg)); + UpdateBackgroundBrush(hWnd); + ShowWindow(hDlg, SW_SHOW); + return 1; + } + return 0; +} + +/* Handle all options property pages */ +// NOTE you cannot just say opts1=opts2, although in theory it should work, in practice opts1 becomes null. +INT_PTR CALLBACK GameOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + BOOL g_bUseDefaults = 0, g_bReset = 0; + //d3d_version = pCurrentOpts.int_value(WINOPTION_D3DVERSION); + + + switch (Msg) + { + case WM_INITDIALOG: + /* Fill in the Game info at the top of the sheet */ + win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(g_nPropertyMode, g_nGame)); + InitializeOptions(hDlg); + InitializeMisc(hDlg); + + UpdateProperties(hDlg, properties_datamap, pCurrentOpts); + + g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + g_bReset = (pCurrentOpts != pOrigOpts); + + // Default button doesn't exist on Default settings +// if (g_nGame == GLOBAL_OPTIONS) +// ShowWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), SW_HIDE); +// else + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults); + + // Setup Reset button + EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset); + ShowWindow(hDlg, SW_SHOW); + return 1; + + case WM_HSCROLL: + /* slider changed */ + HANDLE_WM_HSCROLL(hDlg, wParam, lParam, OptOnHScroll); + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), TRUE); + + // Enable Apply button + PropSheet_Changed(GetParent(hDlg), hDlg); + + // make sure everything's copied over, to determine what's changed + UpdateOptions(hDlg, properties_datamap, pCurrentOpts); + + // redraw it, it might be a new color now + InvalidateRect((HWND)lParam,NULL,TRUE); + + break; + + case WM_COMMAND: + { + /* Below, 'changed' is used to signify the 'Apply' button should be enabled. */ + WORD wID = GET_WM_COMMAND_ID(wParam, lParam); + HWND hWndCtrl = GET_WM_COMMAND_HWND(wParam, lParam); + WORD wNotifyCode = GET_WM_COMMAND_CMD(wParam, lParam); + BOOL changed = FALSE; + int nCurSelection = 0; + TCHAR szClass[256]; + + switch (wID) + { + case IDC_REFRESH: + if (wNotifyCode == LBN_SELCHANGE) + { + RefreshSelectionChange(hDlg, hWndCtrl); + changed = TRUE; + } + break; + + case IDC_ASPECT: + nCurSelection = Button_GetCheck( GetDlgItem(hDlg, IDC_ASPECT)); + if( g_bAutoAspect[GetSelectedScreen(hDlg)] != nCurSelection ) + { + changed = TRUE; + g_bAutoAspect[GetSelectedScreen(hDlg)] = nCurSelection; + } + break; + + case IDC_SNAPSIZE: + nCurSelection = Button_GetCheck( GetDlgItem(hDlg, IDC_SNAPSIZE)); + if( g_bAutoSnapSize != nCurSelection ) + { + changed = TRUE; + g_bAutoSnapSize = nCurSelection; + } + break; + + case IDC_SELECT_EFFECT: + changed = SelectEffect(hDlg); + break; + + case IDC_RESET_EFFECT: + changed = ResetEffect(hDlg); + break; + + case IDC_SELECT_JOYSTICKMAP: + changed = SelectJoystickMap(hDlg); + break; + + case IDC_RESET_JOYSTICKMAP: + changed = ResetJoystickMap(hDlg); + break; + + case IDC_SELECT_DEBUGSCRIPT: + changed = SelectDebugscript(hDlg); + break; + + case IDC_RESET_DEBUGSCRIPT: + changed = ResetDebugscript(hDlg); + break; + + case IDC_PROP_RESET: + // RESET Button - Only do it if mouse-clicked + if (wNotifyCode != BN_CLICKED) + break; + + // Change settings in property sheets back to original + UpdateProperties(hDlg, properties_datamap, pOrigOpts); + // The original options become the current options. + UpdateOptions(hDlg, properties_datamap, pCurrentOpts); + + g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + g_bReset = (pCurrentOpts != pOrigOpts); + // Turn off Apply + PropSheet_UnChanged(GetParent(hDlg), hDlg); + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults); + EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset); + break; + + case IDC_USE_DEFAULT: + // DEFAULT Button - Only do it if mouse-clicked + if (wNotifyCode != BN_CLICKED) + break; + + // Change settings to be the same as mame.ini + UpdateProperties(hDlg, properties_datamap, pDefaultOpts); + // The original options become the current options. + UpdateOptions(hDlg, properties_datamap, pCurrentOpts); + + g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + g_bReset = (pCurrentOpts != pOrigOpts); + // Enable/Disable the Reset to Defaults button + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults); + EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset); + // Tell the dialog to enable/disable the apply button. + if (g_nGame != GLOBAL_OPTIONS) + { + if (g_bReset) + PropSheet_Changed(GetParent(hDlg), hDlg); + else + PropSheet_UnChanged(GetParent(hDlg), hDlg); + } + break; + + // MSH 20070813 - Update all related controls + case IDC_SCREENSELECT: + case IDC_SCREEN: + // NPW 3-Apr-2007: Ugh I'm only perpetuating the vile hacks in this code + if ((wNotifyCode == CBN_SELCHANGE) || (wNotifyCode == CBN_SELENDOK)) + { + changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID); + datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SIZES); + //MSH 20070814 - Hate to do this, but its either this, or update each individual + // control on the SCREEN tab. + UpdateProperties(hDlg, properties_datamap, pCurrentOpts); + changed = TRUE; + /* NOT USED ************* + datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SCREENSELECT); + datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SCREEN); + datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_REFRESH); + datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SIZES); + datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_VIEW); + datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SWITCHRES); + + if (strcmp(options_get_string(pCurrentOpts, "screen0"), options_get_string(pOrigOpts, "screen0")!=0) || + strcmp(options_get_string(pCurrentOpts, "screen1"), options_get_string(pOrigOpts, "screen1")!=0) || + strcmp(options_get_string(pCurrentOpts, "screen2"), options_get_string(pOrigOpts, "screen2")!=0) || + strcmp(options_get_string(pCurrentOpts, "screen3"), options_get_string(pOrigOpts, "screen3")!=0)) + changed = TRUE; + ************************************* */ + } + break; + default: +#ifdef MESS + if (MessPropertiesCommand(hDlg, wNotifyCode, wID, &changed)) + break; +#endif + + // use default behavior; try to get the result out of the datamap if + // appropriate + GetClassName(hWndCtrl, szClass, ARRAY_LENGTH(szClass)); + if (!_tcscmp(szClass, WC_COMBOBOX)) + { + // combo box + if ((wNotifyCode == CBN_SELCHANGE) || (wNotifyCode == CBN_SELENDOK)) + changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID); + } + else if (!_tcscmp(szClass, WC_BUTTON) && (GetWindowLong(hWndCtrl, GWL_STYLE) & BS_CHECKBOX)) + { + // check box + changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID); + } + break; + } + + if (changed == TRUE) + { + // make sure everything's copied over, to determine what's changed + UpdateOptions(hDlg, properties_datamap, pCurrentOpts); + // enable the apply button + PropSheet_Changed(GetParent(hDlg), hDlg); + g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + g_bReset = (pCurrentOpts != pOrigOpts); + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults); + EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset); + } + } + break; + + case WM_NOTIFY: + { + // Set to true if we are exiting the properties dialog + //BOOL bClosing = ((LPPSHNOTIFY) lParam)->lParam; // indicates OK was clicked rather than APPLY + + switch (((NMHDR *) lParam)->code) + { + //We'll need to use a CheckState Table + //Because this one gets called for all kinds of other things too, and not only if a check is set + case PSN_SETACTIVE: + /* Initialize the controls. */ + UpdateProperties(hDlg, properties_datamap, pCurrentOpts); + g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + g_bReset = (pCurrentOpts != pOrigOpts); + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults); + EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset); + break; + + case PSN_APPLY: + // Handle more than one PSN_APPLY, since this proc handles more than one + // property sheet and can be called multiple times when it's time to exit, + // and we may have already freed the windows_options. + //if (bClosing) + //{ + //if (NULL == pCurrentOpts) + //return TRUE; + //} + + // Read the datamap + UpdateOptions(hDlg, properties_datamap, pCurrentOpts); + // The current options become the original options. + UpdateOptions(hDlg, properties_datamap, pOrigOpts); + + // Repopulate the controls? WTF? We just read them, they should be fine. + UpdateProperties(hDlg, properties_datamap, pCurrentOpts); + + g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + g_bReset = (pCurrentOpts != pOrigOpts); + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults); + EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset); + + // Save the current options + save_options(pCurrentOpts, g_nGame); + + // Disable apply button + PropSheet_UnChanged(GetParent(hDlg), hDlg); + SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR); + + return TRUE; + + case PSN_KILLACTIVE: + /* Save Changes to the options here. */ + UpdateOptions(hDlg, properties_datamap, pCurrentOpts); + // Determine button states. + g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + g_bReset = (pCurrentOpts != pOrigOpts); + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults); + EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset); + + ResetDataMap(hDlg); + SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE); + return 1; + + case PSN_RESET: + // Reset to the original values. Disregard changes + //pCurrentOpts = pOrigOpts; + g_bUseDefaults = (pCurrentOpts != pDefaultOpts); + g_bReset = (pCurrentOpts != pOrigOpts); + EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults); + EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset); + SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE); + break; + + case PSN_HELP: + // User wants help for this property page + break; + } + } + break; + + case WM_HELP: + /* User clicked the ? from the upper right on a control */ + HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs()); + break; + + case WM_CONTEXTMENU: + HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs()); + break; + + } + + return 0; +} + +/* Read controls that are not handled in the DataMap */ +static void PropToOptions(HWND hWnd, windows_options &o) +{ + HWND hCtrl; + HWND hCtrl2; + HWND hCtrl3; + std::string error_string; + + /* aspect ratio */ + hCtrl = GetDlgItem(hWnd, IDC_ASPECTRATION); + hCtrl2 = GetDlgItem(hWnd, IDC_ASPECTRATIOD); + hCtrl3 = GetDlgItem(hWnd, IDC_ASPECT); + if (hCtrl && hCtrl2 && hCtrl3) + { + char aspect_option[32]; + snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd)); + + if (Button_GetCheck(hCtrl3)) + { + o.set_value(aspect_option, "auto", OPTION_PRIORITY_CMDLINE,error_string); + } + else + { + int n = 0; + int d = 0; + TCHAR buffer[200]; + char buffer2[200]; + + Edit_GetText(hCtrl, buffer, ARRAY_LENGTH(buffer)); + _stscanf(buffer,TEXT("%d"),&n); + + Edit_GetText(hCtrl2, buffer, ARRAY_LENGTH(buffer)); + _stscanf(buffer,TEXT("%d"),&d); + + if (n == 0 || d == 0) + { + n = 4; + d = 3; + } + + snprintf(buffer2, sizeof(buffer2), "%d:%d", n, d); + o.set_value(aspect_option, buffer2, OPTION_PRIORITY_CMDLINE,error_string); + } + } + /* aspect ratio */ + hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH); + hCtrl2 = GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT); + hCtrl3 = GetDlgItem(hWnd, IDC_SNAPSIZE); + if (hCtrl && hCtrl2 && hCtrl3) + { + if (Button_GetCheck(hCtrl3)) + { + o.set_value(OPTION_SNAPSIZE, "auto", OPTION_PRIORITY_CMDLINE,error_string); + } + else + { + int width = 0; + int height = 0; + TCHAR buffer[200]; + char buffer2[200]; + + Edit_GetText(hCtrl, buffer, ARRAY_LENGTH(buffer)); + _stscanf(buffer, TEXT("%d"), &width); + + Edit_GetText(hCtrl2, buffer, ARRAY_LENGTH(buffer)); + _stscanf(buffer, TEXT("%d"), &height); + + if (width == 0 || height == 0) + { + width = 640; + height = 480; + } + + snprintf(buffer2, sizeof(buffer2), "%dx%d", width, height); + o.set_value(OPTION_SNAPSIZE, buffer2, OPTION_PRIORITY_CMDLINE,error_string); + } + } +} + +/* Update options from the dialog */ +static void UpdateOptions(HWND hDlg, datamap *map, windows_options &opts) +{ + /* These are always called together, so make one convenient function. */ + datamap_read_all_controls(map, hDlg, opts); + PropToOptions(hDlg, opts); +} + +/* Update the dialog from the options */ +static void UpdateProperties(HWND hDlg, datamap *map, windows_options &opts) +{ + /* These are always called together, so make one convenient function. */ + datamap_populate_all_controls(map, hDlg, opts); + OptionsToProp(hDlg, opts); + SetPropEnabledControls(hDlg); +} + +/* Populate controls that are not handled in the DataMap */ +static void OptionsToProp(HWND hWnd, windows_options& o) +{ + HWND hCtrl; + HWND hCtrl2; + TCHAR buf[100]; + int n = 0; + int d = 0; + int width = 0; + int height = 0; + int res = 0; + + /* video */ + + /* Setup refresh list based on depth. */ + datamap_update_control(properties_datamap, hWnd, pCurrentOpts, IDC_REFRESH); + /* Setup Select screen*/ + UpdateSelectScreenUI(hWnd ); + + hCtrl = GetDlgItem(hWnd, IDC_ASPECT); + if (hCtrl) + { + Button_SetCheck(hCtrl, g_bAutoAspect[GetSelectedScreen(hWnd)] ) ; + } + + hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZE); + if (hCtrl) + { + Button_SetCheck(hCtrl, g_bAutoSnapSize ) ; + } + + /* Bios select list */ + hCtrl = GetDlgItem(hWnd, IDC_BIOS); + if (hCtrl) + { + const char* cBuffer; + int i = 0; + int iCount = ComboBox_GetCount( hCtrl ); + for( i=0; i< iCount; i++ ) + { + cBuffer = (const char*)ComboBox_GetItemData( hCtrl, i ); + if (strcmp(cBuffer, pCurrentOpts.value(OPTION_BIOS) ) == 0) + { + res = ComboBox_SetCurSel(hCtrl, i); + break; + } + + } + } + + + hCtrl = GetDlgItem(hWnd, IDC_ASPECT); + if (hCtrl) + { + char aspect_option[32]; + snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd)); + if( strcmp(o.value(aspect_option), "auto") == 0) + { + Button_SetCheck(hCtrl, TRUE); + g_bAutoAspect[GetSelectedScreen(hWnd)] = TRUE; + } + else + { + Button_SetCheck(hCtrl, FALSE); + g_bAutoAspect[GetSelectedScreen(hWnd)] = FALSE; + } + } + + /* aspect ratio */ + hCtrl = GetDlgItem(hWnd, IDC_ASPECTRATION); + hCtrl2 = GetDlgItem(hWnd, IDC_ASPECTRATIOD); + if (hCtrl && hCtrl2) + { + char aspect_option[32]; + snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd)); + + n = 0; + d = 0; + if (o.value(aspect_option)) + { + if (sscanf(o.value(aspect_option), "%d:%d", &n, &d) == 2 && n != 0 && d != 0) + { + _stprintf(buf, TEXT("%d"), n); + Edit_SetText(hCtrl, buf); + _stprintf(buf, TEXT("%d"), d); + Edit_SetText(hCtrl2, buf); + } + else + { + Edit_SetText(hCtrl, TEXT("4")); + Edit_SetText(hCtrl2, TEXT("3")); + } + } + else + { + Edit_SetText(hCtrl, TEXT("4")); + Edit_SetText(hCtrl2, TEXT("3")); + } + } + hCtrl = GetDlgItem(hWnd, IDC_EFFECT); + if (hCtrl) { + const char* effect = o.value(OPTION_EFFECT); + if (effect == NULL) { + effect = "none"; + std::string error_string; + o.set_value(OPTION_EFFECT, effect, OPTION_PRIORITY_CMDLINE,error_string); + } + win_set_window_text_utf8(hCtrl, effect); + } + hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZE); + if (hCtrl) + { + if( strcmp(o.value(OPTION_SNAPSIZE), "auto") == 0) + { + Button_SetCheck(hCtrl, TRUE); + g_bAutoSnapSize = TRUE; + } + else + { + Button_SetCheck(hCtrl, FALSE); + g_bAutoSnapSize = FALSE; + } + } + /* snapshot size */ + hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH); + hCtrl2 = GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT); + if (hCtrl && hCtrl2) + { + n = 0; + d = 0; + if (o.value(OPTION_SNAPSIZE)) + { + if (sscanf(o.value(OPTION_SNAPSIZE), "%dx%d", &width, &height) == 2 && width != 0 && height != 0) + { + _stprintf(buf, TEXT("%d"), width); + Edit_SetText(hCtrl, buf); + _stprintf(buf, TEXT("%d"), height); + Edit_SetText(hCtrl2, buf); + } + else + { + Edit_SetText(hCtrl, TEXT("640")); + Edit_SetText(hCtrl2, TEXT("480")); + } + } + else + { + Edit_SetText(hCtrl, TEXT("640")); + Edit_SetText(hCtrl2, TEXT("480")); + } + } + res++; +} + +/* Adjust controls - tune them to the currently selected game */ +static void SetPropEnabledControls(HWND hWnd) +{ + //HWND hCtrl; + bool useart = TRUE; + BOOL joystick_attached = FALSE; + bool in_window = FALSE; + int nIndex = g_nGame; + + // auto is a reserved word + bool autov = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "auto")==0); + bool d3d = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "d3d")==0) | autov; + bool ddraw = 0;//(core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "ddraw")==0) | autov; + //bool gdi = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "gdi")==0) | autov; + + in_window = pCurrentOpts.bool_value(OSDOPTION_WINDOW); + Button_SetCheck(GetDlgItem(hWnd, IDC_ASPECT), g_bAutoAspect[GetSelectedScreen(hWnd)] ); + + EnableWindow(GetDlgItem(hWnd, IDC_WAITVSYNC), d3d|ddraw); + EnableWindow(GetDlgItem(hWnd, IDC_TRIPLE_BUFFER), d3d|ddraw); + EnableWindow(GetDlgItem(hWnd, IDC_PRESCALE), d3d|ddraw); + EnableWindow(GetDlgItem(hWnd, IDC_PRESCALEDISP), d3d|ddraw); + EnableWindow(GetDlgItem(hWnd, IDC_PRESCALETEXT), d3d|ddraw); + EnableWindow(GetDlgItem(hWnd, IDC_HWSTRETCH), ddraw && DirectDraw_HasHWStretch()); + EnableWindow(GetDlgItem(hWnd, IDC_SWITCHRES), TRUE); + EnableWindow(GetDlgItem(hWnd, IDC_SYNCREFRESH), TRUE); + EnableWindow(GetDlgItem(hWnd, IDC_REFRESH), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_REFRESHTEXT), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMA), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMATEXT), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMADISP), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESS), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESSTEXT), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESSDISP), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRAST), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRASTTEXT), !in_window); + EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRASTDISP), !in_window); + + EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATIOTEXT), !g_bAutoAspect[GetSelectedScreen(hWnd)]); + EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATION), !g_bAutoAspect[GetSelectedScreen(hWnd)]); + EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATIOD), !g_bAutoAspect[GetSelectedScreen(hWnd)]); + + EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZETEXT), !g_bAutoSnapSize); + EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT), !g_bAutoSnapSize); + EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH), !g_bAutoSnapSize); + EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEX), !g_bAutoSnapSize); + + EnableWindow(GetDlgItem(hWnd,IDC_D3D_FILTER),d3d); + EnableWindow(GetDlgItem(hWnd,IDC_D3D_VERSION),(NUMD3DVERSIONS>1) & d3d); + + //Switchres and D3D or ddraw enable the per screen parameters + + EnableWindow(GetDlgItem(hWnd, IDC_NUMSCREENS), ddraw | d3d); + EnableWindow(GetDlgItem(hWnd, IDC_NUMSCREENSDISP), ddraw | d3d); + EnableWindow(GetDlgItem(hWnd, IDC_SCREENSELECT), ddraw | d3d); + EnableWindow(GetDlgItem(hWnd, IDC_SCREENSELECTTEXT), ddraw | d3d); + + EnableWindow(GetDlgItem(hWnd, IDC_ARTWORK_CROP), useart); + EnableWindow(GetDlgItem(hWnd, IDC_BACKDROPS), useart); + EnableWindow(GetDlgItem(hWnd, IDC_BEZELS), useart); + EnableWindow(GetDlgItem(hWnd, IDC_OVERLAYS), useart); + EnableWindow(GetDlgItem(hWnd, IDC_CPANELS), useart); + EnableWindow(GetDlgItem(hWnd, IDC_MARQUEES), useart); + EnableWindow(GetDlgItem(hWnd, IDC_ARTMISCTEXT), useart); + + /* Joystick options */ + joystick_attached = DIJoystick.Available(); + + Button_Enable(GetDlgItem(hWnd,IDC_JOYSTICK), joystick_attached); + EnableWindow(GetDlgItem(hWnd, IDC_JDZTEXT), joystick_attached); + EnableWindow(GetDlgItem(hWnd, IDC_JDZDISP), joystick_attached); + EnableWindow(GetDlgItem(hWnd, IDC_JDZ), joystick_attached); + EnableWindow(GetDlgItem(hWnd, IDC_JSATTEXT), joystick_attached); + EnableWindow(GetDlgItem(hWnd, IDC_JSATDISP), joystick_attached); + EnableWindow(GetDlgItem(hWnd, IDC_JSAT), joystick_attached); + /* Trackball / Mouse options */ + if (nIndex <= -1 || DriverUsesTrackball(nIndex) || DriverUsesLightGun(nIndex)) + Button_Enable(GetDlgItem(hWnd,IDC_USE_MOUSE),TRUE); + else + Button_Enable(GetDlgItem(hWnd,IDC_USE_MOUSE),FALSE); + + if (!in_window && (nIndex <= -1 || DriverUsesLightGun(nIndex))) + { + // on WinXP the Lightgun and Dual Lightgun switches are no longer supported use mouse instead + OSVERSIONINFOEX osvi; + BOOL bOsVersionInfoEx; + // Try calling GetVersionEx using the OSVERSIONINFOEX structure. + // If that fails, try using the OSVERSIONINFO structure. + + ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + + if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) ) + { + osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); + bOsVersionInfoEx = GetVersionEx ( (OSVERSIONINFO *) &osvi); + } + + if( bOsVersionInfoEx && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) && (osvi.dwMajorVersion >= 5) ) + { + BOOL use_lightgun; + //XP and above... + Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),FALSE); + use_lightgun = Button_GetCheck(GetDlgItem(hWnd,IDC_USE_MOUSE)); + Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),FALSE); + Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),use_lightgun); + } + else + { + BOOL use_lightgun; + // Older than XP + Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),TRUE); + use_lightgun = Button_GetCheck(GetDlgItem(hWnd,IDC_LIGHTGUN)); + Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),use_lightgun); + Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),use_lightgun); + } + } + else + { + Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),FALSE); + Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),FALSE); + Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),FALSE); + } + + + /* Sound options */ + bool sound = (core_stricmp(pCurrentOpts.value(OSDOPTION_SOUND), "none")!=0); + ComboBox_Enable(GetDlgItem(hWnd, IDC_SAMPLERATE), sound); + EnableWindow(GetDlgItem(hWnd,IDC_VOLUME),sound); + EnableWindow(GetDlgItem(hWnd,IDC_RATETEXT),sound); + EnableWindow(GetDlgItem(hWnd,IDC_VOLUMEDISP),sound); + EnableWindow(GetDlgItem(hWnd,IDC_VOLUMETEXT),sound); + EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY),sound); + EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY_DISP),sound); + EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY_TEXT),sound); + SetSamplesEnabled(hWnd, nIndex, sound); + + if (Button_GetCheck(GetDlgItem(hWnd, IDC_AUTOFRAMESKIP))) + EnableWindow(GetDlgItem(hWnd, IDC_FRAMESKIP), FALSE); + else + EnableWindow(GetDlgItem(hWnd, IDC_FRAMESKIP), 1); + + if (nIndex <= -1 || DriverHasOptionalBIOS(nIndex)) + EnableWindow(GetDlgItem(hWnd,IDC_BIOS),TRUE); + else + EnableWindow(GetDlgItem(hWnd,IDC_BIOS),FALSE); + +} + +//============================================================ +// CONTROL HELPER FUNCTIONS FOR DATA EXCHANGE +//============================================================ + +static BOOL RotateReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + int selected_index = ComboBox_GetCurSel(control); + int original_selection = 0; + + // Figure out what the original selection value is + if (opts->bool_value(OPTION_ROR) && !opts->bool_value(OPTION_ROL)) + original_selection = 1; + else if (!opts->bool_value(OPTION_ROR) && opts->bool_value(OPTION_ROL)) + original_selection = 2; + else if (!opts->bool_value(OPTION_ROTATE)) + original_selection = 3; + else if (opts->bool_value(OPTION_AUTOROR)) + original_selection = 4; + else if (opts->bool_value(OPTION_AUTOROL)) + original_selection = 5; + + // Any work to do? If so, make the changes and return TRUE. + if (selected_index != original_selection) + { + // Set the options based on the new selection. + std::string error_string; + opts->set_value(OPTION_ROR, selected_index == 1, OPTION_PRIORITY_CMDLINE,error_string); + opts->set_value(OPTION_ROL, selected_index == 2, OPTION_PRIORITY_CMDLINE,error_string); + opts->set_value(OPTION_ROTATE, selected_index != 3, OPTION_PRIORITY_CMDLINE,error_string); + opts->set_value(OPTION_AUTOROR, selected_index == 4, OPTION_PRIORITY_CMDLINE,error_string); + opts->set_value(OPTION_AUTOROL, selected_index == 5, OPTION_PRIORITY_CMDLINE,error_string); + return TRUE; + } + + // No changes + return FALSE; +} + + + +static BOOL RotatePopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + int res, selected_index = 0; + if (opts->bool_value(OPTION_ROR) && !opts->bool_value(OPTION_ROL)) + selected_index = 1; + else if (!opts->bool_value(OPTION_ROR) && opts->bool_value(OPTION_ROL)) + selected_index = 2; + else if (!opts->bool_value(OPTION_ROTATE)) + selected_index = 3; + else if (opts->bool_value(OPTION_AUTOROR)) + selected_index = 4; + else if (opts->bool_value(OPTION_AUTOROL)) + selected_index = 5; + + res = ComboBox_SetCurSel(control, selected_index); + res++; + return FALSE; +} + + + +static BOOL ScreenReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + char screen_option_name[32]; + TCHAR *screen_option_value; + int selected_screen; + int screen_option_index; + char *op_val; + std::string error_string; + + selected_screen = GetSelectedScreen(dialog); + screen_option_index = ComboBox_GetCurSel(control); + screen_option_value = (TCHAR*) ComboBox_GetItemData(control, screen_option_index); + snprintf(screen_option_name, ARRAY_LENGTH(screen_option_name), "screen%d", selected_screen); + op_val = utf8_from_tstring(screen_option_value); + opts->set_value(screen_option_name, op_val, OPTION_PRIORITY_CMDLINE,error_string); + osd_free(op_val); + return FALSE; +} + + + +static BOOL ScreenPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + //int iMonitors; + DISPLAY_DEVICE dd; + int res, i = 0; + int nSelection = 0; + TCHAR* t_option = 0; + + /* Remove all items in the list. */ + res = ComboBox_ResetContent(control); + res = ComboBox_InsertString(control, 0, TEXT("Auto")); + res = ComboBox_SetItemData(control, 0, (void*)tstring_from_utf8("auto")); + + //Dynamically populate it, by enumerating the Monitors + //iMonitors = GetSystemMetrics(SM_CMONITORS); // this gets the count of monitors attached + ZeroMemory(&dd, sizeof(dd)); + dd.cb = sizeof(dd); + for(i=0; EnumDisplayDevices(NULL, i, &dd, 0); i++) + { + if( !(dd.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER) ) + { + char screen_option[32]; + + //we have to add 1 to account for the "auto" entry + res = ComboBox_InsertString(control, i+1, win_tstring_strdup(dd.DeviceName)); + res = ComboBox_SetItemData(control, i+1, (void*)win_tstring_strdup(dd.DeviceName)); + + snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(dialog)); + t_option = tstring_from_utf8(opts->value(screen_option)); + if( !t_option ) + return FALSE; + if (_tcscmp(t_option, dd.DeviceName) == 0) + nSelection = i+1; + osd_free(t_option); + } + } + res = ComboBox_SetCurSel(control, nSelection); + res++; + return FALSE; +} + + + +static void ViewSetOptionName(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size) +{ + snprintf(buffer, buffer_size, "view%d", GetSelectedScreen(dialog)); +} + +static BOOL ViewPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + int res, i; + int selected_index = 0; + char view_option[32]; + const char *view; + + // determine the view option value + snprintf(view_option, ARRAY_LENGTH(view_option), "view%d", GetSelectedScreen(dialog)); + view = opts->value(view_option); + + res = ComboBox_ResetContent(control); + for (i = 0; i < NUMVIEW; i++) + { + res = ComboBox_InsertString(control, i, g_ComboBoxView[i].m_pText); + res = ComboBox_SetItemData(control, i, g_ComboBoxView[i].m_pData); + + if (strcmp(view, g_ComboBoxView[i].m_pData)==0) + selected_index = i; + } + res = ComboBox_SetCurSel(control, selected_index); + res++; + return FALSE; +} + +static BOOL SnapViewPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + int res, i; + int selected_index = 0; + const char *snapview; + + // determine the snapview option value + snapview = opts->value(OPTION_SNAPVIEW); + + res = ComboBox_ResetContent(control); + for (i = 0; i < NUMSNAPVIEW; i++) + { + res = ComboBox_InsertString(control, i, g_ComboBoxSnapView[i].m_pText); + res = ComboBox_SetItemData(control, i, g_ComboBoxSnapView[i].m_pData); + + if (strcmp(snapview, g_ComboBoxSnapView[i].m_pData)==0) + selected_index = i; + } + res = ComboBox_SetCurSel(control, selected_index); + res++; + return FALSE; +} + +static BOOL DefaultInputReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + TCHAR *input_option_value; + int input_option_index; + char *op_val = NULL; + std::string error_string; + + input_option_index = ComboBox_GetCurSel(control); + input_option_value = (TCHAR*) ComboBox_GetItemData(control, input_option_index); + op_val = utf8_from_tstring(input_option_value); + opts->set_value(OPTION_CTRLR, input_option_index ? op_val : "", OPTION_PRIORITY_CMDLINE,error_string); + osd_free(op_val); + return FALSE; +} + +static BOOL DefaultInputPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + WIN32_FIND_DATA FindFileData; + HANDLE hFind; + TCHAR *ext; + TCHAR root[256]; + TCHAR path[256]; + int selected = 0; + int res, index = 0; + LPCTSTR t_ctrlr_option = 0; + LPTSTR t_buf = 0; + const char *ctrlr_option; + TCHAR* t_ctrldir; + + // determine the ctrlr option + ctrlr_option = opts->value(OPTION_CTRLR); + if( ctrlr_option ) + { + t_buf = tstring_from_utf8(ctrlr_option); + if( !t_buf ) + return FALSE; + t_ctrlr_option = t_buf; + } + else + { + t_ctrlr_option = TEXT(""); + } + + // reset the controllers dropdown + res = ComboBox_ResetContent(control); + res = ComboBox_InsertString(control, index, TEXT("Default")); + res = ComboBox_SetItemData(control, index, ""); + index++; + + t_ctrldir = tstring_from_utf8(GetCtrlrDir()); + if( !t_ctrldir ) + { + if( t_buf ) + osd_free(t_buf); + return FALSE; + } + + _stprintf (path, TEXT("%s\\*.*"), t_ctrldir); + + osd_free(t_ctrldir); + + hFind = FindFirstFile(path, &FindFileData); + + if (hFind != INVALID_HANDLE_VALUE) + { + do + { + // copy the filename + _tcscpy (root,FindFileData.cFileName); + + // find the extension + ext = _tcsrchr (root,'.'); + if (ext) + { + // check if it's a cfg file + if (_tcscmp (ext, TEXT(".cfg")) == 0) + { + // and strip off the extension + *ext = 0; + + // set the option? + if (!_tcscmp(root, t_ctrlr_option)) + selected = index; + + // add it as an option + res = ComboBox_InsertString(control, index, root); + res = ComboBox_SetItemData(control, index, (void*)win_tstring_strdup(root)); // FIXME - leaks memory! + index++; + } + } + } + while (FindNextFile (hFind, &FindFileData) != 0); + + FindClose (hFind); + } + + res = ComboBox_SetCurSel(control, selected); + + if( t_buf ) + osd_free(t_buf); + + res++; + return FALSE; +} + + + +static void ResolutionSetOptionName(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size) +{ + snprintf(buffer, buffer_size, "resolution%d", GetSelectedScreen(dialog)); +} + + +static BOOL ResolutionReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + HWND refresh_control = GetDlgItem(dialog, IDC_REFRESH); + HWND sizes_control = GetDlgItem(dialog, IDC_SIZES); + int res = 0, refresh_index = 0, refresh_value = 0, width = 0, height = 0; + char option_value[256]; + TCHAR buffer[256]; + std::string error_string; + + if (refresh_control && sizes_control) + { + res = ComboBox_GetText(sizes_control, buffer, ARRAY_LENGTH(buffer) - 1); + if (_stscanf(buffer, TEXT("%d x %d"), &width, &height) == 2) + { + refresh_index = ComboBox_GetCurSel(refresh_control); + refresh_value = ComboBox_GetItemData(refresh_control, refresh_index); + snprintf(option_value, ARRAY_LENGTH(option_value), "%dx%d@%d", width, height, refresh_value); + } + else + { + snprintf(option_value, ARRAY_LENGTH(option_value), "auto"); + } + opts->set_value(option_name, option_value, OPTION_PRIORITY_CMDLINE,error_string); + } + res++; + return FALSE; +} + + + +static BOOL ResolutionPopulateControl(datamap *map, HWND dialog, HWND control_, windows_options *opts, const char *option_name) +{ + HWND sizes_control = GetDlgItem(dialog, IDC_SIZES); + HWND refresh_control = GetDlgItem(dialog, IDC_REFRESH); + int width, height, refresh; + const char *option_value; + int sizes_index = 0; + int refresh_index = 0; + int sizes_selection = 0; + int refresh_selection = 0; + char screen_option[32]; + const char *screen; + LPTSTR t_screen; + TCHAR buf[16]; + int res = 0, i; + DEVMODE devmode; + + if (sizes_control && refresh_control) + { + // determine the resolution + option_value = opts->value(option_name); + if (sscanf(option_value, "%dx%d@%d", &width, &height, &refresh) != 3) + { + width = 0; + height = 0; + refresh = 0; + } + + // reset sizes control + res = ComboBox_ResetContent(sizes_control); + res = ComboBox_InsertString(sizes_control, sizes_index, TEXT("Auto")); + res = ComboBox_SetItemData(sizes_control, sizes_index, 0); + sizes_index++; + + // reset refresh control + res = ComboBox_ResetContent(refresh_control); + res = ComboBox_InsertString(refresh_control, refresh_index, TEXT("Auto")); + res = ComboBox_SetItemData(refresh_control, refresh_index, 0); + refresh_index++; + + // determine which screen we're using + snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(dialog)); + screen = opts->value(screen_option); + t_screen = tstring_from_utf8(screen); + + // retrieve screen information + devmode.dmSize = sizeof(devmode); + for (i = 0; EnumDisplaySettings(t_screen, i, &devmode); i++) + { + if ((devmode.dmBitsPerPel == 32 ) // Only 32 bit depth supported by core + &&(devmode.dmDisplayFrequency == refresh || refresh == 0)) + { + _sntprintf(buf, ARRAY_LENGTH(buf), TEXT("%li x %li"), + devmode.dmPelsWidth, devmode.dmPelsHeight); + + if (ComboBox_FindString(sizes_control, 0, buf) == CB_ERR) + { + res = ComboBox_InsertString(sizes_control, sizes_index, buf); + + if ((width == devmode.dmPelsWidth) && (height == devmode.dmPelsHeight)) + sizes_selection = sizes_index; + sizes_index++; + + } + } + if (devmode.dmDisplayFrequency >= 10 ) + { + // I have some devmode "vga" which specifes 1 Hz, which is probably bogus, so we filter it out + + _sntprintf(buf, ARRAY_LENGTH(buf), TEXT("%li Hz"), devmode.dmDisplayFrequency); + + if (ComboBox_FindString(refresh_control, 0, buf) == CB_ERR) + { + res = ComboBox_InsertString(refresh_control, refresh_index, buf); + res = ComboBox_SetItemData(refresh_control, refresh_index, devmode.dmDisplayFrequency); + + if (refresh == devmode.dmDisplayFrequency) + refresh_selection = refresh_index; + + refresh_index++; + } + } + } + osd_free(t_screen); + + res = ComboBox_SetCurSel(sizes_control, sizes_selection); + res = ComboBox_SetCurSel(refresh_control, refresh_selection); + } + res++; + return FALSE; +} + + +/************************************************************ + * DataMap initializers + ************************************************************/ + +/* Initialize local helper variables */ +static void ResetDataMap(HWND hWnd) +{ + char screen_option[32]; + + snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(hWnd)); + + if (pCurrentOpts.value(screen_option) == NULL + || (core_stricmp(pCurrentOpts.value(screen_option), "") == 0 ) + || (core_stricmp(pCurrentOpts.value(screen_option), "auto") == 0 ) ) + { + std::string error_string; + pCurrentOpts.set_value(screen_option, "auto", OPTION_PRIORITY_CMDLINE,error_string); + } +} + + +/* Build the control mapping by adding all needed information to the DataMap */ +static void BuildDataMap(void) +{ + properties_datamap = datamap_create(); + + // core state options + datamap_add(properties_datamap, IDC_ENABLE_AUTOSAVE, DM_BOOL, OPTION_AUTOSAVE); + datamap_add(properties_datamap, IDC_SNAPVIEW, DM_STRING, OPTION_SNAPVIEW); + datamap_add(properties_datamap, IDC_SNAPSIZEWIDTH, DM_STRING, NULL); + datamap_add(properties_datamap, IDC_SNAPSIZEHEIGHT, DM_STRING, NULL); + + // core performance options + datamap_add(properties_datamap, IDC_AUTOFRAMESKIP, DM_BOOL, OPTION_AUTOFRAMESKIP); + datamap_add(properties_datamap, IDC_FRAMESKIP, DM_INT, OPTION_FRAMESKIP); + datamap_add(properties_datamap, IDC_SECONDSTORUN, DM_INT, OPTION_SECONDS_TO_RUN); + datamap_add(properties_datamap, IDC_SECONDSTORUNDISP, DM_INT, OPTION_SECONDS_TO_RUN); + datamap_add(properties_datamap, IDC_THROTTLE, DM_BOOL, OPTION_THROTTLE); + datamap_add(properties_datamap, IDC_SLEEP, DM_BOOL, OPTION_SLEEP); + datamap_add(properties_datamap, IDC_SPEED, DM_FLOAT, OPTION_SPEED); + datamap_add(properties_datamap, IDC_SPEEDDISP, DM_FLOAT, OPTION_SPEED); + datamap_add(properties_datamap, IDC_REFRESHSPEED, DM_BOOL, OPTION_REFRESHSPEED); + + // core retation options + datamap_add(properties_datamap, IDC_ROTATE, DM_INT, NULL); + // ror, rol, autoror, autorol handled by callback + datamap_add(properties_datamap, IDC_FLIPX, DM_BOOL, OPTION_FLIPX); + datamap_add(properties_datamap, IDC_FLIPY, DM_BOOL, OPTION_FLIPY); + + // core artwork options + datamap_add(properties_datamap, IDC_ARTWORK_CROP, DM_BOOL, OPTION_ARTWORK_CROP); + datamap_add(properties_datamap, IDC_BACKDROPS, DM_BOOL, OPTION_USE_BACKDROPS); + datamap_add(properties_datamap, IDC_OVERLAYS, DM_BOOL, OPTION_USE_OVERLAYS); + datamap_add(properties_datamap, IDC_BEZELS, DM_BOOL, OPTION_USE_BEZELS); + datamap_add(properties_datamap, IDC_CPANELS, DM_BOOL, OPTION_USE_CPANELS); + datamap_add(properties_datamap, IDC_MARQUEES, DM_BOOL, OPTION_USE_MARQUEES); + + // core screen options + datamap_add(properties_datamap, IDC_BRIGHTCORRECT, DM_FLOAT, OPTION_BRIGHTNESS); + datamap_add(properties_datamap, IDC_BRIGHTCORRECTDISP, DM_FLOAT, OPTION_BRIGHTNESS); + datamap_add(properties_datamap, IDC_CONTRAST, DM_FLOAT, OPTION_CONTRAST); + datamap_add(properties_datamap, IDC_CONTRASTDISP, DM_FLOAT, OPTION_CONTRAST); + datamap_add(properties_datamap, IDC_GAMMA, DM_FLOAT, OPTION_GAMMA); + datamap_add(properties_datamap, IDC_GAMMADISP, DM_FLOAT, OPTION_GAMMA); + datamap_add(properties_datamap, IDC_PAUSEBRIGHT, DM_FLOAT, OPTION_PAUSE_BRIGHTNESS); + datamap_add(properties_datamap, IDC_PAUSEBRIGHTDISP, DM_FLOAT, OPTION_PAUSE_BRIGHTNESS); + + // core vector options + datamap_add(properties_datamap, IDC_ANTIALIAS, DM_BOOL, OPTION_ANTIALIAS); + datamap_add(properties_datamap, IDC_BEAM, DM_FLOAT, OPTION_BEAM_WIDTH_MAX); + datamap_add(properties_datamap, IDC_BEAMDISP, DM_FLOAT, OPTION_BEAM_WIDTH_MAX); + datamap_add(properties_datamap, IDC_FLICKER, DM_FLOAT, OPTION_FLICKER); + datamap_add(properties_datamap, IDC_FLICKERDISP, DM_FLOAT, OPTION_FLICKER); + + // core sound options + datamap_add(properties_datamap, IDC_SAMPLERATE, DM_INT, OPTION_SAMPLERATE); + datamap_add(properties_datamap, IDC_SAMPLES, DM_BOOL, OPTION_SAMPLES); + datamap_add(properties_datamap, IDC_SOUND_MODE, DM_STRING, OSDOPTION_SOUND); + datamap_add(properties_datamap, IDC_VOLUME, DM_INT, OPTION_VOLUME); + datamap_add(properties_datamap, IDC_VOLUMEDISP, DM_INT, OPTION_VOLUME); + + // core input options + datamap_add(properties_datamap, IDC_COINLOCKOUT, DM_BOOL, OPTION_COIN_LOCKOUT); + datamap_add(properties_datamap, IDC_DEFAULT_INPUT, DM_STRING, OPTION_CTRLR); + datamap_add(properties_datamap, IDC_USE_MOUSE, DM_BOOL, OPTION_MOUSE); + datamap_add(properties_datamap, IDC_JOYSTICK, DM_BOOL, OPTION_JOYSTICK); + datamap_add(properties_datamap, IDC_LIGHTGUN, DM_BOOL, OPTION_LIGHTGUN); + datamap_add(properties_datamap, IDC_STEADYKEY, DM_BOOL, OPTION_STEADYKEY); + datamap_add(properties_datamap, IDC_MULTIKEYBOARD, DM_BOOL, OPTION_MULTIKEYBOARD); + datamap_add(properties_datamap, IDC_MULTIMOUSE, DM_BOOL, OPTION_MULTIMOUSE); + datamap_add(properties_datamap, IDC_RELOAD, DM_BOOL, OPTION_OFFSCREEN_RELOAD); + + datamap_add(properties_datamap, IDC_JDZ, DM_FLOAT, OPTION_JOYSTICK_DEADZONE); + datamap_add(properties_datamap, IDC_JDZDISP, DM_FLOAT, OPTION_JOYSTICK_DEADZONE); + datamap_add(properties_datamap, IDC_JSAT, DM_FLOAT, OPTION_JOYSTICK_SATURATION); + datamap_add(properties_datamap, IDC_JSATDISP, DM_FLOAT, OPTION_JOYSTICK_SATURATION); + datamap_add(properties_datamap, IDC_JOYSTICKMAP, DM_STRING, OPTION_JOYSTICK_MAP); + + // core input automatic enable options + datamap_add(properties_datamap, IDC_PADDLE, DM_STRING, OPTION_PADDLE_DEVICE); + datamap_add(properties_datamap, IDC_ADSTICK, DM_STRING, OPTION_ADSTICK_DEVICE); + datamap_add(properties_datamap, IDC_PEDAL, DM_STRING, OPTION_PEDAL_DEVICE); + datamap_add(properties_datamap, IDC_DIAL, DM_STRING, OPTION_DIAL_DEVICE); + datamap_add(properties_datamap, IDC_TRACKBALL, DM_STRING, OPTION_TRACKBALL_DEVICE); + datamap_add(properties_datamap, IDC_LIGHTGUNDEVICE, DM_STRING, OPTION_LIGHTGUN_DEVICE); + datamap_add(properties_datamap, IDC_POSITIONAL, DM_STRING, OPTION_POSITIONAL_DEVICE); + datamap_add(properties_datamap, IDC_MOUSE, DM_STRING, OPTION_MOUSE_DEVICE); + + // core debugging options + datamap_add(properties_datamap, IDC_LOG, DM_BOOL, OPTION_LOG); + datamap_add(properties_datamap, IDC_DEBUG, DM_BOOL, OPTION_DEBUG); + datamap_add(properties_datamap, IDC_VERBOSE, DM_BOOL, OPTION_VERBOSE); + datamap_add(properties_datamap, IDC_UPDATEINPAUSE, DM_BOOL, OPTION_UPDATEINPAUSE); + datamap_add(properties_datamap, IDC_DEBUGSCRIPT, DM_STRING, OPTION_DEBUGSCRIPT); + + // core misc options + datamap_add(properties_datamap, IDC_BIOS, DM_STRING, OPTION_BIOS); + datamap_add(properties_datamap, IDC_CHEAT, DM_BOOL, OPTION_CHEAT); + datamap_add(properties_datamap, IDC_SKIP_GAME_INFO, DM_BOOL, OPTION_SKIP_GAMEINFO); + + // windows debugging options + datamap_add(properties_datamap, IDC_OSLOG, DM_BOOL, OPTION_OSLOG); + + // windows performance options + datamap_add(properties_datamap, IDC_HIGH_PRIORITY, DM_INT, WINOPTION_PRIORITY); + datamap_add(properties_datamap, IDC_HIGH_PRIORITYTXT, DM_INT, WINOPTION_PRIORITY); + + // windows video options + datamap_add(properties_datamap, IDC_VIDEO_MODE, DM_STRING, OSDOPTION_VIDEO); + datamap_add(properties_datamap, IDC_NUMSCREENS, DM_INT, OSDOPTION_NUMSCREENS); + datamap_add(properties_datamap, IDC_NUMSCREENSDISP, DM_INT, OSDOPTION_NUMSCREENS); + datamap_add(properties_datamap, IDC_WINDOWED, DM_BOOL, OSDOPTION_WINDOW); + datamap_add(properties_datamap, IDC_MAXIMIZE, DM_BOOL, OSDOPTION_MAXIMIZE); + datamap_add(properties_datamap, IDC_KEEPASPECT, DM_BOOL, OPTION_KEEPASPECT); + datamap_add(properties_datamap, IDC_PRESCALE, DM_INT, OSDOPTION_PRESCALE); + datamap_add(properties_datamap, IDC_PRESCALEDISP, DM_INT, OSDOPTION_PRESCALE); + datamap_add(properties_datamap, IDC_EFFECT, DM_STRING, OPTION_EFFECT); + datamap_add(properties_datamap, IDC_WAITVSYNC, DM_BOOL, OSDOPTION_WAITVSYNC); + datamap_add(properties_datamap, IDC_SYNCREFRESH, DM_BOOL, OSDOPTION_SYNCREFRESH); + + // Direct3D specific options + datamap_add(properties_datamap, IDC_D3D_VERSION, DM_INT, WINOPTION_D3DVERSION); + datamap_add(properties_datamap, IDC_D3D_FILTER, DM_BOOL, OSDOPTION_FILTER); + + // per window video options + datamap_add(properties_datamap, IDC_SCREEN, DM_STRING, NULL); + datamap_add(properties_datamap, IDC_SCREENSELECT, DM_STRING, NULL); + datamap_add(properties_datamap, IDC_VIEW, DM_STRING, NULL); + datamap_add(properties_datamap, IDC_ASPECTRATIOD, DM_STRING, NULL); + datamap_add(properties_datamap, IDC_ASPECTRATION, DM_STRING, NULL); + datamap_add(properties_datamap, IDC_REFRESH, DM_STRING, NULL); + datamap_add(properties_datamap, IDC_SIZES, DM_STRING, NULL); + + // full screen options + datamap_add(properties_datamap, IDC_TRIPLE_BUFFER, DM_BOOL, WINOPTION_TRIPLEBUFFER); + datamap_add(properties_datamap, IDC_SWITCHRES, DM_BOOL, OSDOPTION_SWITCHRES); + datamap_add(properties_datamap, IDC_FSBRIGHTNESS, DM_FLOAT, WINOPTION_FULLSCREENBRIGHTNESS); + datamap_add(properties_datamap, IDC_FSBRIGHTNESSDISP, DM_FLOAT, WINOPTION_FULLSCREENBRIGHTNESS); + datamap_add(properties_datamap, IDC_FSCONTRAST, DM_FLOAT, WINOPTION_FULLSCREENCONTRAST); + datamap_add(properties_datamap, IDC_FSCONTRASTDISP, DM_FLOAT, WINOPTION_FULLSCREENCONTRAST); + datamap_add(properties_datamap, IDC_FSGAMMA, DM_FLOAT, WINOPTION_FULLSCREENGAMMA); + datamap_add(properties_datamap, IDC_FSGAMMADISP, DM_FLOAT, WINOPTION_FULLSCREENGAMMA); + + // windows sound options + datamap_add(properties_datamap, IDC_AUDIO_LATENCY, DM_INT, OSDOPTION_AUDIO_LATENCY); + datamap_add(properties_datamap, IDC_AUDIO_LATENCY_DISP, DM_INT, OSDOPTION_AUDIO_LATENCY); + + // input device options + datamap_add(properties_datamap, IDC_DUAL_LIGHTGUN, DM_BOOL, WINOPTION_DUAL_LIGHTGUN); + + // show menu + datamap_add(properties_datamap, IDC_SHOW_MENU, DM_BOOL, WINOPTION_MENU); + + // set up callbacks + datamap_set_callback(properties_datamap, IDC_ROTATE, DCT_READ_CONTROL, RotateReadControl); + datamap_set_callback(properties_datamap, IDC_ROTATE, DCT_POPULATE_CONTROL, RotatePopulateControl); + datamap_set_callback(properties_datamap, IDC_SCREEN, DCT_READ_CONTROL, ScreenReadControl); + datamap_set_callback(properties_datamap, IDC_SCREEN, DCT_POPULATE_CONTROL, ScreenPopulateControl); + datamap_set_callback(properties_datamap, IDC_VIEW, DCT_POPULATE_CONTROL, ViewPopulateControl); + datamap_set_callback(properties_datamap, IDC_REFRESH, DCT_READ_CONTROL, ResolutionReadControl); + datamap_set_callback(properties_datamap, IDC_REFRESH, DCT_POPULATE_CONTROL, ResolutionPopulateControl); + datamap_set_callback(properties_datamap, IDC_SIZES, DCT_READ_CONTROL, ResolutionReadControl); + datamap_set_callback(properties_datamap, IDC_SIZES, DCT_POPULATE_CONTROL, ResolutionPopulateControl); + datamap_set_callback(properties_datamap, IDC_DEFAULT_INPUT, DCT_READ_CONTROL, DefaultInputReadControl); + datamap_set_callback(properties_datamap, IDC_DEFAULT_INPUT, DCT_POPULATE_CONTROL, DefaultInputPopulateControl); + datamap_set_callback(properties_datamap, IDC_SNAPVIEW, DCT_POPULATE_CONTROL, SnapViewPopulateControl); + + datamap_set_option_name_callback(properties_datamap, IDC_VIEW, ViewSetOptionName); + //missing population of views with per game defined additional views + datamap_set_option_name_callback(properties_datamap, IDC_REFRESH, ResolutionSetOptionName); + datamap_set_option_name_callback(properties_datamap, IDC_SIZES, ResolutionSetOptionName); + + + // formats + datamap_set_int_format(properties_datamap, IDC_VOLUMEDISP, "%ddB"); + datamap_set_int_format(properties_datamap, IDC_AUDIO_LATENCY_DISP, "%d/5"); + datamap_set_float_format(properties_datamap, IDC_BEAMDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_FLICKERDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_GAMMADISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_BRIGHTCORRECTDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_CONTRASTDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_PAUSEBRIGHTDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_FSGAMMADISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_FSBRIGHTNESSDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_FSCONTRASTDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_JDZDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_JSATDISP, "%03.2f"); + datamap_set_float_format(properties_datamap, IDC_SPEEDDISP, "%03.2f"); + + // trackbar ranges - slider-name,start,end,step + datamap_set_trackbar_range(properties_datamap, IDC_JDZ, 0.00, 1.00, (float)0.05); + datamap_set_trackbar_range(properties_datamap, IDC_JSAT, 0.00, 1.00, (float)0.05); + datamap_set_trackbar_range(properties_datamap, IDC_SPEED, 0.00, 3.00, (float)0.01); + datamap_set_trackbar_range(properties_datamap, IDC_BEAM, (float)0.10, 10.00, (float)0.10); + datamap_set_trackbar_range(properties_datamap, IDC_AUDIO_LATENCY, 1, 5, 1); + datamap_set_trackbar_range(properties_datamap, IDC_VOLUME, -32, 0, 1); + datamap_set_trackbar_range(properties_datamap, IDC_SECONDSTORUN, 0, 60, 1); + datamap_set_trackbar_range(properties_datamap, IDC_NUMSCREENS, 1, 4, 1); + datamap_set_trackbar_range(properties_datamap, IDC_PRESCALE, 1, 3, 1); + datamap_set_trackbar_range(properties_datamap, IDC_FSGAMMA, 0.0, 3.0, (float)0.1); + datamap_set_trackbar_range(properties_datamap, IDC_FSBRIGHTNESS, 0.00, 2.0, (float)0.1); + datamap_set_trackbar_range(properties_datamap, IDC_FSCONTRAST, 0.0, 2.0, (float)0.1); + datamap_set_trackbar_range(properties_datamap, IDC_GAMMA, 0.0, 3.0, (float)0.1); + datamap_set_trackbar_range(properties_datamap, IDC_BRIGHTCORRECT, 0.00, 2.0, (float)0.1); + datamap_set_trackbar_range(properties_datamap, IDC_CONTRAST, 0.0, 2.0, (float)0.1); + datamap_set_trackbar_range(properties_datamap, IDC_PAUSEBRIGHT, 0.00, 1.00, (float)0.05); + +#ifdef MESS + // MESS specific stuff + datamap_add(properties_datamap, IDC_DIR_LIST, DM_STRING, NULL); + datamap_add(properties_datamap, IDC_RAM_COMBOBOX, DM_INT, OPTION_RAMSIZE); + + // set up callbacks + datamap_set_callback(properties_datamap, IDC_DIR_LIST, DCT_READ_CONTROL, DirListReadControl); + datamap_set_callback(properties_datamap, IDC_DIR_LIST, DCT_POPULATE_CONTROL, DirListPopulateControl); + datamap_set_callback(properties_datamap, IDC_RAM_COMBOBOX, DCT_POPULATE_CONTROL, RamPopulateControl); +#endif +} + + +static void SetSamplesEnabled(HWND hWnd, int nIndex, BOOL bSoundEnabled) +{ + BOOL enabled = FALSE; + HWND hCtrl; + + hCtrl = GetDlgItem(hWnd, IDC_SAMPLES); + + + if (hCtrl) + { + if ( nIndex > -1 ) + { + machine_config config(driver_list::driver(nIndex),pCurrentOpts); + + for (device_sound_interface &sound : sound_interface_iterator(config.root_device())) + { + if (sound.device().type() == SAMPLES) + enabled = TRUE; + } + } + enabled = enabled && bSoundEnabled; + EnableWindow(hCtrl, enabled); + } +} + +/* Moved here cause it's called in a few places */ +static void InitializeOptions(HWND hDlg) +{ + InitializeSoundUI(hDlg); + InitializeSkippingUI(hDlg); + InitializeRotateUI(hDlg); + InitializeSelectScreenUI(hDlg); + InitializeBIOSUI(hDlg); + InitializeControllerMappingUI(hDlg); + InitializeD3DVersionUI(hDlg); + InitializeVideoUI(hDlg); +} + +/* Moved here because it is called in several places */ +static void InitializeMisc(HWND hDlg) +{ + Button_Enable(GetDlgItem(hDlg, IDC_JOYSTICK), DIJoystick.Available()); +} + +static void OptOnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos) +{ + if (hwndCtl == GetDlgItem(hwnd, IDC_NUMSCREENS)) + NumScreensSelectionChange(hwnd); +} + +/* Handle changes to the Numscreens slider */ +static void NumScreensSelectionChange(HWND hwnd) +{ + //Also Update the ScreenSelect Combo with the new number of screens + UpdateSelectScreenUI(hwnd ); +} + +/* Handle changes to the Refresh drop down */ +static void RefreshSelectionChange(HWND hWnd, HWND hWndCtrl) +{ + int nCurSelection = ComboBox_GetCurSel(hWndCtrl); + + if (nCurSelection != CB_ERR) + { + datamap_read_control(properties_datamap, hWnd, pCurrentOpts, IDC_SIZES); + datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_SIZES); + } +} + +/* Initialize the sound options */ +static void InitializeSoundUI(HWND hwnd) +{ + HWND hCtrl; + int res = 0, i; + + hCtrl = GetDlgItem(hwnd, IDC_SOUND_MODE); + if (hCtrl) + { + for (i = 0; i < NUMSOUND; i++) + { + res = ComboBox_InsertString(hCtrl, i, g_ComboBoxSound[i].m_pText); + res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxSound[i].m_pData); + } + } + + i = 0; + + hCtrl = GetDlgItem(hwnd, IDC_SAMPLERATE); + if (hCtrl) + { + res = ComboBox_AddString(hCtrl, TEXT("11025")); + res = ComboBox_SetItemData(hCtrl, i++, 11025); + res = ComboBox_AddString(hCtrl, TEXT("22050")); + res = ComboBox_SetItemData(hCtrl, i++, 22050); + res = ComboBox_AddString(hCtrl, TEXT("44100")); + res = ComboBox_SetItemData(hCtrl, i++, 44100); + res = ComboBox_AddString(hCtrl, TEXT("48000")); + res = ComboBox_SetItemData(hCtrl, i++, 48000); + res = ComboBox_SetCurSel(hCtrl, 1); + } + res++; +} + +/* Populate the Frame Skipping drop down */ +static void InitializeSkippingUI(HWND hwnd) +{ + HWND hCtrl = GetDlgItem(hwnd, IDC_FRAMESKIP); + int res = 0, i = 0; + + if (hCtrl) + { + res = ComboBox_AddString(hCtrl, TEXT("Draw every frame")); + res = ComboBox_SetItemData(hCtrl, i++, 0); + res = ComboBox_AddString(hCtrl, TEXT("Skip 1 frame")); + res = ComboBox_SetItemData(hCtrl, i++, 1); + res = ComboBox_AddString(hCtrl, TEXT("Skip 2 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 2); + res = ComboBox_AddString(hCtrl, TEXT("Skip 3 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 3); + res = ComboBox_AddString(hCtrl, TEXT("Skip 4 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 4); + res = ComboBox_AddString(hCtrl, TEXT("Skip 5 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 5); + res = ComboBox_AddString(hCtrl, TEXT("Skip 6 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 6); + res = ComboBox_AddString(hCtrl, TEXT("Skip 7 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 7); + res = ComboBox_AddString(hCtrl, TEXT("Skip 8 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 8); + res = ComboBox_AddString(hCtrl, TEXT("Skip 9 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 9); + res = ComboBox_AddString(hCtrl, TEXT("Skip 10 frames")); + res = ComboBox_SetItemData(hCtrl, i++, 10); + } + res++; +} + +/* Populate the Rotate drop down */ +static void InitializeRotateUI(HWND hwnd) +{ + HWND hCtrl = GetDlgItem(hwnd, IDC_ROTATE); + int res = 0; + + if (hCtrl) + { + res = ComboBox_AddString(hCtrl, TEXT("Default")); // 0 + res = ComboBox_AddString(hCtrl, TEXT("Clockwise")); // 1 + res = ComboBox_AddString(hCtrl, TEXT("Anti-clockwise")); // 2 + res = ComboBox_AddString(hCtrl, TEXT("None")); // 3 + res = ComboBox_AddString(hCtrl, TEXT("Auto clockwise")); // 4 + res = ComboBox_AddString(hCtrl, TEXT("Auto anti-clockwise")); // 5 + } + res++; +} + +/* Populate the Video Mode drop down */ +static void InitializeVideoUI(HWND hwnd) +{ + HWND hCtrl; + int res = 0; + + hCtrl = GetDlgItem(hwnd, IDC_VIDEO_MODE); + if (hCtrl) + { + int i; + for (i = 0; i < NUMVIDEO; i++) + { + res = ComboBox_InsertString(hCtrl, i, g_ComboBoxVideo[i].m_pText); + res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxVideo[i].m_pData); + } + } + res++; +} + +/* Populate the D3D Version drop down */ +static void InitializeD3DVersionUI(HWND hwnd) +{ + HWND hCtrl = GetDlgItem(hwnd, IDC_D3D_VERSION); + int res = 0, i; + if (hCtrl) + { + for (i = 0; i < NUMD3DVERSIONS; i++) + { + res = ComboBox_InsertString(hCtrl, i, g_ComboBoxD3DVersion[i].m_pText); + res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxD3DVersion[i].m_pData); + } + } + res++; +} + +static void UpdateSelectScreenUI(HWND hwnd) +{ + int res = 0, i, curSel; + HWND hCtrl = GetDlgItem(hwnd, IDC_SCREENSELECT); + if (hCtrl) + { + curSel = ComboBox_GetCurSel(hCtrl); + if ((curSel < 0) || (curSel >= NUMSELECTSCREEN)) + curSel = 0; + res = ComboBox_ResetContent(hCtrl); + for (i = 0; i < NUMSELECTSCREEN && i < pCurrentOpts.int_value(OSDOPTION_NUMSCREENS) ; i++) + { + res = ComboBox_InsertString(hCtrl, i, g_ComboBoxSelectScreen[i].m_pText); + res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxSelectScreen[i].m_pData); + } + // Smaller Amount of screens was selected, so use 0 + if( i < curSel ) + res = ComboBox_SetCurSel(hCtrl, 0); + else + res = ComboBox_SetCurSel(hCtrl, curSel); + } + res++; +} + +/* Populate the Select Screen drop down */ +static void InitializeSelectScreenUI(HWND hwnd) +{ + UpdateSelectScreenUI(hwnd); +} + +static void InitializeControllerMappingUI(HWND hwnd) +{ + int res = 0, i; + HWND hCtrl = GetDlgItem(hwnd,IDC_PADDLE); + HWND hCtrl1 = GetDlgItem(hwnd,IDC_ADSTICK); + HWND hCtrl2 = GetDlgItem(hwnd,IDC_PEDAL); + HWND hCtrl3 = GetDlgItem(hwnd,IDC_MOUSE); + HWND hCtrl4 = GetDlgItem(hwnd,IDC_DIAL); + HWND hCtrl5 = GetDlgItem(hwnd,IDC_TRACKBALL); + HWND hCtrl6 = GetDlgItem(hwnd,IDC_LIGHTGUNDEVICE); + HWND hCtrl7 = GetDlgItem(hwnd,IDC_POSITIONAL); + + for (i = 0; i < NUMDEVICES; i++) + { + if (hCtrl) + { + res = ComboBox_InsertString(hCtrl, i, g_ComboBoxDevice[i].m_pText); + res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxDevice[i].m_pData); + } + + if (hCtrl1) + { + res = ComboBox_InsertString(hCtrl1, i, g_ComboBoxDevice[i].m_pText); + res = ComboBox_SetItemData( hCtrl1, i, g_ComboBoxDevice[i].m_pData); + } + + if (hCtrl2) + { + res = ComboBox_InsertString(hCtrl2, i, g_ComboBoxDevice[i].m_pText); + res = ComboBox_SetItemData( hCtrl2, i, g_ComboBoxDevice[i].m_pData); + } + + if (hCtrl3) + { + res = ComboBox_InsertString(hCtrl3, i, g_ComboBoxDevice[i].m_pText); + res = ComboBox_SetItemData( hCtrl3, i, g_ComboBoxDevice[i].m_pData); + } + + if (hCtrl4) + { + res = ComboBox_InsertString(hCtrl4, i, g_ComboBoxDevice[i].m_pText); + res = ComboBox_SetItemData( hCtrl4, i, g_ComboBoxDevice[i].m_pData); + } + + if (hCtrl5) + { + res = ComboBox_InsertString(hCtrl5, i, g_ComboBoxDevice[i].m_pText); + res = ComboBox_SetItemData( hCtrl5, i, g_ComboBoxDevice[i].m_pData); + } + + if (hCtrl6) + { + res = ComboBox_InsertString(hCtrl6, i, g_ComboBoxDevice[i].m_pText); + res = ComboBox_SetItemData( hCtrl6, i, g_ComboBoxDevice[i].m_pData); + } + + if (hCtrl7) + { + res = ComboBox_InsertString(hCtrl7, i, g_ComboBoxDevice[i].m_pText); + res = ComboBox_SetItemData( hCtrl7, i, g_ComboBoxDevice[i].m_pData); + } + } + res++; +} + + +static void InitializeBIOSUI(HWND hwnd) +{ + HWND hCtrl = GetDlgItem(hwnd,IDC_BIOS); + int res = 0, i = 0; + TCHAR* t_s; + if (hCtrl) + { + const game_driver *gamedrv = &driver_list::driver(g_nGame); + const rom_entry *rom; + + if (g_nGame == GLOBAL_OPTIONS) + { + res = ComboBox_InsertString(hCtrl, i, TEXT("None")); + res = ComboBox_SetItemData( hCtrl, i++, ""); + return; + } + if (g_nGame == FOLDER_OPTIONS) //Folder Options + { + gamedrv = &driver_list::driver(g_nFolderGame); + if (DriverHasOptionalBIOS(g_nFolderGame) == FALSE) + { + res = ComboBox_InsertString(hCtrl, i, TEXT("None")); + res = ComboBox_SetItemData( hCtrl, i++, ""); + return; + } + res = ComboBox_InsertString(hCtrl, i, TEXT("Default")); + res = ComboBox_SetItemData( hCtrl, i++, ""); + + if (gamedrv->rom) + { + for (rom = gamedrv->rom; !ROMENTRY_ISEND(rom); rom++) + { + if (ROMENTRY_ISSYSTEM_BIOS(rom)) + { + const char *name = ROM_GETHASHDATA(rom); + const char *biosname = ROM_GETNAME(rom); + t_s = tstring_from_utf8(name); + if( !t_s ) + return; + res = ComboBox_InsertString(hCtrl, i, win_tstring_strdup(t_s)); + res = ComboBox_SetItemData( hCtrl, i++, biosname); + osd_free(t_s); + } + } + } + return; + } + + if (DriverHasOptionalBIOS(g_nGame) == FALSE) + { + res = ComboBox_InsertString(hCtrl, i, TEXT("None")); + res = ComboBox_SetItemData( hCtrl, i++, ""); + return; + } + res = ComboBox_InsertString(hCtrl, i, TEXT("Default")); + res = ComboBox_SetItemData( hCtrl, i++, ""); + + if (gamedrv->rom) + { + for (rom = gamedrv->rom; !ROMENTRY_ISEND(rom); rom++) + { + if (ROMENTRY_ISSYSTEM_BIOS(rom)) + { + const char *name = ROM_GETHASHDATA(rom); + const char *biosname = ROM_GETNAME(rom); + t_s = tstring_from_utf8(name); + if( !t_s ) + return; + res = ComboBox_InsertString(hCtrl, i, win_tstring_strdup(t_s)); + res = ComboBox_SetItemData( hCtrl, i++, biosname); + osd_free(t_s); + } + } + } + } + res++; +} + +static BOOL SelectEffect(HWND hWnd) +{ + char filename[MAX_PATH]; + BOOL changed = FALSE; + + *filename = 0; + if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_EFFECT_FILES)) + { + //strip Path and extension + char buff[MAX_PATH]; + int i, j = 0, k = 0, l = 0; + for(i=0; i<strlen(filename); i++ ) + { + if( filename[i] == '\\' ) + j = i; + if( filename[i] == '.' ) + k = i; + } + for(i=j+1;i<k;i++) + { + buff[l++] = filename[i]; + } + buff[l] = '\0'; + + if (strcmp(buff, pCurrentOpts.value(OPTION_EFFECT))!=0) + { + HWND control = GetDlgItem(hWnd, IDC_EFFECT); + std::string error_string; + pCurrentOpts.set_value(OPTION_EFFECT, buff, OPTION_PRIORITY_CMDLINE,error_string); + win_set_window_text_utf8(control, buff); + // datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_EFFECT); + changed = TRUE; + } + } + return changed; +} + +static BOOL ResetEffect(HWND hWnd) +{ + BOOL changed = FALSE; + const char *new_value = "none"; + + if (strcmp(new_value, pCurrentOpts.value(OPTION_EFFECT))!=0) + { + HWND control = GetDlgItem(hWnd, IDC_EFFECT); + std::string error_string; + pCurrentOpts.set_value(OPTION_EFFECT, new_value, OPTION_PRIORITY_CMDLINE,error_string); + win_set_window_text_utf8(control, new_value); + // datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_EFFECT); + changed = TRUE; + } + return changed; +} + +static BOOL SelectJoystickMap(HWND hWnd) +{ + char filename[MAX_PATH]; + BOOL changed = FALSE; + + *filename = 0; + if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_JOYMAP_FILES)) + { + if (strcmp(filename, pCurrentOpts.value(OPTION_JOYSTICK_MAP))!=0) + { + HWND control = GetDlgItem(hWnd, IDC_JOYSTICKMAP); + std::string error_string; + pCurrentOpts.set_value(OPTION_JOYSTICK_MAP, filename, OPTION_PRIORITY_CMDLINE,error_string); + win_set_window_text_utf8(control, filename); + changed = TRUE; + } + } + return changed; +} + +static BOOL ResetJoystickMap(HWND hWnd) +{ + BOOL changed = FALSE; + const char *new_value = "auto"; + + if (strcmp(new_value, pCurrentOpts.value(OPTION_JOYSTICK_MAP))!=0) + { + HWND control = GetDlgItem(hWnd, IDC_JOYSTICKMAP); + std::string error_string; + pCurrentOpts.set_value(OPTION_JOYSTICK_MAP, new_value, OPTION_PRIORITY_CMDLINE,error_string); + win_set_window_text_utf8(control, new_value); + changed = TRUE; + } + return changed; +} + +static BOOL SelectDebugscript(HWND hWnd) +{ + char filename[MAX_PATH]; + BOOL changed = FALSE; + + *filename = 0; + if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_DEBUGSCRIPT_FILES)) + { + if (strcmp(filename, pCurrentOpts.value(OPTION_DEBUGSCRIPT))!=0) + { + HWND control = GetDlgItem(hWnd, IDC_DEBUGSCRIPT); + std::string error_string; + pCurrentOpts.set_value(OPTION_DEBUGSCRIPT, filename, OPTION_PRIORITY_CMDLINE,error_string); + win_set_window_text_utf8(control, filename); + changed = TRUE; + } + } + return changed; +} + +static BOOL ResetDebugscript(HWND hWnd) +{ + BOOL changed = FALSE; + const char *new_value = ""; + + if (strcmp(new_value, pCurrentOpts.value(OPTION_DEBUGSCRIPT))!=0) + { + HWND control = GetDlgItem(hWnd, IDC_DEBUGSCRIPT); + std::string error_string; + pCurrentOpts.set_value(OPTION_DEBUGSCRIPT, new_value, OPTION_PRIORITY_CMDLINE,error_string); + win_set_window_text_utf8(control, new_value); + changed = TRUE; + } + return changed; +} + +void UpdateBackgroundBrush(HWND hwndTab) +{ + // Destroy old brush + if (hBkBrush) + DeleteBrush(hBkBrush); + + hBkBrush = NULL; + + // Only do this if the theme is active + if (SafeIsAppThemed()) + { + RECT rc; + HDC hDC, hDCMem; + HBITMAP hBmp, hBmpOld; + // Get tab control dimensions + GetWindowRect( hwndTab, &rc); + + // Get the tab control DC + hDC = GetDC(hwndTab); + + // Create a compatible DC + hDCMem = CreateCompatibleDC(hDC); + hBmp = CreateCompatibleBitmap(hDC, rc.right - rc.left, rc.bottom - rc.top); + hBmpOld = (HBITMAP)(SelectObject(hDCMem, hBmp)); + + // Tell the tab control to paint in our DC + SendMessage(hwndTab, WM_PRINTCLIENT, (WPARAM)(hDCMem), (LPARAM)(PRF_ERASEBKGND | PRF_CLIENT | PRF_NONCLIENT)); + + // Create a pattern brush from the bitmap selected in our DC + hBkBrush = CreatePatternBrush(hBmp); + + // Restore the bitmap + SelectObject(hDCMem, hBmpOld); + + // Cleanup + DeleteBitmap(hBmp); + DeleteDC(hDCMem); + ReleaseDC(hwndTab, hDC); + } +} + + +// from propertiesms.cpp (MESSUI) + + +//============================================================ +#ifdef MESS +//============================================================ +// DATAMAP HANDLERS FOR MESS +//============================================================ + +static void AppendList(HWND hList, LPCTSTR lpItem, int nItem) +{ + LV_ITEM Item; + HRESULT res; + memset(&Item, 0, sizeof(LV_ITEM)); + Item.mask = LVIF_TEXT; + Item.pszText = (LPTSTR) lpItem; + Item.iItem = nItem; + res = ListView_InsertItem(hList, &Item); + res++; +} + +static BOOL DirListReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + int directory_count; + LV_ITEM lvi; + TCHAR buffer[2048]; + int i, pos = 0; + BOOL res; + + // determine the directory count; note that one item is the "< >" entry + directory_count = ListView_GetItemCount(control); + if (directory_count > 0) + directory_count--; + + buffer[0] = '\0'; + + for (i = 0; i < directory_count; i++) + { + // append a semicolon, if we're past the first entry + if (i > 0) + pos += _sntprintf(&buffer[pos], ARRAY_LENGTH(buffer) - pos, TEXT(";")); + + // retrieve the next entry + memset(&lvi, '\0', sizeof(lvi)); + lvi.mask = LVIF_TEXT; + lvi.iItem = i; + lvi.pszText = &buffer[pos]; + lvi.cchTextMax = ARRAY_LENGTH(buffer) - pos; + res = ListView_GetItem(control, &lvi); + + // advance the position + pos += _tcslen(&buffer[pos]); + } + + const char* paths = utf8_from_tstring(buffer); + if ((buffer[1] == 0x3A) || (buffer[0] == 0)) // must be a folder or null + { + std::string error_string; + pCurrentOpts.set_value(OPTION_COMMENT_DIRECTORY, paths, OPTION_PRIORITY_CMDLINE, error_string); + } + res++; + return TRUE; +} + + +static BOOL DirListPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + int driver_index, pos, new_pos, current_item; + TCHAR *s; + LV_COLUMN lvc; + RECT r; + HRESULT res; + BOOL b_res; + + // access the directory list, and convert to TCHARs + driver_index = PropertiesCurrentGame(dialog); + windows_options o; + load_options(o, driver_index); + const char* paths = o.value(OPTION_COMMENT_DIRECTORY); + TCHAR* t_dir_list = tstring_from_utf8(paths); + paths = 0; + if (!t_dir_list) + return FALSE; + + // delete all items in the list control + b_res = ListView_DeleteAllItems(control); + + // add the column + GetClientRect(control, &r); + memset(&lvc, 0, sizeof(LVCOLUMN)); + lvc.mask = LVCF_WIDTH; + lvc.cx = r.right - r.left - GetSystemMetrics(SM_CXHSCROLL); + res = ListView_InsertColumn(control, 0, &lvc); + + // add each of the directories + pos = 0; + current_item = 0; + while(t_dir_list[pos] != '\0') + { + // parse off this item + s = _tcschr(&t_dir_list[pos], ';'); + if (s) + { + *s = '\0'; + new_pos = s - t_dir_list + 1; + } + else + new_pos = pos + _tcslen(&t_dir_list[pos]); + + // append this item + AppendList(control, &t_dir_list[pos], current_item); + + // advance to next item + pos = new_pos; + current_item++; + } + + // finish up + AppendList(control, TEXT(DIRLIST_NEWENTRYTEXT), current_item); + ListView_SetItemState(control, 0, LVIS_SELECTED, LVIS_SELECTED); + osd_free(t_dir_list); + res++; + b_res++; + return TRUE; +} + + + +static const char *messram_string(char *buffer, UINT32 ram) +{ + const char *suffix; + + if ((ram % (1024*1024)) == 0) + { + ram /= 1024*1024; + suffix = "m"; + } + else if ((ram % 1024) == 0) + { + ram /= 1024; + suffix = "k"; + } + else + suffix = ""; + + sprintf(buffer, "%u%s", ram, suffix); + return buffer; +} + +static BOOL RamPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name) +{ + int res = 0, i = 0, current_index, driver_index; + const game_driver *gamedrv; + UINT32 ram, current_ram; + const char *this_ram_string; + TCHAR* t_ramstring; + + // identify the driver + driver_index = PropertiesCurrentGame(dialog); + gamedrv = &driver_list::driver(driver_index); + + // clear out the combo box + res = ComboBox_ResetContent(control); + + // allocate the machine config + machine_config cfg(*gamedrv,*opts); + + // identify how many options that we have + ram_device_iterator iter(cfg.root_device()); + ram_device *device = iter.first(); + + EnableWindow(control, (device != NULL)); + + // we can only do something meaningful if there is more than one option + if (device) + { + const ram_device *ramdev = dynamic_cast<const ram_device *>(device); + + // identify the current amount of RAM + this_ram_string = opts->value(OPTION_RAMSIZE); + current_ram = (this_ram_string != NULL) ? ramdev->parse_string(this_ram_string) : 0; + if (current_ram == 0) + current_ram = ramdev->default_size(); + + // by default, assume index 0 + current_index = 0; + + { + char tmpval[20] ; + ram = ramdev->default_size(); + messram_string(tmpval,ram); + t_ramstring = tstring_from_utf8(tmpval); + if( !t_ramstring ) + return FALSE; + + res = ComboBox_InsertString(control, i, win_tstring_strdup(t_ramstring)); + res = ComboBox_SetItemData(control, i, ram); + + osd_free(t_ramstring); + } + if (ramdev->extra_options()) + { + int j; + int size = strlen(ramdev->extra_options()); + char * const s = core_strdup(ramdev->extra_options()); + char * const e = s + size; + char *p = s; + for (j=0;j<size;j++) + if (p[j]==',') + p[j]=0; + + /* try to parse each option */ + while(p <= e) + { + i++; + // identify this option + ram = ramdev->parse_string(p); + + this_ram_string = p; + + t_ramstring = tstring_from_utf8(this_ram_string); + if( !t_ramstring ) + return FALSE; + + // add this option to the combo box + res = ComboBox_InsertString(control, i, win_tstring_strdup(t_ramstring)); + res = ComboBox_SetItemData(control, i, ram); + + osd_free(t_ramstring); + + // is this the current option? record the index if so + if (ram == current_ram) + current_index = i; + + p+= strlen(p); + if (p == e) + break; + + p++; + } + + osd_free(s); + } + + // set the combo box + res = ComboBox_SetCurSel(control, current_index); + } + res++; + return TRUE; +} + + +static void MarkChanged(HWND hDlg) +{ + HWND hCtrl; + + /* fake a CBN_SELCHANGE event from IDC_SIZES to force it to be changed */ + hCtrl = GetDlgItem(hDlg, IDC_SIZES); + PostMessage(hDlg, WM_COMMAND, (CBN_SELCHANGE << 16) | IDC_SIZES, (LPARAM) hCtrl); +} + + +static BOOL SoftwareDirectories_OnInsertBrowse(HWND hDlg, BOOL bBrowse, LPCTSTR lpItem) +{ + int nItem; + TCHAR inbuf[MAX_PATH]; + TCHAR outbuf[MAX_PATH]; + HWND hList; + LPTSTR lpIn; + BOOL res; + + g_bModifiedSoftwarePaths = TRUE; + + hList = GetDlgItem(hDlg, IDC_DIR_LIST); + nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED); + + if (nItem == -1) + return FALSE; + + /* Last item is placeholder for append */ + if (nItem == ListView_GetItemCount(hList) - 1) + bBrowse = FALSE; + + if (!lpItem) + { + if (bBrowse) + { + ListView_GetItemText(hList, nItem, 0, inbuf, ARRAY_LENGTH(inbuf)); + lpIn = inbuf; + } + else + lpIn = NULL; + + if (!BrowseForDirectory(hDlg, lpIn, outbuf)) + return FALSE; + + lpItem = outbuf; + } + + AppendList(hList, lpItem, nItem); + if (bBrowse) + res = ListView_DeleteItem(hList, nItem+1); + MarkChanged(hDlg); + res++; + return TRUE; +} + + + +static BOOL SoftwareDirectories_OnDelete(HWND hDlg) +{ + int nCount; + int nSelect; + int nItem; + HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST); + BOOL res; + + g_bModifiedSoftwarePaths = TRUE; + + nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED | LVNI_ALL); + + if (nItem == -1) + return FALSE; + + /* Don't delete "Append" placeholder. */ + if (nItem == ListView_GetItemCount(hList) - 1) + return FALSE; + + res = ListView_DeleteItem(hList, nItem); + + nCount = ListView_GetItemCount(hList); + if (nCount <= 1) + return FALSE; + + /* If the last item was removed, select the item above. */ + if (nItem == nCount - 1) + nSelect = nCount - 2; + else + nSelect = nItem; + + ListView_SetItemState(hList, nSelect, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); + MarkChanged(hDlg); + res++; + return TRUE; +} + + + +static BOOL SoftwareDirectories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR) +{ + BOOL bResult = FALSE; + NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR; + LVITEM* pItem = &pDispInfo->item; + HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST); + + /* Last item is placeholder for append */ + if (pItem->iItem == ListView_GetItemCount(hList) - 1) + { + HWND hEdit = (HWND) (FPTR) SendMessage(hList, LVM_GETEDITCONTROL, 0, 0); + win_set_window_text_utf8(hEdit, ""); + } + + return bResult; +} + + + +static BOOL SoftwareDirectories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR) +{ + BOOL bResult = FALSE; + NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR; + LVITEM* pItem = &pDispInfo->item; + + if (pItem->pszText) + { + struct _stat file_stat; + + /* Don't allow empty entries. */ + if (!_tcscmp(pItem->pszText, TEXT(""))) + return FALSE; + + /* Check validity of edited directory. */ + if ((_tstat(pItem->pszText, &file_stat) == 0) && (file_stat.st_mode & S_IFDIR)) + bResult = TRUE; + else + if (win_message_box_utf8(NULL, "Folder does not exist, continue anyway?", MAMEUINAME, MB_OKCANCEL) == IDOK) + bResult = TRUE; + } + + if (bResult == TRUE) + SoftwareDirectories_OnInsertBrowse(hDlg, TRUE, pItem->pszText); + + return bResult; +} + + +static BOOL DriverHasDevice(const game_driver *gamedrv, iodevice_t type) +{ + BOOL b = FALSE; + + // allocate the machine config + machine_config config(*gamedrv,MameUIGlobal()); + + for (device_image_interface &dev : image_interface_iterator(config.root_device())) + { + if (dev.image_type() == type) + { + b = TRUE; + break; + } + } + return b; +} + +BOOL PropSheetFilter_Config(const machine_config *drv, const game_driver *gamedrv) +{ + ram_device_iterator iter(drv->root_device()); + return (iter.first()!=NULL) || DriverHasDevice(gamedrv, IO_PRINTER); +} + +INT_PTR CALLBACK GameMessOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + INT_PTR rc = 0; + BOOL bHandled = FALSE; + + switch (Msg) + { + case WM_NOTIFY: + switch (((NMHDR *) lParam)->code) + { + case LVN_ENDLABELEDIT: + rc = SoftwareDirectories_OnEndLabelEdit(hDlg, (NMHDR *) lParam); + bHandled = TRUE; + break; + + case LVN_BEGINLABELEDIT: + rc = SoftwareDirectories_OnBeginLabelEdit(hDlg, (NMHDR *) lParam); + bHandled = TRUE; + break; + } + } + + if (!bHandled) + rc = GameOptionsProc(hDlg, Msg, wParam, lParam); + + return rc; +} + + + +BOOL MessPropertiesCommand(HWND hWnd, WORD wNotifyCode, WORD wID, BOOL *changed) +{ + BOOL handled = TRUE; + + switch(wID) + { + case IDC_DIR_BROWSE: + if (wNotifyCode == BN_CLICKED) + *changed = SoftwareDirectories_OnInsertBrowse(hWnd, TRUE, NULL); + break; + + case IDC_DIR_INSERT: + if (wNotifyCode == BN_CLICKED) + *changed = SoftwareDirectories_OnInsertBrowse(hWnd, FALSE, NULL); + break; + + case IDC_DIR_DELETE: + if (wNotifyCode == BN_CLICKED) + *changed = SoftwareDirectories_OnDelete(hWnd); + break; + + default: + handled = FALSE; + break; + } + return handled; +} + +#endif + + diff --git a/docs/release/src/osd/winui/properties.h b/docs/release/src/osd/winui/properties.h new file mode 100644 index 00000000000..3d3db176745 --- /dev/null +++ b/docs/release/src/osd/winui/properties.h @@ -0,0 +1,58 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef PROPERTIES_H +#define PROPERTIES_H + +/* Get title string to display in the top of the property page, + * Called also in ui_audit.c + */ +char * GameInfoTitle(OPTIONS_TYPE opt_type, UINT nIndex); + +/* Called in winui.c to create the property page */ +void InitPropertyPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num); + +#define PROPERTIES_PAGE 0 +#define AUDIT_PAGE 1 + +void InitPropertyPageToPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num, int start_page); +void InitDefaultPropertyPage(HINSTANCE hInst, HWND hWnd); + +/* Get Help ID array for WM_HELP and WM_CONTEXTMENU */ +DWORD_PTR GetHelpIDs(void); + +/* Get Game status text string */ +const char *GameInfoStatus(int driver_index, BOOL bRomStatus); + +/* Property sheet info for layout.c */ +typedef struct +{ + BOOL bOnDefaultPage; +// BOOL (*pfnFilterProc)(const machine_config *drv, const game_driver *gamedrv); + BOOL (*pfnFilterProc)(int driver_index); + DWORD dwDlgID; + DLGPROC pfnDlgProc; +} PROPERTYSHEETINFO; + +extern const PROPERTYSHEETINFO g_propSheets[]; + +BOOL PropSheetFilter_Vector(const machine_config *drv, const game_driver *gamedrv); + +INT_PTR CALLBACK GamePropertiesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK GameOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); + +int PropertiesCurrentGame(HWND hDlg); + +// from propertiesms.h (MESSUI) + +BOOL MessPropertiesCommand(HWND hWnd, WORD wNotifyCode, WORD wID, BOOL *changed); + +INT_PTR CALLBACK GameMessOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +BOOL PropSheetFilter_Config(const machine_config *drv, const game_driver *gamedrv); + +#include "datamap.h" +void MessBuildDataMap(datamap *properties_datamap); + + +#endif + diff --git a/docs/release/src/osd/winui/res/about.bmp b/docs/release/src/osd/winui/res/about.bmp Binary files differnew file mode 100644 index 00000000000..39d48d2d81d --- /dev/null +++ b/docs/release/src/osd/winui/res/about.bmp diff --git a/docs/release/src/osd/winui/res/bkgnd16.bmp b/docs/release/src/osd/winui/res/bkgnd16.bmp Binary files differnew file mode 100644 index 00000000000..c4a589a32d4 --- /dev/null +++ b/docs/release/src/osd/winui/res/bkgnd16.bmp diff --git a/docs/release/src/osd/winui/res/bkground.bmp b/docs/release/src/osd/winui/res/bkground.bmp Binary files differnew file mode 100644 index 00000000000..f7e49de3084 --- /dev/null +++ b/docs/release/src/osd/winui/res/bkground.bmp diff --git a/docs/release/src/osd/winui/res/checkmark.ico b/docs/release/src/osd/winui/res/checkmark.ico Binary files differnew file mode 100644 index 00000000000..dd272c2e536 --- /dev/null +++ b/docs/release/src/osd/winui/res/checkmark.ico diff --git a/docs/release/src/osd/winui/res/controller.ico b/docs/release/src/osd/winui/res/controller.ico Binary files differnew file mode 100644 index 00000000000..390c18db340 --- /dev/null +++ b/docs/release/src/osd/winui/res/controller.ico diff --git a/docs/release/src/osd/winui/res/cpu.ico b/docs/release/src/osd/winui/res/cpu.ico Binary files differnew file mode 100644 index 00000000000..9c6843fbed5 --- /dev/null +++ b/docs/release/src/osd/winui/res/cpu.ico diff --git a/docs/release/src/osd/winui/res/custom.ico b/docs/release/src/osd/winui/res/custom.ico Binary files differnew file mode 100644 index 00000000000..8047b9d0b43 --- /dev/null +++ b/docs/release/src/osd/winui/res/custom.ico diff --git a/docs/release/src/osd/winui/res/display.ico b/docs/release/src/osd/winui/res/display.ico Binary files differnew file mode 100644 index 00000000000..b81df196948 --- /dev/null +++ b/docs/release/src/osd/winui/res/display.ico diff --git a/docs/release/src/osd/winui/res/foldavail.ico b/docs/release/src/osd/winui/res/foldavail.ico Binary files differnew file mode 100644 index 00000000000..b8bcb595bf9 --- /dev/null +++ b/docs/release/src/osd/winui/res/foldavail.ico diff --git a/docs/release/src/osd/winui/res/folder.ico b/docs/release/src/osd/winui/res/folder.ico Binary files differnew file mode 100644 index 00000000000..8a801462d62 --- /dev/null +++ b/docs/release/src/osd/winui/res/folder.ico diff --git a/docs/release/src/osd/winui/res/foldmanu.ico b/docs/release/src/osd/winui/res/foldmanu.ico Binary files differnew file mode 100644 index 00000000000..8a801462d62 --- /dev/null +++ b/docs/release/src/osd/winui/res/foldmanu.ico diff --git a/docs/release/src/osd/winui/res/foldopen.ico b/docs/release/src/osd/winui/res/foldopen.ico Binary files differnew file mode 100644 index 00000000000..7bab12a3abc --- /dev/null +++ b/docs/release/src/osd/winui/res/foldopen.ico diff --git a/docs/release/src/osd/winui/res/foldsrc.ico b/docs/release/src/osd/winui/res/foldsrc.ico Binary files differnew file mode 100644 index 00000000000..8a801462d62 --- /dev/null +++ b/docs/release/src/osd/winui/res/foldsrc.ico diff --git a/docs/release/src/osd/winui/res/foldunav.ico b/docs/release/src/osd/winui/res/foldunav.ico Binary files differnew file mode 100644 index 00000000000..b74cc8edfc8 --- /dev/null +++ b/docs/release/src/osd/winui/res/foldunav.ico diff --git a/docs/release/src/osd/winui/res/foldyear.ico b/docs/release/src/osd/winui/res/foldyear.ico Binary files differnew file mode 100644 index 00000000000..8a801462d62 --- /dev/null +++ b/docs/release/src/osd/winui/res/foldyear.ico diff --git a/docs/release/src/osd/winui/res/harddisk.ico b/docs/release/src/osd/winui/res/harddisk.ico Binary files differnew file mode 100644 index 00000000000..580d379fab4 --- /dev/null +++ b/docs/release/src/osd/winui/res/harddisk.ico diff --git a/docs/release/src/osd/winui/res/hbmame.ico b/docs/release/src/osd/winui/res/hbmame.ico Binary files differnew file mode 100644 index 00000000000..845ec9aedd7 --- /dev/null +++ b/docs/release/src/osd/winui/res/hbmame.ico diff --git a/docs/release/src/osd/winui/res/hbmameui.ico b/docs/release/src/osd/winui/res/hbmameui.ico Binary files differnew file mode 100644 index 00000000000..845ec9aedd7 --- /dev/null +++ b/docs/release/src/osd/winui/res/hbmameui.ico diff --git a/docs/release/src/osd/winui/res/header_down.ico b/docs/release/src/osd/winui/res/header_down.ico Binary files differnew file mode 100644 index 00000000000..490eb0f7880 --- /dev/null +++ b/docs/release/src/osd/winui/res/header_down.ico diff --git a/docs/release/src/osd/winui/res/header_up.ico b/docs/release/src/osd/winui/res/header_up.ico Binary files differnew file mode 100644 index 00000000000..e7cbd555c4e --- /dev/null +++ b/docs/release/src/osd/winui/res/header_up.ico diff --git a/docs/release/src/osd/winui/res/horz.ico b/docs/release/src/osd/winui/res/horz.ico Binary files differnew file mode 100644 index 00000000000..c4a5e940d09 --- /dev/null +++ b/docs/release/src/osd/winui/res/horz.ico diff --git a/docs/release/src/osd/winui/res/icon_asc.ico b/docs/release/src/osd/winui/res/icon_asc.ico Binary files differnew file mode 100644 index 00000000000..95f04736dc3 --- /dev/null +++ b/docs/release/src/osd/winui/res/icon_asc.ico diff --git a/docs/release/src/osd/winui/res/icon_des.ico b/docs/release/src/osd/winui/res/icon_des.ico Binary files differnew file mode 100644 index 00000000000..cda58ae29b5 --- /dev/null +++ b/docs/release/src/osd/winui/res/icon_des.ico diff --git a/docs/release/src/osd/winui/res/icon_snd.ico b/docs/release/src/osd/winui/res/icon_snd.ico Binary files differnew file mode 100644 index 00000000000..8b085042313 --- /dev/null +++ b/docs/release/src/osd/winui/res/icon_snd.ico diff --git a/docs/release/src/osd/winui/res/icon_sndn.ico b/docs/release/src/osd/winui/res/icon_sndn.ico Binary files differnew file mode 100644 index 00000000000..ce7d03df4b3 --- /dev/null +++ b/docs/release/src/osd/winui/res/icon_sndn.ico diff --git a/docs/release/src/osd/winui/res/joystick.ico b/docs/release/src/osd/winui/res/joystick.ico Binary files differnew file mode 100644 index 00000000000..4a7c5c7cd05 --- /dev/null +++ b/docs/release/src/osd/winui/res/joystick.ico diff --git a/docs/release/src/osd/winui/res/keyboard.ico b/docs/release/src/osd/winui/res/keyboard.ico Binary files differnew file mode 100644 index 00000000000..1e11e2c382f --- /dev/null +++ b/docs/release/src/osd/winui/res/keyboard.ico diff --git a/docs/release/src/osd/winui/res/mame.ico b/docs/release/src/osd/winui/res/mame.ico Binary files differnew file mode 100644 index 00000000000..586732b4a2f --- /dev/null +++ b/docs/release/src/osd/winui/res/mame.ico diff --git a/docs/release/src/osd/winui/res/mameui.ico b/docs/release/src/osd/winui/res/mameui.ico Binary files differnew file mode 100644 index 00000000000..067574231fd --- /dev/null +++ b/docs/release/src/osd/winui/res/mameui.ico diff --git a/docs/release/src/osd/winui/res/mameui.manifest b/docs/release/src/osd/winui/res/mameui.manifest new file mode 100644 index 00000000000..ce705a1b765 --- /dev/null +++ b/docs/release/src/osd/winui/res/mameui.manifest @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> +<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="MAMEUI" type="win32" /> +<description>Multiple Arcade Machine Emulator with built in user interface</description> +<dependency> +<dependentAssembly> +<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> +</dependentAssembly> +</dependency> +</assembly> diff --git a/docs/release/src/osd/winui/res/manufact.ico b/docs/release/src/osd/winui/res/manufact.ico Binary files differnew file mode 100644 index 00000000000..85d8136f08e --- /dev/null +++ b/docs/release/src/osd/winui/res/manufact.ico diff --git a/docs/release/src/osd/winui/res/mess.ico b/docs/release/src/osd/winui/res/mess.ico Binary files differnew file mode 100644 index 00000000000..e1fef183770 --- /dev/null +++ b/docs/release/src/osd/winui/res/mess.ico diff --git a/docs/release/src/osd/winui/res/messui.ico b/docs/release/src/osd/winui/res/messui.ico Binary files differnew file mode 100644 index 00000000000..e1fef183770 --- /dev/null +++ b/docs/release/src/osd/winui/res/messui.ico diff --git a/docs/release/src/osd/winui/res/nonwork.ico b/docs/release/src/osd/winui/res/nonwork.ico Binary files differnew file mode 100644 index 00000000000..8964fc75367 --- /dev/null +++ b/docs/release/src/osd/winui/res/nonwork.ico diff --git a/docs/release/src/osd/winui/res/samples.ico b/docs/release/src/osd/winui/res/samples.ico Binary files differnew file mode 100644 index 00000000000..96851b31582 --- /dev/null +++ b/docs/release/src/osd/winui/res/samples.ico diff --git a/docs/release/src/osd/winui/res/sound.ico b/docs/release/src/osd/winui/res/sound.ico Binary files differnew file mode 100644 index 00000000000..9f7edeaa6cd --- /dev/null +++ b/docs/release/src/osd/winui/res/sound.ico diff --git a/docs/release/src/osd/winui/res/source.ico b/docs/release/src/osd/winui/res/source.ico Binary files differnew file mode 100644 index 00000000000..94618b8c6fd --- /dev/null +++ b/docs/release/src/osd/winui/res/source.ico diff --git a/docs/release/src/osd/winui/res/splith.cur b/docs/release/src/osd/winui/res/splith.cur Binary files differnew file mode 100644 index 00000000000..7342d296e81 --- /dev/null +++ b/docs/release/src/osd/winui/res/splith.cur diff --git a/docs/release/src/osd/winui/res/toolbar.bmp b/docs/release/src/osd/winui/res/toolbar.bmp Binary files differnew file mode 100644 index 00000000000..6e7e26055e4 --- /dev/null +++ b/docs/release/src/osd/winui/res/toolbar.bmp diff --git a/docs/release/src/osd/winui/res/vert.ico b/docs/release/src/osd/winui/res/vert.ico Binary files differnew file mode 100644 index 00000000000..2855e6176d7 --- /dev/null +++ b/docs/release/src/osd/winui/res/vert.ico diff --git a/docs/release/src/osd/winui/res/win_clone.ico b/docs/release/src/osd/winui/res/win_clone.ico Binary files differnew file mode 100644 index 00000000000..3a0af8a5cd9 --- /dev/null +++ b/docs/release/src/osd/winui/res/win_clone.ico diff --git a/docs/release/src/osd/winui/res/win_noro.ico b/docs/release/src/osd/winui/res/win_noro.ico Binary files differnew file mode 100644 index 00000000000..1f313aa4b95 --- /dev/null +++ b/docs/release/src/osd/winui/res/win_noro.ico diff --git a/docs/release/src/osd/winui/res/win_redx.ico b/docs/release/src/osd/winui/res/win_redx.ico Binary files differnew file mode 100644 index 00000000000..1d4f2458314 --- /dev/null +++ b/docs/release/src/osd/winui/res/win_redx.ico diff --git a/docs/release/src/osd/winui/res/win_roms.ico b/docs/release/src/osd/winui/res/win_roms.ico Binary files differnew file mode 100644 index 00000000000..9c6843fbed5 --- /dev/null +++ b/docs/release/src/osd/winui/res/win_roms.ico diff --git a/docs/release/src/osd/winui/res/win_unkn.ico b/docs/release/src/osd/winui/res/win_unkn.ico Binary files differnew file mode 100644 index 00000000000..4d7f401a4fa --- /dev/null +++ b/docs/release/src/osd/winui/res/win_unkn.ico diff --git a/docs/release/src/osd/winui/res/working.ico b/docs/release/src/osd/winui/res/working.ico Binary files differnew file mode 100644 index 00000000000..4a3f53c6f3b --- /dev/null +++ b/docs/release/src/osd/winui/res/working.ico diff --git a/docs/release/src/osd/winui/res/year.ico b/docs/release/src/osd/winui/res/year.ico Binary files differnew file mode 100644 index 00000000000..4f8d93dbbd3 --- /dev/null +++ b/docs/release/src/osd/winui/res/year.ico diff --git a/docs/release/src/osd/winui/resource.h b/docs/release/src/osd/winui/resource.h new file mode 100644 index 00000000000..a82b8364258 --- /dev/null +++ b/docs/release/src/osd/winui/resource.h @@ -0,0 +1,455 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by mameui.rc +// +#define IDPAUSE 3 +#define IDS_UI_FILE 61 +#define IDS_UI_VIEW 62 +#define IDS_UI_OPTIONS 63 +#define IDS_UI_HELP 64 +#define IDS_VIEW_TOOLBAR 70 +#define IDS_VIEW_STATUSBAR 71 +#define IDS_VIEW_FOLDERLIST 72 +#define IDS_VIEW_SCREENSHOT 73 +#define IDS_VIEW_PICTURETABS 74 +#define IDS_VIEW_SPACER1 75 +#define IDS_VIEW_FULLSCREEN 76 +#define IDS_VIEW_SPACER2 77 +#define IDS_VIEW_SHOWPICTURES 78 +#define IDS_VIEW_SPACER3 79 +#define IDS_VIEW_LARGEICONS 80 +#define IDS_VIEW_SMALLICONS 81 +#define IDS_VIEW_LIST 82 +#define IDS_VIEW_DETAILS 83 +#define IDS_VIEW_GROUPED 84 +#define IDS_VIEW_SPACER4 85 +#define IDS_VIEW_ARRANGE 86 +#define IDS_VIEW_LINEUPICONS 87 +#define IDS_VIEW_SPACER5 88 +#define IDS_VIEW_REFRESH 89 +#define IDS_VIEW_CONTEXTFILTERS 90 +#define IDS_VIEW_CUSTOMIZEFIELDS 91 +#define ID_TOOLBAR_EDIT 92 +#define IDD_MAIN 101 +#define IDA_TAB_KEYS 106 +#define IDI_MAMEUI_ICON 107 +#define IDD_ABOUT 108 +#define IDR_MAIN_MENU 109 +#define IDR_UI_MENU 110 +#define IDB_ABOUT 113 +#define IDD_DIRECTX 114 +#define IDD_AUDIT 115 +#define IDD_DIRECTORIES 116 +#define IDD_CUSTOM_FILE 117 +#define IDR_CONTEXT_MENU 118 +#define IDI_WIN_NOROMS 119 +#define IDI_WIN_ROMS 120 +#define IDI_WIN_UNKNOWN 121 +#define IDI_WIN_CLONE 122 +#define IDI_WIN_REDX 123 +#define IDI_FOLDER_OPEN 124 +#define IDI_FOLDER 125 +#define IDI_FOLDER_AVAILABLE 126 +#define IDI_FOLDER_MANUFACTURER 127 +#define IDI_FOLDER_UNAVAILABLE 128 +#define IDI_FOLDER_YEAR 129 +#define IDI_FOLDER_SOURCE 130 +#define IDI_MANUFACTURER 131 +#define IDI_WORKING 132 +#define IDI_NONWORKING 133 +#define IDI_YEAR 134 +#define IDI_SOUND 135 +#define IDI_CPU 136 +#define IDI_HARDDISK 137 +#define IDI_SOURCE 138 +#define IDI_FOLDER_HORIZONTAL 139 +#define IDI_FOLDER_VERTICAL 140 +#define IDR_CONTEXT_HEADER 151 +#define IDD_PROP_GAME 152 +#define IDD_PROP_AUDIT 153 +#define IDD_PROP_DISPLAY 154 +#define IDD_PROP_SOUND 155 +#define IDD_PROP_ADVANCED 156 +#define IDD_PROP_INPUT 157 +#define IDD_PROP_MISC 158 +#define IDD_PROP_VECTOR 159 +#define IDD_COLUMNS 160 +#define IDI_KEYBOARD 161 +#define IDI_JOYSTICK 162 +#define IDI_DISPLAY 163 +#define IDI_CHECKMARK 164 +#define IDC_CURSOR_HSPLIT 165 +#define IDB_TOOLBAR 166 +#define IDR_CONTEXT_TREE 168 +#define IDD_FILTERS 169 +#define IDD_RESET 170 +#define IDD_LOAD_PROGRESS 171 +#define IDD_INTERFACE_OPTIONS 173 +#define IDR_CONTEXT_SCREENSHOT 181 +#define IDI_HEADER_UP 182 +#define IDI_HEADER_DOWN 183 +#define IDD_PROP_CONTROLLER 185 +#define IDD_PROP_SCREEN 187 +#define IDD_PROP_DEBUG 188 +#define IDI_SOUNDTAB 666 +#define IDC_LIST 1000 +#define IDC_JOYSTICK 1003 +#define IDC_SIZES 1005 +#define IDC_FRAMESKIP 1009 +#define IDC_ROTATE 1010 +#define IDC_SCREEN 1012 +#define IDC_VIEW 1013 +#define IDC_SCREENSELECT 1014 +#define IDC_CHEAT 1015 +#define IDC_LOG 1016 +#define IDC_ARTWORK_CROP 1017 +#define IDC_OVERLAYS 1018 +#define IDC_BEZELS 1019 +#define IDC_CPANELS 1020 +#define IDC_MARQUEES 1021 +#define IDC_SLEEP 1022 +#define IDC_GAMMA 1023 +#define IDC_BRIGHTCORRECT 1024 +#define IDC_USE_DEFAULT 1025 +#define IDC_CONTRAST 1026 +#define IDC_SAMPLERATE 1027 +#define IDC_NUMSCREENS 1028 +#define IDC_ANTIALIAS 1029 +#define IDC_BEAM 1030 +#define IDC_FLICKER 1031 +#define IDC_FLIPX 1032 +#define IDC_FLIPY 1033 +#define IDC_BACKDROPS 1034 +#define IDC_DIRECTX_HELP 1035 +#define IDC_FLICKERDISP 1036 +#define IDB_WEB_PAGE 1037 +#define IDC_FSCONTRAST 1038 +#define IDC_ROMS_PROGRESS 1039 +#define IDC_SECONDSTORUN 1039 +#define IDC_CONTRASTDISP 1040 +#define IDC_ROMS_CORRECT 1041 +#define IDC_FSCONTRASTDISP 1042 +#define IDC_ROMS_INCORRECT 1043 +#define IDC_SECONDSTORUNDISP 1043 +#define IDC_NUMSCREENSDISP 1044 +#define IDC_ROMS_TOTAL 1045 +#define IDC_SAMPLES_PROGRESS 1046 +#define IDC_SAMPLES_CORRECT 1047 +#define IDC_BEAMDISP 1048 +#define IDC_SAMPLES_INCORRECT 1049 +#define IDC_SAMPLES_TOTAL 1050 +#define IDC_AUDIT_DETAILS 1051 +#define IDC_DIR_COMBO 1053 +#define IDC_DIR_LIST 1054 +#define IDC_DIR_BROWSE 1055 +#define IDC_DIR_INSERT 1056 +#define IDC_DIR_DELETE 1057 +#define IDC_FLICKERTEXT 1058 +#define IDC_SSFRAME 1059 +#define IDC_PRESCALE 1060 +#define IDC_SSPICTURE 1062 +#define IDC_BEAMTEXT 1063 +#define IDC_MULTIKEYBOARD 1065 +#define IDC_RATETEXT 1069 +#define IDC_LISTAVAILABLECOLUMNS 1070 +#define IDC_LISTSHOWCOLUMNS 1071 +#define IDC_BUTTONADD 1072 +#define IDC_BUTTONREMOVE 1073 +#define IDC_BUTTONMOVEDOWN 1074 +#define IDC_BUTTONMOVEUP 1075 +#define IDC_PROP_SOUND 1076 +#define IDC_PROP_CPU 1077 +#define IDC_PROP_TITLE 1078 +#define IDC_PROP_MANUFACTURED 1079 +#define IDC_PROP_STATUS 1080 +#define IDC_PROP_SCREEN 1081 +#define IDC_PROP_COLORS 1082 +#define IDC_PROP_ROMS 1083 +#define IDC_PROP_SAMPLES 1084 +#define IDC_PROP_CLONEOF_TEXT 1085 +#define IDC_PROP_CLONEOF 1086 +#define IDC_VERSION 1088 +#define IDC_FSGAMMA 1090 +#define IDC_GAMMADISP 1091 +#define IDC_FSBRIGHTNESS 1092 +#define IDC_FSGAMMADISP 1093 +#define IDC_PRESCALEDISP 1094 +#define IDC_BRIGHTCORRECTDISP 1095 +#define IDC_FSBRIGHTNESSDISP 1096 +#define IDC_AUTOFRAMESKIP 1097 +#define IDC_TREE 1098 +#define IDC_WINDOWED 1099 +#define IDC_PROP_RESET 1101 +#define IDC_SPLITTER 1102 +#define IDC_SPLITTER2 1103 +#define IDC_DIVIDER 1104 +#define IDC_FILTER_VECTOR 1105 +#define IDC_FILTER_RASTER 1106 +#define IDC_FILTER_UNAVAILABLE 1107 +#define IDC_FILTER_NONWORKING 1108 +#define IDC_FILTER_CLONES 1109 +#define IDC_RESET_GAMES 1110 +#define IDC_RESET_UI 1111 +#define IDC_RESET_FILTERS 1112 +#define IDC_RESET_EFFECT 1113 +#define IDC_RESET_DEFAULT 1114 +#define IDC_FILTER_ORIGINALS 1115 +#define IDC_FILTER_WORKING 1116 +#define IDC_FILTER_AVAILABLE 1117 +#define IDC_FILTER_ARCADE 1118 +#define IDC_FILTER_MESS 1119 +#define IDC_START_GAME_CHECK 1120 +#define IDC_VOLUME 1121 +#define IDC_VOLUMEDISP 1122 +#define IDC_HISTORY 1124 +#define IDC_SAMPLES 1125 +#define IDC_TRIPLE_BUFFER 1127 +#define IDC_LOAD_ROMNAME 1128 +#define IDC_DEFAULT_INPUT 1129 +#define IDC_LANGUAGECHECK 1130 +#define IDC_LANGUAGEBROWSE 1131 +#define IDC_LANGUAGEEDIT 1132 +#define IDC_FILTER_EDIT 1133 +#define IDC_ABOUT 1134 +#define IDC_USE_SOUND 1136 +#define IDC_WAITVSYNC 1137 +#define IDC_HWSTRETCH 1138 +#define IDC_SWITCHRES 1139 +#define IDC_MAXIMIZE 1140 +#define IDC_KEEPASPECT 1141 +#define IDC_SYNCREFRESH 1142 +#define IDC_USE_MOUSE 1143 +#define IDC_THROTTLE 1144 +#define IDC_VOLUMETEXT 1146 +#define IDC_REFRESH 1148 +#define IDC_REFRESHTEXT 1149 +#define IDC_EFFECT 1150 +#define IDC_FSGAMMATEXT 1151 +#define IDC_STEADYKEY 1152 +#define IDC_ASPECTRATION 1154 +#define IDC_ASPECTRATIOD 1155 +#define IDC_ASPECTRATIOTEXT 1156 +#define IDC_JOY_GUI 1157 +#define IDC_BROADCAST 1158 +#define IDC_JDZ 1159 +#define IDC_JDZDISP 1160 +#define IDC_JDZTEXT 1161 +#define IDC_JSATTEXT 1162 +#define IDC_JSAT 1163 +#define IDC_JSATDISP 1164 +#define IDC_AUDIO_LATENCY_DISP 1165 +#define IDC_PLAY_GAME 1166 +#define IDC_LIGHTGUN 1167 +#define IDC_SSTAB 1168 +#define IDC_GAME_ICON 1169 +#define IDC_RANDOM_BG 1170 +#define IDC_CUSTOM_TREE 1171 +#define IDC_CUSTOMFILE_GAME 1173 +#define IDC_LOAD_STATUS 1174 +#define IDC_ERROR_TEXT 1175 +#define IDC_ARTMISCTEXT 1176 +#define IDC_ENABLE_AUTOSAVE 1177 +#define IDC_SKIP_GAME_INFO 1178 +#define IDC_PROP_SOURCE 1179 +#define IDC_FILTER_HORIZONTAL 1180 +#define IDC_PAUSEBRIGHT 1181 +#define IDC_PAUSEBRIGHTDISP 1182 +#define IDC_HIGH_PRIORITY 1183 +#define IDC_D3D_FILTER 1184 +#define IDC_HIDE_MOUSE 1185 +#define IDC_AUDIO_LATENCY 1186 +#define IDC_D3D_VERSION 1187 +#define IDC_AUDIT_DETAILS_PROP 1188 +#define IDC_CYCLETIMESEC 1190 +#define IDC_AUDIO_LATENCY_TEXT 1191 +#define IDC_STRETCH_SCREENSHOT_LARGER 1192 +#define IDC_FILTER_INHERIT 1193 +#define IDC_RESET_PLAYTIME 1194 +#define IDC_RESET_PLAYCOUNT 1195 +#define IDC_INHERITED 1196 +#define IDC_KEY_GUI 1197 +#define IDC_RELOAD 1198 +#define IDC_DUAL_LIGHTGUN 1199 +#define IDC_NOOFFSET_CLONES 1200 +#define IDC_BIOS 1201 +#define IDC_HISTORY_TAB 1202 +#define IDC_SNAPVIEW 1202 +#define IDC_SCREENSHOT_BORDERSIZE 1204 +#define IDC_SCREENSHOT_BORDERCOLOR 1205 +#define IDC_CYCLETIMESECTXT 1206 +#define IDC_SCREENSHOT_BORDERSIZETXT 1207 +#define IDC_PADDLE 1208 +#define IDC_ADSTICK 1209 +#define IDC_PEDAL 1210 +#define IDC_DIAL 1211 +#define IDC_TRACKBALL 1212 +#define IDC_LIGHTGUNDEVICE 1213 +#define IDC_MOUSE 1214 +#define IDC_POSITIONAL 1215 +#define IDC_HIGH_PRIORITY_TEXT 1216 +#define IDC_HIGH_PRIORITYTXT 1217 +#define IDC_SELECT_EFFECT 1218 +#define IDC_MULTITHREAD_RENDERING 1219 +#define IDC_ASPECT 1220 +#define IDC_LOAD_PROGRESS 1223 +#define IDC_FSBRIGHTNESSTEXT 1224 +#define IDC_FSCONTRASTTEXT 1225 +#define IDC_VIDEO_MODE 1226 +#define IDC_SCREENSELECTTEXT 1227 +#define IDC_PRESCALETEXT 1228 +#define IDC_SOUND_MODE 1229 +#define IDC_MULTIMOUSE 1230 +#define IDC_DEBUG 1231 +#define IDC_REFRESHSPEED 1232 +#define IDC_SPEEDTEXT 1233 +#define IDC_SPEED 1234 +#define IDC_SPEEDDISP 1235 +#define IDC_FILTER_VERTICAL 1236 +#define IDC_SNAPNAME 1237 +#define IDC_COINLOCKOUT 1238 +#define IDC_SECONDSTORUNTEXT 1239 +#define IDC_OSLOG 1240 +#define IDC_VERBOSE 1241 +#define IDC_UPDATEINPAUSE 1242 +#define IDC_DEBUGSCRIPT 1243 +#define IDC_SELECT_DEBUGSCRIPT 1244 +#define IDC_RESET_DEBUGSCRIPT 1245 +#define IDC_SELECT_JOYSTICKMAP 1246 +#define IDC_RESET_JOYSTICKMAP 1247 +#define IDC_JOYSTICKMAP 1248 +#define IDC_SNAPSIZE 1249 +#define IDC_SNAPSIZEWIDTH 1250 +#define IDC_SNAPSIZEHEIGHT 1251 +#define IDC_SNAPSIZETEXT 1252 +#define IDC_SNAPSIZEX 1253 +#define IDC_FILTER_MECHANICAL 1254 +#define IDC_SPLITTER3 2000 +#define IDC_SWTAB 2001 +#define IDC_SWLIST 2002 +#define IDC_SWDEVVIEW 2003 +#define IDC_FILTER_COMPUTER 2004 +#define IDC_FILTER_CONSOLE 2005 +#define IDC_FILTER_MODIFIED 2006 +#define IDC_RAM_COMBOBOX 2008 +#define IDC_RAM_CAPTION 2009 +#define IDC_SOFTLIST 2010 +#define IDI_WIN_NOROMSNEEDED 2100 +#define IDI_WIN_MISSINGOPTROM 2101 +#define IDI_WIN_FLOP 2102 +#define IDI_WIN_CASS 2103 +#define IDI_WIN_SERL 2104 +#define IDI_WIN_SNAP 2105 +#define IDI_WIN_PRIN 2106 +#define IDI_WIN_HARD 2107 +#define IDI_WIN_CYLN 2110 +#define IDI_WIN_PTAP 2111 +#define IDI_WIN_PCRD 2112 +#define ID_MESS_OPEN_SOFTWARE 2200 +#define IDD_PROP_SOFTWARE 2202 +#define IDD_PROP_CONFIGURATION 2203 +#define ID_CONTEXT_SHOW_FOLDER_START 39000 +#define ID_CONTEXT_SHOW_FOLDER_END 39200 +#define ID_FILE_EXIT 40001 +#define ID_ABOUT 40003 +#define ID_FILE_PLAY 40004 +#define ID_HELP_ABOUT 40006 +#define ID_VIEW_LARGE_ICON 40007 +#define ID_VIEW_SMALL_ICON 40008 +#define ID_VIEW_LIST_MENU 40009 +#define ID_VIEW_DETAIL 40010 +#define ID_VIEW_GROUPED 40011 +#define ID_OPTIONS_FONT 40012 +#define ID_OPTIONS_CLONE_COLOR 40013 +#define ID_OPTIONS_DIR 40014 +#define ID_OPTIONS_DEFAULTS 40015 +#define ID_OPTIONS_RESET_DEFAULTS 40016 +#define ID_OPTIONS_INTERFACE 40017 +#define ID_FILE_AUDIT 40018 +#define ID_FILE_PLAY_RECORD 40019 +#define ID_FILE_PLAY_BACK 40020 +#define ID_FILE_PLAY_RECORD_WAVE 40021 +#define ID_FILE_PLAY_RECORD_MNG 40022 +#define ID_FILE_PLAY_RECORD_AVI 40023 +#define ID_VIEW_PICTURE_AREA 40024 +#define ID_HELP_CONTENTS 40025 +#define ID_HELP_WHATS_NEWUI 40026 +#define ID_HELP_TROUBLE 40027 +#define ID_HELP_RELEASE 40028 +#define ID_HELP_WHATS_NEW 40029 +#define ID_HELP_CHEATS 40030 +#define ID_FILE_AUDIT_X 40031 +#define ID_VIEW_BYGAME 40034 +#define ID_VIEW_BYDIRECTORY 40035 +#define ID_VIEW_BYMANUFACTURER 40036 +#define ID_VIEW_BYYEAR 40037 +#define ID_VIEW_BYTYPE 40038 +#define ID_VIEW_BYTIMESPLAYED 40039 +#define ID_VIEW_LINEUPICONS 40040 +#define ID_UPDATE_GAMELIST 40042 +#define ID_SORT_ASCENDING 40045 +#define ID_SORT_DESCENDING 40046 +#define ID_CUSTOMIZE_FIELDS 40048 +#define ID_GAME_PROPERTIES 40049 +#define ID_VIEW_PAGETAB 40050 +#define ID_VIEW_FOLDERS 40051 +#define ID_VIEW_TOOLBARS 40052 +#define ID_VIEW_STATUS 40053 +#define ID_CONTEXT_FILTERS 40054 +#define ID_CONTEXT_RENAME_CUSTOM 40055 +#define ID_CONTEXT_ADD_CUSTOM 40057 +#define ID_CONTEXT_REMOVE_CUSTOM 40058 +#define ID_GAME_AUDIT 40059 +#define ID_CONTEXT_SELECT_RANDOM 40060 +#define ID_VIEW_TAB_SCREENSHOT 40062 +#define ID_VIEW_TAB_FLYER 40063 +#define ID_VIEW_TAB_CABINET 40064 +#define ID_VIEW_TAB_MARQUEE 40065 +#define ID_VIEW_TAB_TITLE 40066 +#define ID_VIEW_TAB_CONTROL_PANEL 40067 +#define ID_VIEW_TAB_PCB 40068 +#define ID_VIEW_TAB_HISTORY 40069 +#define ID_OPTIONS_BG 40070 +#define ID_TOGGLE_TAB_SCREENSHOT 40071 +#define ID_TOGGLE_TAB_FLYER 40072 +#define ID_TOGGLE_TAB_CABINET 40073 +#define ID_TOGGLE_TAB_MARQUEE 40074 +#define ID_TOGGLE_TAB_TITLE 40075 +#define ID_TOGGLE_TAB_CONTROL_PANEL 40076 +#define ID_TOGGLE_TAB_PCB 40077 +#define ID_TOGGLE_TAB_HISTORY 40078 +#define ID_VIEW_FULLSCREEN 40079 +#define ID_CONTEXT_RESET_PLAYTIME 40080 +#define ID_CONTEXT_RESET_PLAYCOUNT 40081 +#define ID_FOLDER_PROPERTIES 40082 +#define ID_FOLDER_AUDIT 40083 +#define ID_UI_UP 40084 +#define ID_UI_DOWN 40085 +#define ID_UI_LEFT 40086 +#define ID_UI_RIGHT 40087 +#define ID_UI_START 40088 +#define ID_UI_PGUP 40089 +#define ID_UI_PGDOWN 40090 +#define ID_UI_HOME 40091 +#define ID_UI_END 40092 +#define ID_UI_HISTORY_UP 40093 +#define ID_UI_HISTORY_DOWN 40094 +#define ID_FILE_LOADSTATE 40095 +#define ID_FOLDER_SOURCEPROPERTIES 40096 +#define ID_FOLDER_VECTORPROPERTIES 40097 +#define ID_OPTIONS_MAMEINFO 40100 +#define ID_OPTIONS_HISTORY 40101 +#define ID_VIEW_SOFTWARE_AREA 40102 +#define IDC_STATIC -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NO_MFC 1 +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 192 +#define _APS_NEXT_COMMAND_VALUE 40103 +#define _APS_NEXT_CONTROL_VALUE 1337 +#define _APS_NEXT_SYMED_VALUE 93 +#endif +#endif diff --git a/docs/release/src/osd/winui/resource.hm b/docs/release/src/osd/winui/resource.hm new file mode 100644 index 00000000000..0934c33b73d --- /dev/null +++ b/docs/release/src/osd/winui/resource.hm @@ -0,0 +1,122 @@ +// Microsoft Visual C++ generated Help ID include file. +// Used by mameui.rc +// +#define HIDC_ADSTICK 0x80b904b9 // IDD_PROP_CONTROLLER [English (U.S.)] +#define HIDC_ANTIALIAS 0x809f0405 // IDD_PROP_VECTOR [English (U.S.)] +#define HIDC_ARTWORK_CROP 0x809e03fa // IDD_PROP_MISC [English (U.S.)] +#define HIDC_ASPECT 0x80bb04c4 // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_ASPECTRATIOD 0x80bb0483 // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_ASPECTRATION 0x80bb0482 // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_AUDIO_LATENCY 0x809b04a2 // IDD_PROP_SOUND [English (U.S.)] +#define HIDC_AUTOFRAMESKIP 0x809c0449 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_BACKDROPS 0x809e040a // IDD_PROP_MISC [English (U.S.)] +#define HIDC_BEAM 0x809f0406 // IDD_PROP_VECTOR [English (U.S.)] +#define HIDC_BEZELS 0x809e03fd // IDD_PROP_MISC [English (U.S.)] +#define HIDC_BIOS 0x809e04b1 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_BRIGHTCORRECT 0x809a0400 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_BROADCAST 0x80ad0486 // IDD_INTERFACE_OPTIONS [English (U.S.)] +#define HIDC_CHEAT 0x809e03f8 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_COINLOCKOUT 0x809e04d6 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_CONTRAST 0x809a0402 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_CYCLETIMESEC 0x80ad04a6 // IDD_INTERFACE_OPTIONS [English (U.S.)] +#define HIDC_D3D_FILTER 0x809a04a0 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_D3D_VERSION 0x809a04a3 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_DEBUG 0x80bc04cf // IDD_PROP_DEBUG [English (U.S.)] +#define HIDC_DEFAULT_INPUT 0x809d0469 // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_DIAL 0x80b904bb // IDD_PROP_CONTROLLER [English (U.S.)] +#define HIDC_DUAL_LIGHTGUN 0x809d04af // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_ENABLE_AUTOSAVE 0x809e0499 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_FILTER_CLONES 0x80a90455 // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_EDIT 0x80a9046d // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_HORIZONTAL 0x80a9049c // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_NONWORKING 0x80a90454 // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_ORIGINALS 0x80a9045b // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_RASTER 0x80a90452 // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_UNAVAILABLE 0x80a90453 // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_VECTOR 0x80a90451 // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_VERTICAL 0x80a90460 // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_WORKING 0x80a9045c // IDD_FILTERS [English (U.S.)] +#define HIDC_FILTER_MECHANICAL 0x80a90461 // IDD_FILTERS [English (U.S.)] +#define HIDC_FLICKER 0x809f0407 // IDD_PROP_VECTOR [English (U.S.)] +#define HIDC_FLIPX 0x809a0408 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_FLIPY 0x809a0409 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_FRAMESKIP 0x809c03f1 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_FSBRIGHTNESS 0x809c0444 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_FSCONTRAST 0x809c040e // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_FSGAMMA 0x809c0442 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_GAMMA 0x809a03ff // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_HIDE_MOUSE 0x80ad04a1 // IDD_INTERFACE_OPTIONS [English (U.S.)] +#define HIDC_HIGH_PRIORITY 0x809e049f // IDD_PROP_MISC [English (U.S.)] +#define HIDC_HISTORY 0x806504cb // IDD_MAIN [English (U.S.)] +#define HIDC_HWSTRETCH 0x809a046c // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_JDZ 0x809d0487 // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_JOYSTICK 0x809d03eb // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_JOY_GUI 0x80ad0485 // IDD_INTERFACE_OPTIONS [English (U.S.)] +#define HIDC_JSAT 0x809d048b // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_KEEPASPECT 0x809a0474 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_LANGUAGECHECK 0x80b204d1 // IDD_LANGUAGE [English (U.S.)] +#define HIDC_LANGUAGEEDIT 0x80b204d4 // IDD_LANGUAGE [English (U.S.)] +#define HIDC_LIGHTGUN 0x809d048f // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_LIGHTGUNDEVICE 0x80b904bd // IDD_PROP_CONTROLLER [English (U.S.)] +#define HIDC_LOG 0x80bc03f9 // IDD_PROP_DEBUG [English (U.S.)] +#define HIDC_MAXIMIZE 0x809a046e // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_MOUSE 0x80b904be // IDD_PROP_CONTROLLER [English (U.S.)] +#define HIDC_MULTIKEYBOARD 0x809d0429 // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_MULTIMOUSE 0x809d04ce // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_MULTITHREAD_RENDERING 0x809e04c3 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_NUMSCREENS 0x80bb0404 // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_OSLOG 0x80bc04d8 // IDD_PROP_DEBUG [English (U.S.)] +#define HIDC_OVERLAYS 0x809e03fb // IDD_PROP_MISC [English (U.S.)] +#define HIDC_PADDLE 0x80b904b8 // IDD_PROP_CONTROLLER [English (U.S.)] +#define HIDC_PAUSEBRIGHT 0x809a049c // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_PEDAL 0x80b904ba // IDD_PROP_CONTROLLER [English (U.S.)] +#define HIDC_POSITIONAL 0x80b904bf // IDD_PROP_CONTROLLER [English (U.S.)] +#define HIDC_PRESCALE 0x809a041f // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_PROP_RESET 0x809c044d // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_RANDOM_BG 0x80ad0492 // IDD_INTERFACE_OPTIONS [English (U.S.)] +#define HIDC_REFRESH 0x80bb047c // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_REFRESHSPEED 0x809c04d0 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_RELOAD 0x809d04ae // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_RESET_DEBUGSCRIPT 0x80bc04dd // IDD_PROP_DEBUG [English (U.S.)] +#define HIDC_RESET_DEFAULT 0x80aa04a2 // IDD_RESET [English (U.S.)] +#define HIDC_RESET_EFFECT 0x809c0459 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_RESET_FILTERS 0x80aa049f // IDD_RESET [English (U.S.)] +#define HIDC_RESET_GAMES 0x80aa049d // IDD_RESET [English (U.S.)] +#define HIDC_RESET_JOYSTICKMAP 0x809d04df // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_RESET_UI 0x80aa049e // IDD_RESET [English (U.S.)] +#define HIDC_ROTATE 0x809a03f2 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_SAMPLERATE 0x809b0403 // IDD_PROP_SOUND [English (U.S.)] +#define HIDC_SAMPLES 0x809b0461 // IDD_PROP_SOUND [English (U.S.)] +#define HIDC_SCREEN 0x80bb03f4 // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_SCREENSELECT 0x80bb03f7 // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_SECONDSTORUN 0x809c040f // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_SELECT_DEBUGSCRIPT 0x80bc04dc // IDD_PROP_DEBUG [English (U.S.)] +#define HIDC_SELECT_EFFECT 0x809c04c2 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_SELECT_JOYSTICKMAP 0x809d04de // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_SIZES 0x80bb03ed // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_SKIP_GAME_INFO 0x809e049a // IDD_PROP_MISC [English (U.S.)] +#define HIDC_SLEEP 0x809e03fe // IDD_PROP_MISC [English (U.S.)] +#define HIDC_SNAPNAME 0x80ad04d5 // IDD_INTERFACE_OPTIONS [English (U.S.)] +#define HIDC_SNAPSIZE 0x809e04e1 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_SNAPSIZEHEIGHT 0x809e04e3 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_SNAPSIZEWIDTH 0x809e04e2 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_SNAPVIEW 0x809e04b2 // IDD_PROP_MISC [English (U.S.)] +#define HIDC_SPEED 0x809c04d2 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_START_GAME_CHECK 0x80ad0460 // IDD_INTERFACE_OPTIONS [English (U.S.)] +#define HIDC_STEADYKEY 0x809d0480 // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_STRETCH_SCREENSHOT_LARGER 0x80ad04a8 // IDD_INTERFACE_OPTIONS [English (U.S.)] +#define HIDC_SWITCHRES 0x80bb046d // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_SYNCREFRESH 0x809c0476 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_THROTTLE 0x809a0478 // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_TRACKBALL 0x80b904bc // IDD_PROP_CONTROLLER [English (U.S.)] +#define HIDC_TRIPLE_BUFFER 0x809c0467 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_UPDATEINPAUSE 0x80bc04da // IDD_PROP_DEBUG [English (U.S.)] +#define HIDC_USE_DEFAULT 0x809c0401 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_USE_MOUSE 0x809d0477 // IDD_PROP_INPUT [English (U.S.)] +#define HIDC_USE_SOUND 0x809b046d // IDD_PROP_SOUND [English (U.S.)] +#define HIDC_VERBOSE 0x80bc04d9 // IDD_PROP_DEBUG [English (U.S.)] +#define HIDC_VIDEO_MODE 0x809a04ca // IDD_PROP_DISPLAY [English (U.S.)] +#define HIDC_VIEW 0x80bb03f6 // IDD_PROP_SCREEN [English (U.S.)] +#define HIDC_VOLUME 0x809b045d // IDD_PROP_SOUND [English (U.S.)] +#define HIDC_WAITVSYNC 0x809c0471 // IDD_PROP_ADVANCED [English (U.S.)] +#define HIDC_WINDOWED 0x809a0497 // IDD_PROP_DISPLAY [English (U.S.)] diff --git a/docs/release/src/osd/winui/screenshot.cpp b/docs/release/src/osd/winui/screenshot.cpp new file mode 100644 index 00000000000..868c3b0a91d --- /dev/null +++ b/docs/release/src/osd/winui/screenshot.cpp @@ -0,0 +1,664 @@ +// For licensing and usage information, read docs/winui_license.txt +// MASTER +//**************************************************************************** + +/*************************************************************************** + + Screenshot.c + + Win32 DIB handling. + + Created 7/1/98 by Mike Haaland (mhaaland@hypertech.com) + + 0.145u5 + - Cleaned out unused code. + - If Software tab is chosen, software-specific pictures can be displayed. + - Background picture must be PNG, and can be chosen from anywhere, but + must be uncompressed (not in a zip file). + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> + +// MAME/MAMEUI headers +#include "emu.h" +#include "png.h" +#include "unzip.h" +#include "mui_opts.h" +#include "mui_util.h" +#include "winui.h" +#include "drivenum.h" + +/*************************************************************************** + Static global variables +***************************************************************************/ + +/* these refer to the single image currently loaded by the ScreenShot functions */ +static HGLOBAL m_hDIB = nullptr; +static HPALETTE m_hPal = nullptr; +static HANDLE m_hDDB = nullptr; + +/* PNG variables */ + +static int copy_size = 0; +static char* pixel_ptr = nullptr; +static int row = 0; +static int effWidth; +static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pic_type); + +/*************************************************************************** + Functions +***************************************************************************/ + +BOOL ScreenShotLoaded(void) +{ + return m_hDDB != NULL; +} + +static BOOL LoadSoftwareScreenShot(const game_driver *drv, LPCSTR lpSoftwareName, int nType) +{ + BOOL result; + char *s = (char*)alloca(strlen(drv->name) + 1 + strlen(lpSoftwareName) + 5); + sprintf(s, "%s", lpSoftwareName); + // oldest code --> sprintf(s, "%s/%s.png", drv->name, lpSoftwareName); + //sprintf(s, "%s:%s", drv->name, lpSoftwareName); + result = LoadDIB(s, &m_hDIB, &m_hPal, nType); + return result; +} + +/* Allow us to pre-load the DIB once for future draws */ +BOOL LoadScreenShotEx(int nGame, LPCSTR lpSoftwareName, int nType) +{ + BOOL loaded = FALSE; + + /* Delete the last ones */ + FreeScreenShot(); + + /* Load the DIB */ + + if (lpSoftwareName) + { + int nParentIndex = -1; + loaded = LoadSoftwareScreenShot(&driver_list::driver(nGame), lpSoftwareName, nType); + if (!loaded && DriverIsClone(nGame) == TRUE) + { + nParentIndex = GetParentIndex(&driver_list::driver(nGame)); + loaded = LoadSoftwareScreenShot(&driver_list::driver(nParentIndex), lpSoftwareName, nType); + } + } + + if (!loaded) + loaded = LoadDIB(driver_list::driver(nGame).name, &m_hDIB, &m_hPal, nType); + + /* If not loaded, see if there is a clone and try that */ + if (!loaded) + { + int nParentIndex = GetParentIndex(&driver_list::driver(nGame)); + if( nParentIndex >= 0) + { + loaded = LoadDIB(driver_list::driver(nParentIndex).name, &m_hDIB, &m_hPal, nType); + nParentIndex = GetParentIndex(&driver_list::driver(nParentIndex)); + if (!loaded && nParentIndex >= 0) + loaded = LoadDIB(driver_list::driver(nParentIndex).name, &m_hDIB, &m_hPal, nType); + } + } + + if (loaded) + { + HDC hdc = GetDC(GetMainWindow()); + m_hDDB = DIBToDDB(hdc, m_hDIB, NULL); + ReleaseDC(GetMainWindow(),hdc); + } + + return (loaded) ? TRUE : FALSE; +} + +HANDLE GetScreenShotHandle() +{ + return m_hDDB; +} + +int GetScreenShotWidth(void) +{ + return ((LPBITMAPINFO)m_hDIB)->bmiHeader.biWidth; +} + +int GetScreenShotHeight(void) +{ + return ((LPBITMAPINFO)m_hDIB)->bmiHeader.biHeight; +} + +/* Delete the HPALETTE and Free the HDIB memory */ +void FreeScreenShot(void) +{ + if (m_hDIB != NULL) + GlobalFree(m_hDIB); + m_hDIB = NULL; + + if (m_hPal != NULL) + DeletePalette(m_hPal); + m_hPal = NULL; + + if (m_hDDB != NULL) + DeleteObject(m_hDDB); + m_hDDB = NULL; + + ///current_image_game = -1; + ///current_image_type = -1; +} + +/*************************************************************************** + PNG graphics handling functions +***************************************************************************/ + +BOOL AllocatePNG(png_info *p, HGLOBAL *phDIB, HPALETTE *pPal) +{ + int dibSize; + HGLOBAL hDIB; + BITMAPINFOHEADER bi; + LPBITMAPINFOHEADER lpbi; + LPBITMAPINFO bmInfo; + LPVOID lpDIBBits = 0; + int lineWidth = 0; + int nColors = 0; + RGBQUAD* pRgb; + copy_size = 0; + pixel_ptr = 0; + row = p->height - 1; + lineWidth = p->width; + + if (p->color_type != 2 && p->num_palette <= 256) + nColors = p->num_palette; + + bi.biSize = sizeof(BITMAPINFOHEADER); + bi.biWidth = p->width; + bi.biHeight = p->height; + bi.biPlanes = 1; + bi.biBitCount = (p->color_type == 3) ? 8 : 24; /* bit_depth; */ + + bi.biCompression = BI_RGB; + bi.biSizeImage = 0; + bi.biXPelsPerMeter = 0; + bi.biYPelsPerMeter = 0; + bi.biClrUsed = nColors; + bi.biClrImportant = nColors; + + effWidth = (long)(((long)lineWidth*bi.biBitCount + 31) / 32) * 4; + + dibSize = (effWidth * bi.biHeight); + hDIB = GlobalAlloc(GMEM_FIXED, bi.biSize + (nColors * sizeof(RGBQUAD)) + dibSize); + + if (!hDIB) + return FALSE; + + lpbi = (LPBITMAPINFOHEADER)hDIB; + memcpy(lpbi, &bi, sizeof(BITMAPINFOHEADER)); + pRgb = (RGBQUAD*)((LPSTR)lpbi + bi.biSize); + lpDIBBits = (LPVOID)((LPSTR)lpbi + bi.biSize + (nColors * sizeof(RGBQUAD))); + if (nColors) + { + int i; + /* Convert a PNG palette (3 byte RGBTRIPLEs) to a new color table (4 byte RGBQUADs) */ + for (i = 0; i < nColors; i++) + { + RGBQUAD rgb; + + rgb.rgbRed = p->palette[i * 3 + 0]; + rgb.rgbGreen = p->palette[i * 3 + 1]; + rgb.rgbBlue = p->palette[i * 3 + 2]; + rgb.rgbReserved = (BYTE)0; + + pRgb[i] = rgb; + } + } + + bmInfo = (LPBITMAPINFO)hDIB; + + /* Create a halftone palette if colors > 256. */ + if (0 == nColors || nColors > 256) + { + HDC hDC = CreateCompatibleDC(0); /* Desktop DC */ + *pPal = CreateHalftonePalette(hDC); + DeleteDC(hDC); + } + else + { + UINT nSize = sizeof(LOGPALETTE) + (sizeof(PALETTEENTRY) * nColors); + LOGPALETTE *pLP = (LOGPALETTE *)malloc(nSize); + int i; + + pLP->palVersion = 0x300; + pLP->palNumEntries = nColors; + + for (i = 0; i < nColors; i++) + { + pLP->palPalEntry[i].peRed = bmInfo->bmiColors[i].rgbRed; + pLP->palPalEntry[i].peGreen = bmInfo->bmiColors[i].rgbGreen; + pLP->palPalEntry[i].peBlue = bmInfo->bmiColors[i].rgbBlue; + pLP->palPalEntry[i].peFlags = 0; + } + + *pPal = CreatePalette(pLP); + + free (pLP); + } + + copy_size = dibSize; + pixel_ptr = (char*)lpDIBBits; + *phDIB = hDIB; + return TRUE; +} + +inline void store_pixels(UINT8 *buf, int len) +{ + if (pixel_ptr && copy_size) + { + memcpy(&pixel_ptr[row * effWidth], buf, len); + row--; + copy_size -= len; + } +} + + +/* Copied and modified from png.c + logerror doesn't work here... changed to printf */ +static int png_read_bitmap_gui(util::core_file &mfile, HGLOBAL *phDIB, HPALETTE *pPAL) +{ + png_info p; + UINT32 i; + int bytespp; + + if (png_read_file(mfile, &p) != PNGERR_NONE) + return 0; + + if (p.color_type != 3 && p.color_type != 2) + { + printf("PNG Unsupported color type %i (has to be 2 or 3)\n", p.color_type); + //png_free(&p); + //return 0; Leave in so ppl can see incompatibility + } + + if (p.interlace_method != 0) + { + printf("PNG Interlace unsupported\n"); + png_free(&p); + return 0; + } + + /* Convert < 8 bit to 8 bit */ + png_expand_buffer_8bit(&p); + + if (!AllocatePNG(&p, phDIB, pPAL)) + { + printf("PNG Unable to allocate memory to display screenshot\n"); + png_free(&p); + return 0; + } + + bytespp = (p.color_type == 2) ? 3 : 1; + + for (i = 0; i < p.height; i++) + { + UINT8 *ptr = p.image + i * (p.width * bytespp); + + if (p.color_type == 2) /*(p->bit_depth > 8) */ + { + int j; + UINT8 bTmp; + + for (j = 0; j < p.width; j++) + { + bTmp = ptr[0]; + ptr[0] = ptr[2]; + ptr[2] = bTmp; + ptr += 3; + } + } + store_pixels(p.image + i * (p.width * bytespp), p.width * bytespp); + } + + png_free(&p); + + return 1; +} + + + +/*************************************************************************** + File search functions +***************************************************************************/ + +static osd_file::error OpenBkgroundFile(const char *filename, util::core_file::ptr &file) +{ + osd_file::error filerr; + + // clear out result + file = NULL; + + // look for the raw file + std::string fname (filename); + filerr = util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file); + + return filerr; +} + +static osd_file::error OpenRawDIBFile(const char *dir_name, const char *filename, util::core_file::ptr &file) +{ + osd_file::error filerr; + + // clear out result + file = NULL; + + // look for the raw file + std::string fname = std::string(dir_name) + PATH_SEPARATOR + std::string(filename); + filerr = util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file); + + return filerr; +} + +static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name, const char *filename, util::core_file::ptr &file, void **buffer) +{ + osd_file::error filerr = osd_file::error::NOT_FOUND; + util::archive_file::error ziperr; + util::archive_file::ptr zip; + + // clear out result + file = NULL; + + // look into zip file + std::string fname = std::string(dir_name) + PATH_SEPARATOR + std::string(zip_name) + ".zip"; + ziperr = util::archive_file::open_zip(fname, zip); + + if (ziperr == util::archive_file::error::NONE) + { + int res = zip->search(filename, false); + if (res >= 0) + { + *buffer = malloc(zip->current_uncompressed_length()); + ziperr = zip->decompress(*buffer, zip->current_uncompressed_length()); + if (ziperr == util::archive_file::error::NONE) + { + filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file); + } + } + zip.reset(); + } + else + { + fname = std::string(dir_name) + PATH_SEPARATOR + std::string(zip_name) + ".7z"; + ziperr = util::archive_file::open_zip(fname, zip); + + if (ziperr == util::archive_file::error::NONE) + { + int res = zip->search(filename, false); + if (res >= 0) + { + *buffer = malloc(zip->current_uncompressed_length()); + ziperr = zip->decompress(*buffer, zip->current_uncompressed_length()); + if (ziperr == util::archive_file::error::NONE) + { + filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file); + } + } + zip.reset(); + } + } + return filerr; +} + +// called from winui.c to display the background +BOOL LoadDIBBG(HGLOBAL *phDIB, HPALETTE *pPal) +{ + osd_file::error filerr = osd_file::error::NOT_FOUND; + util::core_file::ptr file = NULL; + BOOL success = FALSE; + const char *dir_name; + if (pPal != NULL ) + DeletePalette(pPal); + + dir_name = GetBgDir(); + filerr = OpenBkgroundFile(dir_name, file); + if (filerr == osd_file::error::NONE) + { + success = png_read_bitmap_gui(*file, phDIB, pPal); + file.reset(); + } + + return success; +} + +// display a snap, cabinet, title, flyer, marquee, pcb, control panel +static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pic_type) +{ + osd_file::error filerr = osd_file::error::NOT_FOUND; // defined in osdcore.h + util::core_file::ptr file = NULL; + BOOL success = FALSE; + const char *dir_name; + const char *zip_name; + void *buffer = NULL; + std::string fname; + if (pPal != NULL ) + DeletePalette(pPal); + + char *system_name = 0; + char *file_name = 0; + char* dir_name1 = 0; + int i,j; + bool ok = FALSE; // TRUE indicates split success + + switch (pic_type) + { + case TAB_SCREENSHOT: + dir_name = GetImgDir(); + zip_name = "snap"; + break; + case TAB_FLYER: + dir_name = GetFlyerDir(); + zip_name = "flyers"; + break; + case TAB_CABINET: + dir_name = GetCabinetDir(); + zip_name = "cabinets"; + break; + case TAB_MARQUEE: + dir_name = GetMarqueeDir(); + zip_name = "marquees"; + break; + case TAB_TITLE: + dir_name = GetTitlesDir(); + zip_name = "titles"; + break; + case TAB_CONTROL_PANEL: + dir_name = GetControlPanelDir(); + zip_name = "cpanel"; + break; + case TAB_PCB : + dir_name = GetPcbDir(); + zip_name = "pcb"; + break; + default : + // in case a non-image tab gets here, which can happen + return FALSE; + } + + // allocate space + system_name = (char*)malloc(strlen(filename) + 1); + file_name = (char*)malloc(strlen(filename) + 1); + + // if the filename contains a system, split them + + // get system = find colon and truncate there + for (i = 0; filename[i] && !ok; i++) + { + if (filename[i] != ':') + system_name[i] = filename[i]; + else + { + ok = TRUE; + system_name[i] = '\0'; + } + } + system_name[i] = '\0'; // 'i' is one more here than above but needed if no colon + + // now left-justify the filename + if (ok) + { + for (j = 0; filename[i]; j++,i++) + file_name[j] = filename[i]; + file_name[j] = '\0'; + } + else + // it wasn't a software title, copy over to get around const nonsense + { + for (i = 0; filename[i]; i++) + file_name[i] = filename[i]; + file_name[i] = '\0'; + } + + // another const workaround + dir_name1 = (char*)malloc(strlen(dir_name) + 2); + for (i = 0; dir_name[i]; i++) + dir_name1[i] = dir_name[i]; + dir_name1[i++] = ';'; + dir_name1[i] = '\0'; + + // Support multiple paths + char* dir_one = strtok(dir_name1, ";"); + + while (dir_one && filerr != osd_file::error::NONE) + { + //Add handling for the displaying of all the different supported snapshot pattern types + //%g + + // Do software checks first + if (ok) + { + // Try dir/system/game.png + fname = std::string(system_name) + PATH_SEPARATOR + std::string(file_name) + ".png"; + filerr = OpenRawDIBFile(dir_one, fname.c_str(), file); + + // Try dir/system.zip/game.png + if (filerr != osd_file::error::NONE) + { + fname = std::string(file_name) + ".png"; + filerr = OpenZipDIBFile(dir_one, system_name, fname.c_str(), file, &buffer); + } + + // Try dir/system.zip/system/game.png + if (filerr != osd_file::error::NONE) + { + fname = std::string(system_name) + "/" + std::string(file_name) + ".png"; + filerr = OpenZipDIBFile(dir_one, system_name, fname.c_str(), file, &buffer); + } + + // Try dir/zipfile/system/game.png + if (filerr != osd_file::error::NONE) + { + filerr = OpenZipDIBFile(dir_one, zip_name, fname.c_str(), file, &buffer); + } + } + + // give up on software-specific, try dir/system.png + if (filerr != osd_file::error::NONE) + { + fname = std::string(system_name) + ".png"; + filerr = OpenRawDIBFile(dir_one, fname.c_str(), file); + } + + // For SNAPS only, try filenames with 0000. + if (pic_type == TAB_SCREENSHOT) + { + if (filerr != osd_file::error::NONE) + { + //%g/%i + fname = std::string(system_name) + PATH_SEPARATOR + "0000.png"; + filerr = OpenRawDIBFile(dir_one, fname.c_str(), file); + } + if (filerr != osd_file::error::NONE) + { + //%g%i + fname = std::string(system_name) + "0000.png"; + filerr = OpenRawDIBFile(dir_one, fname.c_str(), file); + } + if (filerr != osd_file::error::NONE) + { + //%g/%g%i + fname = std::string(system_name) + PATH_SEPARATOR + std::string(system_name) + "0000.png"; + filerr = OpenRawDIBFile(dir_one, fname.c_str(), file); + } + } + + // Try dir/zipfile/system.png + if (filerr != osd_file::error::NONE) + { + fname = std::string(file_name) + ".png"; + filerr = OpenZipDIBFile(dir_one, zip_name, fname.c_str(), file, &buffer); + } + + dir_one = strtok(NULL, ";"); + } + + if (filerr == osd_file::error::NONE) + { + success = png_read_bitmap_gui(*file, phDIB, pPal); + file.reset(); + } + + // free the buffer if we have to + if (buffer != NULL) + free(buffer); + free(system_name); + free(file_name); + free(dir_name1); + + return success; +} + +HBITMAP DIBToDDB(HDC hDC, HANDLE hDIB, LPMYBITMAPINFO desc) +{ + LPBITMAPINFOHEADER lpbi; + HBITMAP hBM; + int nColors; + BITMAPINFO * bmInfo = (LPBITMAPINFO)hDIB; + LPVOID lpDIBBits; + + if (hDIB == NULL) + return NULL; + + lpbi = (LPBITMAPINFOHEADER)hDIB; + nColors = lpbi->biClrUsed ? lpbi->biClrUsed : 1 << lpbi->biBitCount; + + if (bmInfo->bmiHeader.biBitCount > 8) + lpDIBBits = (LPVOID)((LPDWORD)(bmInfo->bmiColors + + bmInfo->bmiHeader.biClrUsed) + + ((bmInfo->bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0)); + else + lpDIBBits = (LPVOID)(bmInfo->bmiColors + nColors); + + if (desc != 0) + { + /* Store for easy retrieval later */ + desc->bmWidth = bmInfo->bmiHeader.biWidth; + desc->bmHeight = bmInfo->bmiHeader.biHeight; + desc->bmColors = (nColors <= 256) ? nColors : 0; + } + + hBM = CreateDIBitmap(hDC, /* handle to device context */ + (LPBITMAPINFOHEADER)lpbi, /* pointer to bitmap info header */ + (LONG)CBM_INIT, /* initialization flag */ + lpDIBBits, /* pointer to initialization data */ + (LPBITMAPINFO)lpbi, /* pointer to bitmap info */ + DIB_RGB_COLORS); /* color-data usage */ + + return hBM; +} + +BOOL LoadScreenShot(int nGame, int nType) +{ + return LoadScreenShotEx(nGame, NULL, nType); +} + +/* End of source */ diff --git a/docs/release/src/osd/winui/screenshot.h b/docs/release/src/osd/winui/screenshot.h new file mode 100644 index 00000000000..ac7103034fe --- /dev/null +++ b/docs/release/src/osd/winui/screenshot.h @@ -0,0 +1,26 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef SCREENSHOT_H +#define SCREENSHOT_H + +typedef struct _mybitmapinfo +{ + int bmWidth; + int bmHeight; + int bmColors; +} MYBITMAPINFO, *LPMYBITMAPINFO; + +extern BOOL LoadScreenShotEx(int nGame, LPCSTR lpSoftwareName, int nType); +extern BOOL LoadScreenShot(int nGame, int nType); +extern HANDLE GetScreenShotHandle(void); +extern int GetScreenShotWidth(void); +extern int GetScreenShotHeight(void); + +extern void FreeScreenShot(void); +extern BOOL ScreenShotLoaded(void); + +extern BOOL LoadDIBBG(HGLOBAL *phDIB, HPALETTE *pPal); +extern HBITMAP DIBToDDB(HDC hDC, HANDLE hDIB, LPMYBITMAPINFO desc); + +#endif diff --git a/docs/release/src/osd/winui/splitters.cpp b/docs/release/src/osd/winui/splitters.cpp new file mode 100644 index 00000000000..02b81285a56 --- /dev/null +++ b/docs/release/src/osd/winui/splitters.cpp @@ -0,0 +1,382 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + + /*************************************************************************** + + splitters.c + + Splitter GUI code. - Tree, spliiter, list, splitter, pict + + Created 12/03/98 (C) by Mike Haaland (mhaaland@hypertech.com) + +***************************************************************************/ + + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> +#include <commctrl.h> +#include <stdlib.h> +#include <assert.h> + +// MAME/MAMEUI headers +#include "splitters.h" +#include "mui_opts.h" +#include "resource.h" +#include "winui.h" + +/* Local Variables */ +static BOOL bTracking = 0; +static int numSplitters = 0; +static int currentSplitter = 0; +static HZSPLITTER *splitter; +static LPHZSPLITTER lpCurSpltr = nullptr; +static HCURSOR hSplitterCursor = nullptr; + +int *nSplitterOffset; + +BOOL InitSplitters(void) +{ + int nSplitterCount; + + /* load the cursor for the splitter */ + hSplitterCursor = LoadCursor(GetModuleHandle(0), MAKEINTRESOURCE(IDC_CURSOR_HSPLIT)); + + nSplitterCount = GetSplitterCount(); + + splitter = (HZSPLITTER*)malloc(sizeof(HZSPLITTER) * nSplitterCount); + if (!splitter) + goto error; + memset(splitter, 0, sizeof(HZSPLITTER) * nSplitterCount); + + nSplitterOffset = (int*)malloc(sizeof(int) * nSplitterCount); + if (!nSplitterOffset) + goto error; + memset(nSplitterOffset, 0, sizeof(int) * nSplitterCount); + + return TRUE; + +error: + SplittersExit(); + return FALSE; +} + +void SplittersExit(void) +{ + if (splitter) + { + free(splitter); + splitter = NULL; + } + if (nSplitterOffset) + { + free(nSplitterOffset); + nSplitterOffset = NULL; + } +} + + +/* Called with hWnd = Parent Window */ +static void CalcSplitter(HWND hWnd, LPHZSPLITTER lpSplitter) +{ + POINT p = {0,0}; + RECT leftRect, rightRect; + int dragWidth; + + ClientToScreen(hWnd, &p); + + GetWindowRect(lpSplitter->m_hWnd, &lpSplitter->m_dragRect); + GetWindowRect(lpSplitter->m_hWndLeft, &leftRect); + GetWindowRect(lpSplitter->m_hWndRight, &rightRect); + + OffsetRect(&lpSplitter->m_dragRect, -p.x, -p.y); + OffsetRect(&leftRect, -p.x, -p.y); + OffsetRect(&rightRect, -p.x, -p.y); + + dragWidth = lpSplitter->m_dragRect.right - lpSplitter->m_dragRect.left; + + lpSplitter->m_limitRect.left = leftRect.left + 20; + lpSplitter->m_limitRect.right = rightRect.right - 20; + lpSplitter->m_limitRect.top = lpSplitter->m_dragRect.top; + lpSplitter->m_limitRect.bottom = lpSplitter->m_dragRect.bottom; + if (lpSplitter->m_func) + lpSplitter->m_func(hWnd, &lpSplitter->m_limitRect); + + if (lpSplitter->m_dragRect.left < lpSplitter->m_limitRect.left) + lpSplitter->m_dragRect.left = lpSplitter->m_limitRect.left; + + if (lpSplitter->m_dragRect.right > lpSplitter->m_limitRect.right) + lpSplitter->m_dragRect.left = lpSplitter->m_limitRect.right - dragWidth; + + lpSplitter->m_dragRect.right = lpSplitter->m_dragRect.left + dragWidth; +} + +void AdjustSplitter2Rect(HWND hWnd, LPRECT lpRect) +{ + RECT pRect; + + GetClientRect(hWnd, &pRect); + + if (lpRect->right > pRect.right) + lpRect->right = pRect.right; + + lpRect->right = MIN(lpRect->right - GetMinimumScreenShotWindowWidth(), lpRect->right); + + lpRect->left = MAX((pRect.right - (pRect.right - pRect.left)) / 2, lpRect->left); +} + +void AdjustSplitter1Rect(HWND hWnd, LPRECT lpRect) +{ +} + +void RecalcSplitters(void) +{ + int i; + + for (i = 0; i < numSplitters; i++) + { + CalcSplitter(GetParent(splitter[i].m_hWnd), &splitter[i]); + nSplitterOffset[i] = splitter[i].m_dragRect.left; + } + + for (i = numSplitters - 1; i >= 0; i--) + { + CalcSplitter(GetParent(splitter[i].m_hWnd), &splitter[i]); + nSplitterOffset[i] = splitter[i].m_dragRect.left; + } + +} + +void OnSizeSplitter(HWND hWnd) +{ + static int firstTime = TRUE; + int changed = FALSE; + RECT rWindowRect; + POINT p = {0,0}; + int i; + int nSplitterCount; + BOOL bMustChange; + + nSplitterCount = GetSplitterCount(); + + if (firstTime) + { + for (i = 0; i < nSplitterCount; i++) + nSplitterOffset[i] = GetSplitterPos(i); + changed = TRUE; + firstTime = FALSE; + } + + GetWindowRect(hWnd, &rWindowRect); + + for (i = 0; i < nSplitterCount; i++) + { + p.x = 0; + p.y = 0; + ClientToScreen(splitter[i].m_hWnd, &p); + + /* We must change if our window is not in the window rect */ + bMustChange = !PtInRect(&rWindowRect, p); + + /* We should also change if we are ahead the next splitter */ + if ((i < nSplitterCount-1) && (nSplitterOffset[i] >= nSplitterOffset[i+1])) + bMustChange = TRUE; + + /* ...or if we are behind the previous splitter */ + if ((i > 0) && (nSplitterOffset[i] <= nSplitterOffset[i-1])) + bMustChange = TRUE; + + if (bMustChange) + { + nSplitterOffset[i] = (rWindowRect.right - rWindowRect.left) * g_splitterInfo[i].dPosition; + changed = TRUE; + } + } + + if (changed) + { + ResizePickerControls(hWnd); + RecalcSplitters(); + //UpdateScreenShot(); + } +} + +void AddSplitter(HWND hWnd, HWND hWndLeft, HWND hWndRight, void (*func)(HWND hWnd,LPRECT lpRect)) +{ + LPHZSPLITTER lpSpltr = &splitter[numSplitters]; + + if (numSplitters >= GetSplitterCount()) + return; + + lpSpltr->m_hWnd = hWnd; + lpSpltr->m_hWndLeft = hWndLeft; + lpSpltr->m_hWndRight = hWndRight; + lpSpltr->m_func = func; + CalcSplitter(GetParent(hWnd), lpSpltr); + + numSplitters++; +} + +static void OnInvertTracker(HWND hWnd, const RECT *rect) +{ + HDC hDC = GetDC(hWnd); + HBRUSH hBrush = CreateSolidBrush(RGB(0xFF, 0xFF, 0xFF)); + HBRUSH hOldBrush = 0; + + if (hBrush != 0) + hOldBrush = (HBRUSH)SelectObject(hDC, hBrush); + PatBlt(hDC, rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top, DSTINVERT); + if (hOldBrush != 0) + SelectObject(hDC, hOldBrush); + ReleaseDC(hWnd, hDC); + DeleteBrush(hBrush); +} + +static void StartTracking(HWND hWnd, UINT hitArea) +{ + if (!bTracking && lpCurSpltr != 0 && hitArea == SPLITTER_HITITEM) + { + // Ensure we have and updated cursor structure + CalcSplitter(hWnd, lpCurSpltr); + // Draw the first splitter shadow + OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect); + // Capture the mouse + SetCapture(hWnd); + // Set tracking to TRUE + bTracking = TRUE; + SetCursor(hSplitterCursor); + } +} + +static void StopTracking(HWND hWnd) +{ + if (bTracking) + { + // erase the tracking image + OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect); + // Release the mouse + ReleaseCapture(); + // set tracking to false + bTracking = FALSE; + SetCursor(LoadCursor(0, IDC_ARROW)); + // set the new splitter position + nSplitterOffset[currentSplitter] = lpCurSpltr->m_dragRect.left; + // Redraw the screen area + ResizePickerControls(hWnd); + UpdateScreenShot(); + InvalidateRect(GetMainWindow(),NULL,TRUE); + } +} + +static UINT SplitterHitTest(HWND hWnd, POINTS p) +{ + RECT rect; + POINT pt; + int i; + + pt.x = p.x; + pt.y = p.y; + + // Check which area we hit + ClientToScreen(hWnd, &pt); + + for (i = 0; i < numSplitters; i++) + { + GetWindowRect(splitter[i].m_hWnd, &rect); + if (PtInRect(&rect, pt)) + { + lpCurSpltr = &splitter[i]; + currentSplitter = i; + // We hit the splitter + return SPLITTER_HITITEM; + } + } + lpCurSpltr = 0; + // We missed the splitter + return SPLITTER_HITNOTHING; +} + +void OnMouseMove(HWND hWnd, UINT nFlags, POINTS p) +{ + if (bTracking) // move the tracking image + { + int nWidth; + RECT rect; + POINT pt; + + pt.x = (int)p.x; + pt.y = (int)p.y; + + ClientToScreen(hWnd, &pt); + GetWindowRect(hWnd, &rect); + if (! PtInRect(&rect, pt)) + { + if ((short)pt.x < (short)rect.left) + pt.x = rect.left; + if ((short)pt.x > (short)rect.right) + pt.x = rect.right; + pt.y = rect.top + 1; + } + + ScreenToClient(hWnd, &pt); + + // Erase the old tracking image + OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect); + + // calc the new one based on p.x draw it + nWidth = lpCurSpltr->m_dragRect.right - lpCurSpltr->m_dragRect.left; + lpCurSpltr->m_dragRect.right = pt.x + nWidth / 2; + lpCurSpltr->m_dragRect.left = pt.x - nWidth / 2; + + if (pt.x - nWidth / 2 > lpCurSpltr->m_limitRect.right) + { + lpCurSpltr->m_dragRect.right = lpCurSpltr->m_limitRect.right; + lpCurSpltr->m_dragRect.left = lpCurSpltr->m_dragRect.right - nWidth; + } + if (pt.x + nWidth / 2 < lpCurSpltr->m_limitRect.left) + { + lpCurSpltr->m_dragRect.left = lpCurSpltr->m_limitRect.left; + lpCurSpltr->m_dragRect.right = lpCurSpltr->m_dragRect.left + nWidth; + } + OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect); + } + else + { + switch(SplitterHitTest(hWnd, p)) + { + case SPLITTER_HITNOTHING: + SetCursor(LoadCursor(0, IDC_ARROW)); + break; + case SPLITTER_HITITEM: + SetCursor(hSplitterCursor); + break; + } + } +} + +void OnLButtonDown(HWND hWnd, UINT nFlags, POINTS p) +{ + if (!bTracking) // See if we need to start a splitter drag + { + StartTracking(hWnd, SplitterHitTest(hWnd, p)); + } +} + +void OnLButtonUp(HWND hWnd, UINT nFlags, POINTS p) +{ + if (bTracking) + { + StopTracking(hWnd); + } +} + +int GetSplitterCount(void) +{ + int nSplitterCount = 0; + while(g_splitterInfo[nSplitterCount].dPosition > 0) + nSplitterCount++; + return nSplitterCount; +} + +/* End of file */ diff --git a/docs/release/src/osd/winui/splitters.h b/docs/release/src/osd/winui/splitters.h new file mode 100644 index 00000000000..6595f704186 --- /dev/null +++ b/docs/release/src/osd/winui/splitters.h @@ -0,0 +1,58 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/* Written by Mike Haaland <mhaaland@hypertech.com> */ + +#ifndef SPLITTER_H +#define SPLITTER_H + +#if !defined(MAX) +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#endif + +enum eSplitterHits +{ + SPLITTER_HITNOTHING = 0, + SPLITTER_HITITEM +}; + +typedef struct horzSplitter +{ + HWND m_hWnd; + HWND m_hWndLeft; + HWND m_hWndRight; + RECT m_limitRect; + RECT m_dragRect; + void (*m_func)(HWND hWnd, LPRECT lpRect); +} HZSPLITTER, *LPHZSPLITTER; + +/* Splitter routines */ +void OnMouseMove(HWND hWnd, UINT nFlags, POINTS p); +void OnLButtonDown(HWND hWnd, UINT nFlags, POINTS p); +void OnLButtonUp(HWND hWnd, UINT nFlags, POINTS p); +void OnSizeSplitter(HWND hWnd); +void AddSplitter(HWND hWnd, HWND hWndLeft, HWND hWndRight, + void (*func)(HWND hWnd,LPRECT lpRect)); +void RecalcSplitters(void); +void AdjustSplitter2Rect(HWND hWnd, LPRECT lpRect); +void AdjustSplitter1Rect(HWND hWnd, LPRECT lpRect); +BOOL InitSplitters(void); +void SplittersExit(void); +int GetSplitterCount(void); + +extern int *nSplitterOffset; + +typedef struct +{ + double dPosition; + int nSplitterWindow; + int nLeftWindow; + int nRightWindow; + void (*pfnAdjust)(HWND hWnd,LPRECT lpRect); +} SPLITTERINFO; + +extern const SPLITTERINFO g_splitterInfo[]; + + +#endif /* SPLITTER_H */ diff --git a/docs/release/src/osd/winui/tabview.cpp b/docs/release/src/osd/winui/tabview.cpp new file mode 100644 index 00000000000..9b9b30dc49c --- /dev/null +++ b/docs/release/src/osd/winui/tabview.cpp @@ -0,0 +1,336 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> +#include <shellapi.h> +#include <commctrl.h> +#include <commdlg.h> +#include <wingdi.h> + +// MAME/MAMEUI headers +#include "winui.h" +#include "tabview.h" +#include "emu.h" +#include "mui_util.h" +#include "strconv.h" + + +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif + + +struct TabViewInfo +{ + const struct TabViewCallbacks *pCallbacks; + int nTabCount; + WNDPROC pfnParentWndProc; +}; + + + +static struct TabViewInfo *GetTabViewInfo(HWND hWnd) +{ + LONG_PTR l; + l = GetWindowLongPtr(hWnd, GWLP_USERDATA); + return (struct TabViewInfo *) l; +} + + + +static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc, + HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + LRESULT rc; + + if (!pfnParentWndProc) + pfnParentWndProc = GetTabViewInfo(hWnd)->pfnParentWndProc; + + if (IsWindowUnicode(hWnd)) + rc = CallWindowProcW(pfnParentWndProc, hWnd, message, wParam, lParam); + else + rc = CallWindowProcA(pfnParentWndProc, hWnd, message, wParam, lParam); + return rc; +} + + + +static LRESULT CALLBACK TabViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + struct TabViewInfo *pTabViewInfo; + WNDPROC pfnParentWndProc; + BOOL bHandled = FALSE; + LRESULT rc = 0; + + pTabViewInfo = GetTabViewInfo(hWnd); + pfnParentWndProc = pTabViewInfo->pfnParentWndProc; + + switch(message) + { + case WM_DESTROY: + free(pTabViewInfo); + SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR) pfnParentWndProc); + SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) NULL); + break; + } + + if (!bHandled) + rc = CallParentWndProc(pfnParentWndProc, hWnd, message, wParam, lParam); + + switch(message) + { + case WM_MOVE: + case WM_SIZE: + if (pTabViewInfo->pCallbacks->pfnOnMoveSize) + pTabViewInfo->pCallbacks->pfnOnMoveSize(); + break; + } + + return rc; +} + + + +static int TabView_GetTabFromTabIndex(HWND hwndTabView, int tab_index) +{ + int shown_tabs = -1; + int i; + struct TabViewInfo *pTabViewInfo; + + pTabViewInfo = GetTabViewInfo(hwndTabView); + + for (i = 0; i < pTabViewInfo->nTabCount; i++) + { + if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i)) + { + shown_tabs++; + if (shown_tabs == tab_index) + return i; + } + } + dprintf("invalid tab index %i\n", tab_index); + return 0; +} + + + +int TabView_GetCurrentTab(HWND hwndTabView) +{ + struct TabViewInfo *pTabViewInfo; + LPCSTR pszTab = NULL; + LPCSTR pszThatTab; + int i, nTab = -1; + + pTabViewInfo = GetTabViewInfo(hwndTabView); + + if (pTabViewInfo->pCallbacks->pfnGetCurrentTab) + pszTab = pTabViewInfo->pCallbacks->pfnGetCurrentTab(); + + if (pszTab) + { + if (pTabViewInfo->pCallbacks->pfnGetTabShortName) + { + for (i = 0; i < pTabViewInfo->nTabCount; i++) + { + pszThatTab = pTabViewInfo->pCallbacks->pfnGetTabShortName(i); + if (pszThatTab && !core_stricmp(pszTab, pszThatTab)) + { + nTab = i; + break; + } + } + } + if (nTab < 0) + { + nTab = 0; + sscanf(pszTab, "%d", &nTab); + } + } + else + { + nTab = 0; + } + return nTab; +} + + + +void TabView_SetCurrentTab(HWND hwndTabView, int nTab) +{ + struct TabViewInfo *pTabViewInfo; + LPCSTR pszName; + char szBuffer[16]; + + pTabViewInfo = GetTabViewInfo(hwndTabView); + + if (pTabViewInfo->pCallbacks->pfnGetTabShortName) + { + pszName = pTabViewInfo->pCallbacks->pfnGetTabShortName(nTab); + } + else + { + snprintf(szBuffer, ARRAY_LENGTH(szBuffer), + "%d", nTab); + pszName = szBuffer; + } + + if (pTabViewInfo->pCallbacks->pfnSetCurrentTab) + pTabViewInfo->pCallbacks->pfnSetCurrentTab(pszName); +} + + + +static int TabView_GetCurrentTabIndex(HWND hwndTabView) +{ + int shown_tabs = 0; + int i; + int nCurrentTab; + struct TabViewInfo *pTabViewInfo; + + pTabViewInfo = GetTabViewInfo(hwndTabView); + nCurrentTab = TabView_GetCurrentTab(hwndTabView); + + for (i = 0; i < pTabViewInfo->nTabCount; i++) + { + if (i == nCurrentTab) + break; + + if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i)) + shown_tabs++; + } + return shown_tabs; +} + + + +void TabView_UpdateSelection(HWND hwndTabView) +{ + HRESULT res; + res = TabCtrl_SetCurSel(hwndTabView, TabView_GetCurrentTabIndex(hwndTabView)); +} + + + +BOOL TabView_HandleNotify(LPNMHDR lpNmHdr) +{ + HWND hwndTabView; + struct TabViewInfo *pTabViewInfo; + BOOL bResult = FALSE; + int nTabIndex, nTab; + + hwndTabView = lpNmHdr->hwndFrom; + pTabViewInfo = GetTabViewInfo(hwndTabView); + + switch (lpNmHdr->code) + { + case TCN_SELCHANGE: + nTabIndex = TabCtrl_GetCurSel(hwndTabView); + nTab = TabView_GetTabFromTabIndex(hwndTabView, nTabIndex); + TabView_SetCurrentTab(hwndTabView, nTab); + if (pTabViewInfo->pCallbacks->pfnOnSelectionChanged) + pTabViewInfo->pCallbacks->pfnOnSelectionChanged(); + bResult = TRUE; + break; + } + return bResult; +} + + + +void TabView_CalculateNextTab(HWND hwndTabView) +{ + struct TabViewInfo *pTabViewInfo; + int i; + int nCurrentTab; + + pTabViewInfo = GetTabViewInfo(hwndTabView); + + // at most loop once through all options + for (i = 0; i < pTabViewInfo->nTabCount; i++) + { + nCurrentTab = TabView_GetCurrentTab(hwndTabView); + TabView_SetCurrentTab(hwndTabView, (nCurrentTab + 1) % pTabViewInfo->nTabCount); + nCurrentTab = TabView_GetCurrentTab(hwndTabView); + + if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(nCurrentTab)) + { + // this tab is being shown, so we're all set + return; + } + } +} + + + +void TabView_Reset(HWND hwndTabView) +{ + struct TabViewInfo *pTabViewInfo; + TC_ITEM tci; + int i; + TCHAR* t_text; + HRESULT res; + BOOL b_res; + + pTabViewInfo = GetTabViewInfo(hwndTabView); + + b_res = TabCtrl_DeleteAllItems(hwndTabView); + + memset(&tci, 0, sizeof(tci)); + tci.mask = TCIF_TEXT; + tci.cchTextMax = 20; + + for (i = 0; i < pTabViewInfo->nTabCount; i++) + { + if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i)) + { + t_text = tstring_from_utf8(pTabViewInfo->pCallbacks->pfnGetTabLongName(i)); + if( !t_text ) + return; + tci.pszText = t_text; + res = TabCtrl_InsertItem(hwndTabView, i, &tci); + osd_free(t_text); + } + } + TabView_UpdateSelection(hwndTabView); +} + + + +BOOL SetupTabView(HWND hwndTabView, const struct TabViewOptions *pOptions) +{ + struct TabViewInfo *pTabViewInfo; + LONG_PTR l; + BOOL bShowTabView; + + assert(hwndTabView); + + // Allocate the list view struct + pTabViewInfo = (struct TabViewInfo *) malloc(sizeof(struct TabViewInfo)); + if (!pTabViewInfo) + return FALSE; + + // And fill it out + memset(pTabViewInfo, 0, sizeof(*pTabViewInfo)); + pTabViewInfo->pCallbacks = pOptions->pCallbacks; + pTabViewInfo->nTabCount = pOptions->nTabCount; + + // Hook in our wndproc and userdata pointer + l = GetWindowLongPtr(hwndTabView, GWLP_WNDPROC); + pTabViewInfo->pfnParentWndProc = (WNDPROC) l; + SetWindowLongPtr(hwndTabView, GWLP_USERDATA, (LONG_PTR) pTabViewInfo); + SetWindowLongPtr(hwndTabView, GWLP_WNDPROC, (LONG_PTR) TabViewWndProc); + + bShowTabView = pTabViewInfo->pCallbacks->pfnGetShowTabCtrl ? + pTabViewInfo->pCallbacks->pfnGetShowTabCtrl() : TRUE; + ShowWindow(hwndTabView, bShowTabView ? SW_SHOW : SW_HIDE); + + TabView_Reset(hwndTabView); + if (pTabViewInfo->pCallbacks->pfnOnSelectionChanged) + pTabViewInfo->pCallbacks->pfnOnSelectionChanged(); + return TRUE; +} + + diff --git a/docs/release/src/osd/winui/tabview.h b/docs/release/src/osd/winui/tabview.h new file mode 100644 index 00000000000..77d61b1af7a --- /dev/null +++ b/docs/release/src/osd/winui/tabview.h @@ -0,0 +1,44 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef TABVIEW_H +#define TABVIEW_H + +struct TabViewCallbacks +{ + // Options retrieval + BOOL (*pfnGetShowTabCtrl)(void); + void (*pfnSetCurrentTab)(LPCSTR pszShortName); + LPCSTR (*pfnGetCurrentTab)(void); + void (*pfnSetShowTab)(int nTab, BOOL show); + int (*pfnGetShowTab)(int nTab); + + // Accessors + LPCSTR (*pfnGetTabShortName)(int nTab); + LPCSTR (*pfnGetTabLongName)(int nTab); + + // Callbacks + void (*pfnOnSelectionChanged)(void); + void (*pfnOnMoveSize)(void); +}; + +struct TabViewOptions +{ + const struct TabViewCallbacks *pCallbacks; + int nTabCount; +}; + + +BOOL SetupTabView(HWND hwndTabView, const struct TabViewOptions *pOptions); + +void TabView_Reset(HWND hwndTabView); +void TabView_CalculateNextTab(HWND hwndTabView); +int TabView_GetCurrentTab(HWND hwndTabView); +void TabView_SetCurrentTab(HWND hwndTabView, int nTab); +void TabView_UpdateSelection(HWND hwndTabView); + +// These are used to handle events received by the parent regarding +// tabview controls +BOOL TabView_HandleNotify(LPNMHDR lpNmHdr); + +#endif // TABVIEW_H diff --git a/docs/release/src/osd/winui/treeview.cpp b/docs/release/src/osd/winui/treeview.cpp new file mode 100644 index 00000000000..eefaf0f4761 --- /dev/null +++ b/docs/release/src/osd/winui/treeview.cpp @@ -0,0 +1,2441 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +/*************************************************************************** + + treeview.c + + TreeView support routines - MSH 11/19/1998 + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <windowsx.h> +#include <shellapi.h> +#include <commctrl.h> + +// standard C headers +#include <stdio.h> // for sprintf +#include <stdlib.h> // For malloc and free +#include <ctype.h> // For tolower +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> + +#ifdef _MSC_VER +#include <direct.h> +#endif +#include <tchar.h> +#include <io.h> + +// MAME/MAMEUI headers +#include "emu.h" +#include "hash.h" +#include "mui_util.h" +#include "bitmask.h" +#include "winui.h" +#include "treeview.h" +#include "resource.h" +#include "mui_opts.h" +#include "dialogs.h" +#include "winutf8.h" +#include "strconv.h" +#include "drivenum.h" + +#ifdef _MSC_VER +#define snprintf _snprintf +#endif + +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif + +#define MAX_EXTRA_FOLDERS 256 + +/*************************************************************************** + public structures + ***************************************************************************/ + +#define ICON_MAX ARRAY_LENGTH(treeIconNames) + +/* Name used for user-defined custom icons */ +/* external *.ico file to look for. */ + +typedef struct +{ + int nResourceID; + LPCSTR lpName; +} TREEICON; + +static TREEICON treeIconNames[] = +{ + { IDI_FOLDER_OPEN, "foldopen" }, + { IDI_FOLDER, "folder" }, + { IDI_FOLDER_AVAILABLE, "foldavail" }, + { IDI_FOLDER_MANUFACTURER, "foldmanu" }, + { IDI_FOLDER_UNAVAILABLE, "foldunav" }, + { IDI_FOLDER_YEAR, "foldyear" }, + { IDI_FOLDER_SOURCE, "foldsrc" }, + { IDI_FOLDER_HORIZONTAL, "horz" }, + { IDI_FOLDER_VERTICAL, "vert" }, + { IDI_MANUFACTURER, "manufact" }, + { IDI_WORKING, "working" }, + { IDI_NONWORKING, "nonwork" }, + { IDI_YEAR, "year" }, + { IDI_SOUND, "sound" }, + { IDI_CPU, "cpu" }, + { IDI_HARDDISK, "harddisk" }, + { IDI_SOURCE, "source" } +}; + +/*************************************************************************** + private variables + ***************************************************************************/ + +/* this has an entry for every folder eventually in the UI, including subfolders */ +static TREEFOLDER **treeFolders = 0; +static UINT numFolders = 0; /* Number of folder in the folder array */ +static UINT next_folder_id = MAX_FOLDERS; +static UINT folderArrayLength = 0; /* Size of the folder array */ +static LPTREEFOLDER lpCurrentFolder = nullptr; /* Currently selected folder */ +static UINT nCurrentFolder = 0; /* Current folder ID */ +static WNDPROC g_lpTreeWndProc = 0; /* for subclassing the TreeView */ +static HIMAGELIST hTreeSmall = 0; /* TreeView Image list of icons */ + +/* this only has an entry for each TOP LEVEL extra folder + SubFolders*/ +LPEXFOLDERDATA ExtraFolderData[MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS]; +static int numExtraFolders = 0; +static int numExtraIcons = 0; +static char *ExtraFolderIcons[MAX_EXTRA_FOLDERS]; + +// built in folders and filters +static LPCFOLDERDATA g_lpFolderData; +static LPCFILTER_ITEM g_lpFilterList; + +/*************************************************************************** + private function prototypes + ***************************************************************************/ + +extern BOOL InitFolders(void); +static BOOL CreateTreeIcons(void); +static void TreeCtrlOnPaint(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); +static const char* ParseManufacturer(const char *s, int *pParsedChars ); +static const char* TrimManufacturer(const char *s); +static void CreateAllChildFolders(void); +static BOOL AddFolder(LPTREEFOLDER lpFolder); +static LPTREEFOLDER NewFolder(const char *lpTitle, UINT nFolderId, int nParent, UINT nIconId, DWORD dwFlags); +static void DeleteFolder(LPTREEFOLDER lpFolder); + +static LRESULT CALLBACK TreeWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + +static int InitExtraFolders(void); +static void FreeExtraFolders(void); +static void SetExtraIcons(char *name, int *id); +static BOOL TryAddExtraFolderAndChildren(int parent_index); + +static BOOL TrySaveExtraFolder(LPTREEFOLDER lpFolder); + +/*************************************************************************** + public functions + ***************************************************************************/ + +static BOOL win_move_file_utf8(const char* existingfilename, const char* newfilename) +{ + TCHAR* t_existingfilename; + TCHAR* t_newfilename; + BOOL result = FALSE; + + t_existingfilename = tstring_from_utf8(existingfilename); + if( !t_existingfilename ) + return result; + + t_newfilename = tstring_from_utf8(newfilename); + if( !t_newfilename ) { + free(t_existingfilename); + return result; + } + + result = MoveFile(t_existingfilename, t_newfilename); + + osd_free(t_newfilename); + osd_free(t_existingfilename); + + return result; +} + +/************************************************************************** + * ci_strncmp - case insensitive character array compare + * + * Returns zero if the first n characters of s1 and s2 are equal, + * ignoring case. + * stolen from datafile.c + **************************************************************************/ +static int ci_strncmp (const char *s1, const char *s2, int n) +{ + int c1, c2; + + while (n) + { + if ((c1 = tolower (*s1)) != (c2 = tolower (*s2))) + return (c1 - c2); + else if (!c1) + break; + --n; + + s1++; + s2++; + } + return 0; +} + + + +/* De-allocate all folder memory */ +void FreeFolders(void) +{ + int i = 0; + + if (treeFolders != NULL) + { + if (numExtraFolders) + { + FreeExtraFolders(); + numFolders -= numExtraFolders; + } + + for (i = numFolders - 1; i >= 0; i--) + { + DeleteFolder(treeFolders[i]); + treeFolders[i] = NULL; + numFolders--; + } + free(treeFolders); + treeFolders = NULL; + } + numFolders = 0; +} + +/* Reset folder filters */ +void ResetFilters(void) +{ + int i = 0; + + if (treeFolders != 0) + { + for (i = 0; i < (int)numFolders; i++) + { + treeFolders[i]->m_dwFlags &= ~F_MASK; + } + } +} + +void InitTree(LPCFOLDERDATA lpFolderData, LPCFILTER_ITEM lpFilterList) +{ + LONG_PTR l; + + g_lpFolderData = lpFolderData; + g_lpFilterList = lpFilterList; + + InitFolders(); + + /* this will subclass the treeview (where WM_DRAWITEM gets sent for the header control) */ + l = GetWindowLongPtr(GetTreeView(), GWLP_WNDPROC); + g_lpTreeWndProc = (WNDPROC)l; + SetWindowLongPtr(GetTreeView(), GWLP_WNDPROC, (LONG_PTR)TreeWndProc); +} + +void SetCurrentFolder(LPTREEFOLDER lpFolder) +{ + lpCurrentFolder = (lpFolder == 0) ? treeFolders[0] : lpFolder; + nCurrentFolder = (lpCurrentFolder) ? lpCurrentFolder->m_nFolderId : 0; +} + +LPTREEFOLDER GetCurrentFolder(void) +{ + return lpCurrentFolder; +} + +UINT GetCurrentFolderID(void) +{ + return nCurrentFolder; +} + +int GetNumFolders(void) +{ + return numFolders; +} + +LPTREEFOLDER GetFolder(UINT nFolder) +{ + return (nFolder < numFolders) ? treeFolders[nFolder] : NULL; +} + +LPTREEFOLDER GetFolderByID(UINT nID) +{ + UINT i; + + for (i = 0; i < numFolders; i++) + { + if (treeFolders[i]->m_nFolderId == nID) + { + return treeFolders[i]; + } + } + + return (LPTREEFOLDER)0; +} + +void AddGame(LPTREEFOLDER lpFolder, UINT nGame) +{ + if (lpFolder) + SetBit(lpFolder->m_lpGameBits, nGame); +} + +void RemoveGame(LPTREEFOLDER lpFolder, UINT nGame) +{ + ClearBit(lpFolder->m_lpGameBits, nGame); +} + +int FindGame(LPTREEFOLDER lpFolder, int nGame) +{ + return FindBit(lpFolder->m_lpGameBits, nGame, TRUE); +} + +// Called to re-associate games with folders +void ResetWhichGamesInFolders(void) +{ + UINT i, jj, k; + BOOL b; + int nGames = driver_list::total(); + + for (i = 0; i < numFolders; i++) + { + LPTREEFOLDER lpFolder = treeFolders[i]; + // setup the games in our built-in folders + for (k = 0; g_lpFolderData[k].m_lpTitle; k++) + { + if (lpFolder->m_nFolderId == g_lpFolderData[k].m_nFolderId) + { + if (g_lpFolderData[k].m_pfnQuery || g_lpFolderData[k].m_bExpectedResult) + { + SetAllBits(lpFolder->m_lpGameBits, FALSE); + for (jj = 0; jj < nGames; jj++) + { + // invoke the query function + b = g_lpFolderData[k].m_pfnQuery ? g_lpFolderData[k].m_pfnQuery(jj) : TRUE; + + // if we expect FALSE, flip the result + if (!g_lpFolderData[k].m_bExpectedResult) + b = !b; + + // if we like what we hear, add the game + if (b) + AddGame(lpFolder, jj); + } + } + break; + } + } + } +} + + +/* Used to build the GameList */ +bool GameFiltered(int nGame, DWORD dwMask) +{ + int i; + LPTREEFOLDER lpFolder = GetCurrentFolder(); + LPTREEFOLDER lpParent = nullptr; + + //Filter out the Bioses on all Folders, except for the Bios Folder + if (lpFolder != nullptr && lpFolder->m_nFolderId != FOLDER_BIOS) + { +// if( !( (driver_list::driver(nGame).flags & MACHINE_IS_BIOS_ROOT ) == 0) ) +// return TRUE; + if( driver_list::driver(nGame).name[0] == '_' ) + return TRUE; + } + // Filter games--return TRUE if the game should be HIDDEN in this view + if( GetFilterInherit() ) + { + if( lpFolder != nullptr ) + { + lpParent = GetFolder( lpFolder->m_nParent ); + if( lpParent != nullptr ) + { + /* Check the Parent Filters and inherit them on child, + * The inherited filters don't display on the custom Filter Dialog for the Child folder + * No need to promote all games to parent folder, works as is */ + dwMask |= lpParent->m_dwFlags; + } + } + } + + if (strlen(GetSearchText()) && _stricmp(GetSearchText(), SEARCH_PROMPT)) + { + if (MyStrStrI(driver_list::driver(nGame).description,GetSearchText()) == NULL && + MyStrStrI(driver_list::driver(nGame).name,GetSearchText()) == NULL) + return TRUE; + } + /*Filter Text is already global*/ + if (MyStrStrI(driver_list::driver(nGame).description,GetFilterText()) == NULL && + MyStrStrI(driver_list::driver(nGame).name,GetFilterText()) == NULL && + MyStrStrI(driver_list::driver(nGame).source_file,GetFilterText()) == NULL && + MyStrStrI(driver_list::driver(nGame).manufacturer,GetFilterText()) == NULL) + { + return TRUE; + } + // Are there filters set on this folder? + if ((dwMask & F_MASK) == 0) + return FALSE; + + // Filter out clones? + if (dwMask & F_CLONES && DriverIsClone(nGame)) + return TRUE; + + for (i = 0; g_lpFilterList[i].m_dwFilterType; i++) + { + if (dwMask & g_lpFilterList[i].m_dwFilterType) + { + if (g_lpFilterList[i].m_pfnQuery(nGame) == g_lpFilterList[i].m_bExpectedResult) + return TRUE; + } + } + return FALSE; +} + +/* Get the parent of game in this view */ +BOOL GetParentFound(int nGame) // not used +{ + int nParentIndex = -1; + LPTREEFOLDER lpFolder = GetCurrentFolder(); + + if( lpFolder ) + { + nParentIndex = GetParentIndex(&driver_list::driver(nGame)); + + /* return FALSE if no parent is there in this view */ + if( nParentIndex == -1) + return FALSE; + + /* return FALSE if the folder should be HIDDEN in this view */ + if (TestBit(lpFolder->m_lpGameBits, nParentIndex) == 0) + return FALSE; + + /* return FALSE if the game should be HIDDEN in this view */ + if (GameFiltered(nParentIndex, lpFolder->m_dwFlags)) + return FALSE; + + return TRUE; + } + + return FALSE; +} + +LPCFILTER_ITEM GetFilterList(void) +{ + return g_lpFilterList; +} + +/*************************************************************************** + private functions + ***************************************************************************/ + +void CreateSourceFolders(int parent_index) +{ + int i,jj, k = 0; + int nGames = driver_list::total(); + int start_folder = numFolders; + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER lpTemp; + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + for (jj = 0; jj < nGames; jj++) + { + const char *s = GetDriverFilename(jj); + + if (s == NULL || s[0] == '\0') + continue; + + // look for an existant source treefolder for this game + // (likely to be the previous one, so start at the end) + for (i=numFolders-1;i>=start_folder;i--) + { + if (strcmp(treeFolders[i]->m_lpTitle,s) == 0) + { + AddGame(treeFolders[i],jj); + break; + } + } + if (i == start_folder-1) + { + // nope, it's a source file we haven't seen before, make it. + lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_SOURCE, GetFolderFlags(numFolders)); + + // Increment next_folder_id here in case code is added above + next_folder_id++; + AddFolder(lpTemp); + AddGame(lpTemp,jj); + } + } + SetNumOptionFolders(k-1); +} + +void CreateScreenFolders(int parent_index) +{ + int i, jj, k = 0; + int nGames = driver_list::total(); + int start_folder = numFolders; + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER lpTemp; + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + for (jj = 0; jj < nGames; jj++) + { + int screens = DriverNumScreens(jj); + char s[2]; + itoa(screens, s, 10); + + // look for an existant screens treefolder for this game + // (likely to be the previous one, so start at the end) + for (i=numFolders-1;i>=start_folder;i--) + { + if (strcmp(treeFolders[i]->m_lpTitle,s) == 0) + { + AddGame(treeFolders[i],jj); + break; + } + } + if (i == start_folder-1) + { + // nope, it's a screen file we haven't seen before, make it. + lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + + // Increment next_folder_id here in case code is added above + next_folder_id++; + AddFolder(lpTemp); + AddGame(lpTemp,jj); + } + } + SetNumOptionFolders(k-1); +} + + +void CreateManufacturerFolders(int parent_index) +{ + int i, jj; + int nGames = driver_list::total(); + int start_folder = numFolders; + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER lpTemp; + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + + for (jj = 0; jj < nGames; jj++) + { + const char *manufacturer = driver_list::driver(jj).manufacturer; + int iChars = 0; + while( manufacturer != NULL && manufacturer[0] != '\0' ) + { + const char *s = ParseManufacturer(manufacturer, &iChars); + manufacturer += iChars; + //shift to next start char + if( s != NULL && *s != 0 ) + { + const char *t = TrimManufacturer(s); + for (i=numFolders-1;i>=start_folder;i--) + { + //RS Made it case insensitive + if (ci_strncmp(treeFolders[i]->m_lpTitle,t,20) == 0 ) + { + AddGame(treeFolders[i],jj); + break; + } + } + if (i == start_folder-1) + { + // nope, it's a manufacturer we haven't seen before, make it. + lpTemp = NewFolder(t, next_folder_id, parent_index, IDI_MANUFACTURER, GetFolderFlags(numFolders)); + AddFolder(lpTemp); + AddGame(lpTemp,jj); + } + } + } + } +} + +/* Make a reasonable name out of the one found in the driver array */ +static const char* ParseManufacturer(const char *s, int *pParsedChars ) +{ + static char tmp[256]; + char* ptmp; + char *t; + *pParsedChars= 0; + + if ( *s == '?' || *s == '<' || s[3] == '?' ) + { + (*pParsedChars) = strlen(s); + return "<unknown>"; + } + + ptmp = tmp; + /*if first char is a space, skip it*/ + if( *s == ' ' ) + { + (*pParsedChars)++; + ++s; + } + while( *s ) + { + /* combinations where to end string */ + + if ( + ( (*s == ' ') && ( s[1] == '(' || s[1] == '/' || s[1] == '+' ) ) || + ( *s == ']' ) || + ( *s == '/' ) || + ( *s == '?' ) + ) + { + (*pParsedChars)++; + if( s[1] == '/' || s[1] == '+' ) + (*pParsedChars)++; + break; + } + if( s[0] == ' ' && s[1] == '?' ) + { + (*pParsedChars) += 2; + s+=2; + } + + /* skip over opening braces*/ + + if ( *s != '[' ) + { + *ptmp++ = *s; + } + (*pParsedChars)++; + /*for "distributed by" and "supported by" handling*/ + if( ( (s[1] == ',') && (s[2] == ' ') && ( (s[3] == 's') || (s[3] == 'd') ) ) ) + { + //*ptmp++ = *s; + ++s; + break; + } + ++s; + } + *ptmp = '\0'; + t = tmp; + if( tmp[0] == '(' || tmp[strlen(tmp)-1] == ')' || tmp[0] == ',') + { + ptmp = strchr( tmp,'(' ); + if ( ptmp == NULL ) + { + ptmp = strchr( tmp,',' ); + if( ptmp != NULL) + { + //parse the new "supported by" and "distributed by" + ptmp++; + + if (ci_strncmp(ptmp, " supported by", 13) == 0) + { + ptmp += 13; + } + else if (ci_strncmp(ptmp, " distributed by", 15) == 0) + { + ptmp += 15; + } + else + { + return NULL; + } + } + else + { + ptmp = tmp; + if ( ptmp == NULL ) + { + return NULL; + } + } + } + if( tmp[0] == '(' || tmp[0] == ',') + { + ptmp++; + } + if (ci_strncmp(ptmp, "licensed from ", 14) == 0) + { + ptmp += 14; + } + // for the licenced from case + if (ci_strncmp(ptmp, "licenced from ", 14) == 0) + { + ptmp += 14; + } + + while ( (*ptmp != ')' ) && (*ptmp != '/' ) && *ptmp != '\0') + { + if (*ptmp == ' ' && ci_strncmp(ptmp, " license", 8) == 0) + { + break; + } + if (*ptmp == ' ' && ci_strncmp(ptmp, " licence", 8) == 0) + { + break; + } + *t++ = *ptmp++; + } + + *t = '\0'; + } + + *ptmp = '\0'; + return tmp; +} + +/* Analyze Manufacturer Names for typical patterns, that don't distinguish between companies (e.g. Co., Ltd., Inc., etc. */ +static const char* TrimManufacturer(const char *s) +{ + //Also remove Country specific suffixes (e.g. Japan, Italy, America, USA, ...) + int i=0; + char strTemp[256]; + static char strTemp2[256]; + int j=0; + int k=0; + int l = 0; + memset(strTemp, '\0', 256 ); + memset(strTemp2, '\0', 256 ); + //start analyzing from the back, as these are usually suffixes + for(i=strlen(s)-1; i>=0;i-- ) + { + + l = strlen(strTemp); + for(k=l;k>=0; k--) + strTemp[k+1] = strTemp[k]; + strTemp[0] = s[i]; + strTemp[++l] = '\0'; + switch (l) + { + case 2: + if( ci_strncmp(strTemp, "co", 2) == 0 ) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 3: + if( ci_strncmp(strTemp, "co.", 3) == 0 || ci_strncmp(strTemp, "ltd", 3) == 0 || ci_strncmp(strTemp, "inc", 3) == 0 || ci_strncmp(strTemp, "SRL", 3) == 0 || ci_strncmp(strTemp, "USA", 3) == 0) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 4: + if( ci_strncmp(strTemp, "inc.", 4) == 0 || ci_strncmp(strTemp, "ltd.", 4) == 0 || ci_strncmp(strTemp, "corp", 4) == 0 || ci_strncmp(strTemp, "game", 4) == 0) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 5: + if( ci_strncmp(strTemp, "corp.", 5) == 0 || ci_strncmp(strTemp, "Games", 5) == 0 || ci_strncmp(strTemp, "Italy", 5) == 0 || ci_strncmp(strTemp, "Japan", 5) == 0) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 6: + if( ci_strncmp(strTemp, "co-ltd", 6) == 0 || ci_strncmp(strTemp, "S.R.L.", 6) == 0) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 7: + if( ci_strncmp(strTemp, "co. ltd", 7) == 0 || ci_strncmp(strTemp, "America", 7) == 0) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 8: + if( ci_strncmp(strTemp, "co. ltd.", 8) == 0 ) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 9: + if( ci_strncmp(strTemp, "co., ltd.", 9) == 0 || ci_strncmp(strTemp, "gmbh & co", 9) == 0 ) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 10: + if( ci_strncmp(strTemp, "corp, ltd.", 10) == 0 || ci_strncmp(strTemp, "industries", 10) == 0 || ci_strncmp(strTemp, "of America", 10) == 0) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 11: + if( ci_strncmp(strTemp, "corporation", 11) == 0 || ci_strncmp(strTemp, "enterprises", 11) == 0 ) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + case 16: + if( ci_strncmp(strTemp, "industries japan", 16) == 0 ) + { + j=l; + while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' ) + { + j++; + } + if( j!=l) + { + memset(strTemp2, '\0', 256 ); + strncpy(strTemp2, s, strlen(s)-j ); + } + } + break; + default: + break; + } + } + if( *strTemp2 == 0 ) + return s; + return strTemp2; +} + +void CreateCPUFolders(int parent_index) +{ + int i, j, device_folder_count = 0; + LPTREEFOLDER device_folders[512]; + LPTREEFOLDER folder; + LPTREEFOLDER lpTemp; + int nFolder = numFolders; + + for (i = 0; i < driver_list::total(); i++) + { + machine_config config(driver_list::driver(i),MameUIGlobal()); + + // enumerate through all devices + for (device_execute_interface &device : execute_interface_iterator(config.root_device())) + { + // get the name + std::string dev_name = device.device().name(); + + // do we have a folder for this device? + folder = NULL; + for (j = 0; j < device_folder_count; j++) + { + if (!strcmp(dev_name.c_str(), device_folders[j]->m_lpTitle)) + { + folder = device_folders[j]; + break; + } + } + + // are we forced to create a folder? + if (folder == NULL) + { + lpTemp = NewFolder(device.device().name(), next_folder_id, parent_index, IDI_CPU, GetFolderFlags(numFolders)); + AddFolder(lpTemp); + folder = treeFolders[nFolder++]; + + // record that we found this folder + device_folders[device_folder_count++] = folder; + } + + // cpu type #'s are one-based + AddGame(folder, i); + } + } + +} + +void CreateSoundFolders(int parent_index) +{ + int i, j, device_folder_count = 0; + LPTREEFOLDER device_folders[512]; + LPTREEFOLDER folder; + LPTREEFOLDER lpTemp; + int nFolder = numFolders; + + for (i = 0; i < driver_list::total(); i++) + { + machine_config config(driver_list::driver(i),MameUIGlobal()); + + // enumerate through all devices + + for (device_sound_interface &device : sound_interface_iterator(config.root_device())) + { + // get the name + std::string dev_name = device.device().name(); + + // do we have a folder for this device? + folder = NULL; + for (j = 0; j < device_folder_count; j++) + { + if (!strcmp(dev_name.c_str(), device_folders[j]->m_lpTitle)) + { + folder = device_folders[j]; + break; + } + } + + // are we forced to create a folder? + if (folder == NULL) + { + + lpTemp = NewFolder(device.device().name(), next_folder_id, parent_index, IDI_CPU, GetFolderFlags(numFolders)); + AddFolder(lpTemp); + folder = treeFolders[nFolder++]; + + // record that we found this folder + device_folders[device_folder_count++] = folder; + } + + // cpu type #'s are one-based + AddGame(folder, i); + } + } +} + +void CreateDeficiencyFolders(int parent_index) +{ + int jj; + int nGames = driver_list::total(); + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER lpProt, lpWrongCol, lpImpCol, lpImpGraph, lpMissSnd, lpImpSnd, lpFlip, lpArt; + + // create our subfolders + lpProt = NewFolder("Unemulated Protection", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpWrongCol = NewFolder("Wrong Colors", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpImpCol = NewFolder("Imperfect Colors", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpImpGraph = NewFolder("Imperfect Graphics", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpMissSnd = NewFolder("Missing Sound", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpImpSnd = NewFolder("Imperfect Sound", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpFlip = NewFolder("No Cocktail", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpArt = NewFolder("Requires Artwork", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + AddFolder(lpProt); + AddFolder(lpWrongCol); + AddFolder(lpImpCol); + AddFolder(lpImpGraph); + AddFolder(lpMissSnd); + AddFolder(lpImpSnd); + AddFolder(lpFlip); + AddFolder(lpArt); + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + + for (jj = 0; jj < nGames; jj++) + { + if (driver_list::driver(jj).flags & MACHINE_WRONG_COLORS) + { + AddGame(lpWrongCol,jj); + } + if (driver_list::driver(jj).flags & MACHINE_UNEMULATED_PROTECTION) + { + AddGame(lpProt,jj); + } + if (driver_list::driver(jj).flags & MACHINE_IMPERFECT_COLORS) + { + AddGame(lpImpCol,jj); + } + if (driver_list::driver(jj).flags & MACHINE_IMPERFECT_GRAPHICS) + { + AddGame(lpImpGraph,jj); + } + if (driver_list::driver(jj).flags & MACHINE_NO_SOUND) + { + AddGame(lpMissSnd,jj); + } + if (driver_list::driver(jj).flags & MACHINE_IMPERFECT_SOUND) + { + AddGame(lpImpSnd,jj); + } + if (driver_list::driver(jj).flags & MACHINE_NO_COCKTAIL) + { + AddGame(lpFlip,jj); + } + if (driver_list::driver(jj).flags & MACHINE_REQUIRES_ARTWORK) + { + AddGame(lpArt,jj); + } + } +} + +void CreateDumpingFolders(int parent_index) +{ + int jj; + BOOL bBadDump = FALSE; + BOOL bNoDump = FALSE; + int nGames = driver_list::total(); + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER lpBad, lpNo; + const rom_entry *region, *rom; + const game_driver *gamedrv; + + // create our two subfolders + lpBad = NewFolder("Bad Dump", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpNo = NewFolder("No Dump", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + AddFolder(lpBad); + AddFolder(lpNo); + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + + for (jj = 0; jj < nGames; jj++) + { + + gamedrv = &driver_list::driver(jj); + + if (!gamedrv->rom) + continue; + bBadDump = FALSE; + bNoDump = FALSE; + /* Allocate machine config */ + machine_config config(*gamedrv,MameUIGlobal()); + + for (device_t &device : device_iterator(config.root_device())) + { + for (region = rom_first_region(device); region; region = rom_next_region(region)) + { + for (rom = rom_first_file(region); rom; rom = rom_next_file(rom)) + { + if (ROMREGION_ISROMDATA(region) || ROMREGION_ISDISKDATA(region) ) + { + //name = ROM_GETNAME(rom); + hash_collection hashes(ROM_GETHASHDATA(rom)); + if (hashes.flag(hash_collection::FLAG_BAD_DUMP)) + bBadDump = TRUE; + if (hashes.flag(hash_collection::FLAG_NO_DUMP)) + bNoDump = TRUE; + } + } + } + } + if (bBadDump) + { + AddGame(lpBad,jj); + } + if (bNoDump) + { + AddGame(lpNo,jj); + } + } +} + + +void CreateYearFolders(int parent_index) +{ + int i, jj; + int nGames = driver_list::total(); + int start_folder = numFolders; + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER lpTemp; + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + + for (jj = 0; jj < nGames; jj++) + { + char s[100]; + strcpy(s,driver_list::driver(jj).year); + + if (s[0] == '\0') + continue; + + // look for an extant year treefolder for this game + // (likely to be the previous one, so start at the end) + for (i=numFolders-1;i>=start_folder;i--) + { + if (strncmp(treeFolders[i]->m_lpTitle,s,5) == 0) + { + AddGame(treeFolders[i],jj); + break; + } + } + if (i == start_folder-1) + { + // nope, it's a year we haven't seen before, make it. + lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_YEAR, GetFolderFlags(numFolders)); + AddFolder(lpTemp); + AddGame(lpTemp,jj); + } + } +} + +void CreateBIOSFolders(int parent_index) +{ + int i, jj; + int nGames = driver_list::total(); + int start_folder = numFolders; + const game_driver *drv; + int nParentIndex = -1; + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER lpTemp; + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + + for (jj = 0; jj < nGames; jj++) + { + if ( DriverIsClone(jj) ) + { + nParentIndex = GetParentIndex(&driver_list::driver(jj)); + if (nParentIndex < 0) return; + drv = &driver_list::driver(nParentIndex); + } + else + drv = &driver_list::driver(jj); + nParentIndex = GetParentIndex(drv); + + if (nParentIndex < 0 || !driver_list::driver(nParentIndex).description) + continue; + + for (i = numFolders-1; i >= start_folder; i--) + { + if (strcmp(treeFolders[i]->m_lpTitle, driver_list::driver(nParentIndex).description) == 0) + { + AddGame(treeFolders[i],jj); + break; + } + } + + if (i == start_folder-1) + { + lpTemp = NewFolder(driver_list::driver(nParentIndex).description, next_folder_id++, parent_index, IDI_CPU, GetFolderFlags(numFolders)); + AddFolder(lpTemp); + AddGame(lpTemp,jj); + } + } +} + +void CreateResolutionFolders(int parent_index) +{ + int i,jj; + int nGames = driver_list::total(); + int start_folder = numFolders; + char Resolution[20]; + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER lpVectorV, lpVectorH; + LPTREEFOLDER lpTemp; + + // create our two subfolders + lpVectorV = NewFolder("Vector (V)", next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + lpVectorH = NewFolder("Vector (H)", next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + AddFolder(lpVectorV); + AddFolder(lpVectorH); + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + + for (jj = 0; jj < nGames; jj++) + { + machine_config config(driver_list::driver(jj), MameUIGlobal()); + const screen_device *screen; + screen = config.first_screen(); + if (screen != NULL) + { + const rectangle &visarea = screen->visible_area(); + + if (DriverIsVector(jj)) + { + if (driver_list::driver(jj).flags & ORIENTATION_SWAP_XY) + { + AddGame(lpVectorV,jj); + } + else + { + AddGame(lpVectorH,jj); + } + } + else + if (driver_list::driver(jj).flags & ORIENTATION_SWAP_XY) + { + sprintf(Resolution, "%dx%d (V)", + visarea.max_y - visarea.min_y + 1, + visarea.max_x - visarea.min_x + 1); + } + else + { + sprintf(Resolution, "%dx%d (H)", + visarea.max_x - visarea.min_x + 1, + visarea.max_y - visarea.min_y + 1); + } + + for (i=numFolders-1;i>=start_folder;i--) + { + if (strcmp(treeFolders[i]->m_lpTitle, Resolution) == 0) + { + AddGame(treeFolders[i],jj); + break; + } + } + if (i == start_folder-1) + { + lpTemp = NewFolder(Resolution, next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + AddFolder(lpTemp); + AddGame(lpTemp,jj); + } + } + } +} + +void CreateFPSFolders(int parent_index) +{ + int i, jj; + int nGames = driver_list::total(); + int nFolder = numFolders; + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + LPTREEFOLDER map[256]; + LPTREEFOLDER lpTemp; + float fps[256]; + int nFPS = 0; + + // no games in top level folder + SetAllBits(lpFolder->m_lpGameBits,FALSE); + + for (i = 0; i < nGames; i++) + { + float f; + machine_config config(driver_list::driver(i), MameUIGlobal()); + const screen_device *screen; + screen = config.first_screen(); + if (screen != NULL) + { + f = ATTOSECONDS_TO_HZ(screen->refresh_attoseconds()); + + for (jj = 0; jj < nFPS; jj++) + if (fps[jj] == f) + break; + + if (nFPS == jj) + { + char buf[50]; + + assert(nFPS + 1 < ARRAY_LENGTH(fps)); + assert(nFPS + 1 < ARRAY_LENGTH(map)); + + sprintf(buf, "%f Hz", f); + + lpTemp = NewFolder(buf, next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders)); + AddFolder(lpTemp); + map[nFPS] = treeFolders[nFolder++]; + fps[nFPS++] = f; + } + + AddGame(map[jj],i); + } + } +} + +// creates child folders of all the top level folders, including custom ones +void CreateAllChildFolders(void) +{ + int num_top_level_folders = numFolders; + int i, j; + + for (i = 0; i < num_top_level_folders; i++) + { + LPTREEFOLDER lpFolder = treeFolders[i]; + LPCFOLDERDATA lpFolderData = NULL; + + for (j = 0; g_lpFolderData[j].m_lpTitle; j++) + { + if (g_lpFolderData[j].m_nFolderId == lpFolder->m_nFolderId) + { + lpFolderData = &g_lpFolderData[j]; + break; + } + } + + if (lpFolderData != NULL) + { + //dprintf("Found built-in-folder id %i %i\n",i,lpFolder->m_nFolderId); + if (lpFolderData->m_pfnCreateFolders != NULL) + lpFolderData->m_pfnCreateFolders(i); + } + else + { + if ((lpFolder->m_dwFlags & F_CUSTOM) == 0) + { + dprintf("Internal inconsistency with non-built-in folder, but not custom\n"); + continue; + } + + //dprintf("Loading custom folder %i %i\n",i,lpFolder->m_nFolderId); + + // load the extra folder files, which also adds children + if (TryAddExtraFolderAndChildren(i) == FALSE) + { + lpFolder->m_nFolderId = FOLDER_NONE; + } + } + } +} + +// adds these folders to the treeview +void ResetTreeViewFolders(void) +{ + HWND hTreeView = GetTreeView(); + int i; + TVITEM tvi; + TVINSERTSTRUCT tvs; + BOOL res; + + HTREEITEM shti; // for current child branches + + // currently "cached" parent + HTREEITEM hti_parent = NULL; + int index_parent = -1; + + res = TreeView_DeleteAllItems(hTreeView); + + //dprintf("Adding folders to tree ui indices %i to %i\n",start_index,end_index); + + tvs.hInsertAfter = TVI_SORT; + + for (i=0;i<numFolders;i++) + { + LPTREEFOLDER lpFolder = treeFolders[i]; + + if (lpFolder->m_nParent == -1) + { + if (lpFolder->m_nFolderId < MAX_FOLDERS) + { + // it's a built in folder, let's see if we should show it + if (GetShowFolder(lpFolder->m_nFolderId) == FALSE) + { + continue; + } + } + + tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; + tvs.hParent = TVI_ROOT; + tvi.pszText = lpFolder->m_lptTitle; + tvi.lParam = (LPARAM)lpFolder; + tvi.iImage = GetTreeViewIconIndex(lpFolder->m_nIconId); + tvi.iSelectedImage = 0; + + tvs.item = tvi; + + // Add root branch + hti_parent = TreeView_InsertItem(hTreeView, &tvs); + + continue; + } + + // not a top level branch, so look for parent + if (treeFolders[i]->m_nParent != index_parent) + { + + hti_parent = TreeView_GetRoot(hTreeView); + while (1) + { + if (hti_parent == NULL) + { + // couldn't find parent folder, so it's a built-in but + // not shown folder + break; + } + + tvi.hItem = hti_parent; + tvi.mask = TVIF_PARAM; + res = TreeView_GetItem(hTreeView,&tvi); + if (((LPTREEFOLDER)tvi.lParam) == treeFolders[treeFolders[i]->m_nParent]) + break; + + hti_parent = TreeView_GetNextSibling(hTreeView,hti_parent); + } + + // if parent is not shown, then don't show the child either obviously! + if (hti_parent == NULL) + continue; + + index_parent = treeFolders[i]->m_nParent; + } + + tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; + tvs.hParent = hti_parent; + tvi.iImage = GetTreeViewIconIndex(treeFolders[i]->m_nIconId); + tvi.iSelectedImage = 0; + tvi.pszText = treeFolders[i]->m_lptTitle; + tvi.lParam = (LPARAM)treeFolders[i]; + + tvs.item = tvi; + + // Add it to this tree branch + shti = TreeView_InsertItem(hTreeView, &tvs); + + } +} + +void SelectTreeViewFolder(int folder_id) +{ + HWND hTreeView = GetTreeView(); + HTREEITEM hti; + TVITEM tvi; + BOOL res; + + memset(&tvi,0,sizeof(tvi)); + + hti = TreeView_GetRoot(hTreeView); + + while (hti != NULL) + { + HTREEITEM hti_next; + + tvi.hItem = hti; + tvi.mask = TVIF_PARAM; + res = TreeView_GetItem(hTreeView,&tvi); + + if (((LPTREEFOLDER)tvi.lParam)->m_nFolderId == folder_id) + { + res = TreeView_SelectItem(hTreeView,tvi.hItem); + SetCurrentFolder((LPTREEFOLDER)tvi.lParam); + return; + } + + hti_next = TreeView_GetChild(hTreeView,hti); + if (hti_next == NULL) + { + hti_next = TreeView_GetNextSibling(hTreeView,hti); + if (hti_next == NULL) + { + hti_next = TreeView_GetParent(hTreeView,hti); + if (hti_next != NULL) + hti_next = TreeView_GetNextSibling(hTreeView,hti_next); + } + } + hti = hti_next; + } + + // could not find folder to select + // make sure we select something + tvi.hItem = TreeView_GetRoot(hTreeView); + tvi.mask = TVIF_PARAM; + res = TreeView_GetItem(hTreeView,&tvi); + + res = TreeView_SelectItem(hTreeView,tvi.hItem); + SetCurrentFolder((LPTREEFOLDER)tvi.lParam); +} + +/* + * Does this folder have an INI associated with it? + * Currently only TRUE for FOLDER_VECTOR and children + * of FOLDER_SOURCE. + */ +static BOOL FolderHasIni(LPTREEFOLDER lpFolder) { + if (FOLDER_VECTOR == lpFolder->m_nFolderId || + FOLDER_VERTICAL == lpFolder->m_nFolderId || + FOLDER_HORIZONTAL == lpFolder->m_nFolderId) { + return TRUE; + } + if (lpFolder->m_nParent != -1 + && FOLDER_SOURCE == treeFolders[lpFolder->m_nParent]->m_nFolderId) { + return TRUE; + } + return FALSE; +} + +/* Add a folder to the list. Does not allocate */ +static BOOL AddFolder(LPTREEFOLDER lpFolder) +{ + TREEFOLDER **tmpTree = NULL; + UINT oldFolderArrayLength = folderArrayLength; + if (numFolders + 1 >= folderArrayLength) + { + folderArrayLength += 500; + tmpTree = (TREEFOLDER **)malloc(sizeof(TREEFOLDER **) * folderArrayLength); + memcpy(tmpTree,treeFolders,sizeof(TREEFOLDER **) * oldFolderArrayLength); + if (treeFolders) free(treeFolders); + treeFolders = tmpTree; + } + + /* Is there an folder.ini that can be edited? */ + if (FolderHasIni(lpFolder)) { + lpFolder->m_dwFlags |= F_INIEDIT; + } + + treeFolders[numFolders] = lpFolder; + numFolders++; + return TRUE; +} + +/* Allocate and initialize a NEW TREEFOLDER */ +static LPTREEFOLDER NewFolder(const char *lpTitle, UINT nFolderId, int nParent, UINT nIconId, DWORD dwFlags) +{ + LPTREEFOLDER lpFolder = (LPTREEFOLDER)malloc(sizeof(TREEFOLDER)); + memset(lpFolder, '\0', sizeof (TREEFOLDER)); + lpFolder->m_lpTitle = (LPSTR)malloc(strlen(lpTitle) + 1); + strcpy((char *)lpFolder->m_lpTitle,lpTitle); + lpFolder->m_lptTitle = tstring_from_utf8(lpFolder->m_lpTitle); + lpFolder->m_lpGameBits = NewBits(driver_list::total()); + lpFolder->m_nFolderId = nFolderId; + lpFolder->m_nParent = nParent; + lpFolder->m_nIconId = nIconId; + lpFolder->m_dwFlags = dwFlags; + return lpFolder; +} + +/* Deallocate the passed in LPTREEFOLDER */ +static void DeleteFolder(LPTREEFOLDER lpFolder) +{ + if (lpFolder) + { + if (lpFolder->m_lpGameBits) + { + DeleteBits(lpFolder->m_lpGameBits); + lpFolder->m_lpGameBits = 0; + } + osd_free(lpFolder->m_lptTitle); + lpFolder->m_lptTitle = 0; + free(lpFolder->m_lpTitle); + lpFolder->m_lpTitle = 0; + free(lpFolder); + lpFolder = 0; + } +} + +/* Can be called to re-initialize the array of treeFolders */ +BOOL InitFolders(void) +{ + int i = 0; + DWORD dwFolderFlags; + LPCFOLDERDATA fData = 0; + if (treeFolders != NULL) + { + for (i = numFolders - 1; i >= 0; i--) + { + DeleteFolder(treeFolders[i]); + treeFolders[i] = 0; + numFolders--; + } + } + numFolders = 0; + if (folderArrayLength == 0) + { + folderArrayLength = 200; + treeFolders = (TREEFOLDER **)malloc(sizeof(TREEFOLDER **) * folderArrayLength); + if (!treeFolders) + { + folderArrayLength = 0; + return 0; + } + else + { + memset(treeFolders,'\0', sizeof(TREEFOLDER **) * folderArrayLength); + } + } + // built-in top level folders + for (i = 0; g_lpFolderData[i].m_lpTitle; i++) + { + fData = &g_lpFolderData[i]; + /* get the saved folder flags */ + dwFolderFlags = GetFolderFlags(numFolders); + /* create the folder */ + AddFolder(NewFolder(fData->m_lpTitle, fData->m_nFolderId, -1, fData->m_nIconId, dwFolderFlags)); + } + + numExtraFolders = InitExtraFolders(); + + for (i = 0; i < numExtraFolders; i++) + { + LPEXFOLDERDATA fExData = ExtraFolderData[i]; + + // OR in the saved folder flags + dwFolderFlags = fExData->m_dwFlags | GetFolderFlags(numFolders); + // create the folder + //dprintf("creating top level custom folder with icon %i\n",fExData->m_nIconId); + AddFolder(NewFolder(fExData->m_szTitle,fExData->m_nFolderId,fExData->m_nParent, fExData->m_nIconId,dwFolderFlags)); + } + + CreateAllChildFolders(); + CreateTreeIcons(); + ResetWhichGamesInFolders(); + ResetTreeViewFolders(); + SelectTreeViewFolder(GetSavedFolderID()); + LoadFolderFlags(); + return TRUE; +} + +// create iconlist and Treeview control +static BOOL CreateTreeIcons() +{ + HICON hIcon; + INT i; + HINSTANCE hInst = GetModuleHandle(0); + + int numIcons = ICON_MAX + numExtraIcons; + hTreeSmall = ImageList_Create (16, 16, ILC_COLORDDB | ILC_MASK, numIcons, numIcons); + + //dprintf("Trying to load %i normal icons\n",ICON_MAX); + for (i = 0; i < ICON_MAX; i++) + { + hIcon = LoadIconFromFile(treeIconNames[i].lpName); + if (!hIcon) + hIcon = LoadIcon(hInst, MAKEINTRESOURCE(treeIconNames[i].nResourceID)); + + if (ImageList_AddIcon (hTreeSmall, hIcon) == -1) + { + ErrorMsg("Error creating icon on regular folder, %i %i",i,hIcon != NULL); + return FALSE; + } + } + + //dprintf("Trying to load %i extra custom-folder icons\n",numExtraIcons); + for (i = 0; i < numExtraIcons; i++) + { + if ((hIcon = LoadIconFromFile(ExtraFolderIcons[i])) == 0) + hIcon = LoadIcon (hInst, MAKEINTRESOURCE(IDI_FOLDER)); + + if (ImageList_AddIcon(hTreeSmall, hIcon) == -1) + { + ErrorMsg("Error creating icon on extra folder, %i %i",i,hIcon != NULL); + return FALSE; + } + } + + // Be sure that all the small icons were added. + if (ImageList_GetImageCount(hTreeSmall) < numIcons) + { + ErrorMsg("Error with icon list--too few images. %i %i", ImageList_GetImageCount(hTreeSmall),numIcons); + return FALSE; + } + + // Be sure that all the small icons were added. + + if (ImageList_GetImageCount (hTreeSmall) < ICON_MAX) + { + ErrorMsg("Error with icon list--too few images. %i < %i", ImageList_GetImageCount(hTreeSmall),(INT)ICON_MAX); + return FALSE; + } + + // Associate the image lists with the list view control. + (void)TreeView_SetImageList(GetTreeView(), hTreeSmall, TVSIL_NORMAL); + + return TRUE; +} + + +static void TreeCtrlOnPaint(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + PAINTSTRUCT ps; + HDC hDC; + RECT rcClip, rcClient; + HDC memDC; + HBITMAP bitmap; + HBITMAP hOldBitmap; + + HBITMAP hBackground = GetBackgroundBitmap(); + MYBITMAPINFO *bmDesc = GetBackgroundInfo(); + + hDC = BeginPaint(hWnd, &ps); + + GetClipBox(hDC, &rcClip); + GetClientRect(hWnd, &rcClient); + + // Create a compatible memory DC + memDC = CreateCompatibleDC(hDC); + + // Select a compatible bitmap into the memory DC + bitmap = CreateCompatibleBitmap(hDC, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top); + hOldBitmap = (HBITMAP)SelectObject(memDC, bitmap); + + // First let the control do its default drawing. + CallWindowProc(g_lpTreeWndProc, hWnd, uMsg, (WPARAM)memDC, 0); + + // Draw bitmap in the background + + { + HPALETTE hPAL; + HDC maskDC; + HBITMAP maskBitmap; + HDC tempDC; + HDC imageDC; + HBITMAP bmpImage; + HBITMAP hOldBmpImage; + HBITMAP hOldMaskBitmap; + HBITMAP hOldHBitmap; + int i, j; + RECT rcRoot; + + // Now create a mask + maskDC = CreateCompatibleDC(hDC); + + // Create monochrome bitmap for the mask + maskBitmap = CreateBitmap(rcClient.right - rcClient.left, rcClient.bottom - rcClient.top, 1, 1, NULL); + + hOldMaskBitmap = (HBITMAP)SelectObject(maskDC, maskBitmap); + SetBkColor(memDC, GetSysColor(COLOR_WINDOW)); + + // Create the mask from the memory DC + BitBlt(maskDC, 0, 0, rcClient.right - rcClient.left, + rcClient.bottom - rcClient.top, memDC, + rcClient.left, rcClient.top, SRCCOPY); + + tempDC = CreateCompatibleDC(hDC); + hOldHBitmap = (HBITMAP)SelectObject(tempDC, hBackground); + + imageDC = CreateCompatibleDC(hDC); + bmpImage = CreateCompatibleBitmap(hDC, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top); + hOldBmpImage = (HBITMAP)SelectObject(imageDC, bmpImage); + + hPAL = GetBackgroundPalette(); + if (hPAL == NULL) + hPAL = CreateHalftonePalette(hDC); + + if (GetDeviceCaps(hDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL) + { + SelectPalette(hDC, hPAL, FALSE); + RealizePalette(hDC); + SelectPalette(imageDC, hPAL, FALSE); + } + + // Get x and y offset + TreeView_GetItemRect(hWnd, TreeView_GetRoot(hWnd), &rcRoot, FALSE); + rcRoot.left = -GetScrollPos(hWnd, SB_HORZ); + + // Draw bitmap in tiled manner to imageDC + for (i = rcRoot.left; i < rcClient.right; i += bmDesc->bmWidth) + for (j = rcRoot.top; j < rcClient.bottom; j += bmDesc->bmHeight) + BitBlt(imageDC, i, j, bmDesc->bmWidth, bmDesc->bmHeight, + tempDC, 0, 0, SRCCOPY); + + // Set the background in memDC to black. Using SRCPAINT with black and any other + // color results in the other color, thus making black the transparent color + SetBkColor(memDC, RGB(0,0,0)); + SetTextColor(memDC, RGB(255,255,255)); + BitBlt(memDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left, + rcClip.bottom - rcClip.top, + maskDC, rcClip.left, rcClip.top, SRCAND); + + // Set the foreground to black. See comment above. + SetBkColor(imageDC, RGB(255,255,255)); + SetTextColor(imageDC, RGB(0,0,0)); + BitBlt(imageDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left, + rcClip.bottom - rcClip.top, + maskDC, rcClip.left, rcClip.top, SRCAND); + + // Combine the foreground with the background + BitBlt(imageDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left, + rcClip.bottom - rcClip.top, + memDC, rcClip.left, rcClip.top, SRCPAINT); + + // Draw the final image to the screen + BitBlt(hDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left, + rcClip.bottom - rcClip.top, + imageDC, rcClip.left, rcClip.top, SRCCOPY); + + SelectObject(maskDC, hOldMaskBitmap); + SelectObject(tempDC, hOldHBitmap); + SelectObject(imageDC, hOldBmpImage); + + DeleteDC(maskDC); + DeleteDC(imageDC); + DeleteDC(tempDC); + DeleteBitmap(bmpImage); + DeleteBitmap(maskBitmap); + + if (GetBackgroundPalette() == NULL) + { + DeletePalette(hPAL); + hPAL = NULL; + } + } + + SelectObject(memDC, hOldBitmap); + DeleteBitmap(bitmap); + DeleteDC(memDC); + EndPaint(hWnd, &ps); + ReleaseDC(hWnd, hDC); +} + +/* Header code - Directional Arrows */ +static LRESULT CALLBACK TreeWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + if (GetBackgroundBitmap() != NULL) + { + switch (uMsg) + { + case WM_MOUSEMOVE: + { + if (MouseHasBeenMoved()) + ShowCursor(TRUE); + break; + } + + case WM_KEYDOWN : + if (wParam == VK_F2) + { + if (lpCurrentFolder->m_dwFlags & F_CUSTOM) + { + TreeView_EditLabel(hWnd,TreeView_GetSelection(hWnd)); + return TRUE; + } + } + break; + + case WM_ERASEBKGND: + return TRUE; + + case WM_PAINT: + TreeCtrlOnPaint(hWnd, uMsg, wParam, lParam); + UpdateWindow(hWnd); + break; + } + } + + /* message not handled */ + return CallWindowProc(g_lpTreeWndProc, hWnd, uMsg, wParam, lParam); +} + +/* + * Filter code - should be moved to filter.c/filter.h + * Added 01/09/99 - MSH <mhaaland@hypertech.com> + */ + +/* find a FOLDERDATA by folderID */ +LPCFOLDERDATA FindFilter(DWORD folderID) +{ + int i; + + for (i = 0; g_lpFolderData[i].m_lpTitle; i++) + { + if (g_lpFolderData[i].m_nFolderId == folderID) + return &g_lpFolderData[i]; + } + return (LPFOLDERDATA) 0; +} + + +LPTREEFOLDER GetFolderByName(int nParentId, const char *pszFolderName) +{ + int i = 0, nParent; + + //First Get the Parent TreeviewItem + //Enumerate Children + for(i = 0; i < numFolders/* ||treeFolders[i] != NULL*/; i++) + { + if (!strcmp(treeFolders[i]->m_lpTitle, pszFolderName)) + { + nParent = treeFolders[i]->m_nParent; + if ((nParent >= 0) && treeFolders[nParent]->m_nFolderId == nParentId) + return treeFolders[i]; + } + } + return NULL; +} + +static int InitExtraFolders(void) +{ + struct stat stat_buffer; + struct _finddata_t files; + int i, count = 0; + long hLong; + char* ext; + char buf[256]; + char curdir[MAX_PATH]; + const char* dir = GetFolderDir(); + + memset(ExtraFolderData, 0, (MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS)* sizeof(LPEXFOLDERDATA)); + + /* NPW 9-Feb-2003 - MSVC stat() doesn't like stat() called with an empty string */ + if (dir[0] == '\0') + dir = "."; + + // Why create the directory if it doesn't exist, just return 0 folders. + if (stat(dir, &stat_buffer) != 0) + { + return 0; // _mkdir(dir); + } + + _getcwd(curdir, MAX_PATH); + + chdir(dir); + + hLong = _findfirst("*", &files); + + for (i = 0; i < MAX_EXTRA_FOLDERS; i++) + { + ExtraFolderIcons[i] = NULL; + } + + numExtraIcons = 0; + + while (!_findnext(hLong, &files)) + { + if ((files.attrib & _A_SUBDIR) == 0) + { + FILE *fp; + + fp = fopen(files.name, "r"); + if (fp != NULL) + { + int icon[2] = { 0, 0 }; + char *p, *name; + + while (fgets(buf, 256, fp)) + { + if (buf[0] == '[') + { + p = strchr(buf, ']'); + if (p == NULL) + continue; + + *p = '\0'; + name = &buf[1]; + if (!strcmp(name, "FOLDER_SETTINGS")) + { + while (fgets(buf, 256, fp)) + { + name = strtok(buf, " =\r\n"); + if (name == NULL) + break; + + if (!strcmp(name, "RootFolderIcon")) + { + name = strtok(NULL, " =\r\n"); + if (name != NULL) + SetExtraIcons(name, &icon[0]); + } + if (!strcmp(name, "SubFolderIcon")) + { + name = strtok(NULL, " =\r\n"); + if (name != NULL) + SetExtraIcons(name, &icon[1]); + } + } + break; + } + } + } + fclose(fp); + + strcpy(buf, files.name); + ext = strrchr(buf, '.'); + + if (ext && *(ext + 1) && !core_stricmp(ext + 1, "ini")) + { + ExtraFolderData[count] =(EXFOLDERDATA*) malloc(sizeof(EXFOLDERDATA)); + if (ExtraFolderData[count]) + { + *ext = '\0'; + + memset(ExtraFolderData[count], 0, sizeof(EXFOLDERDATA)); + + strncpy(ExtraFolderData[count]->m_szTitle, buf, 63); + ExtraFolderData[count]->m_nFolderId = next_folder_id++; + ExtraFolderData[count]->m_nParent = -1; + ExtraFolderData[count]->m_dwFlags = F_CUSTOM; + ExtraFolderData[count]->m_nIconId = icon[0] ? -icon[0] : IDI_FOLDER; + ExtraFolderData[count]->m_nSubIconId = icon[1] ? -icon[1] : IDI_FOLDER; + //dprintf("extra folder with icon %i, subicon %i\n", + //ExtraFolderData[count]->m_nIconId, + //ExtraFolderData[count]->m_nSubIconId); + count++; + } + } + } + } + } + + chdir(curdir); + return count; +} + +void FreeExtraFolders(void) +{ + int i; + + for (i = 0; i < numExtraFolders; i++) + { + if (ExtraFolderData[i]) + { + free(ExtraFolderData[i]); + ExtraFolderData[i] = NULL; + } + } + + for (i = 0; i < numExtraIcons; i++) + { + free(ExtraFolderIcons[i]); + } + + numExtraIcons = 0; + +} + + +static void SetExtraIcons(char *name, int *id) +{ + char *p = strchr(name, '.'); + + if (p != NULL) + *p = '\0'; + + ExtraFolderIcons[numExtraIcons] = (char*)malloc(strlen(name) + 1); + if (ExtraFolderIcons[numExtraIcons]) + { + *id = ICON_MAX + numExtraIcons; + strcpy(ExtraFolderIcons[numExtraIcons], name); + numExtraIcons++; + } +} + + +// Called to add child folders of the top level extra folders already created +BOOL TryAddExtraFolderAndChildren(int parent_index) +{ + FILE* fp = NULL; + char fname[MAX_PATH]; + char readbuf[256]; + char* p; + char* name; + int id, current_id, i; + LPTREEFOLDER lpTemp = NULL; + LPTREEFOLDER lpFolder = treeFolders[parent_index]; + + current_id = lpFolder->m_nFolderId; + + id = lpFolder->m_nFolderId - MAX_FOLDERS; + + /* "folder\title.ini" */ + + sprintf( fname, "%s\\%s.ini", + GetFolderDir(), + ExtraFolderData[id]->m_szTitle); + + fp = fopen(fname, "r"); + if (fp == NULL) + return FALSE; + + while ( fgets(readbuf, 256, fp) ) + { + /* do we have [...] ? */ + + if (readbuf[0] == '[') + { + p = strchr(readbuf, ']'); + if (p == NULL) + { + continue; + } + + *p = '\0'; + name = &readbuf[1]; + + /* is it [FOLDER_SETTINGS]? */ + + if (strcmp(name, "FOLDER_SETTINGS") == 0) + { + current_id = -1; + continue; + } + else + { + /* it it [ROOT_FOLDER]? */ + + if (!strcmp(name, "ROOT_FOLDER")) + { + current_id = lpFolder->m_nFolderId; + lpTemp = lpFolder; + + } + else + { + /* must be [folder name] */ + + current_id = next_folder_id++; + /* create a new folder with this name, + and the flags for this folder as read from the registry */ + lpTemp = NewFolder(name,current_id,parent_index, + ExtraFolderData[id]->m_nSubIconId, + GetFolderFlags(numFolders) | F_CUSTOM); + ExtraFolderData[current_id] = (EXFOLDERDATA*)malloc(sizeof(EXFOLDERDATA)); + memset(ExtraFolderData[current_id], 0, sizeof(EXFOLDERDATA)); + + ExtraFolderData[current_id]->m_nFolderId = current_id - MAX_EXTRA_FOLDERS; + ExtraFolderData[current_id]->m_nIconId = ExtraFolderData[id]->m_nSubIconId; + ExtraFolderData[current_id]->m_nParent = ExtraFolderData[id]->m_nFolderId; + ExtraFolderData[current_id]->m_nSubIconId = -1; + strcpy( ExtraFolderData[current_id]->m_szTitle, name ); + ExtraFolderData[current_id]->m_dwFlags = ExtraFolderData[id]->m_dwFlags; + AddFolder(lpTemp); + } + } + } + else if (current_id != -1) + { + /* string on a line by itself -- game name */ + + name = strtok(readbuf, " \t\r\n"); + if (name == NULL) + { + current_id = -1; + continue; + } + + /* IMPORTANT: This assumes that all driver names are lowercase! */ + for (i = 0; name[i]; i++) + name[i] = tolower(name[i]); + + if (lpTemp == NULL) + { + ErrorMsg("Error parsing %s: missing [folder name] or [ROOT_FOLDER]", fname); + current_id = lpFolder->m_nFolderId; + lpTemp = lpFolder; + } + AddGame(lpTemp,GetGameNameIndex(name)); + } + } + + if ( fp ) + { + fclose( fp ); + } + + return TRUE; +} + + +void GetFolders(TREEFOLDER ***folders,int *num_folders) +{ + *folders = treeFolders; + *num_folders = numFolders; +} + +static BOOL TryRenameCustomFolderIni(LPTREEFOLDER lpFolder,const char *old_name,const char *new_name) +{ + char filename[MAX_PATH]; + char new_filename[MAX_PATH]; + LPTREEFOLDER lpParent = NULL; + if (lpFolder->m_nParent >= 0) + { + //it is a custom SubFolder + lpParent = GetFolder( lpFolder->m_nParent ); + if( lpParent ) + { + snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s\\%s.ini",GetIniDir(),lpParent->m_lpTitle, old_name ); + snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s\\%s.ini",GetIniDir(),lpParent->m_lpTitle, new_name ); + win_move_file_utf8(filename,new_filename); + } + } + else + { + //Rename the File, if it exists + snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s.ini",GetIniDir(),old_name ); + snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s.ini",GetIniDir(), new_name ); + win_move_file_utf8(filename,new_filename); + //Rename the Directory, if it exists + snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s",GetIniDir(),old_name ); + snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s",GetIniDir(), new_name ); + win_move_file_utf8(filename,new_filename); + } + return TRUE; +} + +BOOL TryRenameCustomFolder(LPTREEFOLDER lpFolder, const char *new_name) +{ + BOOL retval; + char filename[MAX_PATH]; + char new_filename[MAX_PATH]; + + if (lpFolder->m_nParent >= 0) + { + // a child extra folder was renamed, so do the rename and save the parent + + // save old title + char *old_title = lpFolder->m_lpTitle; + + // set new title + lpFolder->m_lpTitle = (char *)malloc(strlen(new_name) + 1); + strcpy(lpFolder->m_lpTitle,new_name); + + // try to save + if (TrySaveExtraFolder(lpFolder) == FALSE) + { + // failed, so free newly allocated title and restore old + free(lpFolder->m_lpTitle); + lpFolder->m_lpTitle = old_title; + return FALSE; + } + TryRenameCustomFolderIni(lpFolder, old_title, new_name); + // successful, so free old title + free(old_title); + return TRUE; + } + + // a parent extra folder was renamed, so rename the file + + snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s.ini",GetFolderDir(),new_name); + snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s.ini",GetFolderDir(),lpFolder->m_lpTitle); + + retval = win_move_file_utf8(filename,new_filename); + + if (retval) + { + TryRenameCustomFolderIni(lpFolder, lpFolder->m_lpTitle, new_name); + free(lpFolder->m_lpTitle); + lpFolder->m_lpTitle = (char *)malloc(strlen(new_name) + 1); + strcpy(lpFolder->m_lpTitle,new_name); + } + else + { + char buf[500]; + snprintf(buf,ARRAY_LENGTH(buf),"Error while renaming custom file %s to %s", filename,new_filename); + win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR); + } + return retval; +} + +void AddToCustomFolder(LPTREEFOLDER lpFolder,int driver_index) +{ + if ((lpFolder->m_dwFlags & F_CUSTOM) == 0) + { + win_message_box_utf8(GetMainWindow(),"Unable to add game to non-custom folder", + MAMEUINAME,MB_OK | MB_ICONERROR); + return; + } + + if (TestBit(lpFolder->m_lpGameBits,driver_index) == 0) + { + AddGame(lpFolder,driver_index); + if (TrySaveExtraFolder(lpFolder) == FALSE) + RemoveGame(lpFolder,driver_index); // undo on error + } +} + +void RemoveFromCustomFolder(LPTREEFOLDER lpFolder,int driver_index) +{ + if ((lpFolder->m_dwFlags & F_CUSTOM) == 0) + { + win_message_box_utf8(GetMainWindow(),"Unable to remove game from non-custom folder", + MAMEUINAME,MB_OK | MB_ICONERROR); + return; + } + + if (TestBit(lpFolder->m_lpGameBits,driver_index) != 0) + { + RemoveGame(lpFolder,driver_index); + if (TrySaveExtraFolder(lpFolder) == FALSE) + AddGame(lpFolder,driver_index); // undo on error + } +} + +BOOL TrySaveExtraFolder(LPTREEFOLDER lpFolder) +{ + char fname[MAX_PATH]; + FILE *fp; + BOOL error = FALSE; + int i,j; + + LPTREEFOLDER root_folder = NULL; + LPEXFOLDERDATA extra_folder = NULL; + + for (i=0;i<numExtraFolders;i++) + { + if (ExtraFolderData[i]->m_nFolderId == lpFolder->m_nFolderId) + { + root_folder = lpFolder; + extra_folder = ExtraFolderData[i]; + break; + } + + if (lpFolder->m_nParent >= 0 && + ExtraFolderData[i]->m_nFolderId == treeFolders[lpFolder->m_nParent]->m_nFolderId) + { + root_folder = treeFolders[lpFolder->m_nParent]; + extra_folder = ExtraFolderData[i]; + break; + } + } + + if (extra_folder == NULL || root_folder == NULL) + { + MessageBox(GetMainWindow(), TEXT("Error finding custom file name to save"), (LPCTSTR)MAMEUINAME, MB_OK | MB_ICONERROR); + return FALSE; + } + /* "folder\title.ini" */ + + snprintf( fname, sizeof(fname), "%s\\%s.ini", GetFolderDir(), extra_folder->m_szTitle); + + fp = fopen(fname, "wt"); + if (fp == NULL) + error = TRUE; + else + { + TREEFOLDER *folder_data; + + + fprintf(fp,"[FOLDER_SETTINGS]\n"); + // negative values for icons means it's custom, so save 'em + if (extra_folder->m_nIconId < 0) + { + fprintf(fp, "RootFolderIcon %s\n", ExtraFolderIcons[(-extra_folder->m_nIconId) - ICON_MAX]); + } + if (extra_folder->m_nSubIconId < 0) + { + fprintf(fp,"SubFolderIcon %s\n", ExtraFolderIcons[(-extra_folder->m_nSubIconId) - ICON_MAX]); + } + + /* need to loop over all our TREEFOLDERs--first the root one, then each child. + start with the root */ + + folder_data = root_folder; + + fprintf(fp,"\n[ROOT_FOLDER]\n"); + + for (i=0;i<driver_list::total();i++) + { + if (TestBit(folder_data->m_lpGameBits, i)) + { + fprintf(fp,"%s\n",driver_list::driver(i).name); + } + } + + /* look through the custom folders for ones with our root as parent */ + for (j=0;j<numFolders;j++) + { + folder_data = treeFolders[j]; + + if (folder_data->m_nParent >= 0 && + treeFolders[folder_data->m_nParent] == root_folder) + { + fprintf(fp,"\n[%s]\n",folder_data->m_lpTitle); + + for (i=0;i<driver_list::total();i++) + { + if (TestBit(folder_data->m_lpGameBits, i)) + { + fprintf(fp,"%s\n",driver_list::driver(i).name); + } + } + } + } + if (fclose(fp) != 0) + error = TRUE; + } + + if (error) + { + char buf[500]; + snprintf(buf,ARRAY_LENGTH(buf),"Error while saving custom file %s",fname); + win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR); + } + return !error; +} + +HIMAGELIST GetTreeViewIconList(void) +{ + return hTreeSmall; +} + +int GetTreeViewIconIndex(int icon_id) +{ + int i; + + if (icon_id < 0) + return -icon_id; + + for (i = 0; i < ARRAY_LENGTH(treeIconNames); i++) + { + if (icon_id == treeIconNames[i].nResourceID) + return i; + } + + return -1; +} + +/* End of source file */ diff --git a/docs/release/src/osd/winui/treeview.h b/docs/release/src/osd/winui/treeview.h new file mode 100644 index 00000000000..e61747dc981 --- /dev/null +++ b/docs/release/src/osd/winui/treeview.h @@ -0,0 +1,210 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef TREEVIEW_H +#define TREEVIEW_H + +/* corrections for commctrl.h */ + +#if defined(__GNUC__) +/* fix warning: cast does not match function type */ +#undef TreeView_InsertItem +#define TreeView_InsertItem(w,i) (HTREEITEM)(LRESULT)(int)SendMessage((w),TVM_INSERTITEM,0,(LPARAM)(LPTV_INSERTSTRUCT)(i)) + +#undef TreeView_SetImageList +#define TreeView_SetImageList(w,h,i) (HIMAGELIST)(LRESULT)(int)SendMessage((w),TVM_SETIMAGELIST,i,(LPARAM)(HIMAGELIST)(h)) + +#undef TreeView_GetNextItem +#define TreeView_GetNextItem(w,i,c) (HTREEITEM)(LRESULT)(int)SendMessage((w),TVM_GETNEXTITEM,c,(LPARAM)(HTREEITEM)(i)) + +#undef TreeView_HitTest +#define TreeView_HitTest(hwnd, lpht) \ + (HTREEITEM)(LRESULT)(int)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht)) + +/* fix wrong return type */ +#undef TreeView_Select +#define TreeView_Select(w,i,c) (BOOL)(int)SendMessage((w),TVM_SELECTITEM,c,(LPARAM)(HTREEITEM)(i)) + +#undef TreeView_EditLabel +#define TreeView_EditLabel(w, i) \ + SNDMSG(w,TVM_EDITLABEL,0,(LPARAM)(i)) + +#endif /* defined(__GNUC__) */ + +/*************************************************************************** + Folder And Filter Definitions + ***************************************************************************/ + +typedef struct +{ + const char *m_lpTitle; // Folder Title + const char *short_name; // for saving in the .ini + UINT m_nFolderId; // ID + UINT m_nIconId; // if >= 0, resource id of icon (IDI_xxx), otherwise index in image list + DWORD m_dwUnset; // Excluded filters + DWORD m_dwSet; // Implied filters + void (*m_pfnCreateFolders)(int parent_index); // Constructor for special folders + BOOL (*m_pfnQuery)(int nDriver); // Query function + BOOL m_bExpectedResult; // Expected query result +} FOLDERDATA, *LPFOLDERDATA; + +typedef const FOLDERDATA *LPCFOLDERDATA; + +typedef struct +{ + DWORD m_dwFilterType; /* Filter value */ + DWORD m_dwCtrlID; /* Control ID that represents it */ + BOOL (*m_pfnQuery)(int nDriver); /* Query function */ + BOOL m_bExpectedResult; /* Expected query result */ +} FILTER_ITEM, *LPFILTER_ITEM; + +typedef const FILTER_ITEM *LPCFILTER_ITEM; + +/*************************************************************************** + Functions to build builtin folder lists + ***************************************************************************/ + +void CreateManufacturerFolders(int parent_index); +void CreateYearFolders(int parent_index); +void CreateSourceFolders(int parent_index); +void CreateScreenFolders(int parent_index); +void CreateCPUFolders(int parent_index); +void CreateSoundFolders(int parent_index); +void CreateOrientationFolders(int parent_index); +void CreateDeficiencyFolders(int parent_index); +void CreateDumpingFolders(int parent_index); +void CreateBIOSFolders(int parent_index); +void CreateFPSFolders(int parent_index); +void CreateResolutionFolders(int parent_index); + +/***************************************************************************/ + +#define MAX_EXTRA_FOLDERS 256 +#define MAX_EXTRA_SUBFOLDERS 256 +#define SHOW_UNAVAILABLE_FOLDER + +/* TreeView structures */ +enum +{ + FOLDER_NONE = 0, + FOLDER_ALLGAMES, + FOLDER_AVAILABLE, +#ifdef SHOW_UNAVAILABLE_FOLDER + FOLDER_UNAVAILABLE, +#endif + FOLDER_MANUFACTURER, + FOLDER_YEAR, + FOLDER_SOURCE, + FOLDER_CPU, + FOLDER_SND, + FOLDER_DEFICIENCY, + FOLDER_WORKING, + FOLDER_NONWORKING, + FOLDER_ORIGINAL, + FOLDER_CLONES, + FOLDER_RASTER, + FOLDER_VECTOR, + FOLDER_TRACKBALL, + FOLDER_LIGHTGUN, + FOLDER_STEREO, + FOLDER_HARDDISK, + FOLDER_SAMPLES, + FOLDER_DUMPING, + FOLDER_SAVESTATE, + FOLDER_BIOS, + FOLDER_RESOLUTION, + FOLDER_FPS, + FOLDER_HORIZONTAL, + FOLDER_VERTICAL, + FOLDER_SCREENS, + FOLDER_MECHANICAL, + FOLDER_NONMECHANICAL, + MAX_FOLDERS +}; + +typedef enum +{ + F_CLONES = 0x00000001, + F_NONWORKING = 0x00000002, + F_UNAVAILABLE = 0x00000004, + F_VECTOR = 0x00000008, + F_RASTER = 0x00000010, + F_ORIGINALS = 0x00000020, + F_WORKING = 0x00000040, + F_AVAILABLE = 0x00000080, + F_HORIZONTAL = 0x00000100, + F_VERTICAL = 0x00000200, + F_MECHANICAL = 0x00000400, + F_ARCADE = 0x00000800, + F_MESS = 0x00001000, +#ifdef MESS + F_COMPUTER = 0x00002000, + F_CONSOLE = 0x00004000, + F_MODIFIED = 0x00008000, +#endif + F_MASK = 0x0000FFFF, + F_INIEDIT = 0x00010000, // There is an .ini that can be edited. MSH 20070811 + F_CUSTOM = 0x01000000 // for current .ini custom folders +} FOLDERFLAG; + +typedef struct +{ + LPSTR m_lpTitle; // String contains the folder name + LPTSTR m_lptTitle; // String contains the folder name as TCHAR* + UINT m_nFolderId; // Index / Folder ID number + int m_nParent; // Parent folder index in treeFolders[] + int m_nIconId; // negative icon index into the ImageList, or IDI_xxx resource id + DWORD m_dwFlags; // Misc flags + LPBITS m_lpGameBits; // Game bits, represent game indices +} TREEFOLDER, *LPTREEFOLDER; + +typedef struct +{ + char m_szTitle[64]; // Folder Title + UINT m_nFolderId; // ID + int m_nParent; // Parent Folder index in treeFolders[] + DWORD m_dwFlags; // Flags - Customizable and Filters + int m_nIconId; // negative icon index into the ImageList, or IDI_xxx resource id + int m_nSubIconId; // negative icon index into the ImageList, or IDI_xxx resource id +} EXFOLDERDATA, *LPEXFOLDERDATA; + +void FreeFolders(void); +void ResetFilters(void); +void InitTree(LPCFOLDERDATA lpFolderData, LPCFILTER_ITEM lpFilterList); +void SetCurrentFolder(LPTREEFOLDER lpFolder); +UINT GetCurrentFolderID(void); + +LPTREEFOLDER GetCurrentFolder(void); +int GetNumFolders(void); +LPTREEFOLDER GetFolder(UINT nFolder); +LPTREEFOLDER GetFolderByID(UINT nID); +LPTREEFOLDER GetFolderByName(int nParentId, const char *pszFolderName); + +void AddGame(LPTREEFOLDER lpFolder, UINT nGame); +void RemoveGame(LPTREEFOLDER lpFolder, UINT nGame); +int FindGame(LPTREEFOLDER lpFolder, int nGame); + +void ResetWhichGamesInFolders(void); + +LPCFOLDERDATA FindFilter(DWORD folderID); + +bool GameFiltered(int nGame, DWORD dwFlags); +BOOL GetParentFound(int nGame); + +LPCFILTER_ITEM GetFilterList(void); + +void SetTreeIconSize(HWND hWnd, BOOL bLarge); +BOOL GetTreeIconSize(void); + +void GetFolders(TREEFOLDER ***folders,int *num_folders); +BOOL TryRenameCustomFolder(LPTREEFOLDER lpFolder,const char *new_name); +void AddToCustomFolder(LPTREEFOLDER lpFolder,int driver_index); +void RemoveFromCustomFolder(LPTREEFOLDER lpFolder,int driver_index); + +HIMAGELIST GetTreeViewIconList(void); +int GetTreeViewIconIndex(int icon_id); + +void ResetTreeViewFolders(void); +void SelectTreeViewFolder(int folder_id); + +#endif /* TREEVIEW_H */ diff --git a/docs/release/src/osd/winui/win_options.cpp b/docs/release/src/osd/winui/win_options.cpp new file mode 100644 index 00000000000..c39f399e9b6 --- /dev/null +++ b/docs/release/src/osd/winui/win_options.cpp @@ -0,0 +1,808 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +/*************************************************************************** + + win_options.c + + Core options code code + +***************************************************************************/ + +#include <stdarg.h> +#include <stdlib.h> +#include <ctype.h> +#include "win_options.h" + + +//************************************************************************** +// REPLACE MACRO: option --> win_options +//************************************************************************** + +#define options win_options + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +const char *const options::s_option_unadorned[MAX_UNADORNED_OPTIONS] = +{ + "<UNADORNED0>", + "<UNADORNED1>", + "<UNADORNED2>", + "<UNADORNED3>", + "<UNADORNED4>", + "<UNADORNED5>", + "<UNADORNED6>", + "<UNADORNED7>", + "<UNADORNED8>", + "<UNADORNED9>", + "<UNADORNED10>", + "<UNADORNED11>", + "<UNADORNED12>", + "<UNADORNED13>", + "<UNADORNED14>", + "<UNADORNED15>" +}; + + + +//************************************************************************** +// CORE OPTIONS ENTRY +//************************************************************************** + +//------------------------------------------------- +// entry - constructor +//------------------------------------------------- + +options::entry::entry(const char *name, const char *description, UINT32 flags, const char *defvalue) + : m_next(NULL), + m_flags(flags), + m_seqid(0), + m_error_reported(false), + m_priority(OPTION_PRIORITY_DEFAULT), + m_description(description) +{ + // copy in the name(s) as appropriate + if (name != nullptr) + { + // first extract any range + std::string namestr(name); + int lparen = namestr.find('('); + int dash = namestr.find(lparen + 1, '-'); + int rparen = namestr.find(dash + 1, ')'); + if (lparen != -1 && dash != -1 && rparen != -1) + { + m_minimum.assign(namestr.substr(lparen + 1, dash - (lparen + 1))); + strtrimspace(m_minimum); + m_maximum.assign(namestr.substr(dash + 1, rparen - (dash + 1))); + strtrimspace(m_maximum); + namestr.erase(lparen, rparen + 1 - lparen); + } + + // then chop up any semicolon-separated names + int semi; + int nameindex = 0; + while ((semi = namestr.find(';')) != -1 && nameindex < ARRAY_LENGTH(m_name)) + { + m_name[nameindex++].assign(namestr.substr(0, semi)); + namestr.erase(0, semi + 1); + } + + // finally add the last item + if (nameindex < ARRAY_LENGTH(m_name)) + m_name[nameindex++] = namestr; + } + + // set the default value + if (defvalue != nullptr) + m_defdata = defvalue; + m_data = m_defdata; +} + + +//------------------------------------------------- +// set_value - update our data value +//------------------------------------------------- + +void options::entry::set_value(const char *newdata, int priority) +{ + // ignore if we don't have priority + if (priority < m_priority) + return; + + // set the data and priority, then bump the sequence + m_data = newdata; + m_priority = priority; + m_seqid++; +} + + +//------------------------------------------------- +// set_default_value - set the default value of +// an option, and reset the current value to it +//------------------------------------------------- + +void options::entry::set_default_value(const char *defvalue) +{ + m_data = defvalue; + m_defdata = defvalue; + m_priority = OPTION_PRIORITY_DEFAULT; +} + + +//------------------------------------------------- +// set_description - set the description of +// an option +//------------------------------------------------- + +void options::entry::set_description(const char *description) +{ + m_description = description; +} + + +void options::entry::set_flag(UINT32 mask, UINT32 flag) +{ + m_flags = ( m_flags & mask ) | flag; +} + + +//------------------------------------------------- +// revert - revert back to our default if we are +// at or below the given priority +//------------------------------------------------- + +void options::entry::revert(int priority) +{ + // if our priority is low enough, revert to the default + if (m_priority <= priority) + { + m_data = m_defdata; + m_priority = OPTION_PRIORITY_DEFAULT; + } +} + + + +//************************************************************************** +// CORE OPTIONS +//************************************************************************** + +//------------------------------------------------- +// options - constructor +//------------------------------------------------- + +options::options() +{ +} + +options::options(const options_entry *entrylist) +{ + add_entries(entrylist); +} + +options::options(const options_entry *entrylist1, const options_entry *entrylist2) +{ + add_entries(entrylist1); + add_entries(entrylist2); +} + +options::options(const options_entry *entrylist1, const options_entry *entrylist2, const options_entry *entrylist3) +{ + add_entries(entrylist1); + add_entries(entrylist2); + add_entries(entrylist3); +} + +options::options(const options &src) +{ + copyfrom(src); +} + + +//------------------------------------------------- +// ~options - destructor +//------------------------------------------------- + +options::~options() +{ +} + + +//------------------------------------------------- +// operator= - assignment operator +//------------------------------------------------- + +options &options::operator=(const options &rhs) +{ + // ignore self-assignment + if (this != &rhs) + copyfrom(rhs); + return *this; +} + + +//------------------------------------------------- +// operator== - compare two sets of options +//------------------------------------------------- + +bool options::operator==(const options &rhs) +{ + // iterate over options in the first list + for (entry *curentry = m_entrylist.first(); curentry != nullptr; curentry = curentry->next()) + if (!curentry->is_header()) + { + // if the values differ, return false + if (strcmp(curentry->value(), rhs.value(curentry->name())) != 0) + return false; + } + + return true; +} + + +//------------------------------------------------- +// operator!= - compare two sets of options +//------------------------------------------------- + +bool options::operator!=(const options &rhs) +{ + return !operator==(rhs); +} + + +//------------------------------------------------- +// add_entry - add an entry to the current +// options set +//------------------------------------------------- + +void options::add_entry(const char *name, const char *description, UINT32 flags, const char *defvalue, bool override_existing) +{ + // allocate a new entry + entry *newentry = global_alloc(entry(name, description, flags, defvalue)); + if (newentry->name() != nullptr) + { + // see if we match an existing entry + auto checkentry = m_entrymap.find(newentry->name()); + if (checkentry != m_entrymap.end()) + { + entry *existing = checkentry->second; + // if we're overriding existing entries, then remove the old one + if (override_existing) + m_entrylist.remove(*existing); + + // otherwise, just override the default and current values and throw out the new entry + else + { + existing->set_default_value(newentry->value()); + global_free(newentry); + return; + } + } + } + + // add us to the list and maps + append_entry(*newentry); +} + + +//------------------------------------------------- +// add_entries - add entries to the current +// options sets +//------------------------------------------------- + +void options::add_entries(const options_entry *entrylist, bool override_existing) +{ + // loop over entries until we hit a NULL name + for (; entrylist->name != nullptr || (entrylist->flags & OPTION_HEADER) != 0; entrylist++) + add_entry(*entrylist, override_existing); +} + + +//------------------------------------------------- +// set_default_value - change the default value +// of an option +//------------------------------------------------- + +void options::set_default_value(const char *name, const char *defvalue) +{ + // find the entry and bail if we can't + auto curentry = m_entrymap.find(name); + if (curentry == m_entrymap.end()) + return; + + // update the data and default data + curentry->second->set_default_value(defvalue); +} + + +//------------------------------------------------- +// set_description - change the description +// of an option +//------------------------------------------------- + +void options::set_description(const char *name, const char *description) +{ + // find the entry and bail if we can't + auto curentry = m_entrymap.find(name); + if (curentry == m_entrymap.end()) + return; + + // update the data and default data + curentry->second->set_description(description); +} + + +//------------------------------------------------- +// parse_command_line - parse a series of +// command line arguments +//------------------------------------------------- + +bool options::parse_command_line(int argc, char **argv, int priority, std::string &error_string) +{ + // reset the errors and the command + error_string.clear(); + m_command.clear(); + + // iterate through arguments + int unadorned_index = 0; + bool retval = true; + for (int arg = 1; arg < argc; arg++) + { + // determine the entry name to search for + const char *curarg = argv[arg]; + bool is_unadorned = (curarg[0] != '-'); + const char *optionname = is_unadorned ? options::unadorned(unadorned_index++) : &curarg[1]; + + // find our entry; if not found, indicate invalid option + auto curentry = m_entrymap.find(optionname); + if (curentry == m_entrymap.end()) + { + error_string.append(string_format("Error: unknown option: %s\n", curarg)); + retval = false; + if (!is_unadorned) arg++; + continue; + } + + // process commands first + if (curentry->second->type() == OPTION_COMMAND) + { + // can only have one command + if (!m_command.empty()) + { + error_string.append(string_format("Error: multiple commands specified -%s and %s\n", m_command.c_str(), curarg)); + return false; + } + m_command = curentry->second->name(); + continue; + } + + // get the data for this argument, special casing booleans + const char *newdata; + if (curentry->second->type() == OPTION_BOOLEAN) + newdata = (strncmp(&curarg[1], "no", 2) == 0) ? "0" : "1"; + else if (is_unadorned) + newdata = curarg; + else if (arg + 1 < argc) + newdata = argv[++arg]; + else + { + error_string.append(string_format("Error: option %s expected a parameter\n", curarg)); + return false; + } + + // set the new data + validate_and_set_data(*curentry->second, newdata, priority, error_string); + } + return retval; +} + + +//------------------------------------------------- +// parse_ini_file - parse a series of entries in +// an INI file +//------------------------------------------------- + +bool options::parse_ini_file(util::core_file &inifile, int priority, int ignore_priority, std::string &error_string) +{ + // loop over lines in the file + char buffer[4096]; + while (inifile.gets(buffer, ARRAY_LENGTH(buffer)) != nullptr) + { + // find the extent of the name + char *optionname; + for (optionname = buffer; *optionname != 0; optionname++) + if (!isspace((UINT8)*optionname)) + break; + + // skip comments + if (*optionname == 0 || *optionname == '#') + continue; + + // scan forward to find the first space + char *temp; + for (temp = optionname; *temp != 0; temp++) + if (isspace((UINT8)*temp)) + break; + + // if we hit the end early, print a warning and continue + if (*temp == 0) + { + error_string.append(string_format("Warning: invalid line in INI: %s", buffer)); + continue; + } + + // NULL-terminate + *temp++ = 0; + char *optiondata = temp; + + // scan the data, stopping when we hit a comment + bool inquotes = false; + for (temp = optiondata; *temp != 0; temp++) + { + if (*temp == '"') + inquotes = !inquotes; + if (*temp == '#' && !inquotes) + break; + } + *temp = 0; + + // find our entry + auto curentry = m_entrymap.find(optionname); + if (curentry == m_entrymap.end()) + { + if (priority >= ignore_priority) + error_string.append(string_format("Warning: unknown option in INI: %s\n", optionname)); + continue; + } + + // set the new data + validate_and_set_data(*curentry->second, optiondata, priority, error_string); + } + return true; +} + + +//------------------------------------------------- +// revert - revert options at or below a certain +// priority back to their defaults +//------------------------------------------------- + +void options::revert(int priority) +{ + // iterate over options and revert to defaults if below the given priority + for (entry *curentry = m_entrylist.first(); curentry != nullptr; curentry = curentry->next()) + curentry->revert(priority); +} + + +//------------------------------------------------- +// output_ini - output the options in INI format, +// only outputting entries that different from +// the optional diff +//------------------------------------------------- + +const char *options::output_ini(std::string &buffer, const options *diff) +{ + // INI files are complete, so always start with a blank buffer + buffer.clear(); + + int num_valid_headers = 0; + int unadorned_index = 0; + const char *last_header = NULL; + + // loop over all items + for (entry *curentry = m_entrylist.first(); curentry != nullptr; curentry = curentry->next()) + { + const char *name = curentry->name(); + const char *value = curentry->value(); + bool is_unadorned = false; + + // check if it's unadorned + if (name && strlen(name) && !strcmp(name, options::unadorned(unadorned_index))) + { + unadorned_index++; + is_unadorned = true; + } + + // header: record description + if (curentry->is_header()) + last_header = curentry->description(); + + // otherwise, output entries for all non-command items + else if (!curentry->is_command()) + { + if ( !curentry->is_internal() ) + { + // look up counterpart in diff, if diff is specified + if (diff == nullptr || strcmp(value, diff->value(name)) != 0) + { + // output header, if we have one + if (last_header) + { + if (num_valid_headers++) + buffer += '\n'; + buffer.append(string_format("#\n# %s\n#\n", last_header)); + last_header = nullptr; + } + + // and finally output the data, skip if unadorned + if (!is_unadorned) + { + if (strchr(value, ' ')) + buffer.append(string_format("%-25s \"%s\"\n", name, value)); + else + buffer.append(string_format("%-25s %s\n", name, value)); + } + } + } + } + } + return buffer.c_str(); +} + + +//------------------------------------------------- +// output_help - output option help to a string +//------------------------------------------------- + +const char *options::output_help(std::string &buffer) +{ + // start empty + buffer.clear(); + + // loop over all items + for (entry *curentry = m_entrylist.first(); curentry; curentry = curentry->next()) + { + // header: just print + if (curentry->is_header()) + buffer.append(string_format("\n#\n# %s\n#\n", curentry->description())); + + // otherwise, output entries for all non-deprecated items + else if (curentry->description()) + buffer.append(string_format("-%-20s%s\n", curentry->name(), curentry->description())); + } + return buffer.c_str(); +} + + +//------------------------------------------------- +// value - return the raw option value +//------------------------------------------------- + +const char *options::value(const char *name) const +{ + auto curentry = m_entrymap.find(name); + return (curentry != m_entrymap.end()) ? curentry->second->value() : ""; +} + + +//------------------------------------------------- +// description - return description of option +//------------------------------------------------- + +const char *options::description(const char *name) const +{ + auto curentry = m_entrymap.find(name); + return (curentry != m_entrymap.end()) ? curentry->second->description() : ""; +} + + +//------------------------------------------------- +// priority - return the priority of option +//------------------------------------------------- + +int options::priority(const char *name) const +{ + auto curentry = m_entrymap.find(name); + return (curentry != m_entrymap.end()) ? curentry->second->priority() : 0; +} + + +//------------------------------------------------- +// seqid - return the seqid for a given option +//------------------------------------------------- + +UINT32 options::seqid(const char *name) const +{ + auto curentry = m_entrymap.find(name); + return (curentry != m_entrymap.end()) ? curentry->second->seqid() : 0; +} + +//------------------------------------------------- +// exists - return if option exists in list +//------------------------------------------------- + +bool options::exists(const char *name) const +{ + return (m_entrymap.find(name) != m_entrymap.end()); +} + +//------------------------------------------------- +// set_value - set the raw option value +//------------------------------------------------- + +bool options::set_value(const char *name, const char *value, int priority, std::string &error_string) +{ + // find the entry first + auto curentry = m_entrymap.find(name); + if (curentry == m_entrymap.end()) + { + error_string.append(string_format("Attempted to set unknown option %s\n", name)); + return false; + } + + // validate and set the item normally + return validate_and_set_data(*curentry->second, value, priority, error_string); +} + +bool options::set_value(const char *name, int value, int priority, std::string &error_string) +{ + return set_value(name, string_format("%d", value).c_str(), priority, error_string); +} + +bool options::set_value(const char *name, float value, int priority, std::string &error_string) +{ + return set_value(name, string_format("%f", value).c_str(), priority, error_string); +} + + +void options::set_flag(const char *name, UINT32 mask, UINT32 flag) +{ + // find the entry first + auto curentry = m_entrymap.find(name); + if ( curentry == m_entrymap.end()) + { + return; + } + curentry->second->set_flag(mask, flag); +} + + +//------------------------------------------------- +// reset - reset the options state, removing +// everything +//------------------------------------------------- + +void options::reset() +{ + m_entrylist.reset(); + m_entrymap.clear(); +} + + +//------------------------------------------------- +// append_entry - append an entry to our list +// and index it in the map +//------------------------------------------------- + +void options::append_entry(options::entry &newentry) +{ + m_entrylist.append(newentry); + + // if we have names, add them to the map + for (int name = 0; name < ARRAY_LENGTH(newentry.m_name); name++) + if (newentry.name(name) != nullptr) + { + m_entrymap.insert(std::make_pair(newentry.name(name), &newentry)); + + // for boolean options add a "no" variant as well + if (newentry.type() == OPTION_BOOLEAN) + m_entrymap.insert(std::make_pair(std::string("no").append(newentry.name(name)), &newentry)); + } +} + + +//------------------------------------------------- +// remove_entry - remove an entry from our list +// and map +//------------------------------------------------- + +void options::remove_entry(options::entry &delentry) +{ + // remove all names from the map + for (int name = 0; name < ARRAY_LENGTH(delentry.m_name); name++) + if (!delentry.m_name[name].empty()) + { + auto entry = m_entrymap.find(delentry.m_name[name]); + if (entry!= m_entrymap.end()) m_entrymap.erase(entry); + } + + // remove the entry from the list + m_entrylist.remove(delentry); +} + + +//------------------------------------------------- +// copyfrom - copy options from another set +//------------------------------------------------- + +void options::copyfrom(const options &src) +{ + // reset ourselves first + reset(); + + // iterate through the src options and make our own + for (entry *curentry = src.m_entrylist.first(); curentry != nullptr; curentry = curentry->next()) + append_entry(*global_alloc(entry(curentry->name(), curentry->description(), curentry->flags(), curentry->default_value()))); +} + + +//------------------------------------------------- +// validate_and_set_data - make sure the data is +// of the appropriate type and within range, +// then set it +//------------------------------------------------- + +bool options::validate_and_set_data(options::entry &curentry, const char *newdata, int priority, std::string &error_string) +{ + // trim any whitespace + std::string data(newdata); + strtrimspace(data); + + // trim quotes + if (data.find('"') == 0 && data.find_last_of('"') == data.length() - 1) + { + data.erase(0, 1); + data.erase(data.length() - 1, 1); + } + + // validate the type of data and optionally the range + float fval; + int ival; + switch (curentry.type()) + { + // booleans must be 0 or 1 + case OPTION_BOOLEAN: + if (sscanf(data.c_str(), "%d", &ival) != 1 || ival < 0 || ival > 1) + { + error_string.append(string_format("Illegal boolean value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value())); + return false; + } + break; + + // integers must be integral + case OPTION_INTEGER: + if (sscanf(data.c_str(), "%d", &ival) != 1) + { + error_string.append(string_format("Illegal integer value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value())); + return false; + } + if (curentry.has_range() && (ival < atoi(curentry.minimum()) || ival > atoi(curentry.maximum()))) + { + error_string.append(string_format("Out-of-range integer value for %s: \"%s\" (must be between %s and %s); reverting to %s\n", curentry.name(), data.c_str(), curentry.minimum(), curentry.maximum(), curentry.value())); + return false; + } + break; + + // floating-point values must be numeric + case OPTION_FLOAT: + if (sscanf(data.c_str(), "%f", &fval) != 1) + { + error_string.append(string_format("Illegal float value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value())); + return false; + } + if (curentry.has_range() && (fval < atof(curentry.minimum()) || fval > atof(curentry.maximum()))) + { + error_string.append(string_format("Out-of-range float value for %s: \"%s\" (must be between %s and %s); reverting to %s\n", curentry.name(), data.c_str(), curentry.minimum(), curentry.maximum(), curentry.value())); + return false; + } + break; + + // strings can be anything + case OPTION_STRING: + break; + + // anything else is invalid + case OPTION_INVALID: + case OPTION_HEADER: + default: + error_string.append(string_format("Attempted to set invalid option %s\n", curentry.name())); + return false; + } + + // set the data + curentry.set_value(data.c_str(), priority); + return true; +} diff --git a/docs/release/src/osd/winui/win_options.h b/docs/release/src/osd/winui/win_options.h new file mode 100644 index 00000000000..23265fe3b5a --- /dev/null +++ b/docs/release/src/osd/winui/win_options.h @@ -0,0 +1,153 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** +/*************************************************************************** + + win_options.h + + Core options code code + +**************************************************************************** + + + +***************************************************************************/ + +#pragma once + +#ifndef __WIN_OPTIONS_H__ +#define __WIN_OPTIONS_H__ + +#include "options.h" + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// structure holding information about a collection of options +class win_options +{ + static const int MAX_UNADORNED_OPTIONS = 16; + +public: + // information about a single entry in the options + class entry + { + friend class win_options; + friend class simple_list<entry>; + + // construction/destruction + entry(const char *name, const char *description, UINT32 flags = 0, const char *defvalue = NULL); + + public: + // getters + entry *next() const { return m_next; } + const char *name(int index = 0) const { return (index < ARRAY_LENGTH(m_name) && !m_name[index].empty()) ? m_name[index].c_str() : NULL; } + const char *description() const { return m_description; } + const char *value() const { return m_data.c_str(); } + const char *default_value() const { return m_defdata.c_str(); } + const char *minimum() const { return m_minimum.c_str(); } + const char *maximum() const { return m_maximum.c_str(); } + UINT32 seqid() const { return m_seqid; } + int type() const { return (m_flags & OPTION_TYPE_MASK); } + UINT32 flags() const { return m_flags; } + bool is_header() const { return type() == OPTION_HEADER; } + bool is_command() const { return type() == OPTION_COMMAND; } + bool is_internal() const { return m_flags & OPTION_FLAG_INTERNAL; } + bool has_range() const { return (!m_minimum.empty() && !m_maximum.empty()); } + int priority() const { return m_priority; } + + // setters + void set_value(const char *newvalue, int priority); + void set_default_value(const char *defvalue); + void set_description(const char *description); + void set_flag(UINT32 mask, UINT32 flag); + void revert(int priority); + + private: + // internal state + entry * m_next; // link to the next data + UINT32 m_flags; // flags from the entry + UINT32 m_seqid; // sequence ID; bumped on each change + bool m_error_reported; // have we reported an error on this option yet? + int m_priority; // priority of the data set + const char * m_description; // description for this item + std::string m_name[4]; // up to 4 names for the item + std::string m_data; // data for this item + std::string m_defdata; // default data for this item + std::string m_minimum; // minimum value + std::string m_maximum; // maximum value + }; + + // construction/destruction + win_options(); + win_options(const options_entry *entrylist); + win_options(const options_entry *entrylist1, const options_entry *entrylist2); + win_options(const options_entry *entrylist1, const options_entry *entrylist2, const options_entry *entrylist3); + win_options(const win_options &src); + virtual ~win_options(); + + // operators + win_options &operator=(const win_options &rhs); + bool operator==(const win_options &rhs); + bool operator!=(const win_options &rhs); + + // getters + entry *first() const { return m_entrylist.first(); } + const char *command() const { return m_command.c_str(); } + + // configuration + void add_entry(const char *name, const char *description, UINT32 flags = 0, const char *defvalue = NULL, bool override_existing = false); + void add_entry(const options_entry &data, bool override_existing = false) { add_entry(data.name, data.description, data.flags, data.defvalue, override_existing); } + void add_entries(const options_entry *entrylist, bool override_existing = false); + void set_default_value(const char *name, const char *defvalue); + void set_description(const char *name, const char *description); + void remove_entry(entry &delentry); + + // parsing/input + bool parse_command_line(int argc, char **argv, int priority, std::string &error_string); + bool parse_ini_file(util::core_file &inifile, int priority, int ignore_priority, std::string &error_string); + + // reverting + void revert(int priority = OPTION_PRIORITY_MAXIMUM); + + // output + const char *output_ini(std::string &buffer, const win_options *diff = NULL); + const char *output_help(std::string &buffer); + + // reading + const char *value(const char *option) const; + const char *description(const char *option) const; + int priority(const char *option) const; + bool bool_value(const char *name) const { return (atoi(value(name)) != 0); } + int int_value(const char *name) const { return atoi(value(name)); } + float float_value(const char *name) const { return atof(value(name)); } + UINT32 seqid(const char *name) const; + bool exists(const char *name) const; + + // setting + void set_command(const char *command); + bool set_value(const char *name, const char *value, int priority, std::string &error_string); + bool set_value(const char *name, int value, int priority, std::string &error_string); + bool set_value(const char *name, float value, int priority, std::string &error_string); + void set_flag(const char *name, UINT32 mask, UINT32 flags); + + // misc + static const char *unadorned(int x = 0) { return s_option_unadorned[MIN(x, MAX_UNADORNED_OPTIONS)]; } + int options_count() const { return m_entrylist.count(); } + +private: + // internal helpers + void reset(); + void append_entry(entry &newentry); + void copyfrom(const win_options &src); + bool validate_and_set_data(entry &curentry, const char *newdata, int priority, std::string &error_string); + + // internal state + simple_list<entry> m_entrylist; // head of list of entries + std::unordered_map<std::string, entry *> m_entrymap; // map for fast lookup + std::string m_command; // command found + static const char *const s_option_unadorned[]; // array of unadorned option "names" +}; + +#endif diff --git a/docs/release/src/osd/winui/winui.cpp b/docs/release/src/osd/winui/winui.cpp new file mode 100644 index 00000000000..aed782a8061 --- /dev/null +++ b/docs/release/src/osd/winui/winui.cpp @@ -0,0 +1,6714 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + + /*************************************************************************** + + winui.c + + Win32 GUI code. + + Created 8/12/97 by Christopher Kirmse (ckirmse@ricochet.net) + Additional code November 1997 by Jeff Miller (miller@aa.net) + More July 1998 by Mike Haaland (mhaaland@hypertech.com) + Added Spitters/Property Sheets/Removed Tabs/Added Tree Control in + Nov/Dec 1998 - Mike Haaland + +***************************************************************************/ + +// standard windows headers +#define WIN32_LEAN_AND_MEAN +#define _WIN32_IE 0x0501 +#include <windows.h> +#include <windowsx.h> +#include <shellapi.h> +#include <commctrl.h> +#include <wingdi.h> + +// standard C headers +#include <stdio.h> +#include <ctype.h> +#include <io.h> +#include <fcntl.h> +#include <dlgs.h> +#include <string.h> +#include <sys/stat.h> +#include <time.h> +#include <tchar.h> + + +// MAME/MAMEUI headers +#include "emu.h" +#include "mame.h" +#include "mameopts.h" +#include "language.h" +#include "unzip.h" +#include "winutf8.h" +#include "strconv.h" +#include "window.h" +#include "../osdcore.h" +#include "zippath.h" + +#include "resource.h" +#include "resource.hm" + +#include "winui.h" +#include "mui_util.h" +#include "mui_audit.h" +#include "directories.h" +#include "mui_opts.h" +#include "properties.h" +#include "columnedit.h" +#include "picker.h" +#include "tabview.h" +#include "bitmask.h" +#include "treeview.h" +#include "splitters.h" +#include "dirwatch.h" +#include "help.h" +#include "history.h" +#include "dialogs.h" +#include "directdraw.h" +#include "directinput.h" +#include "dijoystick.h" /* For DIJoystick availability. */ + +#ifdef _MSC_VER +#define snprintf _snprintf +#endif + +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif + +#ifndef LVS_EX_LABELTIP +#define LVS_EX_LABELTIP 0x00004000 // listview unfolds partly hidden labels if it does not have infotip text +#endif // LVS_EX_LABELTIP + +// fix warning: cast does not match function type +#if defined(__GNUC__) && defined(ListView_CreateDragImage) +#undef ListView_CreateDragImage +#endif + +#ifndef ListView_CreateDragImage +#define ListView_CreateDragImage(hwnd, i, lpptUpLeft) \ + (HIMAGELIST)(LRESULT)(int)SendMessage((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft)) +#endif // ListView_CreateDragImage + +#ifndef TreeView_EditLabel +#define TreeView_EditLabel(w, i) \ + SNDMSG(w,TVM_EDITLABEL,0,(LPARAM)(i)) +#endif // TreeView_EditLabel + +#ifndef HDF_SORTUP +#define HDF_SORTUP 0x400 +#endif // HDF_SORTUP + +#ifndef HDF_SORTDOWN +#define HDF_SORTDOWN 0x200 +#endif // HDF_SORTDOWN + +#ifndef LVM_SETBKIMAGEA +#define LVM_SETBKIMAGEA (LVM_FIRST + 68) +#endif // LVM_SETBKIMAGEA + +#ifndef LVM_SETBKIMAGEW +#define LVM_SETBKIMAGEW (LVM_FIRST + 138) +#endif // LVM_SETBKIMAGEW + +#ifndef LVM_GETBKIMAGEA +#define LVM_GETBKIMAGEA (LVM_FIRST + 69) +#endif // LVM_GETBKIMAGEA + +#ifndef LVM_GETBKIMAGEW +#define LVM_GETBKIMAGEW (LVM_FIRST + 139) +#endif // LVM_GETBKIMAGEW + +#ifndef LVBKIMAGE + +typedef struct tagLVBKIMAGEA +{ + ULONG ulFlags; + HBITMAP hbm; + LPSTR pszImage; + UINT cchImageMax; + int xOffsetPercent; + int yOffsetPercent; +} LVBKIMAGEA, *LPLVBKIMAGEA; + +typedef struct tagLVBKIMAGEW +{ + ULONG ulFlags; + HBITMAP hbm; + LPWSTR pszImage; + UINT cchImageMax; + int xOffsetPercent; + int yOffsetPercent; +} LVBKIMAGEW, *LPLVBKIMAGEW; + +#ifdef UNICODE +#define LVBKIMAGE LVBKIMAGEW +#define LPLVBKIMAGE LPLVBKIMAGEW +#define LVM_SETBKIMAGE LVM_SETBKIMAGEW +#define LVM_GETBKIMAGE LVM_GETBKIMAGEW +#else +#define LVBKIMAGE LVBKIMAGEA +#define LPLVBKIMAGE LPLVBKIMAGEA +#define LVM_SETBKIMAGE LVM_SETBKIMAGEA +#define LVM_GETBKIMAGE LVM_GETBKIMAGEA +#endif +#endif + +#ifndef LVBKIF_SOURCE_NONE +#define LVBKIF_SOURCE_NONE 0x00000000 +#endif // LVBKIF_SOURCE_NONE + +#ifndef LVBKIF_SOURCE_HBITMAP +#define LVBKIF_SOURCE_HBITMAP 0x00000001 +#endif + +#ifndef LVBKIF_SOURCE_URL +#define LVBKIF_SOURCE_URL 0x00000002 +#endif // LVBKIF_SOURCE_URL + +#ifndef LVBKIF_SOURCE_MASK +#define LVBKIF_SOURCE_MASK 0x00000003 +#endif // LVBKIF_SOURCE_MASK + +#ifndef LVBKIF_STYLE_NORMAL +#define LVBKIF_STYLE_NORMAL 0x00000000 +#endif // LVBKIF_STYLE_NORMAL + +#ifndef LVBKIF_STYLE_TILE +#define LVBKIF_STYLE_TILE 0x00000010 +#endif // LVBKIF_STYLE_TILE + +#ifndef LVBKIF_STYLE_MASK +#define LVBKIF_STYLE_MASK 0x00000010 +#endif // LVBKIF_STYLE_MASK + +#ifndef ListView_SetBkImage +#define ListView_SetBkImage(hwnd, plvbki) \ + (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki)) +#endif // ListView_SetBkImage + +#ifndef ListView_GetBkImage +#define ListView_GetBkImage(hwnd, plvbki) \ + (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki)) +#endif // ListView_GetBkImage + +#define MM_PLAY_GAME (WM_APP + 15000) + +#define JOYGUI_MS 100 + +#define JOYGUI_TIMER 1 +#define SCREENSHOT_TIMER 2 +#define GAMEWND_TIMER 3 + +/* Max size of a sub-menu */ +#define DBU_MIN_WIDTH 292 +#define DBU_MIN_HEIGHT 190 + +static int MIN_WIDTH = DBU_MIN_WIDTH; +static int MIN_HEIGHT = DBU_MIN_HEIGHT; + +/* Max number of bkground picture files */ +#define MAX_BGFILES 100 + +#ifndef LVS_EX_LABELTIP +#define LVS_EX_LABELTIP 0x00004000 // listview unfolds partly hidden labels if it does not have infotip text +#endif + +#define NO_FOLDER -1 +#define STATESAVE_VERSION 1 +//I could not find a predefined value for this event and docs just say it has 1 for the parameter +#define TOOLBAR_EDIT_ACCELERATOR_PRESSED 1 +#define SHOW_MISSING_ROMS_ICON + +/*************************************************************************** + externally defined global variables + ***************************************************************************/ +extern const ICONDATA g_iconData[]; +extern const TCHAR g_szPlayGameString[]; +extern const char g_szGameCountString[]; +UINT8 playopts_apply = 0; + +typedef struct _play_options play_options; +struct _play_options +{ + const char *record; // OPTION_RECORD + const char *playback; // OPTION_PLAYBACK + const char *state; // OPTION_STATE + const char *wavwrite; // OPTION_WAVWRITE + const char *mngwrite; // OPTION_MNGWRITE + const char *aviwrite; // OPTION_AVIWRITE +}; + +/*************************************************************************** + function prototypes + ***************************************************************************/ + +static BOOL Win32UI_init(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow); +static void Win32UI_exit(void); + +static BOOL PumpMessage(void); +static BOOL OnIdle(HWND hWnd); +static void OnSize(HWND hwnd, UINT state, int width, int height); +static LRESULT CALLBACK MameWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam); + +static void SetView(int menu_id); +static void ResetListView(void); +static void UpdateGameList(BOOL bUpdateRomAudit, BOOL bUpdateSampleAudit); +static void DestroyIcons(void); +static void ReloadIcons(void); +static void PollGUIJoystick(void); +//static void PressKey(HWND hwnd,UINT vk); +static BOOL MameCommand(HWND hwnd,int id, HWND hwndCtl, UINT codeNotify); +static void KeyboardKeyDown(int syskey, int vk_code, int special); +static void KeyboardKeyUp(int syskey, int vk_code, int special); +static void KeyboardStateClear(void); + +static void UpdateStatusBar(void); +//static BOOL PickerHitTest(HWND hWnd); +static BOOL TreeViewNotify(NMHDR *nm); + +static void LoadBackgroundBitmap(void); +static void PaintBackgroundImage(HWND hWnd, HRGN hRgn, int x, int y); + +static int GamePicker_Compare(HWND hwndPicker, int index1, int index2, int sort_subitem); + +static void DisableSelection(void); +static void EnableSelection(int nGame); + +static HICON GetSelectedPickItemIcon(void); +static void SetRandomPickItem(void); +static void PickColor(COLORREF *cDefault); + +static LPTREEFOLDER GetSelectedFolder(void); +static HICON GetSelectedFolderIcon(void); + +static LRESULT CALLBACK HistoryWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); +static LRESULT CALLBACK PictureFrameWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); +static LRESULT CALLBACK PictureWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + +static void MamePlayRecordGame(void); +static void MamePlayBackGame(void); +static void MamePlayRecordWave(void); +static void MamePlayRecordMNG(void); +static void MamePlayRecordAVI(void); +static void MameLoadState(void); +static void MamePlayGameWithOptions(int nGame, const play_options *playopts); +static BOOL GameCheck(void); +static BOOL FolderCheck(void); + +static void ToggleScreenShot(void); +static void AdjustMetrics(void); +//static void EnablePlayOptions(int nIndex, windows_options *o); + +/* Icon routines */ +static DWORD GetShellLargeIconSize(void); +static DWORD GetShellSmallIconSize(void); +static void CreateIcons(void); +static int GetIconForDriver(int nItem); +static void AddDriverIcon(int nItem,int default_icon_index); + +// Context Menu handlers +static void UpdateMenu(HMENU hMenu); +static void InitTreeContextMenu(HMENU hTreeMenu); +static void InitBodyContextMenu(HMENU hBodyContextMenu); +static void ToggleShowFolder(int folder); +static BOOL HandleTreeContextMenu( HWND hWnd, WPARAM wParam, LPARAM lParam); +static BOOL HandleScreenShotContextMenu( HWND hWnd, WPARAM wParam, LPARAM lParam); +static void GamePicker_OnHeaderContextMenu(POINT pt, int nColumn); +static void GamePicker_OnBodyContextMenu(POINT pt); + +static void InitListView(void); +/* Re/initialize the ListView header columns */ +static void ResetColumnDisplay(BOOL first_time); + +static void CopyToolTipText (LPTOOLTIPTEXT lpttt); + +static void ProgressBarShow(void); +static void ProgressBarHide(void); +static void ResizeProgressBar(void); +static void ProgressBarStep(void); +static void ProgressBarStepParam(int iGameIndex, int nGameCount); + +static HWND InitProgressBar(HWND hParent); +static HWND InitToolbar(HWND hParent); +static HWND InitStatusBar(HWND hParent); + +static LRESULT Statusbar_MenuSelect (HWND hwnd, WPARAM wParam, LPARAM lParam); + +static void UpdateHistory(void); + + +static void RemoveCurrentGameCustomFolder(void); +static void RemoveGameCustomFolder(int driver_index); + +static void BeginListViewDrag(NM_LISTVIEW *pnmv); +static void MouseMoveListViewDrag(POINTS pt); +static void ButtonUpListViewDrag(POINTS p); + +static void CalculateBestScreenShotRect(HWND hWnd, RECT *pRect, BOOL restrict_height); + +BOOL MouseHasBeenMoved(void); +static void SwitchFullScreenMode(void); + +/*************************************************************************** + External variables + ***************************************************************************/ + +/*************************************************************************** + Internal structures + ***************************************************************************/ + +/* + * These next two structs represent how the icon information + * is stored in an ICO file. + */ +typedef struct +{ + BYTE bWidth; /* Width of the image */ + BYTE bHeight; /* Height of the image (times 2) */ + BYTE bColorCount; /* Number of colors in image (0 if >=8bpp) */ + BYTE bReserved; /* Reserved */ + WORD wPlanes; /* Color Planes */ + WORD wBitCount; /* Bits per pixel */ + DWORD dwBytesInRes; /* how many bytes in this resource? */ + DWORD dwImageOffset; /* where in the file is this image */ +} ICONDIRENTRY, *LPICONDIRENTRY; + +typedef struct +{ + UINT Width, Height, Colors; /* Width, Height and bpp */ + LPBYTE lpBits; /* ptr to DIB bits */ + DWORD dwNumBytes; /* how many bytes? */ + LPBITMAPINFO lpbi; /* ptr to header */ + LPBYTE lpXOR; /* ptr to XOR image bits */ + LPBYTE lpAND; /* ptr to AND image bits */ +} ICONIMAGE, *LPICONIMAGE; + +/* Which edges of a control are anchored to the corresponding side of the parent window */ +#define RA_LEFT 0x01 +#define RA_RIGHT 0x02 +#define RA_TOP 0x04 +#define RA_BOTTOM 0x08 +#define RA_ALL 0x0F + +#define RA_END 0 +#define RA_ID 1 +#define RA_HWND 2 + +typedef struct +{ + int type; /* Either RA_ID or RA_HWND, to indicate which member of u is used; or RA_END + to signify last entry */ + union /* Can identify a child window by control id or by handle */ + { + int id; /* Window control id */ + HWND hwnd; /* Window handle */ + } u; + BOOL setfont; /* Do we set this item's font? */ + int action; /* What to do when control is resized */ + void *subwindow; /* Points to a Resize structure for this subwindow; NULL if none */ +} ResizeItem; + +typedef struct +{ + RECT rect; /* Client rect of window; must be initialized before first resize */ + const ResizeItem* items; /* Array of subitems to be resized */ +} Resize; + +static void ResizeWindow(HWND hParent, Resize *r); +static void SetAllWindowsFont(HWND hParent, const Resize *r, HFONT hFont, BOOL bRedraw); + +/* List view Icon defines */ +#define LG_ICONMAP_WIDTH GetSystemMetrics(SM_CXICON) +#define LG_ICONMAP_HEIGHT GetSystemMetrics(SM_CYICON) +#define ICONMAP_WIDTH GetSystemMetrics(SM_CXSMICON) +#define ICONMAP_HEIGHT GetSystemMetrics(SM_CYSMICON) + +typedef struct tagPOPUPSTRING +{ + HMENU hMenu; + UINT uiString; +} POPUPSTRING; + +#define MAX_MENUS 3 + +#define SPLITTER_WIDTH 4 +#define MIN_VIEW_WIDTH 10 + +// Struct needed for Game Window Communication + +typedef struct +{ + LPPROCESS_INFORMATION ProcessInfo; + HWND hwndFound; +} FINDWINDOWHANDLE; + +/*************************************************************************** + Internal variables + ***************************************************************************/ + +static HWND hMain = NULL; +static HACCEL hAccel = NULL; + +static HWND hwndList = NULL; +static HWND hTreeView = NULL; +static HWND hProgWnd = NULL; +static HWND hTabCtrl = NULL; + +static HINSTANCE hInst = NULL; + +static HFONT hFont = NULL; /* Font for list view */ + +static int optionfolder_count = 0; + +/* global data--know where to send messages */ +static BOOL in_emulation; + +/* idle work at startup */ +static BOOL idle_work; + +/* object pool in use */ +static object_pool *mameui_pool; + +static int game_index; +static int progBarStep; + +static BOOL bDoGameCheck = FALSE; + +/* Tree control variables */ +static BOOL bShowTree = 1; +static BOOL bShowToolBar = 1; +static BOOL bShowStatusBar = 1; +static BOOL bShowTabCtrl = 1; +static BOOL bProgressShown = FALSE; +static BOOL bListReady = FALSE; + +#define WM_MAME32_FILECHANGED (WM_USER + 0) +#define WM_MAME32_AUDITGAME (WM_USER + 1) + +static PDIRWATCHER s_pWatcher; + +/* use a joystick subsystem in the gui? */ +static const struct OSDJoystick* g_pJoyGUI = NULL; + +/* store current keyboard state (in bools) here */ +static bool keyboard_state[4096]; /* __code_max #defines the number of internal key_codes */ + +/* search */ +static char g_SearchText[256]; +/* table copied from windows/inputs.c */ +// table entry indices +#define MAME_KEY 0 +#define DI_KEY 1 +#define VIRTUAL_KEY 2 +#define ASCII_KEY 3 + +// master keyboard translation table +static const int win_key_trans_table[][4] = +{ + // MAME key dinput key virtual key ascii + { ITEM_ID_ESC, DIK_ESCAPE, VK_ESCAPE, 27 }, + { ITEM_ID_1, DIK_1, '1', '1' }, + { ITEM_ID_2, DIK_2, '2', '2' }, + { ITEM_ID_3, DIK_3, '3', '3' }, + { ITEM_ID_4, DIK_4, '4', '4' }, + { ITEM_ID_5, DIK_5, '5', '5' }, + { ITEM_ID_6, DIK_6, '6', '6' }, + { ITEM_ID_7, DIK_7, '7', '7' }, + { ITEM_ID_8, DIK_8, '8', '8' }, + { ITEM_ID_9, DIK_9, '9', '9' }, + { ITEM_ID_0, DIK_0, '0', '0' }, + { ITEM_ID_BACKSPACE, DIK_BACK, VK_BACK, 8 }, + { ITEM_ID_TAB, DIK_TAB, VK_TAB, 9 }, + { ITEM_ID_Q, DIK_Q, 'Q', 'Q' }, + { ITEM_ID_W, DIK_W, 'W', 'W' }, + { ITEM_ID_E, DIK_E, 'E', 'E' }, + { ITEM_ID_R, DIK_R, 'R', 'R' }, + { ITEM_ID_T, DIK_T, 'T', 'T' }, + { ITEM_ID_Y, DIK_Y, 'Y', 'Y' }, + { ITEM_ID_U, DIK_U, 'U', 'U' }, + { ITEM_ID_I, DIK_I, 'I', 'I' }, + { ITEM_ID_O, DIK_O, 'O', 'O' }, + { ITEM_ID_P, DIK_P, 'P', 'P' }, + { ITEM_ID_OPENBRACE, DIK_LBRACKET, VK_OEM_4, '[' }, + { ITEM_ID_CLOSEBRACE, DIK_RBRACKET, VK_OEM_6, ']' }, + { ITEM_ID_ENTER, DIK_RETURN, VK_RETURN, 13 }, + { ITEM_ID_LCONTROL, DIK_LCONTROL, VK_LCONTROL, 0 }, + { ITEM_ID_A, DIK_A, 'A', 'A' }, + { ITEM_ID_S, DIK_S, 'S', 'S' }, + { ITEM_ID_D, DIK_D, 'D', 'D' }, + { ITEM_ID_F, DIK_F, 'F', 'F' }, + { ITEM_ID_G, DIK_G, 'G', 'G' }, + { ITEM_ID_H, DIK_H, 'H', 'H' }, + { ITEM_ID_J, DIK_J, 'J', 'J' }, + { ITEM_ID_K, DIK_K, 'K', 'K' }, + { ITEM_ID_L, DIK_L, 'L', 'L' }, + { ITEM_ID_COLON, DIK_SEMICOLON, VK_OEM_1, ';' }, + { ITEM_ID_QUOTE, DIK_APOSTROPHE, VK_OEM_7, '\'' }, + { ITEM_ID_TILDE, DIK_GRAVE, VK_OEM_3, '`' }, + { ITEM_ID_LSHIFT, DIK_LSHIFT, VK_LSHIFT, 0 }, + { ITEM_ID_BACKSLASH, DIK_BACKSLASH, VK_OEM_5, '\\' }, + { ITEM_ID_Z, DIK_Z, 'Z', 'Z' }, + { ITEM_ID_X, DIK_X, 'X', 'X' }, + { ITEM_ID_C, DIK_C, 'C', 'C' }, + { ITEM_ID_V, DIK_V, 'V', 'V' }, + { ITEM_ID_B, DIK_B, 'B', 'B' }, + { ITEM_ID_N, DIK_N, 'N', 'N' }, + { ITEM_ID_M, DIK_M, 'M', 'M' }, + { ITEM_ID_SLASH, DIK_SLASH, VK_OEM_2, '/' }, + { ITEM_ID_RSHIFT, DIK_RSHIFT, VK_RSHIFT, 0 }, + { ITEM_ID_ASTERISK, DIK_MULTIPLY, VK_MULTIPLY, '*' }, + { ITEM_ID_LALT, DIK_LMENU, VK_LMENU, 0 }, + { ITEM_ID_SPACE, DIK_SPACE, VK_SPACE, ' ' }, + { ITEM_ID_CAPSLOCK, DIK_CAPITAL, VK_CAPITAL, 0 }, + { ITEM_ID_F1, DIK_F1, VK_F1, 0 }, + { ITEM_ID_F2, DIK_F2, VK_F2, 0 }, + { ITEM_ID_F3, DIK_F3, VK_F3, 0 }, + { ITEM_ID_F4, DIK_F4, VK_F4, 0 }, + { ITEM_ID_F5, DIK_F5, VK_F5, 0 }, + { ITEM_ID_F6, DIK_F6, VK_F6, 0 }, + { ITEM_ID_F7, DIK_F7, VK_F7, 0 }, + { ITEM_ID_F8, DIK_F8, VK_F8, 0 }, + { ITEM_ID_F9, DIK_F9, VK_F9, 0 }, + { ITEM_ID_F10, DIK_F10, VK_F10, 0 }, + { ITEM_ID_NUMLOCK, DIK_NUMLOCK, VK_NUMLOCK, 0 }, + { ITEM_ID_SCRLOCK, DIK_SCROLL, VK_SCROLL, 0 }, + { ITEM_ID_7_PAD, DIK_NUMPAD7, VK_NUMPAD7, 0 }, + { ITEM_ID_8_PAD, DIK_NUMPAD8, VK_NUMPAD8, 0 }, + { ITEM_ID_9_PAD, DIK_NUMPAD9, VK_NUMPAD9, 0 }, + { ITEM_ID_MINUS_PAD, DIK_SUBTRACT, VK_SUBTRACT, 0 }, + { ITEM_ID_4_PAD, DIK_NUMPAD4, VK_NUMPAD4, 0 }, + { ITEM_ID_5_PAD, DIK_NUMPAD5, VK_NUMPAD5, 0 }, + { ITEM_ID_6_PAD, DIK_NUMPAD6, VK_NUMPAD6, 0 }, + { ITEM_ID_PLUS_PAD, DIK_ADD, VK_ADD, 0 }, + { ITEM_ID_1_PAD, DIK_NUMPAD1, VK_NUMPAD1, 0 }, + { ITEM_ID_2_PAD, DIK_NUMPAD2, VK_NUMPAD2, 0 }, + { ITEM_ID_3_PAD, DIK_NUMPAD3, VK_NUMPAD3, 0 }, + { ITEM_ID_0_PAD, DIK_NUMPAD0, VK_NUMPAD0, 0 }, + { ITEM_ID_DEL_PAD, DIK_DECIMAL, VK_DECIMAL, 0 }, + { ITEM_ID_F11, DIK_F11, VK_F11, 0 }, + { ITEM_ID_F12, DIK_F12, VK_F12, 0 }, + { ITEM_ID_F13, DIK_F13, VK_F13, 0 }, + { ITEM_ID_F14, DIK_F14, VK_F14, 0 }, + { ITEM_ID_F15, DIK_F15, VK_F15, 0 }, + { ITEM_ID_ENTER_PAD, DIK_NUMPADENTER, VK_RETURN, 0 }, + { ITEM_ID_RCONTROL, DIK_RCONTROL, VK_RCONTROL, 0 }, + { ITEM_ID_SLASH_PAD, DIK_DIVIDE, VK_DIVIDE, 0 }, + { ITEM_ID_PRTSCR, DIK_SYSRQ, 0, 0 }, + { ITEM_ID_RALT, DIK_RMENU, VK_RMENU, 0 }, + { ITEM_ID_HOME, DIK_HOME, VK_HOME, 0 }, + { ITEM_ID_UP, DIK_UP, VK_UP, 0 }, + { ITEM_ID_PGUP, DIK_PRIOR, VK_PRIOR, 0 }, + { ITEM_ID_LEFT, DIK_LEFT, VK_LEFT, 0 }, + { ITEM_ID_RIGHT, DIK_RIGHT, VK_RIGHT, 0 }, + { ITEM_ID_END, DIK_END, VK_END, 0 }, + { ITEM_ID_DOWN, DIK_DOWN, VK_DOWN, 0 }, + { ITEM_ID_PGDN, DIK_NEXT, VK_NEXT, 0 }, + { ITEM_ID_INSERT, DIK_INSERT, VK_INSERT, 0 }, + { ITEM_ID_DEL, DIK_DELETE, VK_DELETE, 0 }, + { ITEM_ID_LWIN, DIK_LWIN, VK_LWIN, 0 }, + { ITEM_ID_RWIN, DIK_RWIN, VK_RWIN, 0 }, + { ITEM_ID_MENU, DIK_APPS, VK_APPS, 0 }, + { ITEM_ID_PAUSE, DIK_PAUSE, VK_PAUSE, 0 }, + { ITEM_ID_CANCEL, 0, VK_CANCEL, 0 }, +}; + + + +typedef struct +{ + char name[40]; // functionality name (optional) + input_seq is; // the input sequence (the keys pressed) + UINT func_id; // the identifier + input_seq* (*const getiniptr)(void);// pointer to function to get the value from .ini file +} GUISequence; + +static const GUISequence GUISequenceControl[]= +{ + {"gui_key_up", input_seq(), ID_UI_UP, Get_ui_key_up }, + {"gui_key_down", input_seq(), ID_UI_DOWN, Get_ui_key_down }, + {"gui_key_left", input_seq(), ID_UI_LEFT, Get_ui_key_left }, + {"gui_key_right", input_seq(), ID_UI_RIGHT, Get_ui_key_right }, + {"gui_key_start", input_seq(), ID_UI_START, Get_ui_key_start }, + {"gui_key_pgup", input_seq(), ID_UI_PGUP, Get_ui_key_pgup }, + {"gui_key_pgdwn", input_seq(), ID_UI_PGDOWN, Get_ui_key_pgdwn }, + {"gui_key_home", input_seq(), ID_UI_HOME, Get_ui_key_home }, + {"gui_key_end", input_seq(), ID_UI_END, Get_ui_key_end }, + {"gui_key_ss_change", input_seq(), IDC_SSFRAME, Get_ui_key_ss_change }, + {"gui_key_history_up", input_seq(), ID_UI_HISTORY_UP, Get_ui_key_history_up }, + {"gui_key_history_down", input_seq(), ID_UI_HISTORY_DOWN, Get_ui_key_history_down }, + + {"gui_key_context_filters", input_seq(), ID_CONTEXT_FILTERS, Get_ui_key_context_filters }, + {"gui_key_select_random", input_seq(), ID_CONTEXT_SELECT_RANDOM, Get_ui_key_select_random }, + {"gui_key_game_audit", input_seq(), ID_GAME_AUDIT, Get_ui_key_game_audit }, + {"gui_key_game_properties", input_seq(), ID_GAME_PROPERTIES, Get_ui_key_game_properties }, + {"gui_key_help_contents", input_seq(), ID_HELP_CONTENTS, Get_ui_key_help_contents }, + {"gui_key_update_gamelist", input_seq(), ID_UPDATE_GAMELIST, Get_ui_key_update_gamelist }, + {"gui_key_view_folders", input_seq(), ID_VIEW_FOLDERS, Get_ui_key_view_folders }, + {"gui_key_view_fullscreen", input_seq(), ID_VIEW_FULLSCREEN, Get_ui_key_view_fullscreen }, + {"gui_key_view_pagetab", input_seq(), ID_VIEW_PAGETAB, Get_ui_key_view_pagetab }, + {"gui_key_view_picture_area", input_seq(), ID_VIEW_PICTURE_AREA, Get_ui_key_view_picture_area }, + {"gui_key_view_status", input_seq(), ID_VIEW_STATUS, Get_ui_key_view_status }, + {"gui_key_view_toolbars", input_seq(), ID_VIEW_TOOLBARS, Get_ui_key_view_toolbars }, + + {"gui_key_view_tab_cabinet", input_seq(), ID_VIEW_TAB_CABINET, Get_ui_key_view_tab_cabinet }, + {"gui_key_view_tab_cpanel", input_seq(), ID_VIEW_TAB_CONTROL_PANEL, Get_ui_key_view_tab_cpanel }, + {"gui_key_view_tab_flyer", input_seq(), ID_VIEW_TAB_FLYER, Get_ui_key_view_tab_flyer }, + {"gui_key_view_tab_history", input_seq(), ID_VIEW_TAB_HISTORY, Get_ui_key_view_tab_history }, + {"gui_key_view_tab_marquee", input_seq(), ID_VIEW_TAB_MARQUEE, Get_ui_key_view_tab_marquee }, + {"gui_key_view_tab_screenshot", input_seq(), ID_VIEW_TAB_SCREENSHOT, Get_ui_key_view_tab_screenshot }, + {"gui_key_view_tab_title", input_seq(), ID_VIEW_TAB_TITLE, Get_ui_key_view_tab_title }, + {"gui_key_view_tab_pcb", input_seq(), ID_VIEW_TAB_PCB, Get_ui_key_view_tab_pcb }, + {"gui_key_quit", input_seq(), ID_FILE_EXIT, Get_ui_key_quit }, +}; + + +#define NUM_GUI_SEQUENCES (sizeof(GUISequenceControl) / sizeof(GUISequenceControl[0])) + + +static UINT lastColumnClick = 0; +static WNDPROC g_lpHistoryWndProc = NULL; +static WNDPROC g_lpPictureFrameWndProc = NULL; +static WNDPROC g_lpPictureWndProc = NULL; + +static POPUPSTRING popstr[MAX_MENUS + 1]; + +/* Tool and Status bar variables */ +static HWND hStatusBar = 0; +static HWND s_hToolBar = 0; + +/* Column Order as Displayed */ +static BOOL oldControl = FALSE; +static BOOL xpControl = FALSE; + +/* Used to recalculate the main window layout */ +static int bottomMargin; +static int topMargin; +static int have_history = FALSE; + +static BOOL have_selection = FALSE; + +static HBITMAP hMissing_bitmap = NULL; + +/* Icon variables */ +static HIMAGELIST hLarge = NULL; +static HIMAGELIST hSmall = NULL; +static HIMAGELIST hHeaderImages = NULL; +static int *icon_index = NULL; /* for custom per-game icons */ + +static const TBBUTTON tbb[] = +{ + {0, ID_VIEW_FOLDERS, TBSTATE_ENABLED, TBSTYLE_CHECK, {0, 0}, 0, 0}, + {1, ID_VIEW_PICTURE_AREA,TBSTATE_ENABLED, TBSTYLE_CHECK, {0, 0}, 0, 1}, + {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, {0, 0}, 0, 0}, + {2, ID_VIEW_LARGE_ICON, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 2}, + {3, ID_VIEW_SMALL_ICON, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 3}, + {4, ID_VIEW_LIST_MENU, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 4}, + {5, ID_VIEW_DETAIL, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 5}, + {6, ID_VIEW_GROUPED, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 6}, + {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, {0, 0}, 0, 0}, + {7, ID_HELP_ABOUT, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0, 0}, 0, 7}, + {8, ID_HELP_CONTENTS, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0, 0}, 0, 8} +}; + +#define NUM_TOOLBUTTONS (sizeof(tbb) / sizeof(tbb[0])) + +#define NUM_TOOLTIPS 9 + +static const TCHAR szTbStrings[NUM_TOOLTIPS + 1][30] = +{ + TEXT("Toggle Folder List"), + TEXT("Toggle Screen Shot"), + TEXT("Large Icons"), + TEXT("Small Icons"), + TEXT("List"), + TEXT("Details"), + TEXT("Grouped"), + TEXT("About"), + TEXT("Help") +}; + +static const int CommandToString[] = +{ + ID_VIEW_FOLDERS, + ID_VIEW_PICTURE_AREA, + ID_VIEW_LARGE_ICON, + ID_VIEW_SMALL_ICON, + ID_VIEW_LIST_MENU, + ID_VIEW_DETAIL, + ID_VIEW_GROUPED, + ID_HELP_ABOUT, + ID_HELP_CONTENTS, + -1 +}; + +static const int s_nPickers[] = +{ + IDC_LIST +}; + + +/* How to resize toolbar sub window */ +static ResizeItem toolbar_resize_items[] = +{ + { RA_ID, { ID_TOOLBAR_EDIT }, TRUE, RA_LEFT | RA_TOP, NULL }, + { RA_END, { 0 }, FALSE, 0, NULL } +}; + +static Resize toolbar_resize = { {0, 0, 0, 0}, toolbar_resize_items }; + +/* How to resize main window */ +static ResizeItem main_resize_items[] = +{ + { RA_HWND, { 0 }, FALSE, RA_LEFT | RA_RIGHT | RA_TOP, &toolbar_resize }, + { RA_HWND, { 0 }, FALSE, RA_LEFT | RA_RIGHT | RA_BOTTOM, NULL }, + { RA_ID, { IDC_DIVIDER }, FALSE, RA_LEFT | RA_RIGHT | RA_TOP, NULL }, + { RA_ID, { IDC_TREE }, TRUE, RA_LEFT | RA_BOTTOM | RA_TOP, NULL }, + { RA_ID, { IDC_LIST }, TRUE, RA_ALL, NULL }, + { RA_ID, { IDC_SPLITTER }, FALSE, RA_LEFT | RA_BOTTOM | RA_TOP, NULL }, + { RA_ID, { IDC_SPLITTER2 },FALSE, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL }, + { RA_ID, { IDC_SSFRAME }, FALSE, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL }, + { RA_ID, { IDC_SSPICTURE },FALSE, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL }, + { RA_ID, { IDC_HISTORY }, TRUE, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL }, + { RA_ID, { IDC_SSTAB }, FALSE, RA_RIGHT | RA_TOP, NULL }, + { RA_END, { 0 }, FALSE, 0, NULL } +}; + +static Resize main_resize = { {0, 0, 0, 0}, main_resize_items }; + +/* last directory for common file dialogs */ +TCHAR last_directory[MAX_PATH]; + +/* system-wide window message sent out with an ATOM of the current game name + each time it changes */ +static UINT g_mame32_message = 0; + +static BOOL use_gui_romloading = FALSE; + +static BOOL g_listview_dragging = FALSE; +static HIMAGELIST himl_drag; +static int game_dragged; /* which game started the drag */ +static HTREEITEM prev_drag_drop_target; /* which tree view item we're currently highlighting */ + +static BOOL g_in_treeview_edit = FALSE; + +/*************************************************************************** + Global variables + ***************************************************************************/ + +/* Background Image handles also accessed from TreeView.c */ +static HPALETTE hPALbg = 0; +static HBITMAP hBackground = 0; +static MYBITMAPINFO bmDesc; + +/* List view Column text */ +extern const LPCTSTR column_names[COLUMN_MAX] = +{ + TEXT("Machine"), + TEXT("Source"), + TEXT("Directory"), + TEXT("Type"), + TEXT("Screen"), + TEXT("Manufacturer"), + TEXT("Year"), + TEXT("Played"), + TEXT("Play Time"), + TEXT("Clone Of"), + TEXT("Trackball"), +#ifdef SHOW_COLUMN_SAMPLES + TEXT("Samples"), +#endif +#ifdef SHOW_COLUMN_ROMS + TEXT("ROMs"), +#endif +}; + +/*************************************************************************** + Message Macros + ***************************************************************************/ + +#ifndef StatusBar_GetItemRect +#define StatusBar_GetItemRect(hWnd, iPart, lpRect) \ + SendMessage(hWnd, SB_GETRECT, (WPARAM) iPart, (LPARAM) (LPRECT) lpRect) +#endif + +#ifndef ToolBar_CheckButton +#define ToolBar_CheckButton(hWnd, idButton, fCheck) \ + SendMessage(hWnd, TB_CHECKBUTTON, (WPARAM)idButton, (LPARAM)MAKELONG(fCheck, 0)) +#endif + +//============================================================ +// winui_output_error +//============================================================ + + +class mameui_output_error : public osd_output +{ +public: + virtual void output_callback(osd_output_channel channel, const char *msg, va_list args) + { + if (channel == OSD_OUTPUT_CHANNEL_ERROR) + { + char buffer[1024]; + + // if we are in fullscreen mode, go to windowed mode + if ((video_config.windowed == 0) && !win_window_list.empty()) + winwindow_toggle_full_screen(); + + vsnprintf(buffer, ARRAY_LENGTH(buffer), msg, args);printf("%s\n",buffer); + win_message_box_utf8(!win_window_list.empty() ? win_window_list.front()->platform_window<HWND>() : hMain, buffer, MAMEUINAME, MB_ICONERROR | MB_OK); + } + else + chain_output(channel, msg, args); + } +}; + +static std::wstring s2ws(const std::string& s) +{ + int len; + int slength = (int)s.length() + 1; + len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0); + wchar_t* buf = new wchar_t[len]; + MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len); + std::wstring r(buf); + delete[] buf; + return r; +} + + +/*************************************************************************** + External functions + ***************************************************************************/ +static DWORD RunMAME(int nGameIndex, const play_options *playopts) +{ + time_t start, end; + double elapsedtime; + int i; + //mame_options mame_opts; seems useless.... + windows_options global_opts; + std::string error_string; + // set up MAME options + // mame_opts = mame_options_init(mame_win_options); + + // Tell mame were to get the INIs + SetDirectories(global_opts); + + // set some startup options + global_opts.set_value(OPTION_LANGUAGE, GetLanguageUI(), OPTION_PRIORITY_CMDLINE, error_string); + global_opts.set_value(OPTION_PLUGINS, GetEnablePlugins(), OPTION_PRIORITY_CMDLINE, error_string); + global_opts.set_value(OPTION_PLUGIN, GetPlugins(), OPTION_PRIORITY_CMDLINE, error_string); + + // add image specific device options + //mame_opts.set_system_name(global_opts, driver_list::driver(nGameIndex).name); + global_opts.set_value(OPTION_SYSTEMNAME, driver_list::driver(nGameIndex).name, OPTION_PRIORITY_CMDLINE, error_string); + + // set any specified play options + if (playopts_apply == 0x57) + { + if (playopts->record) + global_opts.set_value(OPTION_RECORD, playopts->record, OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->playback) + global_opts.set_value(OPTION_PLAYBACK, playopts->playback, OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->state) + global_opts.set_value(OPTION_STATE, playopts->state, OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->wavwrite) + global_opts.set_value(OPTION_WAVWRITE, playopts->wavwrite, OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->mngwrite) + global_opts.set_value(OPTION_MNGWRITE, playopts->mngwrite, OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->aviwrite) + global_opts.set_value(OPTION_AVIWRITE, playopts->aviwrite, OPTION_PRIORITY_CMDLINE,error_string); + } + + // Mame will parse all the needed .ini files. + + // prepare MAME32 to run the game + ShowWindow(hMain, SW_HIDE); + + for (i = 0; i < ARRAY_LENGTH(s_nPickers); i++) + Picker_ClearIdle(GetDlgItem(hMain, s_nPickers[i])); + + // run the emulation + // Time the game run. + time(&start); + windows_osd_interface osd(global_opts); + // output errors to message boxes + mameui_output_error winerror; + osd_output::push(&winerror); + osd.register_options(); + mame_machine_manager *manager = mame_machine_manager::instance(global_opts, osd); + load_translation(global_opts); + manager->start_luaengine(); + manager->execute(); + osd_output::pop(&winerror); + global_free(manager); + // Calc the duration + time(&end); + elapsedtime = end - start; + // Increment our playtime. + IncrementPlayTime(nGameIndex, elapsedtime); + + // clear any specified play options + // do it this way to preserve slots and software entries + if (playopts_apply == 0x57) + { + windows_options o; + load_options(o, nGameIndex); + if (playopts->record) + o.set_value(OPTION_RECORD, "", OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->playback) + o.set_value(OPTION_PLAYBACK, "", OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->state) + o.set_value(OPTION_STATE, "", OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->wavwrite) + o.set_value(OPTION_WAVWRITE, "", OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->mngwrite) + o.set_value(OPTION_MNGWRITE, "", OPTION_PRIORITY_CMDLINE,error_string); + if (playopts->aviwrite) + o.set_value(OPTION_AVIWRITE, "", OPTION_PRIORITY_CMDLINE,error_string); + // apply the above to the ini file + save_options(o, nGameIndex); + } + playopts_apply = 0; + + // the emulation is complete; continue + for (i = 0; i < ARRAY_LENGTH(s_nPickers); i++) + Picker_ResetIdle(GetDlgItem(hMain, s_nPickers[i])); + ShowWindow(hMain, SW_SHOW); + SetForegroundWindow(hMain); + + return (DWORD)0; +} + +int MameUIMain(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow) +{ + use_gui_romloading = TRUE; + + if (__argc != 1) + { + /* Rename main because gcc will use it instead of WinMain even with -mwindows */ + extern int /*DECL_SPEC*/ utf8_main(int, char*[]); + char **utf8_argv; + int i, rc; + + /* convert arguments to UTF-8 */ + utf8_argv = (char **) malloc(__argc * sizeof(*__targv)); + if (utf8_argv == NULL) + return 999; + for (i = 0; i < __argc; i++) + { + utf8_argv[i] = utf8_from_tstring(__targv[i]); + if (utf8_argv[i] == NULL) + { + free(utf8_argv); + return 999; + } + } + + /* run utf8_main */ + rc = utf8_main(__argc, utf8_argv); + + /* free arguments */ + for (i = 0; i < __argc; i++) + osd_free(utf8_argv[i]); + free(utf8_argv); + + exit(rc); + } + if (!Win32UI_init(hInstance, lpCmdLine, nCmdShow)) + return 1; + + // pump message, but quit on WM_QUIT + while(PumpMessage()) + ; + + Win32UI_exit(); + return 0; +} + + +HWND GetMainWindow(void) +{ + return hMain; +} + +HWND GetTreeView(void) +{ + return hTreeView; +} + +object_pool *GetMameUIMemoryPool(void) +{ + return mameui_pool; +} + +void GetRealColumnOrder(int order[]) +{ + int tmpOrder[COLUMN_MAX]; + int nColumnMax; + int i; + BOOL res; + + nColumnMax = Picker_GetNumColumns(hwndList); + + /* Get the Column Order and save it */ + if (!oldControl) + { + res = ListView_GetColumnOrderArray(hwndList, nColumnMax, tmpOrder); + + for (i = 0; i < nColumnMax; i++) + { + order[i] = Picker_GetRealColumnFromViewColumn(hwndList, tmpOrder[i]); + } + } +} + +/* + * PURPOSE: Format raw data read from an ICO file to an HICON + * PARAMS: PBYTE ptrBuffer - Raw data from an ICO file + * UINT nBufferSize - Size of buffer ptrBuffer + * RETURNS: HICON - handle to the icon, NULL for failure + * History: July '95 - Created + * March '00- Seriously butchered from MSDN for mine own + * purposes, sayeth H0ek. + */ +static HICON FormatICOInMemoryToHICON(PBYTE ptrBuffer, UINT nBufferSize) +{ + ICONIMAGE IconImage; + LPICONDIRENTRY lpIDE = NULL; + UINT nNumImages; + UINT nBufferIndex = 0; + HICON hIcon = NULL; + + /* Is there a WORD? */ + if (nBufferSize < sizeof(WORD)) + { + return NULL; + } + + /* Was it 'reserved' ? (ie 0) */ + if ((WORD)(ptrBuffer[nBufferIndex]) != 0) + { + return NULL; + } + + nBufferIndex += sizeof(WORD); + + /* Is there a WORD? */ + if (nBufferSize - nBufferIndex < sizeof(WORD)) + { + return NULL; + } + + /* Was it type 1? */ + if ((WORD)(ptrBuffer[nBufferIndex]) != 1) + { + return NULL; + } + + nBufferIndex += sizeof(WORD); + + /* Is there a WORD? */ + if (nBufferSize - nBufferIndex < sizeof(WORD)) + { + return NULL; + } + + /* Then that's the number of images in the ICO file */ + nNumImages = (WORD)(ptrBuffer[nBufferIndex]); + + /* Is there at least one icon in the file? */ + if ( nNumImages < 1 ) + { + return NULL; + } + + nBufferIndex += sizeof(WORD); + + /* Is there enough space for the icon directory entries? */ + if ((nBufferIndex + nNumImages * sizeof(ICONDIRENTRY)) > nBufferSize) + { + return NULL; + } + + /* Assign icon directory entries from buffer */ + lpIDE = (LPICONDIRENTRY)(&ptrBuffer[nBufferIndex]); + nBufferIndex += nNumImages * sizeof (ICONDIRENTRY); + + IconImage.dwNumBytes = lpIDE->dwBytesInRes; + + /* Seek to beginning of this image */ + if ( lpIDE->dwImageOffset > nBufferSize ) + { + return NULL; + } + + nBufferIndex = lpIDE->dwImageOffset; + + /* Read it in */ + if ((nBufferIndex + lpIDE->dwBytesInRes) > nBufferSize) + { + return NULL; + } + + IconImage.lpBits = &ptrBuffer[nBufferIndex]; + nBufferIndex += lpIDE->dwBytesInRes; + /* It failed, odds are good we're on NT so try the non-Ex way */ + if (hIcon == NULL) + { + /* We would break on NT if we try with a 16bpp image */ + if (((LPBITMAPINFO)IconImage.lpBits)->bmiHeader.biBitCount != 16) + { + hIcon = CreateIconFromResourceEx(IconImage.lpBits, IconImage.dwNumBytes, TRUE, 0x00030000,0,0,LR_DEFAULTSIZE); + } + } + return hIcon; +} + +HICON LoadIconFromFile(const char *iconname) +{ + HICON hIcon = 0; + struct stat file_stat; + char tmpStr[MAX_PATH]; + char tmpIcoName[MAX_PATH]; + const char* sDirName = GetImgDir(); + PBYTE bufferPtr; + util::archive_file::error ziperr; + util::archive_file::ptr zip; + int res = 0; + + sprintf(tmpStr, "%s/%s.ico", GetIconsDir(), iconname); + if (stat(tmpStr, &file_stat) != 0 || (hIcon = win_extract_icon_utf8(hInst, tmpStr, 0)) == 0) + { + sprintf(tmpStr, "%s/%s.ico", sDirName, iconname); + if (stat(tmpStr, &file_stat) != 0 + || (hIcon = win_extract_icon_utf8(hInst, tmpStr, 0)) == 0) + { + sprintf(tmpStr, "%s/icons.zip", GetIconsDir()); + sprintf(tmpIcoName, "%s.ico", iconname); + + ziperr = util::archive_file::open_zip(tmpStr, zip); + if (ziperr == util::archive_file::error::NONE) + { + res = zip->search(tmpIcoName, false); + if (res >= 0) + { + bufferPtr = (PBYTE)malloc(zip->current_uncompressed_length()); + if (bufferPtr) + { + ziperr = zip->decompress(bufferPtr, zip->current_uncompressed_length()); + if (ziperr == util::archive_file::error::NONE) + { + hIcon = FormatICOInMemoryToHICON(bufferPtr, zip->current_uncompressed_length()); + } + free(bufferPtr); + } + } + zip.reset(); + } + else + { + sprintf(tmpStr, "%s/icons.7z", GetIconsDir()); + sprintf(tmpIcoName, "%s.ico", iconname); + + ziperr = util::archive_file::open_zip(tmpStr, zip); + if (ziperr == util::archive_file::error::NONE) + { + res = zip->search(tmpIcoName, false); + if (res >= 0) + { + bufferPtr = (PBYTE)malloc(zip->current_uncompressed_length()); + if (bufferPtr) + { + ziperr = zip->decompress(bufferPtr, zip->current_uncompressed_length()); + if (ziperr == util::archive_file::error::NONE) + { + hIcon = FormatICOInMemoryToHICON(bufferPtr, zip->current_uncompressed_length()); + } + free(bufferPtr); + } + } + zip.reset(); + } + } + } + } + return hIcon; +} + +/* Return the number of folders with options */ +void SetNumOptionFolders(int count) +{ + optionfolder_count = count; +} + +/* search */ +const char * GetSearchText(void) +{ + return g_SearchText; +} + + +/* Sets the treeview and listviews sizes in accordance with their visibility and the splitters */ +static void ResizeTreeAndListViews(BOOL bResizeHidden) +{ + int i; + int nLastWidth = 0; + int nLastWidth2 = 0; + int nLeftWindowWidth = 0; + RECT rect; + BOOL bVisible; + //int nLastOverlap = -1; + + /* Size the List Control in the Picker */ + GetClientRect(hMain, &rect); + + if (bShowStatusBar) + rect.bottom -= bottomMargin; + if (bShowToolBar) + rect.top += topMargin; + + /* Tree control */ + ShowWindow(GetDlgItem(hMain, IDC_TREE), bShowTree ? SW_SHOW : SW_HIDE); + + for (i = 0; g_splitterInfo[i].nSplitterWindow; i++) + { + bVisible = GetWindowLong(GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow), GWL_STYLE) & WS_VISIBLE ? TRUE : FALSE; + if (bResizeHidden || bVisible) + { + nLeftWindowWidth = nSplitterOffset[i] - SPLITTER_WIDTH/2 - nLastWidth; + + /* special case for the rightmost pane when the screenshot is gone */ + if (!GetShowScreenShot() && !g_splitterInfo[i+1].nSplitterWindow) + nLeftWindowWidth = rect.right - nLastWidth; + + /* woah? are we overlapping ourselves? */ + if (nLeftWindowWidth < MIN_VIEW_WIDTH) + { + //nLastOverlap = i; + nLastWidth = nLastWidth2; + nLeftWindowWidth = nSplitterOffset[i] - MIN_VIEW_WIDTH - (SPLITTER_WIDTH*3/2) - nLastWidth; + i--; + } + + MoveWindow(GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow), nLastWidth, rect.top + 2, + nLeftWindowWidth, (rect.bottom - rect.top) - 4 , TRUE); + + MoveWindow(GetDlgItem(hMain, g_splitterInfo[i].nSplitterWindow), nSplitterOffset[i], rect.top + 2, + SPLITTER_WIDTH, (rect.bottom - rect.top) - 4, TRUE); + } + + if (bVisible) + { + nLastWidth2 = nLastWidth; + nLastWidth += nLeftWindowWidth + SPLITTER_WIDTH; + } + } +} + +/* Adjust the list view and screenshot button based on GetShowScreenShot() */ +void UpdateScreenShot(void) +{ + RECT rect; + //int nWidth; + RECT fRect; + POINT p = {0, 0}; + + /* first time through can't do this stuff */ + if (hwndList == NULL) + return; + + /* Size the List Control in the Picker */ + GetClientRect(hMain, &rect); + + if (bShowStatusBar) + rect.bottom -= bottomMargin; + if (bShowToolBar) + rect.top += topMargin; + + if (GetShowScreenShot()) + { + //nWidth = nSplitterOffset[GetSplitterCount() - 1]; + CheckMenuItem(GetMenu(hMain),ID_VIEW_PICTURE_AREA, MF_CHECKED); + ToolBar_CheckButton(s_hToolBar, ID_VIEW_PICTURE_AREA, MF_CHECKED); + } + else + { + //nWidth = rect.right; + CheckMenuItem(GetMenu(hMain),ID_VIEW_PICTURE_AREA, MF_UNCHECKED); + ToolBar_CheckButton(s_hToolBar, ID_VIEW_PICTURE_AREA, MF_UNCHECKED); + } + + ResizeTreeAndListViews(FALSE); + + FreeScreenShot(); + + if (have_selection) + { +#ifdef MESS + if (!g_szSelectedItem[0] || !LoadScreenShotEx(Picker_GetSelectedItem(hwndList), g_szSelectedItem, + TabView_GetCurrentTab(hTabCtrl))) +#endif + // load and set image, or empty it if we don't have one + LoadScreenShot(Picker_GetSelectedItem(hwndList), TabView_GetCurrentTab(hTabCtrl)); + } + + // figure out if we have a history or not, to place our other windows properly + UpdateHistory(); + + // setup the picture area + + if (GetShowScreenShot()) + { + DWORD dwStyle; + DWORD dwStyleEx; + BOOL showing_history; + + ClientToScreen(hMain, &p); + GetWindowRect(GetDlgItem(hMain, IDC_SSFRAME), &fRect); + OffsetRect(&fRect, -p.x, -p.y); + + // show history on this tab IFF + // - we have history for the game + // - we're on the first tab + // - we DON'T have a separate history tab + showing_history = (have_history && (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() || GetHistoryTab() == TAB_ALL ) && + GetShowTab(TAB_HISTORY) == FALSE); + CalculateBestScreenShotRect(GetDlgItem(hMain, IDC_SSFRAME), &rect,showing_history); + + dwStyle = GetWindowLong(GetDlgItem(hMain, IDC_SSPICTURE), GWL_STYLE); + dwStyleEx = GetWindowLong(GetDlgItem(hMain, IDC_SSPICTURE), GWL_EXSTYLE); + + AdjustWindowRectEx(&rect, dwStyle, FALSE, dwStyleEx); + MoveWindow(GetDlgItem(hMain, IDC_SSPICTURE), + fRect.left + rect.left, + fRect.top + rect.top, + rect.right - rect.left, + rect.bottom - rect.top, + TRUE); + + ShowWindow(GetDlgItem(hMain,IDC_SSPICTURE), + (TabView_GetCurrentTab(hTabCtrl) != TAB_HISTORY) ? SW_SHOW : SW_HIDE); + ShowWindow(GetDlgItem(hMain,IDC_SSFRAME),SW_SHOW); + ShowWindow(GetDlgItem(hMain,IDC_SSTAB),bShowTabCtrl ? SW_SHOW : SW_HIDE); + + InvalidateRect(GetDlgItem(hMain,IDC_SSPICTURE),NULL,FALSE); + } + else + { + ShowWindow(GetDlgItem(hMain,IDC_SSPICTURE),SW_HIDE); + ShowWindow(GetDlgItem(hMain,IDC_SSFRAME),SW_HIDE); + ShowWindow(GetDlgItem(hMain,IDC_SSTAB),SW_HIDE); + } + +} + +void ResizePickerControls(HWND hWnd) +{ + RECT frameRect; + RECT rect, sRect; + int nListWidth, nScreenShotWidth; + static BOOL firstTime = TRUE; + int doSSControls = TRUE; + int i, nSplitterCount; + + nSplitterCount = GetSplitterCount(); + + /* Size the List Control in the Picker */ + GetClientRect(hWnd, &rect); + + /* Calc the display sizes based on g_splitterInfo */ + if (firstTime) + { + RECT rWindow; + + for (i = 0; i < nSplitterCount; i++) + nSplitterOffset[i] = rect.right * g_splitterInfo[i].dPosition; + + GetWindowRect(hStatusBar, &rWindow); + bottomMargin = rWindow.bottom - rWindow.top; + GetWindowRect(s_hToolBar, &rWindow); + topMargin = rWindow.bottom - rWindow.top; + /*buttonMargin = (sRect.bottom + 4); */ + + firstTime = FALSE; + } + else + { + doSSControls = GetShowScreenShot(); + } + + if (bShowStatusBar) + rect.bottom -= bottomMargin; + + if (bShowToolBar) + rect.top += topMargin; + + MoveWindow(GetDlgItem(hWnd, IDC_DIVIDER), rect.left, rect.top - 4, rect.right, 2, TRUE); + + ResizeTreeAndListViews(TRUE); + + nListWidth = nSplitterOffset[nSplitterCount-1]; + nScreenShotWidth = (rect.right - nListWidth) - 4; + + /* Screen shot Page tab control */ + if (bShowTabCtrl) + { + MoveWindow(GetDlgItem(hWnd, IDC_SSTAB), nListWidth + 4, rect.top + 2, + nScreenShotWidth - 2, rect.top + 20, doSSControls); + rect.top += 20; + } + + /* resize the Screen shot frame */ + MoveWindow(GetDlgItem(hWnd, IDC_SSFRAME), nListWidth + 4, rect.top + 2, + nScreenShotWidth - 2, (rect.bottom - rect.top) - 4, doSSControls); + + /* The screen shot controls */ + GetClientRect(GetDlgItem(hWnd, IDC_SSFRAME), &frameRect); + + /* Text control - game history */ + sRect.left = nListWidth + 14; + sRect.right = sRect.left + (nScreenShotWidth - 22); + + + if (GetShowTab(TAB_HISTORY)) + { + // We're using the new mode, with the history filling the entire tab (almost) + sRect.top = rect.top + 14; + sRect.bottom = (rect.bottom - rect.top) - 30; + } + else + { + // We're using the original mode, with the history beneath the SS picture + sRect.top = rect.top + 264; + sRect.bottom = (rect.bottom - rect.top) - 278; + } + + MoveWindow(GetDlgItem(hWnd, IDC_HISTORY), + sRect.left, sRect.top, + sRect.right - sRect.left, sRect.bottom, doSSControls); + + /* the other screen shot controls will be properly placed in UpdateScreenshot() */ + +} + + +char *ModifyThe(const char *str) +{ + static int bufno = 0; + static char buffer[4][255]; + + if (strncmp(str, "The ", 4) == 0) + { + char *s, *p; + char temp[255]; + + strcpy(temp, &str[4]); + + bufno = (bufno + 1) % 4; + + s = buffer[bufno]; + + /* Check for version notes in parens */ + p = strchr(temp, '('); + if (p) + { + p[-1] = '\0'; + } + + strcpy(s, temp); + strcat(s, ", The"); + + if (p) + { + strcat(s, " "); + strcat(s, p); + } + + return s; + } + return (char *)str; +} + +HBITMAP GetBackgroundBitmap(void) +{ + return hBackground; +} + +HPALETTE GetBackgroundPalette(void) +{ + return hPALbg; +} + +MYBITMAPINFO * GetBackgroundInfo(void) +{ + return &bmDesc; +} + +BOOL GetUseOldControl(void) +{ + return oldControl; +} + +BOOL GetUseXPControl(void) +{ + return xpControl; +} + +int GetMinimumScreenShotWindowWidth(void) +{ + BITMAP bmp; + GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp); + + return bmp.bmWidth + 6; // 6 is for a little breathing room +} + + +int GetParentIndex(const game_driver *driver) +{ + return GetGameNameIndex(driver->parent); +} + +int GetParentRomSetIndex(const game_driver *driver) +{ + int nParentIndex = GetGameNameIndex(driver->parent); + + if( nParentIndex >= 0) + { + if ((driver_list::driver(nParentIndex).flags & MACHINE_IS_BIOS_ROOT) == 0) + return nParentIndex; + } + + return -1; +} + +int GetGameNameIndex(const char *name) +{ + return driver_list::find(name); +} + +/*************************************************************************** + Internal functions + ***************************************************************************/ + + +static void SetMainTitle(void) +{ + char version[50]; + char buffer[100]; + + sscanf(GetVersionString(),"%49s",version); + snprintf(buffer, ARRAY_LENGTH(buffer), "%s %s", MAMEUINAME, GetVersionString()); + win_set_window_text_utf8(hMain,buffer); +} + +static void memory_error(const char *message) +{ + win_message_box_utf8(hMain, message, emulator_info::get_appname(), MB_OK); + exit(-1); +} + +static BOOL Win32UI_init(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow) +{ + extern int mame_validitychecks(int game); + WNDCLASS wndclass; + RECT rect; + int i, nSplitterCount; + extern const FOLDERDATA g_folderData[]; + extern const FILTER_ITEM g_filterList[]; + LONG common_control_version = GetCommonControlVersion(); + int validity_failed = 0; + TCHAR* t_inpdir = NULL; + LONG_PTR l; + + if (!OptionsInit()) + return FALSE; + + srand((unsigned)time(NULL)); + + // create the memory pool + mameui_pool = pool_alloc_lib(memory_error); + + // custom per-game icons + icon_index = (int*)pool_malloc_lib(mameui_pool, sizeof(int) * driver_list::total()); + memset(icon_index, '\0', sizeof(int) * driver_list::total()); + + // set up window class + wndclass.style = CS_HREDRAW | CS_VREDRAW; + wndclass.lpfnWndProc = MameWindowProc; + wndclass.cbClsExtra = 0; + wndclass.cbWndExtra = DLGWINDOWEXTRA; + wndclass.hInstance = hInstance; + wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MAMEUI_ICON)); + wndclass.hCursor = NULL; + wndclass.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1); + wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_UI_MENU); + wndclass.lpszClassName = TEXT("MainClass"); + + RegisterClass(&wndclass); + + InitCommonControls(); + + // Are we using an Old comctl32.dll? + dprintf("common controlversion %ld %ld\n",common_control_version >> 16, + common_control_version & 0xffff); + + oldControl = (common_control_version < PACKVERSION(4,71)); + xpControl = (common_control_version >= PACKVERSION(6,0)); + if (oldControl) + { + char buf[] = MAMEUINAME " has detected an old version of comctl32.dll\n\n" + "Game Properties, many configuration options and\n" + "features are not available without an updated DLL\n\n" + "Please install the common control update found at:\n\n" + "http://www.microsoft.com/msdownload/ieplatform/ie/comctrlx86.asp\n\n" + "Would you like to continue without using the new features?\n"; + + if (IDNO == win_message_box_utf8(0, buf, MAMEUINAME " Outdated comctl32.dll Warning", MB_YESNO | MB_ICONWARNING)) + return FALSE; + } + + g_mame32_message = RegisterWindowMessage(TEXT("MAME32")); + + HelpInit(); + + t_inpdir = tstring_from_utf8(GetInpDir()); + if( ! t_inpdir ) + return FALSE; + + _tcscpy(last_directory,t_inpdir); + osd_free(t_inpdir); + hMain = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAIN), 0, NULL); + if (hMain == NULL) + { + dprintf("error creating main dialog, aborting\n"); + return FALSE; + } + + s_pWatcher = DirWatcher_Init(hMain, WM_MAME32_FILECHANGED); + if (s_pWatcher) + { + DirWatcher_Watch(s_pWatcher, 0, GetRomDirs(), TRUE); + DirWatcher_Watch(s_pWatcher, 1, GetSampleDirs(), TRUE); + } + + SetMainTitle(); + hTabCtrl = GetDlgItem(hMain, IDC_SSTAB); + + { + struct TabViewOptions opts; + + static const struct TabViewCallbacks s_tabviewCallbacks = + { + GetShowTabCtrl, // pfnGetShowTabCtrl + SetCurrentTab, // pfnSetCurrentTab + GetCurrentTab, // pfnGetCurrentTab + SetShowTab, // pfnSetShowTab + GetShowTab, // pfnGetShowTab + + GetImageTabShortName, // pfnGetTabShortName + GetImageTabLongName, // pfnGetTabLongName + UpdateScreenShot // pfnOnSelectionChanged + }; + + memset(&opts, 0, sizeof(opts)); + opts.pCallbacks = &s_tabviewCallbacks; + opts.nTabCount = MAX_TAB_TYPES; + + if (!SetupTabView(hTabCtrl, &opts)) + return FALSE; + } + + /* subclass history window */ + l = GetWindowLongPtr(GetDlgItem(hMain, IDC_HISTORY), GWLP_WNDPROC); + g_lpHistoryWndProc = (WNDPROC)l; + SetWindowLongPtr(GetDlgItem(hMain, IDC_HISTORY), GWLP_WNDPROC, (LONG_PTR)HistoryWndProc); + + /* subclass picture frame area */ + l = GetWindowLongPtr(GetDlgItem(hMain, IDC_SSFRAME), GWLP_WNDPROC); + g_lpPictureFrameWndProc = (WNDPROC)l; + SetWindowLongPtr(GetDlgItem(hMain, IDC_SSFRAME), GWLP_WNDPROC, (LONG_PTR)PictureFrameWndProc); + + /* subclass picture area */ + l = GetWindowLongPtr(GetDlgItem(hMain, IDC_SSPICTURE), GWLP_WNDPROC); + g_lpPictureWndProc = (WNDPROC)l; + SetWindowLongPtr(GetDlgItem(hMain, IDC_SSPICTURE), GWLP_WNDPROC, (LONG_PTR)PictureWndProc); + + /* Load the pic for the default screenshot. */ + hMissing_bitmap = LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_ABOUT)); + + /* Stash hInstance for later use */ + hInst = hInstance; + + s_hToolBar = InitToolbar(hMain); + hStatusBar = InitStatusBar(hMain); + hProgWnd = InitProgressBar(hStatusBar); + + main_resize_items[0].u.hwnd = s_hToolBar; + main_resize_items[1].u.hwnd = hStatusBar; + + /* In order to handle 'Large Fonts' as the Windows + * default setting, we need to make the dialogs small + * enough to fit in our smallest window size with + * large fonts, then resize the picker, tab and button + * controls to fill the window, no matter which font + * is currently set. This will still look like bad + * if the user uses a bigger default font than 125% + * (Large Fonts) on the Windows display setting tab. + * + * NOTE: This has to do with Windows default font size + * settings, NOT our picker font size. + */ + + GetClientRect(hMain, &rect); + + hTreeView = GetDlgItem(hMain, IDC_TREE); + hwndList = GetDlgItem(hMain, IDC_LIST); + + if (!InitSplitters()) + return FALSE; + + nSplitterCount = GetSplitterCount(); + for (i = 0; i < nSplitterCount; i++) + { + HWND hWnd; + HWND hWndLeft; + HWND hWndRight; + + hWnd = GetDlgItem(hMain, g_splitterInfo[i].nSplitterWindow); + hWndLeft = GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow); + hWndRight = GetDlgItem(hMain, g_splitterInfo[i].nRightWindow); + + AddSplitter(hWnd, hWndLeft, hWndRight, g_splitterInfo[i].pfnAdjust); + } + + /* Initial adjustment of controls on the Picker window */ + ResizePickerControls(hMain); + + TabView_UpdateSelection(hTabCtrl); + + bDoGameCheck = GetGameCheck(); + idle_work = TRUE; + game_index = 0; + + bShowTree = GetShowFolderList(); + bShowToolBar = GetShowToolBar(); + bShowStatusBar = GetShowStatusBar(); + bShowTabCtrl = GetShowTabCtrl(); + + CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED); + ToolBar_CheckButton(s_hToolBar, ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED); + CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED); + ShowWindow(s_hToolBar, (bShowToolBar) ? SW_SHOW : SW_HIDE); + CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED); + ShowWindow(hStatusBar, (bShowStatusBar) ? SW_SHOW : SW_HIDE); + CheckMenuItem(GetMenu(hMain), ID_VIEW_PAGETAB, (bShowTabCtrl) ? MF_CHECKED : MF_UNCHECKED); + + if (oldControl) + { + EnableMenuItem(GetMenu(hMain), ID_CUSTOMIZE_FIELDS, MF_GRAYED); + EnableMenuItem(GetMenu(hMain), ID_GAME_PROPERTIES, MF_GRAYED); + EnableMenuItem(GetMenu(hMain), ID_OPTIONS_DEFAULTS, MF_GRAYED); + } + + /* Init DirectDraw */ + if (!DirectDraw_Initialize()) + { + DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_DIRECTX), NULL, DirectXDialogProc); + return FALSE; + } + + LoadBackgroundBitmap(); + + dprintf("about to init tree\n"); + InitTree(g_folderData, g_filterList); + dprintf("did init tree\n"); + + /* Initialize listview columns */ + InitListView(); + SetFocus(hwndList); + + /* Reset the font */ + { + LOGFONT logfont; + + GetListFont(&logfont); + if (hFont ) { + //Clenaup old Font, otherwise we have a GDI handle leak + DeleteFont(hFont); + } + hFont = CreateFontIndirect(&logfont); + if (hFont ) + SetAllWindowsFont(hMain, &main_resize, hFont, FALSE); + } + + /* Init DirectInput */ + if (!DirectInputInitialize()) + { + DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_DIRECTX), NULL, DirectXDialogProc); + return FALSE; + } + + AdjustMetrics(); + UpdateScreenShot(); + + hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDA_TAB_KEYS)); + + /* clear keyboard state */ + KeyboardStateClear(); + + if (GetJoyGUI() == TRUE) + { + g_pJoyGUI = &DIJoystick; + if (g_pJoyGUI->init() != 0) + g_pJoyGUI = NULL; + else + SetTimer(hMain, JOYGUI_TIMER, JOYGUI_MS, NULL); + } + else + g_pJoyGUI = NULL; + + if (GetHideMouseOnStartup()) + { + /* For some reason the mouse is centered when a game is exited, which of + course causes a WM_MOUSEMOVE event that shows the mouse. So we center + it now, before the startup coords are initilized, and that way the mouse + will still be hidden when exiting from a game (i hope) :) + */ + SetCursorPos(GetSystemMetrics(SM_CXSCREEN)/2,GetSystemMetrics(SM_CYSCREEN)/2); + + // Then hide it + ShowCursor(FALSE); + } + + nCmdShow = GetWindowState(); + if (nCmdShow == SW_HIDE || nCmdShow == SW_MINIMIZE || nCmdShow == SW_SHOWMINIMIZED) + { + nCmdShow = SW_RESTORE; + } + + if (GetRunFullScreen()) + { + LONG lMainStyle; + + // Remove menu + SetMenu(hMain,NULL); + + // Frameless dialog (fake fullscreen) + lMainStyle = GetWindowLong(hMain, GWL_STYLE); + lMainStyle = lMainStyle & (WS_BORDER ^ 0xffffffff); + SetWindowLong(hMain, GWL_STYLE, lMainStyle); + + nCmdShow = SW_MAXIMIZE; + } + + ShowWindow(hMain, nCmdShow); + + switch (GetViewMode()) + { + case VIEW_LARGE_ICONS : + SetView(ID_VIEW_LARGE_ICON); + break; + case VIEW_SMALL_ICONS : + SetView(ID_VIEW_SMALL_ICON); + break; + case VIEW_INLIST : + SetView(ID_VIEW_LIST_MENU); + break; + case VIEW_REPORT : + SetView(ID_VIEW_DETAIL); + break; + case VIEW_GROUPED : + default : + SetView(ID_VIEW_GROUPED); + break; + } + + if (GetCycleScreenshot() > 0) + { + SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL); //scale to Seconds + } + + if (validity_failed) + { + win_message_box_utf8(hMain, MAMEUINAME " has failed its validity checks. The GUI will " + "still work, but emulations will fail to execute", MAMEUINAME, MB_OK | MB_ICONERROR); + } + + return TRUE; +} + + +static void Win32UI_exit() +{ + if (g_pJoyGUI) + g_pJoyGUI->exit(); + + /* Free GDI resources */ + if (hMain) { + DeleteObject(hMain); + hMain = NULL; + } + + if (hMissing_bitmap) + { + DeleteBitmap(hMissing_bitmap); + hMissing_bitmap = NULL; + } + + if (hBackground) + { + DeleteBitmap(hBackground); + hBackground = NULL; + } + + if (hPALbg) + { + DeletePalette(hPALbg); + hPALbg = NULL; + } + + if (hFont) + { + DeleteFont(hFont); + hFont = NULL; + } + + DestroyIcons(); + + DestroyAcceleratorTable(hAccel); + + DirectInputClose(); + DirectDraw_Close(); + + SetSavedFolderID(GetCurrentFolderID()); + SaveGameListOptions(); + //SaveDefaultOptions(); + SaveOptions(); + + FreeFolders(); + + /* DestroyTree(hTreeView); */ + + FreeScreenShot(); + + OptionsExit(); + + HelpExit(); + + pool_free_lib(mameui_pool); + mameui_pool = NULL; +} + +static LRESULT CALLBACK MameWindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + MINMAXINFO *mminfo; + int i; + TCHAR szClass[128]; + BOOL res; + + switch (message) + { + case WM_CTLCOLORSTATIC: + if (hBackground && (HWND)lParam == GetDlgItem(hMain, IDC_HISTORY)) + { + static HBRUSH hBrush=0; + HDC hDC=(HDC)wParam; + LOGBRUSH lb; + + if (hBrush) + DeleteBrush(hBrush); + lb.lbStyle = BS_HOLLOW; + hBrush = CreateBrushIndirect(&lb); + SetBkMode(hDC, TRANSPARENT); + SetTextColor(hDC, GetListFontColor()); + return (LRESULT) hBrush; + } + break; + + case WM_INITDIALOG: + /* Initialize info for resizing subitems */ + GetClientRect(hWnd, &main_resize.rect); + return TRUE; + + case WM_SETFOCUS: + SetFocus(hwndList); + break; + + case WM_SETTINGCHANGE: + AdjustMetrics(); + return 0; + + case WM_SIZE: + OnSize(hWnd, wParam, LOWORD(lParam), HIWORD(wParam)); + return TRUE; + + case WM_MENUSELECT: + return Statusbar_MenuSelect(hWnd, wParam, lParam); + + case MM_PLAY_GAME: + MamePlayGame(); + return TRUE; + + case WM_INITMENUPOPUP: + UpdateMenu(GetMenu(hWnd)); + break; + + case WM_CONTEXTMENU: + if (HandleTreeContextMenu(hWnd, wParam, lParam) + || HandleScreenShotContextMenu(hWnd, wParam, lParam)) + return FALSE; + break; + + case WM_COMMAND: + return MameCommand(hWnd,(int)(LOWORD(wParam)),(HWND)(lParam),(UINT)HIWORD(wParam)); + + case WM_GETMINMAXINFO: + /* Don't let the window get too small; it can break resizing */ + mminfo = (MINMAXINFO *) lParam; + mminfo->ptMinTrackSize.x = MIN_WIDTH; + mminfo->ptMinTrackSize.y = MIN_HEIGHT; + return 0; + + case WM_TIMER: + switch (wParam) + { + case JOYGUI_TIMER: + PollGUIJoystick(); + break; + case SCREENSHOT_TIMER: + TabView_CalculateNextTab(hTabCtrl); + UpdateScreenShot(); + TabView_UpdateSelection(hTabCtrl); + break; + default: + break; + } + return TRUE; + + case WM_CLOSE: + { + /* save current item */ + RECT rect; + AREA area; + int nItem; + WINDOWPLACEMENT wndpl; + UINT state; + + wndpl.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(hMain, &wndpl); + state = wndpl.showCmd; + + /* Restore the window before we attempt to save parameters, + * This fixed the lost window on startup problem, among other problems + */ + if (state == SW_MINIMIZE || state == SW_SHOWMINIMIZED || state == SW_MAXIMIZE) + { + if( wndpl.flags & WPF_RESTORETOMAXIMIZED || state == SW_MAXIMIZE) + state = SW_MAXIMIZE; + else + state = SW_RESTORE; + + ShowWindow(hWnd, SW_RESTORE); + } + + /* Restore the window before we attempt to save parameters, + * This fixed the lost window on startup problem, among other problems + */ + if (state == SW_MAXIMIZE) + ShowWindow(hWnd, SW_RESTORE); + + for (i = 0; i < GetSplitterCount(); i++) + SetSplitterPos(i, nSplitterOffset[i]); + SetWindowState(state); + + for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++) + Picker_SaveColumnWidths(GetDlgItem(hMain, s_nPickers[i])); + + GetWindowRect(hWnd, &rect); + area.x = rect.left; + area.y = rect.top; + area.width = rect.right - rect.left; + area.height = rect.bottom - rect.top; + SetWindowArea(&area); + + /* Save the users current game options and default game */ + nItem = Picker_GetSelectedItem(hwndList); + SetDefaultGame(ModifyThe(driver_list::driver(nItem).name)); + + /* hide window to prevent orphan empty rectangles on the taskbar */ + /* ShowWindow(hWnd,SW_HIDE); */ + DestroyWindow( hWnd ); + + /* PostQuitMessage(0); */ + break; + } + + case WM_DESTROY: + PostQuitMessage(0); + return 0; + + case WM_LBUTTONDOWN: + OnLButtonDown(hWnd, (UINT)wParam, MAKEPOINTS(lParam)); + break; + + /* + Check to see if the mouse has been moved by the user since + startup. I'd like this checking to be done only in the + main WinProc (here), but somehow the WM_MOUSEDOWN messages + are eaten up before they reach MameWindowProc. That's why + there is one check for each of the subclassed windows too. + + POSSIBLE BUGS: + I've included this check in the subclassed windows, but a + mose move in either the title bar, the menu, or the + toolbar will not generate a WM_MOUSEOVER message. At least + not one that I know how to pick up. A solution could maybe + be to subclass those too, but that's too much work :) + */ + + case WM_MOUSEMOVE: + { + if (MouseHasBeenMoved()) + ShowCursor(TRUE); + + if (g_listview_dragging) + MouseMoveListViewDrag(MAKEPOINTS(lParam)); + else + /* for splitters */ + OnMouseMove(hWnd, (UINT)wParam, MAKEPOINTS(lParam)); + break; + } + + case WM_LBUTTONUP: + if (g_listview_dragging) + ButtonUpListViewDrag(MAKEPOINTS(lParam)); + else + /* for splitters */ + OnLButtonUp(hWnd, (UINT)wParam, MAKEPOINTS(lParam)); + break; + + case WM_NOTIFY: + /* Where is this message intended to go */ + { + LPNMHDR lpNmHdr = (LPNMHDR)lParam; + + /* Fetch tooltip text */ + if (lpNmHdr->code == TTN_NEEDTEXT) + { + LPTOOLTIPTEXT lpttt = (LPTOOLTIPTEXT)lParam; + CopyToolTipText(lpttt); + } + + if (lpNmHdr->hwndFrom == hTreeView) + return TreeViewNotify(lpNmHdr); + + GetClassName(lpNmHdr->hwndFrom, szClass, sizeof(szClass) / sizeof(szClass[0])); + if (!_tcscmp(szClass, TEXT("SysListView32"))) + return Picker_HandleNotify(lpNmHdr); + if (!_tcscmp(szClass, TEXT("SysTabControl32"))) + return TabView_HandleNotify(lpNmHdr); + } + break; + + case WM_DRAWITEM: + { + LPDRAWITEMSTRUCT lpDis = (LPDRAWITEMSTRUCT)lParam; + + GetClassName(lpDis->hwndItem, szClass, sizeof(szClass) / sizeof(szClass[0])); + if (!_tcscmp(szClass, TEXT("SysListView32"))) + Picker_HandleDrawItem(GetDlgItem(hMain, lpDis->CtlID), lpDis); + } + break; + + case WM_MEASUREITEM : + { + LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT) lParam; + + // tell the list view that each row (item) should be just taller than our font + + //DefWindowProc(hWnd, message, wParam, lParam); + //dprintf("default row height calculation gives %u\n",lpmis->itemHeight); + + TEXTMETRIC tm; + HDC hDC = GetDC(NULL); + HFONT hFontOld = (HFONT)SelectObject(hDC,hFont); + + GetTextMetrics(hDC,&tm); + + lpmis->itemHeight = tm.tmHeight + tm.tmExternalLeading + 1; + if (lpmis->itemHeight < 17) + lpmis->itemHeight = 17; + //dprintf("we would do %u\n",tm.tmHeight + tm.tmExternalLeading + 1); + SelectObject(hDC,hFontOld); + ReleaseDC(NULL,hDC); + + return TRUE; + } + + case WM_MAME32_FILECHANGED: + { + char szFileName[32]; + char *s; + int nGameIndex; + int (*pfnGetAuditResults)(int driver_index) = NULL; + void (*pfnSetAuditResults)(int driver_index, int audit_results) = NULL; + + switch(HIWORD(wParam)) + { + case 0: + pfnGetAuditResults = GetRomAuditResults; + pfnSetAuditResults = SetRomAuditResults; + break; + + case 1: + pfnGetAuditResults = GetSampleAuditResults; + pfnSetAuditResults = SetSampleAuditResults; + break; + } + + if (pfnGetAuditResults && pfnSetAuditResults) + { + int nParentIndex = -1; + + snprintf(szFileName, sizeof(szFileName), "%s", (LPCSTR) lParam); + s = strchr(szFileName, '.'); + if (s) + *s = '\0'; + s = strchr(szFileName, '\\'); + if (s) + *s = '\0'; + + for (nGameIndex = 0; nGameIndex < driver_list::total(); nGameIndex++) + { + for (nParentIndex = nGameIndex; nGameIndex == -1; nParentIndex = GetParentIndex(&driver_list::driver(nParentIndex))) + { + if (!core_stricmp(driver_list::driver(nParentIndex).name, szFileName)) + { + if (pfnGetAuditResults(nGameIndex) != UNKNOWN) + { + pfnSetAuditResults(nGameIndex, UNKNOWN); + PostMessage(hMain, WM_MAME32_AUDITGAME, wParam, nGameIndex); + } + break; + } + } + } + } + } + break; + + case WM_MAME32_AUDITGAME: + { + LV_FINDINFO lvfi; + int nGameIndex; + + nGameIndex = lParam; + + switch(HIWORD(wParam)) + { + case 0: + MameUIVerifyRomSet(nGameIndex, 0); + break; + case 1: + MameUIVerifySampleSet(nGameIndex); + break; + } + + memset(&lvfi, 0, sizeof(lvfi)); + lvfi.flags = LVFI_PARAM; + lvfi.lParam = nGameIndex; + + i = ListView_FindItem(hwndList, -1, &lvfi); + if (i != -1) + { + res = ListView_RedrawItems(hwndList, i, i); + } + } + break; + + default: + break; + } + return DefWindowProc(hWnd, message, wParam, lParam); +} + +static int HandleKeyboardGUIMessage(HWND hWnd, UINT message, UINT wParam, LONG lParam) +{ + switch (message) + { + case WM_CHAR: /* List-View controls use this message for searching the items "as user types" */ + //MessageBox(NULL,"wm_char message arrived","TitleBox",MB_OK); + return TRUE; + + case WM_KEYDOWN: + KeyboardKeyDown(0, wParam, lParam); + return TRUE; + + case WM_KEYUP: + KeyboardKeyUp(0, wParam, lParam); + return TRUE; + + case WM_SYSKEYDOWN: + KeyboardKeyDown(1, wParam, lParam); + return TRUE; + + case WM_SYSKEYUP: + KeyboardKeyUp(1, wParam, lParam); + return TRUE; + } + + return FALSE; /* message not processed */ +} + +static BOOL PumpMessage() +{ + MSG msg; + + if (!GetMessage(&msg, NULL, 0, 0)) + return FALSE; + + if (IsWindow(hMain)) + { + BOOL absorbed_key = FALSE; + if (GetKeyGUI()) + absorbed_key = HandleKeyboardGUIMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam); + else + absorbed_key = TranslateAccelerator(hMain, hAccel, &msg); + + if (!absorbed_key) + { + if (!IsDialogMessage(hMain, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + } + + return TRUE; +} + +static BOOL FolderCheck(void) +{ + + char *pDescription = NULL; + int nGameIndex = 0; + int i=0; + int iStep = 0; + LV_FINDINFO lvfi; + int nCount = ListView_GetItemCount(hwndList); + BOOL changed = FALSE; + BOOL res; + + MSG msg; + for(i=0; i<nCount;i++) + { + LV_ITEM lvi; + + lvi.iItem = i; + lvi.iSubItem = 0; + lvi.mask = LVIF_PARAM; + res = ListView_GetItem(hwndList, &lvi); + nGameIndex = lvi.lParam; + SetRomAuditResults(nGameIndex, UNKNOWN); + SetSampleAuditResults(nGameIndex, UNKNOWN); + } + if( nCount > 0) + ProgressBarShow(); + else + return FALSE; + if( nCount < 100 ) + iStep = 100 / nCount; + else + iStep = nCount/100; + UpdateListView(); + UpdateWindow(hMain); + for(i=0; i<nCount;i++) + { + LV_ITEM lvi; + + lvi.iItem = i; + lvi.iSubItem = 0; + lvi.mask = LVIF_PARAM; + res = ListView_GetItem(hwndList, &lvi); + nGameIndex = lvi.lParam; + if (GetRomAuditResults(nGameIndex) == UNKNOWN) + { + MameUIVerifyRomSet(nGameIndex, 0); + changed = TRUE; + } + + if (GetSampleAuditResults(nGameIndex) == UNKNOWN) + { + MameUIVerifySampleSet(nGameIndex); + changed = TRUE; + } + + lvfi.flags = LVFI_PARAM; + lvfi.lParam = nGameIndex; + + i = ListView_FindItem(hwndList, -1, &lvfi); + if (changed && i != -1) + { + res = ListView_RedrawItems(hwndList, i, i); + while( PeekMessage( &msg, hwndList, 0, 0, PM_REMOVE ) != 0) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + changed = FALSE; + if ((i % iStep) == 0) + ProgressBarStepParam(i, nCount); + } + ProgressBarHide(); + pDescription = ModifyThe(driver_list::driver(Picker_GetSelectedItem(hwndList)).description); + SetStatusBarText(0, pDescription); + UpdateStatusBar(); + return TRUE; +} + +static BOOL GameCheck(void) +{ + LV_FINDINFO lvfi; + int i; + BOOL changed = FALSE; + BOOL res; + + if (game_index == 0) + ProgressBarShow(); + + if (game_index >= driver_list::total()) + { + bDoGameCheck = FALSE; + ProgressBarHide(); + ResetWhichGamesInFolders(); + return FALSE; + } + + if (GetRomAuditResults(game_index) == UNKNOWN) + { + MameUIVerifyRomSet(game_index, 0); + changed = TRUE; + } + + if (GetSampleAuditResults(game_index) == UNKNOWN) + { + MameUIVerifySampleSet(game_index); + changed = TRUE; + } + + lvfi.flags = LVFI_PARAM; + lvfi.lParam = game_index; + + i = ListView_FindItem(hwndList, -1, &lvfi); + if (changed && i != -1) + res = ListView_RedrawItems(hwndList, i, i); + if ((game_index % progBarStep) == 0) + ProgressBarStep(); + game_index++; + + return changed; +} + +static BOOL OnIdle(HWND hWnd) +{ + static int bFirstTime = TRUE; + static int bResetList = TRUE; + + char *pDescription; + int driver_index; + + if (bFirstTime) + { + bResetList = FALSE; + bFirstTime = FALSE; + } + if (bDoGameCheck) + { + bResetList |= GameCheck(); + return idle_work; + } + // NPW 17-Jun-2003 - Commenting this out because it is redundant + // and it causes the game to reset back to the original game after an F5 + // refresh + //driver_index = GetGameNameIndex(GetDefaultGame()); + //SetSelectedPickItem(driver_index); + + // in case it's not found, get it back + driver_index = Picker_GetSelectedItem(hwndList); + + pDescription = ModifyThe(driver_list::driver(driver_index).description); + SetStatusBarText(0, pDescription); + idle_work = FALSE; + UpdateStatusBar(); + bFirstTime = TRUE; + + if (!idle_work) + PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, TRUE),(LPARAM)NULL); + return idle_work; +} + +static void OnSize(HWND hWnd, UINT nState, int nWidth, int nHeight) +{ + static BOOL firstTime = TRUE; + + if (nState != SIZE_MAXIMIZED && nState != SIZE_RESTORED) + return; + + ResizeWindow(hWnd, &main_resize); + ResizeProgressBar(); + if (firstTime == FALSE) + OnSizeSplitter(hMain); + //firstTime = FALSE; + /* Update the splitters structures as appropriate */ + RecalcSplitters(); + if (firstTime == FALSE) + ResizePickerControls(hMain); + firstTime = FALSE; + UpdateScreenShot(); +} + + + +static HWND GetResizeItemWindow(HWND hParent, const ResizeItem *ri) +{ + HWND hControl; + if (ri->type == RA_ID) + hControl = GetDlgItem(hParent, ri->u.id); + else + hControl = ri->u.hwnd; + return hControl; +} + + + +static void SetAllWindowsFont(HWND hParent, const Resize *r, HFONT hTheFont, BOOL bRedraw) +{ + int i; + HWND hControl; + + for (i = 0; r->items[i].type != RA_END; i++) + { + hControl = GetResizeItemWindow(hParent, &r->items[i]); + if (r->items[i].setfont) + { + SetWindowFont(hControl, hTheFont, bRedraw); + } + /* Take care of subcontrols, if appropriate */ + if (r->items[i].subwindow ) + SetAllWindowsFont(hControl, (const Resize*)r->items[i].subwindow, hTheFont, bRedraw); + + } +} + + + +static void ResizeWindow(HWND hParent, Resize *r) +{ + int cmkindex = 0, dx, dy; + HWND hControl; + RECT parent_rect, rect; + const ResizeItem *ri; + POINT p = {0, 0}; + + if (hParent == NULL) + return; + + /* Calculate change in width and height of parent window */ + GetClientRect(hParent, &parent_rect); + dy = parent_rect.bottom - r->rect.bottom; + dx = parent_rect.right - r->rect.right; + ClientToScreen(hParent, &p); + + while (r->items[cmkindex].type != RA_END) + { + int width, height; + ri = &r->items[cmkindex]; + if (ri->type == RA_ID) + hControl = GetDlgItem(hParent, ri->u.id); + else + hControl = ri->u.hwnd; + + if (hControl == NULL) + { + cmkindex++; + continue; + } + + /* Get control's rectangle relative to parent */ + GetWindowRect(hControl, &rect); + OffsetRect(&rect, -p.x, -p.y); + width = rect.right - rect.left; + height = rect.bottom - rect.top; + + if (!(ri->action & RA_LEFT)) + rect.left += dx; + + if (!(ri->action & RA_TOP)) + rect.top += dy; + + if (ri->action & RA_RIGHT) + rect.right += dx; + + if (ri->action & RA_BOTTOM) + rect.bottom += dy; + //Sanity Check the child rect + if (parent_rect.top > rect.top) + rect.top = parent_rect.top; + if (parent_rect.left > rect.left) + rect.left = parent_rect.left; + if (parent_rect.bottom < rect.bottom) + { + rect.bottom = parent_rect.bottom; + //ensure we have at least a minimal height + rect.top = rect.bottom - height; + if (rect.top < parent_rect.top) + rect.top = parent_rect.top; + } + if (parent_rect.right < rect.right) + { + rect.right = parent_rect.right; + //ensure we have at least a minimal width + rect.left = rect.right - width; + if (rect.left < parent_rect.left) + rect.left = parent_rect.left; + } + MoveWindow(hControl, rect.left, rect.top, + (rect.right - rect.left), + (rect.bottom - rect.top), TRUE); + + /* Take care of subcontrols, if appropriate */ + if (ri->subwindow ) + ResizeWindow(hControl, (Resize*)ri->subwindow); + + cmkindex++; + } + + /* Record parent window's new location */ + memcpy(&r->rect, &parent_rect, sizeof(RECT)); +} + +static void ProgressBarShow() +{ + RECT rect; + int widths[2] = {150, -1}; + + if (driver_list::total() < 100) + progBarStep = 100 / driver_list::total(); + else + progBarStep = (driver_list::total() / 100); + + SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)2, (LPARAM)(LPINT)widths); + SendMessage(hProgWnd, PBM_SETRANGE, 0, (LPARAM)MAKELONG(0, driver_list::total())); + SendMessage(hProgWnd, PBM_SETSTEP, (WPARAM)progBarStep, 0); + SendMessage(hProgWnd, PBM_SETPOS, 0, 0); + + StatusBar_GetItemRect(hStatusBar, 1, &rect); + + MoveWindow(hProgWnd, rect.left, rect.top, + rect.right - rect.left, + rect.bottom - rect.top, TRUE); + + bProgressShown = TRUE; +} + +static void ProgressBarHide() +{ + RECT rect; + int widths[4]; + HDC hDC; + SIZE size; + int numParts = 4; + + if (hProgWnd == NULL) + return; + + hDC = GetDC(hProgWnd); + + ShowWindow(hProgWnd, SW_HIDE); + + GetTextExtentPoint32(hDC, TEXT("MMX"), 3, &size); + widths[3] = size.cx; + GetTextExtentPoint32(hDC, TEXT("MMMM games"), 10, &size); + widths[2] = size.cx; + //Just specify 24 instead of 30, gives us sufficient space to display the message, and saves some space + GetTextExtentPoint32(hDC, TEXT("Screen flip support is missing"), 24, &size); + widths[1] = size.cx; + + ReleaseDC(hProgWnd, hDC); + + widths[0] = -1; + SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)1, (LPARAM)(LPINT)widths); + StatusBar_GetItemRect(hStatusBar, 0, &rect); + + widths[0] = (rect.right - rect.left) - (widths[1] + widths[2] + widths[3]); + widths[1] += widths[0]; + widths[2] += widths[1]; + widths[3] = -1; + + SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)numParts, (LPARAM)(LPINT)widths); + UpdateStatusBar(); + + bProgressShown = FALSE; +} + +static void ResizeProgressBar() +{ + if (bProgressShown) + { + RECT rect; + int widths[2] = {150, -1}; + + SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)2, (LPARAM)(LPINT)widths); + StatusBar_GetItemRect(hStatusBar, 1, &rect); + MoveWindow(hProgWnd, rect.left, rect.top, + rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + else + { + ProgressBarHide(); + } +} + +static void ProgressBarStepParam(int iGameIndex, int nGameCount) +{ + SetStatusBarTextF(0, "Game search %d%% complete", ((iGameIndex + 1) * 100) / nGameCount); + if (iGameIndex == 0) + ShowWindow(hProgWnd, SW_SHOW); + SendMessage(hProgWnd, PBM_STEPIT, 0, 0); +} + +static void ProgressBarStep() +{ + ProgressBarStepParam(game_index, driver_list::total()); +} + +static HWND InitProgressBar(HWND hParent) +{ + RECT rect; + + StatusBar_GetItemRect(hStatusBar, 0, &rect); + + rect.left += 150; + + return CreateWindowEx(WS_EX_STATICEDGE, PROGRESS_CLASS, TEXT("Progress Bar"), + WS_CHILD | PBS_SMOOTH, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, hParent, NULL, hInst, NULL); +} + +static void CopyToolTipText(LPTOOLTIPTEXT lpttt) +{ + int i; + int iButton = lpttt->hdr.idFrom; + static TCHAR String[1024]; + BOOL bConverted = FALSE; + TCHAR* t_gameinfostatus; + + /* Map command ID to string index */ + for (i = 0; CommandToString[i] != -1; i++) + { + if (CommandToString[i] == iButton) + { + iButton = i; + bConverted = TRUE; + break; + } + } + if( bConverted ) + { + /* Check for valid parameter */ + if(iButton > NUM_TOOLTIPS) + { + _tcscpy(String,TEXT("Invalid Button Index")); + } + else + { + _tcscpy(String,szTbStrings[iButton]); + } + } + else if ( iButton <= 2 ) + { + //Statusbar + SendMessage(lpttt->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 200); + if( iButton != 1) + SendMessage(hStatusBar, SB_GETTEXT, (WPARAM)iButton, (LPARAM)&String ); + else { + //for first pane we get the Status directly, to get the line breaks + t_gameinfostatus = tstring_from_utf8( GameInfoStatus(Picker_GetSelectedItem(hwndList), FALSE)); + if( !t_gameinfostatus ) + return; + _tcscpy(String, t_gameinfostatus); + osd_free(t_gameinfostatus); + } + } + else + _tcscpy(String,TEXT("Invalid Button Index")); + + lpttt->lpszText = String; +} + +static HWND InitToolbar(HWND hParent) +{ + HWND hToolBar = CreateToolbarEx(hParent, + WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | + CCS_TOP | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS, 1, 8, + hInst, IDB_TOOLBAR, tbb, NUM_TOOLBUTTONS, 16, 16, 0, 0, sizeof(TBBUTTON)); + RECT rect; + int idx; + int iPosX, iPosY, iHeight; + + // get Edit Control position + idx = SendMessage(hToolBar, TB_BUTTONCOUNT, (WPARAM)0, (LPARAM)0) - 1; + SendMessage(hToolBar, TB_GETITEMRECT, (WPARAM)idx, (LPARAM)&rect); + iPosX = rect.right + 10; + iPosY = rect.top + 1; + iHeight = rect.bottom - rect.top - 2; + + // create Edit Control + win_create_window_ex_utf8( 0L, "Edit", SEARCH_PROMPT, WS_CHILD | WS_BORDER | WS_VISIBLE | ES_LEFT, + iPosX, iPosY, 200, iHeight, hToolBar, (HMENU)ID_TOOLBAR_EDIT, hInst, NULL ); + + return hToolBar; +} + +static HWND InitStatusBar(HWND hParent) +{ + HMENU hMenu = GetMenu(hParent); + + popstr[0].hMenu = 0; + popstr[0].uiString = 0; + popstr[1].hMenu = hMenu; + popstr[1].uiString = IDS_UI_FILE; + popstr[2].hMenu = GetSubMenu(hMenu, 1); + popstr[2].uiString = IDS_VIEW_TOOLBAR; + popstr[3].hMenu = 0; + popstr[3].uiString = 0; + + return CreateStatusWindow(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | + CCS_BOTTOM | SBARS_SIZEGRIP | SBT_TOOLTIPS, + TEXT("Ready"), hParent, 2); +} + + +static LRESULT Statusbar_MenuSelect(HWND hwnd, WPARAM wParam, LPARAM lParam) +{ + UINT fuFlags = (UINT)HIWORD(wParam); + HMENU hMainMenu = NULL; + int iMenu = 0; + + /* Handle non-system popup menu descriptions. */ + if ( (fuFlags & MF_POPUP) + && (!(fuFlags & MF_SYSMENU))) + { + for (iMenu = 1; iMenu < MAX_MENUS; iMenu++) + { + if ((HMENU)lParam == popstr[iMenu].hMenu) + { + hMainMenu = (HMENU)lParam; + break; + } + } + } + + if (hMainMenu) + { + /* Display helpful text in status bar */ + MenuHelp(WM_MENUSELECT, wParam, lParam, hMainMenu, hInst, + hStatusBar, (UINT *)&popstr[iMenu]); + } + else + { + UINT nZero = 0; + MenuHelp(WM_MENUSELECT, wParam, lParam, NULL, hInst, + hStatusBar, &nZero); + } + + return 0; +} + +static void UpdateStatusBar() +{ + LPTREEFOLDER lpFolder = GetCurrentFolder(); + int games_shown = 0; + int i = -1; + + if (!lpFolder) + return; + + while (1) + { + i = FindGame(lpFolder,i+1); + if (i == -1) + break; + + if (!GameFiltered(i, lpFolder->m_dwFlags)) + games_shown++; + } + + /* Show number of games in the current 'View' in the status bar */ + SetStatusBarTextF(2, g_szGameCountString, games_shown); + + i = Picker_GetSelectedItem(hwndList); + + if (games_shown == 0) + DisableSelection(); + else + { + const char* pStatus = GameInfoStatus(i, FALSE); + SetStatusBarText(1, pStatus); + } +} + +static void UpdateHistory(void) +{ + HDC hDC; + RECT rect; + TEXTMETRIC tm ; + int nLines, nLineHeight; + //DWORD dwStyle = GetWindowLong(GetDlgItem(hMain, IDC_HISTORY), GWL_STYLE); + have_history = FALSE; + + if (GetSelectedPick() >= 0) + { + char *histText = GetGameHistory(Picker_GetSelectedItem(hwndList)); + + have_history = (histText && histText[0]) ? TRUE : FALSE; + win_set_window_text_utf8(GetDlgItem(hMain, IDC_HISTORY), histText); + } + + if (have_history && GetShowScreenShot() + && ((TabView_GetCurrentTab(hTabCtrl) == TAB_HISTORY) || + (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() && GetShowTab(TAB_HISTORY) == FALSE) || + (TAB_ALL == GetHistoryTab() && GetShowTab(TAB_HISTORY) == FALSE) )) + { + Edit_GetRect(GetDlgItem(hMain, IDC_HISTORY),&rect); + nLines = Edit_GetLineCount(GetDlgItem(hMain, IDC_HISTORY) ); + hDC = GetDC(GetDlgItem(hMain, IDC_HISTORY)); + GetTextMetrics (hDC, &tm); + nLineHeight = tm.tmHeight - tm.tmInternalLeading; + if( ( (rect.bottom - rect.top) / nLineHeight) < (nLines) ) + { + //more than one Page, so show Scrollbar + SetScrollRange(GetDlgItem(hMain, IDC_HISTORY), SB_VERT, 0, nLines, TRUE); + } + else + { + //hide Scrollbar + SetScrollRange(GetDlgItem(hMain, IDC_HISTORY),SB_VERT, 0, 0, TRUE); + + } + ShowWindow(GetDlgItem(hMain, IDC_HISTORY), SW_SHOW); + } + else + ShowWindow(GetDlgItem(hMain, IDC_HISTORY), SW_HIDE); + +} + + +static void DisableSelection() +{ + MENUITEMINFO mmi; + HMENU hMenu = GetMenu(hMain); + BOOL prev_have_selection = have_selection; + + mmi.cbSize = sizeof(mmi); + mmi.fMask = MIIM_TYPE; + mmi.fType = MFT_STRING; + mmi.dwTypeData = (TCHAR *) TEXT("&Play"); + mmi.cch = _tcslen(mmi.dwTypeData); + SetMenuItemInfo(hMenu, ID_FILE_PLAY, FALSE, &mmi); + + EnableMenuItem(hMenu, ID_FILE_PLAY, MF_GRAYED); + EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_GRAYED); + EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED); + + SetStatusBarText(0, "No Selection"); + SetStatusBarText(1, ""); + SetStatusBarText(3, ""); + + have_selection = FALSE; + + if (prev_have_selection != have_selection) + UpdateScreenShot(); +} + +static void EnableSelection(int nGame) +{ + TCHAR buf[200]; + const char * pText; + MENUITEMINFO mmi; + HMENU hMenu = GetMenu(hMain); + TCHAR* t_description; + + t_description = tstring_from_utf8(ConvertAmpersandString(ModifyThe(driver_list::driver(nGame).description))); + if( !t_description ) + return; + + _sntprintf(buf, sizeof(buf) / sizeof(buf[0]), g_szPlayGameString, t_description); + mmi.cbSize = sizeof(mmi); + mmi.fMask = MIIM_TYPE; + mmi.fType = MFT_STRING; + mmi.dwTypeData = buf; + mmi.cch = _tcslen(mmi.dwTypeData); + SetMenuItemInfo(hMenu, ID_FILE_PLAY, FALSE, &mmi); + + pText = ModifyThe(driver_list::driver(nGame).description); + SetStatusBarText(0, pText); + /* Add this game's status to the status bar */ + pText = GameInfoStatus(nGame, FALSE); + SetStatusBarText(1, pText); + SetStatusBarText(3, ""); + + /* If doing updating game status and the game name is NOT pacman.... */ + + EnableMenuItem(hMenu, ID_FILE_PLAY, MF_ENABLED); + EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_ENABLED); + + if (!oldControl) + EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_ENABLED); + + if (bProgressShown && bListReady == TRUE) + { + SetDefaultGame(ModifyThe(driver_list::driver(nGame).name)); + } + have_selection = TRUE; + + UpdateScreenShot(); + + osd_free(t_description); +} + +static void PaintBackgroundImage(HWND hWnd, HRGN hRgn, int x, int y) +{ + RECT rcClient; + HRGN rgnBitmap; + HPALETTE hPAL; + HDC hDC = GetDC(hWnd); + int i, j; + HDC htempDC; + HBITMAP oldBitmap; + + /* x and y are offsets within the background image that should be at 0,0 in hWnd */ + + /* So we don't paint over the control's border */ + GetClientRect(hWnd, &rcClient); + + htempDC = CreateCompatibleDC(hDC); + oldBitmap = (HBITMAP)SelectObject(htempDC, hBackground); + + if (hRgn == NULL) + { + /* create a region of our client area */ + rgnBitmap = CreateRectRgnIndirect(&rcClient); + SelectClipRgn(hDC, rgnBitmap); + DeleteBitmap(rgnBitmap); + } + else + { + /* use the passed in region */ + SelectClipRgn(hDC, hRgn); + } + + hPAL = GetBackgroundPalette(); + if (hPAL == NULL) + hPAL = CreateHalftonePalette(hDC); + + if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL) + { + SelectPalette(htempDC, hPAL, FALSE); + RealizePalette(htempDC); + } + + for (i = rcClient.left-x; i < rcClient.right; i += bmDesc.bmWidth) + for (j = rcClient.top-y; j < rcClient.bottom; j += bmDesc.bmHeight) + BitBlt(hDC, i, j, bmDesc.bmWidth, bmDesc.bmHeight, htempDC, 0, 0, SRCCOPY); + + SelectObject(htempDC, oldBitmap); + DeleteDC(htempDC); + + if (GetBackgroundPalette() == NULL) + { + DeletePalette(hPAL); + hPAL = NULL; + } + + ReleaseDC(hWnd, hDC); +} + +static LPCSTR GetCloneParentName(int nItem) +{ + int nParentIndex = -1; + + if (DriverIsClone(nItem) == TRUE) + { + nParentIndex = GetParentIndex(&driver_list::driver(nItem)); + if( nParentIndex >= 0) + return ModifyThe(driver_list::driver(nParentIndex).description); + } + return ""; +} + +static BOOL TreeViewNotify(LPNMHDR nm) +{ + switch (nm->code) + { + case TVN_SELCHANGED : + { + HTREEITEM hti = TreeView_GetSelection(hTreeView); + TVITEM tvi; + + tvi.mask = TVIF_PARAM | TVIF_HANDLE; + tvi.hItem = hti; + + if (TreeView_GetItem(hTreeView, &tvi)) + { + SetCurrentFolder((LPTREEFOLDER)tvi.lParam); + if (bListReady) + { + ResetListView(); + UpdateScreenShot(); + } + } + return TRUE; + } + case TVN_BEGINLABELEDIT : + { + TV_DISPINFO *ptvdi = (TV_DISPINFO *)nm; + LPTREEFOLDER folder = (LPTREEFOLDER)ptvdi->item.lParam; + + if (folder->m_dwFlags & F_CUSTOM) + { + // user can edit custom folder names + g_in_treeview_edit = TRUE; + return FALSE; + } + // user can't edit built in folder names + return TRUE; + } + case TVN_ENDLABELEDIT : + { + TV_DISPINFO *ptvdi = (TV_DISPINFO *)nm; + LPTREEFOLDER folder = (LPTREEFOLDER)ptvdi->item.lParam; + char* utf8_szText; + BOOL result; + + g_in_treeview_edit = FALSE; + + if (ptvdi->item.pszText == NULL || _tcslen(ptvdi->item.pszText) == 0) + return FALSE; + + utf8_szText = utf8_from_tstring(ptvdi->item.pszText); + if( !utf8_szText ) + return FALSE; + + result = TryRenameCustomFolder(folder, utf8_szText); + + osd_free(utf8_szText); + + return result; + } + } + return FALSE; +} + + + +static void GamePicker_OnHeaderContextMenu(POINT pt, int nColumn) +{ + // Right button was clicked on header + HMENU hMenuLoad; + HMENU hMenu; + + hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_HEADER)); + hMenu = GetSubMenu(hMenuLoad, 0); + lastColumnClick = nColumn; + TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hMain,NULL); + + DestroyMenu(hMenuLoad); +} + + + +char* ConvertAmpersandString(const char *s) +{ + /* takes a string and changes any ampersands to double ampersands, + for setting text of window controls that don't allow us to disable + the ampersand underlining. + */ + /* returns a static buffer--use before calling again */ + + static char buf[200]; + char *ptr; + + ptr = buf; + while (*s) + { + if (*s == '&') + *ptr++ = *s; + *ptr++ = *s++; + } + *ptr = 0; + + return buf; +} + +static int GUI_seq_pressed(const input_seq *seq) +{ + int codenum; + int res = 1; + int invert = 0; + int count = 0; + + for (codenum = 0; codenum < ARRAY_LENGTH(seq); codenum++) + { + input_code code = (*seq)[codenum]; + + if (code == input_seq::not_code) + invert = !invert; + + else if (code == input_seq::or_code) + { + if (res && count) + return 1; + res = 1; + count = 0; + } + else + { + if (res) + { + if ((keyboard_state[(int)(code.item_id())] != 0) == invert) + res = 0; + } + invert = 0; + ++count; + } + } + return res && count; +} + +static void check_for_GUI_action(void) +{ + int i; + + for (i = 0; i < NUM_GUI_SEQUENCES; i++) + { + const input_seq *is = &(GUISequenceControl[i].is); + + if (GUI_seq_pressed(is)) + { + dprintf("seq =%s pressed\n", GUISequenceControl[i].name); + switch (GUISequenceControl[i].func_id) + { + case ID_GAME_AUDIT: + case ID_GAME_PROPERTIES: + case ID_CONTEXT_FILTERS: + case ID_UI_START: + KeyboardStateClear(); /* beacuse whe won't receive KeyUp mesage when we loose focus */ + break; + default: + break; + } + SendMessage(hMain, WM_COMMAND, GUISequenceControl[i].func_id, 0); + } + } +} + +static void KeyboardStateClear(void) +{ + memset(keyboard_state, 0, sizeof(keyboard_state)); + dprintf("keyboard gui state cleared.\n"); +} + + +static void KeyboardKeyDown(int syskey, int vk_code, int special) +{ + int i, found = 0; + int icode = 0; + int special_code = (special >> 24) & 1; + int scancode = (special>>16) & 0xff; + + if ((vk_code==VK_MENU) || (vk_code==VK_CONTROL) || (vk_code==VK_SHIFT)) + { + found = 1; + + /* a hack for right shift - it's better to use Direct X for keyboard input it seems......*/ + if (vk_code==VK_SHIFT) + if (scancode>0x30) /* on my keyboard left shift scancode is 0x2a, right shift is 0x36 */ + special_code = 1; + + if (special_code) /* right hand keys */ + { + switch(vk_code) + { + case VK_MENU: + icode = (int)(KEYCODE_RALT.item_id()); + break; + case VK_CONTROL: + icode = (int)(KEYCODE_RCONTROL.item_id()); + break; + case VK_SHIFT: + icode = (int)(KEYCODE_RSHIFT.item_id()); + break; + } + } + else /* left hand keys */ + { + switch(vk_code) + { + case VK_MENU: + icode = (int)(KEYCODE_LALT.item_id()); + break; + case VK_CONTROL: + icode = (int)(KEYCODE_LCONTROL.item_id()); + break; + case VK_SHIFT: + icode = (int)(KEYCODE_LSHIFT.item_id()); + break; + } + } + } + else + { + for (i = 0; i < ARRAY_LENGTH(win_key_trans_table); i++) + { + if ( vk_code == win_key_trans_table[i][VIRTUAL_KEY]) + { + icode = win_key_trans_table[i][MAME_KEY]; + found = 1; + break; + } + } + } + if (!found) + { + dprintf("VK_code pressed not found = %i\n",vk_code); + //MessageBox(NULL,"keydown message arrived not processed","TitleBox",MB_OK); + return; + } + dprintf("VK_code pressed found = %i, sys=%i, mame_keycode=%i special=%08x\n", vk_code, syskey, icode, special); + keyboard_state[icode] = true; + check_for_GUI_action(); +} + +static void KeyboardKeyUp(int syskey, int vk_code, int special) +{ + int i, found = 0; + int icode = 0; + int special_code = (special >> 24) & 1; + int scancode = (special>>16) & 0xff; + + if ((vk_code==VK_MENU) || (vk_code==VK_CONTROL) || (vk_code==VK_SHIFT)) + { + found = 1; + + /* a hack for right shift - it's better to use Direct X for keyboard input it seems......*/ + if (vk_code==VK_SHIFT) + if (scancode>0x30) /* on my keyboard left shift scancode is 0x2a, right shift is 0x36 */ + special_code = 1; + + if (special_code) /* right hand keys */ + { + switch(vk_code) + { + case VK_MENU: + icode = (int)(KEYCODE_RALT.item_id()); + break; + case VK_CONTROL: + icode = (int)(KEYCODE_RCONTROL.item_id()); + break; + case VK_SHIFT: + icode = (int)(KEYCODE_RSHIFT.item_id()); + break; + } + } + else /* left hand keys */ + { + switch(vk_code) + { + case VK_MENU: + icode = (int)(KEYCODE_LALT.item_id()); + break; + case VK_CONTROL: + icode = (int)(KEYCODE_LCONTROL.item_id()); + break; + case VK_SHIFT: + icode = (int)(KEYCODE_LSHIFT.item_id()); + break; + } + } + } + else + { + for (i = 0; i < ARRAY_LENGTH(win_key_trans_table); i++) + { + if (vk_code == win_key_trans_table[i][VIRTUAL_KEY]) + { + icode = win_key_trans_table[i][MAME_KEY]; + found = 1; + break; + } + } + } + if (!found) + { + dprintf("VK_code released not found = %i\n",vk_code); + //MessageBox(NULL,"keyup message arrived not processed","TitleBox",MB_OK); + return; + } + keyboard_state[icode] = false; + dprintf("VK_code released found= %i, sys=%i, mame_keycode=%i special=%08x\n", vk_code, syskey, icode, special ); + check_for_GUI_action(); +} + +static void PollGUIJoystick() +{ + // For the exec timer, will keep track of how long the button has been pressed + static int exec_counter = 0; + const char* exec_command; + TCHAR* t_exec_command; + + if (in_emulation) + return; + + if (g_pJoyGUI == NULL) + return; + + g_pJoyGUI->poll_joysticks(); + + + // User pressed UP + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyUp(0), GetUIJoyUp(1), GetUIJoyUp(2),GetUIJoyUp(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_UP, 0); + } + + // User pressed DOWN + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyDown(0), GetUIJoyDown(1), GetUIJoyDown(2),GetUIJoyDown(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_DOWN, 0); + } + + // User pressed LEFT + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyLeft(0), GetUIJoyLeft(1), GetUIJoyLeft(2),GetUIJoyLeft(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_LEFT, 0); + } + + // User pressed RIGHT + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyRight(0), GetUIJoyRight(1), GetUIJoyRight(2),GetUIJoyRight(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_RIGHT, 0); + } + + // User pressed START GAME + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyStart(0), GetUIJoyStart(1), GetUIJoyStart(2),GetUIJoyStart(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_START, 0); + } + + // User pressed PAGE UP + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyPageUp(0), GetUIJoyPageUp(1), GetUIJoyPageUp(2),GetUIJoyPageUp(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_PGUP, 0); + } + + // User pressed PAGE DOWN + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyPageDown(0), GetUIJoyPageDown(1), GetUIJoyPageDown(2),GetUIJoyPageDown(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_PGDOWN, 0); + } + + // User pressed HOME + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHome(0), GetUIJoyHome(1), GetUIJoyHome(2),GetUIJoyHome(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_HOME, 0); + } + + // User pressed END + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyEnd(0), GetUIJoyEnd(1), GetUIJoyEnd(2),GetUIJoyEnd(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_END, 0); + } + + // User pressed CHANGE SCREENSHOT + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoySSChange(0), GetUIJoySSChange(1), GetUIJoySSChange(2),GetUIJoySSChange(3)))) + { + SendMessage(hMain, WM_COMMAND, IDC_SSFRAME, 0); + } + + // User pressed SCROLL HISTORY UP + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHistoryUp(0), GetUIJoyHistoryUp(1), GetUIJoyHistoryUp(2),GetUIJoyHistoryUp(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_HISTORY_UP, 0); + } + + // User pressed SCROLL HISTORY DOWN + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHistoryDown(0), GetUIJoyHistoryDown(1), GetUIJoyHistoryDown(2),GetUIJoyHistoryDown(3)))) + { + SendMessage(hMain, WM_COMMAND, ID_UI_HISTORY_DOWN, 0); + } + + // User pressed EXECUTE COMMANDLINE + if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyExec(0), GetUIJoyExec(1), GetUIJoyExec(2),GetUIJoyExec(3)))) + { + if (++exec_counter >= GetExecWait()) // Button has been pressed > exec timeout + { + PROCESS_INFORMATION pi; + STARTUPINFO si; + + // Reset counter + exec_counter = 0; + + ZeroMemory( &si, sizeof(si) ); + ZeroMemory( &pi, sizeof(pi) ); + si.dwFlags = STARTF_FORCEONFEEDBACK; + si.cb = sizeof(si); + + exec_command = GetExecCommand(); + t_exec_command = tstring_from_utf8(exec_command); + if( !t_exec_command ) + return; + CreateProcess(NULL, t_exec_command, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); + + osd_free(t_exec_command); + + // We will not wait for the process to finish cause it might be a background task + // The process won't get closed when MAME32 closes either. + + // But close the handles cause we won't need them anymore. Will not close process. + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + } + } + else + { + // Button has been released within the timeout period, reset the counter + exec_counter = 0; + } +} + +static void SetView(int menu_id) +{ + BOOL force_reset = FALSE; + int i; + + // first uncheck previous menu item, check new one + CheckMenuRadioItem(GetMenu(hMain), ID_VIEW_LARGE_ICON, ID_VIEW_GROUPED, menu_id, MF_CHECKED); + ToolBar_CheckButton(s_hToolBar, menu_id, MF_CHECKED); + + if (Picker_GetViewID(hwndList) == VIEW_GROUPED || menu_id == ID_VIEW_GROUPED) + { + // this changes the sort order, so redo everything + force_reset = TRUE; + } + + for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++) + Picker_SetViewID(GetDlgItem(hMain, s_nPickers[i]), menu_id - ID_VIEW_LARGE_ICON); + + if (force_reset) + { + for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++) + Picker_Sort(GetDlgItem(hMain, s_nPickers[i])); + } +} + +static void ResetListView() +{ + int i; + int current_game; + LV_ITEM lvi; + BOOL no_selection = FALSE; + LPTREEFOLDER lpFolder = GetCurrentFolder(); + HRESULT res; + BOOL b_res; + + if (!lpFolder) + return; + + /* If the last folder was empty, no_selection is TRUE */ + if (have_selection == FALSE) + no_selection = TRUE; + + current_game = Picker_GetSelectedItem(hwndList); + + SetWindowRedraw(hwndList,FALSE); + + b_res = ListView_DeleteAllItems(hwndList); + + // hint to have it allocate it all at once + ListView_SetItemCount(hwndList,driver_list::total()); + + lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM; + lvi.stateMask = 0; + + i = -1; + + do + { + /* Add the games that are in this folder */ + if ((i = FindGame(lpFolder, i + 1)) != -1) + { + if (GameFiltered(i, lpFolder->m_dwFlags)) + continue; + + lvi.iItem = i; + lvi.iSubItem = 0; + lvi.lParam = i; + lvi.pszText = LPSTR_TEXTCALLBACK; + lvi.iImage = I_IMAGECALLBACK; + res = ListView_InsertItem(hwndList, &lvi); + } + } while (i != -1); + + Picker_Sort(hwndList); + + if (bListReady) + { + /* If last folder was empty, select the first item in this folder */ + if (no_selection) + Picker_SetSelectedPick(hwndList, 0); + else + Picker_SetSelectedItem(hwndList, current_game); + } + + /*RS Instead of the Arrange Call that was here previously on all Views + We now need to set the ViewMode for SmallIcon again, + for an explanation why, see SetView*/ + if (GetViewMode() == VIEW_SMALL_ICONS) + SetView(ID_VIEW_SMALL_ICON); + + SetWindowRedraw(hwndList, TRUE); + + UpdateStatusBar(); + +} + +static void UpdateGameList(BOOL bUpdateRomAudit, BOOL bUpdateSampleAudit) +{ + int i; + + for (i = 0; i < driver_list::total(); i++) + { + if (bUpdateRomAudit && DriverUsesRoms(i)) + SetRomAuditResults(i, UNKNOWN); + if (bUpdateSampleAudit && DriverUsesSamples(i)) + SetSampleAuditResults(i, UNKNOWN); + } + + idle_work = TRUE; + bDoGameCheck = TRUE; + game_index = 0; + + ReloadIcons(); + + // Let REFRESH also load new background if found + LoadBackgroundBitmap(); + InvalidateRect(hMain,NULL,TRUE); + Picker_ResetIdle(hwndList); +} + +UINT_PTR CALLBACK CFHookProc( + HWND hdlg, // handle to dialog box + UINT uiMsg, // message identifier + WPARAM wParam, // message parameter + LPARAM lParam // message parameter +) +{ + int iIndex, i; + COLORREF cCombo, cList; + switch (uiMsg) + { + case WM_INITDIALOG: + SendDlgItemMessage(hdlg, cmb4, CB_ADDSTRING, 0, (LPARAM)TEXT("Custom")); + iIndex = SendDlgItemMessage(hdlg, cmb4, CB_GETCOUNT, 0, 0); + cList = GetListFontColor(); + SendDlgItemMessage(hdlg, cmb4, CB_SETITEMDATA,(WPARAM)iIndex-1,(LPARAM)cList ); + for( i = 0; i< iIndex; i++) + { + cCombo = SendDlgItemMessage(hdlg, cmb4, CB_GETITEMDATA,(WPARAM)i,0 ); + if( cList == cCombo) + { + SendDlgItemMessage(hdlg, cmb4, CB_SETCURSEL,(WPARAM)i,0 ); + break; + } + } + break; + case WM_COMMAND: + if( LOWORD(wParam) == cmb4) + { + switch (HIWORD(wParam)) + { + case CBN_SELCHANGE: // The color ComboBox changed selection + iIndex = (int)SendDlgItemMessage(hdlg, cmb4, + CB_GETCURSEL, 0, 0L); + if( iIndex == SendDlgItemMessage(hdlg, cmb4, CB_GETCOUNT, 0, 0)-1) + { + //Custom color selected + cList = GetListFontColor(); + PickColor(&cList); + SendDlgItemMessage(hdlg, cmb4, CB_DELETESTRING, iIndex, 0); + SendDlgItemMessage(hdlg, cmb4, CB_ADDSTRING, 0, (LPARAM)TEXT("Custom")); + SendDlgItemMessage(hdlg, cmb4, CB_SETITEMDATA,(WPARAM)iIndex,(LPARAM)cList); + SendDlgItemMessage(hdlg, cmb4, CB_SETCURSEL,(WPARAM)iIndex,0 ); + return TRUE; + } + } + } + break; + } + return FALSE; +} + +static void PickFont(void) +{ + LOGFONT font; + CHOOSEFONT cf; + TCHAR szClass[128]; + HWND hWnd; + HRESULT res; + BOOL b_res; + + GetListFont(&font); + font.lfQuality = DEFAULT_QUALITY; + + cf.lStructSize = sizeof(CHOOSEFONT); + cf.hwndOwner = hMain; + cf.lpLogFont = &font; + cf.lpfnHook = &CFHookProc; + cf.rgbColors = GetListFontColor(); + cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_EFFECTS | CF_ENABLEHOOK; + if (!ChooseFont(&cf)) + return; + + SetListFont(&font); + if (hFont) + DeleteFont(hFont); + hFont = CreateFontIndirect(&font); + if (hFont) + { + COLORREF textColor = cf.rgbColors; + + if (textColor == RGB(255,255,255)) + { + textColor = RGB(240, 240, 240); + } + + SetAllWindowsFont(hMain, &main_resize, hFont, TRUE); + + hWnd = GetWindow(hMain, GW_CHILD); + while(hWnd) + { + if (GetClassName(hWnd, szClass, sizeof(szClass) / sizeof(szClass[0]))) + { + if (!_tcscmp(szClass, TEXT("SysListView32"))) + { + b_res = ListView_SetTextColor(hWnd, textColor); + } + else if (!_tcscmp(szClass, TEXT("SysTreeView32"))) + { + res = TreeView_SetTextColor(hTreeView, textColor); + } + } + hWnd = GetWindow(hWnd, GW_HWNDNEXT); + } + SetListFontColor(cf.rgbColors); + ResetListView(); + } +} + +static void PickColor(COLORREF *cDefault) +{ + CHOOSECOLOR cc; + COLORREF choice_colors[16]; + int i; + + for (i=0;i<16;i++) + choice_colors[i] = GetCustomColor(i); + + cc.lStructSize = sizeof(CHOOSECOLOR); + cc.hwndOwner = hMain; + cc.rgbResult = *cDefault; + cc.lpCustColors = choice_colors; + cc.Flags = CC_ANYCOLOR | CC_RGBINIT | CC_SOLIDCOLOR | CC_FULLOPEN; + if (!ChooseColor(&cc)) + return; + for (i=0;i<16;i++) + SetCustomColor(i,choice_colors[i]); + *cDefault = cc.rgbResult; +} + +static void PickCloneColor(void) +{ + COLORREF cClonecolor; + cClonecolor = GetListCloneColor(); + PickColor( &cClonecolor); + SetListCloneColor(cClonecolor); + InvalidateRect(hwndList,NULL,FALSE); +} + +static BOOL MameCommand(HWND hwnd,int id, HWND hwndCtl, UINT codeNotify) +{ + int i = 0; + LPTREEFOLDER folder; + char* utf8_szFile; + BOOL res = 0; + + switch (id) + { + case ID_FILE_PLAY: + MamePlayGame(); + return TRUE; + + case ID_FILE_PLAY_RECORD: + MamePlayRecordGame(); + return TRUE; + + case ID_FILE_PLAY_BACK: + MamePlayBackGame(); + return TRUE; + + case ID_FILE_PLAY_RECORD_WAVE: + MamePlayRecordWave(); + return TRUE; + + case ID_FILE_PLAY_RECORD_MNG: + MamePlayRecordMNG(); + return TRUE; + + case ID_FILE_PLAY_RECORD_AVI: + MamePlayRecordAVI(); + return TRUE; + + case ID_FILE_LOADSTATE : + MameLoadState(); + return TRUE; + + case ID_FILE_AUDIT: + AuditDialog(hMain, 1); + ResetWhichGamesInFolders(); + ResetListView(); + SetFocus(hwndList); + return TRUE; + + case ID_FILE_AUDIT_X: + AuditDialog(hMain, 2); + ResetWhichGamesInFolders(); + ResetListView(); + SetFocus(hwndList); + return TRUE; + + case ID_FILE_EXIT: + PostMessage(hMain, WM_CLOSE, 0, 0); + return TRUE; + + case ID_VIEW_LARGE_ICON: + SetView(ID_VIEW_LARGE_ICON); + return TRUE; + + case ID_VIEW_SMALL_ICON: + SetView(ID_VIEW_SMALL_ICON); + ResetListView(); + return TRUE; + + case ID_VIEW_LIST_MENU: + SetView(ID_VIEW_LIST_MENU); + return TRUE; + + case ID_VIEW_DETAIL: + SetView(ID_VIEW_DETAIL); + return TRUE; + + case ID_VIEW_GROUPED: + SetView(ID_VIEW_GROUPED); + return TRUE; + + /* Arrange Icons submenu */ + case ID_VIEW_BYGAME: + SetSortReverse(FALSE); + SetSortColumn(COLUMN_GAMES); + Picker_Sort(hwndList); + break; + + case ID_VIEW_BYDIRECTORY: + SetSortReverse(FALSE); + SetSortColumn(COLUMN_DIRECTORY); + Picker_Sort(hwndList); + break; + + case ID_VIEW_BYMANUFACTURER: + SetSortReverse(FALSE); + SetSortColumn(COLUMN_MANUFACTURER); + Picker_Sort(hwndList); + break; + + case ID_VIEW_BYTIMESPLAYED: + SetSortReverse(FALSE); + SetSortColumn(COLUMN_PLAYED); + Picker_Sort(hwndList); + break; + + case ID_VIEW_BYTYPE: + SetSortReverse(FALSE); + SetSortColumn(COLUMN_TYPE); + Picker_Sort(hwndList); + break; + + case ID_VIEW_BYYEAR: + SetSortReverse(FALSE); + SetSortColumn(COLUMN_YEAR); + Picker_Sort(hwndList); + break; + + case ID_VIEW_FOLDERS: + bShowTree = !bShowTree; + SetShowFolderList(bShowTree); + CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED); + ToolBar_CheckButton(s_hToolBar, ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED); + UpdateScreenShot(); + break; + + case ID_VIEW_TOOLBARS: + bShowToolBar = !bShowToolBar; + SetShowToolBar(bShowToolBar); + CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED); + ToolBar_CheckButton(s_hToolBar, ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED); + ShowWindow(s_hToolBar, (bShowToolBar) ? SW_SHOW : SW_HIDE); + ResizePickerControls(hMain); + UpdateScreenShot(); + break; + + case ID_VIEW_STATUS: + bShowStatusBar = !bShowStatusBar; + SetShowStatusBar(bShowStatusBar); + CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED); + ToolBar_CheckButton(s_hToolBar, ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED); + ShowWindow(hStatusBar, (bShowStatusBar) ? SW_SHOW : SW_HIDE); + ResizePickerControls(hMain); + UpdateScreenShot(); + break; + + case ID_VIEW_PAGETAB: + bShowTabCtrl = !bShowTabCtrl; + SetShowTabCtrl(bShowTabCtrl); + ShowWindow(hTabCtrl, (bShowTabCtrl) ? SW_SHOW : SW_HIDE); + ResizePickerControls(hMain); + UpdateScreenShot(); + InvalidateRect(hMain,NULL,TRUE); + break; + + /* + Switches to fullscreen mode. No check mark handling + for this item cause in fullscreen mode the menu won't + be visible anyways. + */ + case ID_VIEW_FULLSCREEN: + SwitchFullScreenMode(); + break; + + case ID_TOOLBAR_EDIT: + { + char buf[256]; + HWND hToolbarEdit; + + win_get_window_text_utf8(hwndCtl, buf, sizeof(buf)); + switch (codeNotify) + { + case TOOLBAR_EDIT_ACCELERATOR_PRESSED: + hToolbarEdit = GetDlgItem( s_hToolBar, ID_TOOLBAR_EDIT); + SetFocus(hToolbarEdit); + break; + case EN_CHANGE: + //put search routine here first, add a 200ms timer later. + if ((!_stricmp(buf, SEARCH_PROMPT) && !_stricmp(g_SearchText, ""))) + strcpy(g_SearchText, buf); + else + { + strcpy(g_SearchText, buf); + ResetListView(); + } + break; + case EN_SETFOCUS: + if (!_stricmp(buf, SEARCH_PROMPT)) + win_set_window_text_utf8(hwndCtl, ""); + break; + case EN_KILLFOCUS: + if (*buf == 0) + win_set_window_text_utf8(hwndCtl, SEARCH_PROMPT); + break; + } + } + break; + + case ID_GAME_AUDIT: + InitGameAudit(0); + if (!oldControl) + { + InitPropertyPageToPage(hInst, hwnd, GetSelectedPickItemIcon(), OPTIONS_GAME, -1, Picker_GetSelectedItem(hwndList), AUDIT_PAGE); + } + /* Just in case the toggle MMX on/off */ + UpdateStatusBar(); + break; + + /* ListView Context Menu */ + case ID_CONTEXT_ADD_CUSTOM: + { + DialogBoxParam(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_CUSTOM_FILE), + hMain,AddCustomFileDialogProc,Picker_GetSelectedItem(hwndList)); + SetFocus(hwndList); + break; + } + + case ID_CONTEXT_REMOVE_CUSTOM: + { + RemoveCurrentGameCustomFolder(); + break; + } + + /* Tree Context Menu */ + case ID_CONTEXT_FILTERS: + if (DialogBox(GetModuleHandle(NULL), + MAKEINTRESOURCE(IDD_FILTERS), hMain, FilterDialogProc) == TRUE) + ResetListView(); + SetFocus(hwndList); + return TRUE; + + // ScreenShot Context Menu + // select current tab + case ID_VIEW_TAB_SCREENSHOT : + case ID_VIEW_TAB_FLYER : + case ID_VIEW_TAB_CABINET : + case ID_VIEW_TAB_MARQUEE : + case ID_VIEW_TAB_TITLE : + case ID_VIEW_TAB_CONTROL_PANEL : + case ID_VIEW_TAB_PCB : + case ID_VIEW_TAB_HISTORY: + if (id == ID_VIEW_TAB_HISTORY && GetShowTab(TAB_HISTORY) == FALSE) + break; + + TabView_SetCurrentTab(hTabCtrl, id - ID_VIEW_TAB_SCREENSHOT); + UpdateScreenShot(); + TabView_UpdateSelection(hTabCtrl); + break; + + // toggle tab's existence + case ID_TOGGLE_TAB_SCREENSHOT : + case ID_TOGGLE_TAB_FLYER : + case ID_TOGGLE_TAB_CABINET : + case ID_TOGGLE_TAB_MARQUEE : + case ID_TOGGLE_TAB_TITLE : + case ID_TOGGLE_TAB_CONTROL_PANEL : + case ID_TOGGLE_TAB_PCB : + case ID_TOGGLE_TAB_HISTORY : + { + int toggle_flag = id - ID_TOGGLE_TAB_SCREENSHOT; + + if (AllowedToSetShowTab(toggle_flag,!GetShowTab(toggle_flag)) == FALSE) + { + // attempt to hide the last tab + // should show error dialog? hide picture area? or ignore? + break; + } + + SetShowTab(toggle_flag,!GetShowTab(toggle_flag)); + + TabView_Reset(hTabCtrl); + + if (TabView_GetCurrentTab(hTabCtrl) == toggle_flag && GetShowTab(toggle_flag) == FALSE) + { + // we're deleting the tab we're on, so go to the next one + TabView_CalculateNextTab(hTabCtrl); + } + + + // Resize the controls in case we toggled to another history + // mode (and the history control needs resizing). + + ResizePickerControls(hMain); + UpdateScreenShot(); + + TabView_UpdateSelection(hTabCtrl); + + break; + } + + /* Header Context Menu */ + case ID_SORT_ASCENDING: + SetSortReverse(FALSE); + SetSortColumn(Picker_GetRealColumnFromViewColumn(hwndList, lastColumnClick)); + Picker_Sort(hwndList); + break; + + case ID_SORT_DESCENDING: + SetSortReverse(TRUE); + SetSortColumn(Picker_GetRealColumnFromViewColumn(hwndList, lastColumnClick)); + Picker_Sort(hwndList); + break; + + case ID_CUSTOMIZE_FIELDS: + if (DialogBox(GetModuleHandle(NULL), + MAKEINTRESOURCE(IDD_COLUMNS), hMain, ColumnDialogProc) == TRUE) + ResetColumnDisplay(FALSE); + SetFocus(hwndList); + return TRUE; + + /* View Menu */ + case ID_VIEW_LINEUPICONS: + if( codeNotify == FALSE) + ResetListView(); + else + { + /*it was sent after a refresh (F5) was done, we only reset the View if "available" is the selected folder + as it doesn't affect the others*/ + folder = GetSelectedFolder(); + if( folder ) + if (folder->m_nFolderId == FOLDER_AVAILABLE ) + ResetListView(); + } + break; + + case ID_GAME_PROPERTIES: + if (!oldControl) + { + folder = GetFolderByName(FOLDER_SOURCE, GetDriverFilename(Picker_GetSelectedItem(hwndList)) ); + InitPropertyPage(hInst, hwnd, GetSelectedPickItemIcon(), OPTIONS_GAME, folder->m_nFolderId, Picker_GetSelectedItem(hwndList)); + } + /* Just in case the toggle MMX on/off */ + UpdateStatusBar(); + break; + + case ID_FOLDER_PROPERTIES: + if (!oldControl) + { + OPTIONS_TYPE curOptType = OPTIONS_SOURCE; + folder = GetSelectedFolder(); + if(folder->m_nFolderId == FOLDER_VECTOR) + curOptType = OPTIONS_VECTOR; + + InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), curOptType, folder->m_nFolderId, Picker_GetSelectedItem(hwndList)); + } + /* Just in case the toggle MMX on/off */ + UpdateStatusBar(); + break; + + case ID_FOLDER_SOURCEPROPERTIES: + if (!oldControl) + { + folder = GetFolderByName(FOLDER_SOURCE, GetDriverFilename(Picker_GetSelectedItem(hwndList)) ); + InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), (folder->m_nFolderId == FOLDER_VECTOR) ? OPTIONS_VECTOR : OPTIONS_SOURCE , folder->m_nFolderId, Picker_GetSelectedItem(hwndList)); + } + /* Just in case the toggle MMX on/off */ + UpdateStatusBar(); + break; + + case ID_FOLDER_VECTORPROPERTIES: + if (!oldControl) + { + folder = GetFolderByID( FOLDER_VECTOR ); + InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), OPTIONS_VECTOR, folder->m_nFolderId, Picker_GetSelectedItem(hwndList)); + } + /* Just in case the toggle MMX on/off */ + UpdateStatusBar(); + break; + + case ID_FOLDER_AUDIT: + FolderCheck(); + /* Just in case the toggle MMX on/off */ + UpdateStatusBar(); + break; + + case ID_VIEW_PICTURE_AREA : + ToggleScreenShot(); + break; + + case ID_UPDATE_GAMELIST: + UpdateGameList(TRUE, TRUE); + break; + + case ID_OPTIONS_FONT: + PickFont(); + return TRUE; + + case ID_OPTIONS_CLONE_COLOR: + PickCloneColor(); + return TRUE; + + case ID_OPTIONS_DEFAULTS: + /* Check the return value to see if changes were applied */ + if (!oldControl) + { + InitDefaultPropertyPage(hInst, hwnd); + } + SetFocus(hwndList); + return TRUE; + + case ID_OPTIONS_DIR: + { + int nResult = DialogBox(GetModuleHandle(NULL), + MAKEINTRESOURCE(IDD_DIRECTORIES), + hMain, + DirectoriesDialogProc); + + SaveDefaultOptions(); + SaveOptions(); + + BOOL bUpdateRoms = ((nResult & DIRDLG_ROMS) == DIRDLG_ROMS) ? TRUE : FALSE; + BOOL bUpdateSamples = ((nResult & DIRDLG_SAMPLES) == DIRDLG_SAMPLES) ? TRUE : FALSE; + + if (s_pWatcher) + { + if (bUpdateRoms) + DirWatcher_Watch(s_pWatcher, 0, GetRomDirs(), TRUE); + if (bUpdateSamples) + DirWatcher_Watch(s_pWatcher, 1, GetSampleDirs(), TRUE); + } + + /* update game list */ + if (bUpdateRoms == TRUE || bUpdateSamples == TRUE) + UpdateGameList(bUpdateRoms, bUpdateSamples); + + SetFocus(hwndList); + } + return TRUE; + + case ID_OPTIONS_RESET_DEFAULTS: + if (DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_RESET), hMain, ResetDialogProc) == TRUE) + { + // these may have been changed + SaveDefaultOptions(); + SaveOptions(); + DestroyWindow(hwnd); + PostQuitMessage(0); + } + else + { + ResetListView(); + SetFocus(hwndList); + } + return TRUE; + + case ID_OPTIONS_INTERFACE: + DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_INTERFACE_OPTIONS), hMain, InterfaceDialogProc); + SaveOptions(); + + KillTimer(hMain, SCREENSHOT_TIMER); + if( GetCycleScreenshot() > 0) + { + SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL ); // Scale to seconds + } + + return TRUE; + + case ID_OPTIONS_BG: + { + // More c++ stupidity with strings + // Get the path from the existing filename; if no filename go to root + TCHAR* t_bgdir = TEXT("."); + const char *s = GetBgDir(); + std::string as; + util::zippath_parent(as, s); + size_t t1 = as.length()-1; + if (as[t1] == '\\') as[t1]='\0'; + t1 = as.find(':'); + if (t1 > 0) + t_bgdir = tstring_from_utf8(as.c_str()); + + OPENFILENAME OFN; + static TCHAR szFile[MAX_PATH] = TEXT("\0"); + if( !t_bgdir ) + return FALSE; + + OFN.lStructSize = sizeof(OPENFILENAME); + OFN.hwndOwner = hMain; + OFN.hInstance = 0; + OFN.lpstrFilter = TEXT("Image Files (*.png)\0*.PNG\0"); + OFN.lpstrCustomFilter = NULL; + OFN.nMaxCustFilter = 0; + OFN.nFilterIndex = 1; + OFN.lpstrFile = szFile; + OFN.nMaxFile = sizeof(szFile); + OFN.lpstrFileTitle = NULL; + OFN.nMaxFileTitle = 0; + OFN.lpstrInitialDir = t_bgdir; + OFN.lpstrTitle = TEXT("Select a Background Image"); + OFN.nFileOffset = 0; + OFN.nFileExtension = 0; + OFN.lpstrDefExt = NULL; + OFN.lCustData = 0; + OFN.lpfnHook = NULL; + OFN.lpTemplateName = NULL; + OFN.Flags = OFN_NOCHANGEDIR | OFN_SHOWHELP | OFN_EXPLORER; + + if (GetOpenFileName(&OFN)) + { + osd_free(t_bgdir); + utf8_szFile = utf8_from_tstring(szFile); + if( !utf8_szFile ) + return FALSE; + + // Make this file as the new default + SetBgDir(utf8_szFile); + + // Display new background + LoadBackgroundBitmap(); + InvalidateRect(hMain, NULL, TRUE); + osd_free(utf8_szFile); + return TRUE; + } + osd_free(t_bgdir); + } + break; +#if 0 + case ID_OPTIONS_HISTORY: + { + char filename[MAX_PATH]; + strcpy(filename, GetHistoryFileName()); + if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_HISTORY_FILE)) + { + SetHistoryFileName(filename); + } + return TRUE; + } + case ID_OPTIONS_MAMEINFO: + { + char filename[MAX_PATH]; + strcpy(filename, GetMAMEInfoFileName()); + if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_MAMEINFO_FILE)) + { + SetMAMEInfoFileName(filename); + } + return TRUE; + } +#endif + case ID_HELP_ABOUT: + DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_ABOUT), hMain, AboutDialogProc); + SetFocus(hwndList); + return TRUE; + + case IDOK : + /* cmk -- might need to check more codes here, not sure */ + if (codeNotify != EN_CHANGE && codeNotify != EN_UPDATE) + { + /* enter key */ + if (g_in_treeview_edit) + { + res = TreeView_EndEditLabelNow(hTreeView, FALSE); + return TRUE; + } + else + if (have_selection) + MamePlayGame(); + } + break; + + case IDCANCEL : /* esc key */ + if (g_in_treeview_edit) + res = TreeView_EndEditLabelNow(hTreeView, TRUE); + break; + + case IDC_PLAY_GAME : + if (have_selection) + MamePlayGame(); + break; + + case ID_UI_START: + SetFocus(hwndList); + MamePlayGame(); + break; + + case ID_UI_UP: + Picker_SetSelectedPick(hwndList, GetSelectedPick() - 1); + break; + + case ID_UI_DOWN: + Picker_SetSelectedPick(hwndList, GetSelectedPick() + 1); + break; + + case ID_UI_PGUP: + Picker_SetSelectedPick(hwndList, GetSelectedPick() - ListView_GetCountPerPage(hwndList)); + break; + + case ID_UI_PGDOWN: + if ( (GetSelectedPick() + ListView_GetCountPerPage(hwndList)) < ListView_GetItemCount(hwndList) ) + Picker_SetSelectedPick(hwndList, GetSelectedPick() + ListView_GetCountPerPage(hwndList) ); + else + Picker_SetSelectedPick(hwndList, ListView_GetItemCount(hwndList)-1 ); + break; + + case ID_UI_HOME: + Picker_SetSelectedPick(hwndList, 0); + break; + + case ID_UI_END: + Picker_SetSelectedPick(hwndList, ListView_GetItemCount(hwndList)-1 ); + break; + case ID_UI_LEFT: + /* hmmmmm..... */ + SendMessage(hwndList,WM_HSCROLL, SB_LINELEFT, 0); + break; + + case ID_UI_RIGHT: + /* hmmmmm..... */ + SendMessage(hwndList,WM_HSCROLL, SB_LINERIGHT, 0); + break; + case ID_UI_HISTORY_UP: + /* hmmmmm..... */ + { + HWND hHistory = GetDlgItem(hMain, IDC_HISTORY); + SendMessage(hHistory, EM_SCROLL, SB_PAGEUP, 0); + } + break; + + case ID_UI_HISTORY_DOWN: + /* hmmmmm..... */ + { + HWND hHistory = GetDlgItem(hMain, IDC_HISTORY); + SendMessage(hHistory, EM_SCROLL, SB_PAGEDOWN, 0); + } + break; + + case IDC_SSFRAME: + TabView_CalculateNextTab(hTabCtrl); + UpdateScreenShot(); + TabView_UpdateSelection(hTabCtrl); + break; + + case ID_CONTEXT_SELECT_RANDOM: + SetRandomPickItem(); + break; + + case ID_CONTEXT_RESET_PLAYTIME: + ResetPlayTime( Picker_GetSelectedItem(hwndList) ); + res = ListView_RedrawItems(hwndList, GetSelectedPick(), GetSelectedPick()); + break; + + case ID_CONTEXT_RESET_PLAYCOUNT: + ResetPlayCount( Picker_GetSelectedItem(hwndList) ); + res = ListView_RedrawItems(hwndList, GetSelectedPick(), GetSelectedPick()); + break; + + case ID_CONTEXT_RENAME_CUSTOM : + TreeView_EditLabel(hTreeView,TreeView_GetSelection(hTreeView)); + break; + + default: + if (id >= ID_CONTEXT_SHOW_FOLDER_START && id < ID_CONTEXT_SHOW_FOLDER_END) + { + ToggleShowFolder(id - ID_CONTEXT_SHOW_FOLDER_START); + break; + } + for (i = 0; g_helpInfo[i].nMenuItem > 0; i++) + { + if (g_helpInfo[i].nMenuItem == id) + { + printf("%X: %ls\n",g_helpInfo[i].bIsHtmlHelp, g_helpInfo[i].lpFile); + if (i == 1) // get current whatsnew.txt from mamedev.org + { + std::string version = std::string(GetVersionString()); // turn version string into std + version.erase(1,1); // take out the decimal point + version.erase(4, std::string::npos); // take out the date + std::string url = "http://mamedev.org/releases/whatsnew_" + version + ".txt"; // construct url + std::wstring stemp = s2ws(url); // convert to wide string (yeah, typical c++ mess) + LPCWSTR result = stemp.c_str(); // then convert to const wchar_t* + ShellExecute(hMain, TEXT("open"), result, TEXT(""), NULL, SW_SHOWNORMAL); // show web page + } + else + if (g_helpInfo[i].bIsHtmlHelp) +// HelpFunction(hMain, g_helpInfo[i].lpFile, HH_DISPLAY_TOPIC, 0); + ShellExecute(hMain, TEXT("open"), g_helpInfo[i].lpFile, TEXT(""), NULL, SW_SHOWNORMAL); +// else +// DisplayTextFile(hMain, g_helpInfo[i].lpFile); + return FALSE; + } + } + break; + } + + return FALSE; +} + +static void LoadBackgroundBitmap() +{ + HGLOBAL hDIBbg; + + if (hBackground) + { + DeleteBitmap(hBackground); + hBackground = 0; + } + + if (hPALbg) + { + DeletePalette(hPALbg); + hPALbg = 0; + } + + if (LoadDIBBG(&hDIBbg, &hPALbg)) + { + HDC hDC = GetDC(hwndList); + hBackground = DIBToDDB(hDC, hDIBbg, &bmDesc); + GlobalFree(hDIBbg); + ReleaseDC(hwndList, hDC); + } +} + +static void ResetColumnDisplay(BOOL first_time) +{ + int driver_index; + + if (!first_time) + Picker_ResetColumnDisplay(hwndList); + + ResetListView(); + + driver_index = GetGameNameIndex(GetDefaultGame()); + Picker_SetSelectedItem(hwndList, driver_index); +} + +static int GamePicker_GetItemImage(HWND hwndPicker, int nItem) +{ + return GetIconForDriver(nItem); +} + +static const TCHAR *GamePicker_GetItemString(HWND hwndPicker, int nItem, int nColumn, TCHAR *pszBuffer, UINT nBufferLength) +{ + const TCHAR *s = NULL; + const char* utf8_s = NULL; + char playtime_buf[256]; + + switch(nColumn) + { + case COLUMN_GAMES: + /* Driver description */ + utf8_s = ModifyThe(driver_list::driver(nItem).description); + break; + + case COLUMN_ORIENTATION: + utf8_s = DriverIsVertical(nItem) ? "Vertical" : "Horizontal"; + break; + +#ifdef SHOW_COLUMN_ROMS + case COLUMN_ROMS: + utf8_s = GetAuditString(GetRomAuditResults(nItem)); + break; +#endif +#ifdef SHOW_COLUMN_SAMPLES + case COLUMN_SAMPLES: + /* Samples */ + if (DriverUsesSamples(nItem)) + utf8_s = GetAuditString(GetSampleAuditResults(nItem)); + else + s = TEXT("-"); + break; +#endif + case COLUMN_DIRECTORY: + /* Driver name (directory) */ + utf8_s = driver_list::driver(nItem).name; + break; + + case COLUMN_SRCDRIVERS: + /* Source drivers */ + utf8_s = GetDriverFilename(nItem); + break; + + case COLUMN_PLAYTIME: + /* Source drivers */ + GetTextPlayTime(nItem, playtime_buf); + utf8_s = playtime_buf; + break; + + case COLUMN_TYPE: + /* Vector/Raster */ + { + if (DriverIsVector(nItem)) + s = TEXT("Vector"); + else + s = TEXT("Raster"); + break; + } + + case COLUMN_TRACKBALL: + /* Trackball */ + if (DriverUsesTrackball(nItem)) + s = TEXT("Yes"); + else + s = TEXT("No"); + break; + + case COLUMN_PLAYED: + /* times played */ + _sntprintf(pszBuffer, nBufferLength, TEXT("%i"), GetPlayCount(nItem)); + s = pszBuffer; + break; + + case COLUMN_MANUFACTURER: + /* Manufacturer */ + utf8_s = driver_list::driver(nItem).manufacturer; + break; + + case COLUMN_YEAR: + /* Year */ + utf8_s = driver_list::driver(nItem).year; + break; + + case COLUMN_CLONE: + utf8_s = GetCloneParentName(nItem); + break; + } + + if( utf8_s ) + { + TCHAR* t_s = tstring_from_utf8(utf8_s); + if( !t_s ) + return s; + + _sntprintf(pszBuffer, nBufferLength, TEXT("%s"), t_s); + osd_free(t_s); + + s = pszBuffer; + } + + return s; +} + +static void GamePicker_LeavingItem(HWND hwndPicker, int nItem) +{ + // leaving item + // printf("leaving %s\n",driver_list::driver(nItem).name); +} + +static void GamePicker_EnteringItem(HWND hwndPicker, int nItem) +{ + EnableSelection(nItem); + + // decide if it is valid to load a savestate + if (DriverSupportsSaveState(nItem)) + EnableMenuItem(GetMenu(hMain), ID_FILE_LOADSTATE, MFS_ENABLED); + else + EnableMenuItem(GetMenu(hMain), ID_FILE_LOADSTATE, MFS_GRAYED); +} + +static int GamePicker_FindItemParent(HWND hwndPicker, int nItem) +{ + return GetParentRomSetIndex(&driver_list::driver(nItem)); +} + +/* Initialize the Picker and List controls */ +static void InitListView() +{ + LVBKIMAGE bki; + //TCHAR path[MAX_PATH]; + TCHAR* t_bgdir; + BOOL res; + + static const struct PickerCallbacks s_gameListCallbacks = + { + SetSortColumn, /* pfnSetSortColumn */ + GetSortColumn, /* pfnGetSortColumn */ + SetSortReverse, /* pfnSetSortReverse */ + GetSortReverse, /* pfnGetSortReverse */ + SetViewMode, /* pfnSetViewMode */ + GetViewMode, /* pfnGetViewMode */ + SetColumnWidths, /* pfnSetColumnWidths */ + GetColumnWidths, /* pfnGetColumnWidths */ + SetColumnOrder, /* pfnSetColumnOrder */ + GetColumnOrder, /* pfnGetColumnOrder */ + SetColumnShown, /* pfnSetColumnShown */ + GetColumnShown, /* pfnGetColumnShown */ + GetOffsetClones, /* pfnGetOffsetChildren */ + + GamePicker_Compare, /* pfnCompare */ + MamePlayGame, /* pfnDoubleClick */ + GamePicker_GetItemString, /* pfnGetItemString */ + GamePicker_GetItemImage, /* pfnGetItemImage */ + GamePicker_LeavingItem, /* pfnLeavingItem */ + GamePicker_EnteringItem, /* pfnEnteringItem */ + BeginListViewDrag, /* pfnBeginListViewDrag */ + GamePicker_FindItemParent, /* pfnFindItemParent */ + OnIdle, /* pfnIdle */ + GamePicker_OnHeaderContextMenu, /* pfnOnHeaderContextMenu */ + GamePicker_OnBodyContextMenu /* pfnOnBodyContextMenu */ + }; + + struct PickerOptions opts; + + // subclass the list view + memset(&opts, 0, sizeof(opts)); + opts.pCallbacks = &s_gameListCallbacks; + opts.nColumnCount = COLUMN_MAX; + opts.ppszColumnNames = column_names; + SetupPicker(hwndList, &opts); + + res = ListView_SetTextBkColor(hwndList, CLR_NONE); + res = ListView_SetBkColor(hwndList, CLR_NONE); + t_bgdir = tstring_from_utf8(GetBgDir()); + if( !t_bgdir ) + return; + + bki.ulFlags = LVBKIF_SOURCE_URL | LVBKIF_STYLE_TILE; + bki.pszImage = t_bgdir; + if( hBackground ) + res = ListView_SetBkImage(hwndList, &bki); + + CreateIcons(); + + ResetColumnDisplay(TRUE); + + // Allow selection to change the default saved game + bListReady = TRUE; + osd_free(t_bgdir); +} + +static void AddDriverIcon(int nItem,int default_icon_index) +{ + HICON hIcon = 0; + int nParentIndex = -1; + + /* if already set to rom or clone icon, we've been here before */ + if (icon_index[nItem] == 1 || icon_index[nItem] == 3) + return; + + hIcon = LoadIconFromFile((char *)driver_list::driver(nItem).name); + if (hIcon == NULL) + { + nParentIndex = GetParentIndex(&driver_list::driver(nItem)); + if( nParentIndex >= 0) + { + hIcon = LoadIconFromFile((char *)driver_list::driver(nParentIndex).name); + nParentIndex = GetParentIndex(&driver_list::driver(nParentIndex)); + if (hIcon == NULL && nParentIndex >= 0) + hIcon = LoadIconFromFile((char *)driver_list::driver(nParentIndex).name); + } + } + + if (hIcon) + { + int nIconPos = ImageList_AddIcon(hSmall, hIcon); + ImageList_AddIcon(hLarge, hIcon); + if (nIconPos != -1) + icon_index[nItem] = nIconPos; + DestroyIcon(hIcon); + } + if (icon_index[nItem] == 0) + icon_index[nItem] = default_icon_index; +} + +static void DestroyIcons(void) +{ + if (hSmall) + { + ImageList_Destroy(hSmall); + hSmall = NULL; + } + + if (icon_index) + { + int i; + for (i=0;i<driver_list::total();i++) + icon_index[i] = 0; // these are indices into hSmall + } + + if (hLarge) + { + ImageList_Destroy(hLarge); + hLarge = NULL; + } + + if (hHeaderImages) + { + ImageList_Destroy(hHeaderImages); + hHeaderImages = NULL; + } + +} + +static void ReloadIcons(void) +{ + HICON hIcon; + INT i; + + // clear out all the images + ImageList_RemoveAll(hSmall); + ImageList_RemoveAll(hLarge); + + if (icon_index) + { + for (i=0;i<driver_list::total();i++) + icon_index[i] = 0; // these are indices into hSmall + } + + for (i = 0; g_iconData[i].icon_name; i++) + { + hIcon = LoadIconFromFile((char *) g_iconData[i].icon_name); + if (hIcon == NULL) + hIcon = LoadIcon(hInst, MAKEINTRESOURCE(g_iconData[i].resource)); + + ImageList_AddIcon(hSmall, hIcon); + ImageList_AddIcon(hLarge, hIcon); + DestroyIcon(hIcon); + } +} + +static DWORD GetShellLargeIconSize(void) +{ + DWORD dwSize = 32, dwLength = 512, dwType = REG_SZ; + TCHAR szBuffer[512]; + HKEY hKey; + LONG lRes; + LPTSTR tErrorMessage = NULL; + + /* Get the Key */ + lRes = RegOpenKey(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop\\WindowMetrics"), &hKey); + if( lRes != ERROR_SUCCESS ) + { + GetSystemErrorMessage(lRes, &tErrorMessage); + MessageBox(GetMainWindow(), tErrorMessage, TEXT("Large shell icon size registry access"), MB_OK | MB_ICONERROR); + LocalFree(tErrorMessage); + return dwSize; + } + + /* Save the last size */ + lRes = RegQueryValueEx(hKey, TEXT("Shell Icon Size"), NULL, &dwType, (LPBYTE)szBuffer, &dwLength); + if( lRes != ERROR_SUCCESS ) + { + GetSystemErrorMessage(lRes, &tErrorMessage); + MessageBox(GetMainWindow(), tErrorMessage, TEXT("Large shell icon size registry query"), MB_OK | MB_ICONERROR); + LocalFree(tErrorMessage); + RegCloseKey(hKey); + return dwSize; + } + + dwSize = _ttol(szBuffer); + if (dwSize < 32) + dwSize = 32; + + if (dwSize > 48) + dwSize = 48; + + /* Clean up */ + RegCloseKey(hKey); + return dwSize; +} + +static DWORD GetShellSmallIconSize(void) +{ + DWORD dwSize = ICONMAP_WIDTH; + + if (dwSize < 48) + { + if (dwSize < 32) + dwSize = 16; + else + dwSize = 32; + } + else + { + dwSize = 48; + } + return dwSize; +} + +// create iconlist for Listview control +static void CreateIcons(void) +{ + DWORD dwSmallIconSize = GetShellSmallIconSize(); + DWORD dwLargeIconSize = GetShellLargeIconSize(); + HICON hIcon; + int icon_count; + DWORD dwStyle; + int i; + int grow = 5000; + + icon_count = 0; + while(g_iconData[icon_count].icon_name) + icon_count++; + + // the current window style affects the sizing of the rows when changing + // between list views, so put it in small icon mode temporarily while we associate + // our image list + // + // using large icon mode instead kills the horizontal scrollbar when doing + // full refresh, which seems odd (it should recreate the scrollbar when + // set back to report mode, for example, but it doesn't). + + dwStyle = GetWindowLong(hwndList,GWL_STYLE); + SetWindowLong(hwndList,GWL_STYLE,(dwStyle & ~LVS_TYPEMASK) | LVS_ICON); + + hSmall = ImageList_Create(dwSmallIconSize, dwSmallIconSize, + ILC_COLORDDB | ILC_MASK, icon_count, icon_count + grow); + + if (NULL == hSmall) + { + win_message_box_utf8(hwndList, "Cannot allocate small icon image list", "Allocation error - Exiting", IDOK); + PostQuitMessage(0); + } + + hLarge = ImageList_Create(dwLargeIconSize, dwLargeIconSize, + ILC_COLORDDB | ILC_MASK, icon_count, icon_count + grow); + + if (NULL == hLarge) { + win_message_box_utf8(hwndList, "Cannot allocate large icon image list", "Allocation error - Exiting", IDOK); + PostQuitMessage(0); + } + + ReloadIcons(); + + // Associate the image lists with the list view control. + (void)ListView_SetImageList(hwndList, hSmall, LVSIL_SMALL); + (void)ListView_SetImageList(hwndList, hLarge, LVSIL_NORMAL); + + // restore our view + SetWindowLong(hwndList,GWL_STYLE,dwStyle); + + // Now set up header specific stuff + hHeaderImages = ImageList_Create(16,16,ILC_COLORDDB | ILC_MASK,2,2); + hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_HEADER_UP)); + ImageList_AddIcon(hHeaderImages,hIcon); + hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_HEADER_DOWN)); + ImageList_AddIcon(hHeaderImages,hIcon); + + for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++) + Picker_SetHeaderImageList(GetDlgItem(hMain, s_nPickers[i]), hHeaderImages); +} + + + +static int GamePicker_Compare(HWND hwndPicker, int index1, int index2, int sort_subitem) +{ + int value = 0; /* Default to 0, for unknown case */ + const char *name1 = NULL; + const char *name2 = NULL; + char file1[20]; + char file2[20]; + int nTemp1, nTemp2; + + switch (sort_subitem) + { + case COLUMN_GAMES: + return core_stricmp(ModifyThe(driver_list::driver(index1).description), + ModifyThe(driver_list::driver(index2).description)); + + case COLUMN_ORIENTATION: + nTemp1 = DriverIsVertical(index1) ? 1 : 0; + nTemp2 = DriverIsVertical(index2) ? 1 : 0; + value = nTemp1 - nTemp2; + break; +#ifdef SHOW_COLUMN_SAMPLES + case COLUMN_SAMPLES: + nTemp1 = -1; + if (DriverUsesSamples(index1)) + { + int audit_result = GetSampleAuditResults(index1); + if (IsAuditResultKnown(audit_result)) + { + if (IsAuditResultYes(audit_result)) + nTemp1 = 1; + else + nTemp1 = 0; + } + else + nTemp1 = 2; + } + + nTemp2 = -1; + if (DriverUsesSamples(index2)) + { + int audit_result = GetSampleAuditResults(index1); + if (IsAuditResultKnown(audit_result)) + { + if (IsAuditResultYes(audit_result)) + nTemp2 = 1; + else + nTemp2 = 0; + } + else + nTemp2 = 2; + } + value = nTemp2 - nTemp1; + break; +#endif + case COLUMN_DIRECTORY: + value = core_stricmp(driver_list::driver(index1).name, driver_list::driver(index2).name); + break; + + case COLUMN_SRCDRIVERS: + strcpy(file1, GetDriverFilename(index1)); + strcpy(file2, GetDriverFilename(index2)); + value = core_stricmp(file1, file2); + break; + + case COLUMN_PLAYTIME: + value = GetPlayTime(index1) - GetPlayTime(index2); + break; + + case COLUMN_TYPE: + { + value = DriverIsVector(index1) - DriverIsVector(index2); + break; + } + + case COLUMN_TRACKBALL: + value = DriverUsesTrackball(index1) - DriverUsesTrackball(index2); + break; + + case COLUMN_PLAYED: + value = GetPlayCount(index1) - GetPlayCount(index2); + break; + + case COLUMN_MANUFACTURER: + value = core_stricmp(driver_list::driver(index1).manufacturer, driver_list::driver(index2).manufacturer); + break; + + case COLUMN_YEAR: + value = core_stricmp(driver_list::driver(index1).year, driver_list::driver(index2).year); + break; + + case COLUMN_CLONE: + name1 = GetCloneParentName(index1); + name2 = GetCloneParentName(index2); + + if (*name1 == '\0') + name1 = NULL; + if (*name2 == '\0') + name2 = NULL; + + if (NULL == name1 && NULL == name2) + value = 0; + else if (name2 == NULL) + value = -1; + else if (name1 == NULL) + value = 1; + else + value = core_stricmp(name1, name2); + break; + } + + // Handle same comparisons here + if (0 == value && COLUMN_GAMES != sort_subitem) + { + value = GamePicker_Compare(hwndPicker, index1, index2, COLUMN_GAMES); + } + + return value; +} + +int GetSelectedPick() +{ + /* returns index of listview selected item */ + /* This will return -1 if not found */ + return ListView_GetNextItem(hwndList, -1, LVIS_SELECTED | LVIS_FOCUSED); +} + +static HICON GetSelectedPickItemIcon() +{ + LV_ITEM lvi; + BOOL res; + + lvi.iItem = GetSelectedPick(); + lvi.iSubItem = 0; + lvi.mask = LVIF_IMAGE; + res = ListView_GetItem(hwndList, &lvi); + + return ImageList_GetIcon(hLarge, lvi.iImage, ILD_TRANSPARENT); +} + +static void SetRandomPickItem() +{ + int nListCount; + + nListCount = ListView_GetItemCount(hwndList); + + if (nListCount > 0) + { + Picker_SetSelectedPick(hwndList, rand() % nListCount); + } +} + +BOOL CommonFileDialog(common_file_dialog_proc cfd, char *filename, int filetype) +{ + BOOL success; + UINT16 i; + OPENFILENAME ofn; + std::string dirname; + TCHAR* t_filename; + TCHAR t_filename_buffer[MAX_PATH] = {0, }; + char *utf8_filename; + + // convert the filename to UTF-8 and copy into buffer + t_filename = tstring_from_utf8(filename); + if (t_filename) + { + _sntprintf(t_filename_buffer, ARRAY_LENGTH(t_filename_buffer), TEXT("%s"), t_filename); + osd_free(t_filename); + } + + ofn.lStructSize = sizeof(ofn); + ofn.hwndOwner = hMain; + ofn.hInstance = NULL; + switch (filetype) + { + case FILETYPE_INPUT_FILES : + ofn.lpstrFilter = TEXT("input files (*.inp,*.zip,*.7z)\0*.inp;*.zip;*.7z\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("inp"); + dirname = GetInpDir(); + break; + case FILETYPE_SAVESTATE_FILES : + ofn.lpstrFilter = TEXT("savestate files (*.sta)\0*.sta;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("sta"); + dirname = GetStateDir(); + break; + case FILETYPE_WAVE_FILES : + ofn.lpstrFilter = TEXT("sounds (*.wav)\0*.wav;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("wav"); + dirname = GetImgDir(); + break; + case FILETYPE_MNG_FILES : + ofn.lpstrFilter = TEXT("videos (*.mng)\0*.mng;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("mng"); + dirname = GetImgDir(); + break; + case FILETYPE_AVI_FILES : + ofn.lpstrFilter = TEXT("videos (*.avi)\0*.avi;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("avi"); + dirname = GetImgDir(); + break; + case FILETYPE_EFFECT_FILES : + ofn.lpstrFilter = TEXT("effects (*.png)\0*.png;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("png"); + dirname = GetArtDir(); + break; + case FILETYPE_JOYMAP_FILES : + ofn.lpstrFilter = TEXT("maps (*.map,*.txt)\0*.map;*.txt;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("map"); + dirname = GetCtrlrDir(); + break; + case FILETYPE_DEBUGSCRIPT_FILES : + ofn.lpstrFilter = TEXT("scripts (*.txt,*.dat)\0*.txt;*.dat;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("txt"); + dirname = GetInpDir(); + break; + case FILETYPE_CHEAT_FILE : + ofn.lpstrFilter = TEXT("cheats (*.dat)\0*.dat;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("dat"); + dirname = "."; + break; + case FILETYPE_HISTORY_FILE : + ofn.lpstrFilter = TEXT("history (*.dat)\0*.dat;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("dat"); + dirname = "."; + break; + case FILETYPE_MAMEINFO_FILE : + ofn.lpstrFilter = TEXT("mameinfo (*.dat)\0*.dat;\0All files (*.*)\0*.*\0"); + ofn.lpstrDefExt = TEXT("dat"); + dirname = "."; + break; + } + ofn.lpstrCustomFilter = NULL; + ofn.nMaxCustFilter = 0; + ofn.nFilterIndex = 1; + ofn.lpstrFile = t_filename_buffer; + ofn.nMaxFile = ARRAY_LENGTH(t_filename_buffer); + ofn.lpstrFileTitle = NULL; + ofn.nMaxFileTitle = 0; + + // Only want first directory + i = dirname.find(";"); + if (i > 0) + dirname.resize(i); + if (dirname.empty()) + dirname = "."; + ofn.lpstrInitialDir = tstring_from_utf8(dirname.c_str()); + + ofn.lpstrTitle = NULL; + ofn.Flags = OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY; + ofn.nFileOffset = 0; + ofn.nFileExtension = 0; + ofn.lCustData = 0; + ofn.lpfnHook = NULL; + ofn.lpTemplateName = NULL; + + success = cfd(&ofn); + if (success) + { + //dprintf("got filename %s nFileExtension %u\n",filename,ofn.nFileExtension); + /*GetDirectory(filename,last_directory,sizeof(last_directory));*/ + } + + utf8_filename = utf8_from_tstring(t_filename_buffer); + if (utf8_filename) + { + snprintf(filename, MAX_PATH, "%s", utf8_filename); + osd_free(utf8_filename); + } + + return success; +} + +void SetStatusBarText(int part_index, const char *message) +{ + TCHAR* t_message = tstring_from_utf8(message); + if( !t_message ) + return; + SendMessage(hStatusBar, SB_SETTEXT, (WPARAM) part_index, (LPARAM)(LPCTSTR) win_tstring_strdup(t_message)); + osd_free(t_message); +} + +void SetStatusBarTextF(int part_index, const char *fmt, ...) +{ + char buf[256]; + va_list va; + + va_start(va, fmt); + vsprintf(buf, fmt, va); + va_end(va); + + SetStatusBarText(part_index, buf); +} + +static void CLIB_DECL ATTR_PRINTF(1,2) MameMessageBox(const char *fmt, ...) +{ + char buf[2048]; + va_list va; + + va_start(va, fmt); + vsprintf(buf, fmt, va); + win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR); + va_end(va); +} + +static void MamePlayBackGame() +{ + char filename[MAX_PATH]; + *filename = 0; + + int nGame = Picker_GetSelectedItem(hwndList); + if (nGame != -1) + strcpy(filename, driver_list::driver(nGame).name); + + if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_INPUT_FILES)) + { + osd_file::error fileerr; + char drive[_MAX_DRIVE]; + char dir[_MAX_DIR]; + char bare_fname[_MAX_FNAME]; + char ext[_MAX_EXT]; + char path[MAX_PATH]; + char fname[MAX_PATH]; + play_options playopts; + + _splitpath(filename, drive, dir, bare_fname, ext); + + sprintf(path,"%s%s",drive,dir); + sprintf(fname,"%s%s",bare_fname,ext); + if (path[strlen(path)-1] == '\\') + path[strlen(path)-1] = 0; // take off trailing back slash + + emu_file pPlayBack(MameUIGlobal().input_directory(), OPEN_FLAG_READ); + fileerr = pPlayBack.open(fname); + if (fileerr != osd_file::error::NONE) + { + MameMessageBox("Could not open '%s' as a valid input file.", filename); + return; + } + + // check for game name embedded in .inp header + inp_header header; + + /* read the header and verify that it is a modern version; if not, print an error */ + if (!header.read(pPlayBack)) + { + MameMessageBox("Input file is corrupt or invalid (missing header)"); + return; + } + if ((!header.check_magic()) || (header.get_majversion() != inp_header::MAJVERSION)) + { + MameMessageBox("Input file invalid or in an older, unsupported format"); + return; + } + + std::string const sysname = header.get_sysname(); + nGame = -1; + for (int i = 0; i < driver_list::total(); i++) // find game and play it + { + if (driver_list::driver(i).name == sysname) + { + nGame = i; + break; + } + } + if (nGame == -1) + { + MameMessageBox("Game \"%s\" cannot be found", sysname.c_str()); + return; + } + + memset(&playopts, 0, sizeof(playopts)); + playopts.playback = fname; + playopts_apply = 0x57; + MamePlayGameWithOptions(nGame, &playopts); + } +} + +static void MameLoadState() +{ + int nGame; + char filename[MAX_PATH]; + char selected_filename[MAX_PATH]; + play_options playopts; + + *filename = 0; + + nGame = Picker_GetSelectedItem(hwndList); + if (nGame != -1) + { + strcpy(filename, driver_list::driver(nGame).name); + strcpy(selected_filename, driver_list::driver(nGame).name); + } + if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_SAVESTATE_FILES)) + { + char drive[_MAX_DRIVE]; + char dir[_MAX_DIR]; + char ext[_MAX_EXT]; + + char path[MAX_PATH]; + char fname[MAX_PATH]; + char bare_fname[_MAX_FNAME]; + char *state_fname; + //int rc; + + _splitpath(filename, drive, dir, bare_fname, ext); + + // parse path + sprintf(path,"%s%s",drive,dir); + sprintf(fname,"%s%s",bare_fname,ext); + if (path[strlen(path)-1] == '\\') + path[strlen(path)-1] = 0; // take off trailing back slash + +#ifdef MESS + { + state_fname = filename; + } +#else // !MESS + { + char *cPos=0; + int iPos=0; + char romname[MAX_PATH]; + + cPos = strchr(bare_fname, '-' ); + iPos = cPos ? cPos - bare_fname : strlen(bare_fname); + strncpy(romname, bare_fname, iPos ); + romname[iPos] = '\0'; + if( strcmp(selected_filename,romname) != 0 ) + { + MameMessageBox("'%s' is not a valid savestate file for game '%s'.", filename, selected_filename); + return; + } + state_fname = fname; + } +#endif // MESS + emu_file pSaveState(MameUIGlobal().state_directory(), OPEN_FLAG_READ); + osd_file::error fileerr = pSaveState.open(state_fname); + if (fileerr != osd_file::error::NONE) + { + MameMessageBox("Could not open '%s' as a valid savestate file.", filename); + return; + } + + // call the MAME core function to check the save state file + //rc = state_manager::check_file(NULL, pSaveState, selected_filename, MameMessageBox); + //if (rc) +// return; + + memset(&playopts, 0, sizeof(playopts)); +#ifdef MESS + playopts.state = state_fname; + playopts_apply = 0x57; +#else + { + char *cPos; + cPos = strrchr(bare_fname, '-' ); + cPos = cPos+1; + if (*cPos != 0) + { + playopts.state = cPos; + } + } +#endif + + MamePlayGameWithOptions(nGame, &playopts); + } +} + +static void MamePlayRecordGame() +{ + int nGame; + char filename[MAX_PATH]; + *filename = 0; + + nGame = Picker_GetSelectedItem(hwndList); + strcpy(filename, driver_list::driver(nGame).name); + + if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_INPUT_FILES)) + { + char drive[_MAX_DRIVE]; + char dir[_MAX_DIR]; + char fname[_MAX_FNAME]; + char ext[_MAX_EXT]; + char path[MAX_PATH]; + play_options playopts; + + _splitpath(filename, drive, dir, fname, ext); + + sprintf(path,"%s%s",drive,dir); + if (path[strlen(path)-1] == '\\') + path[strlen(path)-1] = 0; // take off trailing back slash + + memset(&playopts, 0, sizeof(playopts)); + strcat(fname, ".inp"); + playopts.record = fname; + playopts_apply = 0x57; + MamePlayGameWithOptions(nGame, &playopts); + } +} + +void MamePlayGame(void) +{ + int nGame; + play_options playopts; + + nGame = Picker_GetSelectedItem(hwndList); + + memset(&playopts, 0, sizeof(playopts)); + MamePlayGameWithOptions(nGame, &playopts); +} + +static void MamePlayRecordWave() +{ + int nGame; + char filename[MAX_PATH]; + play_options playopts; + + nGame = Picker_GetSelectedItem(hwndList); + strcpy(filename, driver_list::driver(nGame).name); + + if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_WAVE_FILES)) + { + memset(&playopts, 0, sizeof(playopts)); + playopts.wavwrite = filename; + playopts_apply = 0x57; + MamePlayGameWithOptions(nGame, &playopts); + } +} + +static void MamePlayRecordMNG() +{ + int nGame; + char filename[MAX_PATH] = { 0, }; + + nGame = Picker_GetSelectedItem(hwndList); + strcpy(filename, driver_list::driver(nGame).name); + + if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_MNG_FILES)) + { + char drive[_MAX_DRIVE]; + char dir[_MAX_DIR]; + char fname[_MAX_FNAME]; + char ext[_MAX_EXT]; + char path[MAX_PATH]; + play_options playopts; + + _splitpath(filename, drive, dir, fname, ext); + + sprintf(path,"%s%s",drive,dir); + if (path[strlen(path)-1] == '\\') + path[strlen(path)-1] = 0; // take off trailing back slash + + memset(&playopts, 0, sizeof(playopts)); + strcat(fname, ".mng"); + playopts.mngwrite = fname; + playopts_apply = 0x57; + MamePlayGameWithOptions(nGame, &playopts); + } +} + +static void MamePlayRecordAVI() +{ + int nGame; + char filename[MAX_PATH] = { 0, }; + + nGame = Picker_GetSelectedItem(hwndList); + strcpy(filename, driver_list::driver(nGame).name); + + if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_AVI_FILES)) + { + char drive[_MAX_DRIVE]; + char dir[_MAX_DIR]; + char fname[_MAX_FNAME]; + char ext[_MAX_EXT]; + char path[MAX_PATH]; + play_options playopts; + + _splitpath(filename, drive, dir, fname, ext); + + sprintf(path,"%s%s",drive,dir); + if (path[strlen(path)-1] == '\\') + path[strlen(path)-1] = 0; // take off trailing back slash + + memset(&playopts, 0, sizeof(playopts)); + strcat(fname, ".avi"); + playopts.aviwrite = fname; + playopts_apply = 0x57; + MamePlayGameWithOptions(nGame, &playopts); + } +} + + +static void MamePlayGameWithOptions(int nGame, const play_options *playopts) +{ + DWORD dwExitCode; + BOOL res; + + if (g_pJoyGUI) + KillTimer(hMain, JOYGUI_TIMER); + if (GetCycleScreenshot() > 0) + KillTimer(hMain, SCREENSHOT_TIMER); + + in_emulation = TRUE; + + dwExitCode = RunMAME(nGame, playopts); + if (dwExitCode == 0) + { + IncrementPlayCount(nGame); + res = ListView_RedrawItems(hwndList, GetSelectedPick(), GetSelectedPick()); + } + else + { + ShowWindow(hMain, SW_SHOW); + } + + in_emulation = FALSE; + + // re-sort if sorting on # of times played + if (GetSortColumn() == COLUMN_PLAYED) + Picker_Sort(hwndList); + + UpdateStatusBar(); + + ShowWindow(hMain, SW_SHOW); + SetFocus(hwndList); + + if (g_pJoyGUI) + SetTimer(hMain, JOYGUI_TIMER, JOYGUI_MS, NULL); + if (GetCycleScreenshot() > 0) + SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL); //scale to seconds +} + +/* Toggle ScreenShot ON/OFF */ +static void ToggleScreenShot(void) +{ + BOOL showScreenShot = GetShowScreenShot(); + + SetShowScreenShot((showScreenShot) ? FALSE : TRUE); + UpdateScreenShot(); + + /* Redraw list view */ + if (hBackground && showScreenShot) + InvalidateRect(hwndList, NULL, FALSE); +} + +static void AdjustMetrics(void) +{ + HDC hDC; + TEXTMETRIC tm; + int xtraX, xtraY; + AREA area; + int offX, offY; + int maxX, maxY; + COLORREF textColor; + TCHAR szClass[128]; + HWND hWnd; + HRESULT res; + BOOL b_res; + + /* WM_SETTINGCHANGE also */ + xtraX = GetSystemMetrics(SM_CXFIXEDFRAME); /* Dialog frame width */ + xtraY = GetSystemMetrics(SM_CYFIXEDFRAME); /* Dialog frame height */ + xtraY += GetSystemMetrics(SM_CYMENUSIZE); /* Menu height */ + xtraY += GetSystemMetrics(SM_CYCAPTION); /* Caption Height */ + maxX = GetSystemMetrics(SM_CXSCREEN); /* Screen Width */ + maxY = GetSystemMetrics(SM_CYSCREEN); /* Screen Height */ + + hDC = GetDC(hMain); + GetTextMetrics (hDC, &tm); + + /* Convert MIN Width/Height from Dialog Box Units to pixels. */ + MIN_WIDTH = (int)((tm.tmAveCharWidth / 4.0) * DBU_MIN_WIDTH) + xtraX; + MIN_HEIGHT = (int)((tm.tmHeight / 8.0) * DBU_MIN_HEIGHT) + xtraY; + ReleaseDC(hMain, hDC); + + if ((textColor = GetListFontColor()) == RGB(255, 255, 255)) + textColor = RGB(240, 240, 240); + + hWnd = GetWindow(hMain, GW_CHILD); + while(hWnd) + { + if (GetClassName(hWnd, szClass, sizeof(szClass) / sizeof(szClass[0]))) + { + if (!_tcscmp(szClass, TEXT("SysListView32"))) + { + b_res = ListView_SetBkColor(hWnd, GetSysColor(COLOR_WINDOW)); + b_res = ListView_SetTextColor(hWnd, textColor); + } + else if (!_tcscmp(szClass, TEXT("SysTreeView32"))) + { + res = TreeView_SetBkColor(hTreeView, GetSysColor(COLOR_WINDOW)); + res = TreeView_SetTextColor(hTreeView, textColor); + } + } + hWnd = GetWindow(hWnd, GW_HWNDNEXT); + } + + GetWindowArea(&area); + + offX = area.x + area.width; + offY = area.y + area.height; + + if (offX > maxX) + { + offX = maxX; + area.x = (offX - area.width > 0) ? (offX - area.width) : 0; + } + if (offY > maxY) + { + offY = maxY; + area.y = (offY - area.height > 0) ? (offY - area.height) : 0; + } + + SetWindowArea(&area); + SetWindowPos(hMain, 0, area.x, area.y, area.width, area.height, SWP_NOZORDER | SWP_SHOWWINDOW | SWP_NOACTIVATE); +} + +int FindIconIndex(int nIconResource) +{ + int i; + for(i = 0; g_iconData[i].icon_name; i++) + { + if (g_iconData[i].resource == nIconResource) + return i; + } + return -1; +} + +int FindIconIndexByName(const char *icon_name) +{ + int i; + for (i = 0; g_iconData[i].icon_name; i++) + { + if (!strcmp(g_iconData[i].icon_name, icon_name)) + return i; + } + return -1; +} + +static int GetIconForDriver(int nItem) +{ + int iconRoms = 1; + + if (DriverUsesRoms(nItem)) + { + int audit_result = GetRomAuditResults(nItem); + if (IsAuditResultKnown(audit_result) == FALSE) + return 2; +#ifdef SHOW_MISSING_ROMS_ICON + if (IsAuditResultYes(audit_result)) + iconRoms = 1; + else + iconRoms = 0; +#endif + } + + // iconRoms is now either 0 (no roms), 1 (roms), or 2 (unknown) + // these are indices into icon_names, which maps into our image list, also must match IDI_WIN_NOROMS + iconRoms + // Show Red-X if the ROMs are present and flagged as NOT WORKING + if (iconRoms == 1 && DriverIsBroken(nItem)) + iconRoms = FindIconIndex(IDI_WIN_REDX); + + // show clone icon if we have roms and game is working + if (iconRoms == 1 && DriverIsClone(nItem)) + iconRoms = FindIconIndex(IDI_WIN_CLONE); + + // if we have the roms, then look for a custom per-game icon to override + if (iconRoms == 1 || iconRoms == 3) + { + if (icon_index[nItem] == 0) + AddDriverIcon(nItem,iconRoms); + iconRoms = icon_index[nItem]; + } + + return iconRoms; +} + +static BOOL HandleTreeContextMenu(HWND hWnd, WPARAM wParam, LPARAM lParam) +{ + HMENU hTreeMenu; + HMENU hMenu; + TVHITTESTINFO hti; + POINT pt; + BOOL res; + + if ((HWND)wParam != GetDlgItem(hWnd, IDC_TREE)) + return FALSE; + + pt.x = GET_X_LPARAM(lParam); + pt.y = GET_Y_LPARAM(lParam); + if (pt.x < 0 && pt.y < 0) + GetCursorPos(&pt); + + /* select the item that was right clicked or shift-F10'ed */ + hti.pt = pt; + ScreenToClient(hTreeView,&hti.pt); + (void)TreeView_HitTest(hTreeView,&hti); + if ((hti.flags & TVHT_ONITEM) != 0) + res = TreeView_SelectItem(hTreeView,hti.hItem); + + hTreeMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDR_CONTEXT_TREE)); + + InitTreeContextMenu(hTreeMenu); + + hMenu = GetSubMenu(hTreeMenu, 0); + + UpdateMenu(hMenu); + + TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hWnd,NULL); + + DestroyMenu(hTreeMenu); + + return TRUE; +} + + + +static void GamePicker_OnBodyContextMenu(POINT pt) +{ + HMENU hMenuLoad; + HMENU hMenu; + + hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_MENU)); + hMenu = GetSubMenu(hMenuLoad, 0); + InitBodyContextMenu(hMenu); + + UpdateMenu(hMenu); + + TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hMain,NULL); + + DestroyMenu(hMenuLoad); +} + + + +static BOOL HandleScreenShotContextMenu(HWND hWnd, WPARAM wParam, LPARAM lParam) +{ + HMENU hMenuLoad; + HMENU hMenu; + POINT pt; + + if ((HWND)wParam != GetDlgItem(hWnd, IDC_SSPICTURE) && (HWND)wParam != GetDlgItem(hWnd, IDC_SSFRAME)) + return FALSE; + + pt.x = GET_X_LPARAM(lParam); + pt.y = GET_Y_LPARAM(lParam); + if (pt.x < 0 && pt.y < 0) + GetCursorPos(&pt); + + hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_SCREENSHOT)); + hMenu = GetSubMenu(hMenuLoad, 0); + + UpdateMenu(hMenu); + + TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hWnd,NULL); + + DestroyMenu(hMenuLoad); + + return TRUE; +} + +static void UpdateMenu(HMENU hMenu) +{ + TCHAR buf[200]; + MENUITEMINFO mItem; + int nGame = Picker_GetSelectedItem(hwndList); + LPTREEFOLDER lpFolder = GetCurrentFolder(); + int i; + //const char *pParent; + TCHAR* t_description; + + if (have_selection) + { + t_description = tstring_from_utf8(ConvertAmpersandString(ModifyThe(driver_list::driver(nGame).description))); + if( !t_description ) + return; + + _sntprintf(buf, ARRAY_LENGTH(buf), g_szPlayGameString, t_description); + + mItem.cbSize = sizeof(mItem); + mItem.fMask = MIIM_TYPE; + mItem.fType = MFT_STRING; + mItem.dwTypeData = buf; + mItem.cch = _tcslen(mItem.dwTypeData); + + SetMenuItemInfo(hMenu, ID_FILE_PLAY, FALSE, &mItem); + + EnableMenuItem(hMenu, ID_CONTEXT_SELECT_RANDOM, MF_ENABLED); + + osd_free(t_description); + } + else + { + EnableMenuItem(hMenu, ID_FILE_PLAY, MF_GRAYED); + EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_GRAYED); + EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED); + EnableMenuItem(hMenu, ID_CONTEXT_SELECT_RANDOM, MF_GRAYED); + } + + if (oldControl) + { + EnableMenuItem(hMenu, ID_CUSTOMIZE_FIELDS, MF_GRAYED); + EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED); + EnableMenuItem(hMenu, ID_OPTIONS_DEFAULTS, MF_GRAYED); + } + + if (lpFolder->m_dwFlags & F_CUSTOM) + { + EnableMenuItem(hMenu,ID_CONTEXT_REMOVE_CUSTOM,MF_ENABLED); + EnableMenuItem(hMenu,ID_CONTEXT_RENAME_CUSTOM,MF_ENABLED); + } + else + { + EnableMenuItem(hMenu,ID_CONTEXT_REMOVE_CUSTOM,MF_GRAYED); + EnableMenuItem(hMenu,ID_CONTEXT_RENAME_CUSTOM,MF_GRAYED); + } + //pParent = GetFolderNameByID(lpFolder->m_nParent+1); + + if (lpFolder->m_dwFlags & F_INIEDIT) + EnableMenuItem(hMenu,ID_FOLDER_PROPERTIES,MF_ENABLED); + else + EnableMenuItem(hMenu,ID_FOLDER_PROPERTIES,MF_GRAYED); + + CheckMenuRadioItem(hMenu, ID_VIEW_TAB_SCREENSHOT, ID_VIEW_TAB_HISTORY, + ID_VIEW_TAB_SCREENSHOT + TabView_GetCurrentTab(hTabCtrl), MF_BYCOMMAND); + + // set whether we're showing the tab control or not + if (bShowTabCtrl) + CheckMenuItem(hMenu,ID_VIEW_PAGETAB,MF_BYCOMMAND | MF_CHECKED); + else + CheckMenuItem(hMenu,ID_VIEW_PAGETAB,MF_BYCOMMAND | MF_UNCHECKED); + + + for (i=0;i<MAX_TAB_TYPES;i++) + { + // disable menu items for tabs we're not currently showing + if (GetShowTab(i)) + EnableMenuItem(hMenu,ID_VIEW_TAB_SCREENSHOT + i,MF_BYCOMMAND | MF_ENABLED); + else + EnableMenuItem(hMenu,ID_VIEW_TAB_SCREENSHOT + i,MF_BYCOMMAND | MF_GRAYED); + + // check toggle menu items + if (GetShowTab(i)) + CheckMenuItem(hMenu, ID_TOGGLE_TAB_SCREENSHOT + i,MF_BYCOMMAND | MF_CHECKED); + else + CheckMenuItem(hMenu, ID_TOGGLE_TAB_SCREENSHOT + i,MF_BYCOMMAND | MF_UNCHECKED); + } + + for (i=0;i<MAX_FOLDERS;i++) + { + if (GetShowFolder(i)) + CheckMenuItem(hMenu,ID_CONTEXT_SHOW_FOLDER_START + i,MF_BYCOMMAND | MF_CHECKED); + else + CheckMenuItem(hMenu,ID_CONTEXT_SHOW_FOLDER_START + i,MF_BYCOMMAND | MF_UNCHECKED); + } + +} + +void InitTreeContextMenu(HMENU hTreeMenu) +{ + MENUITEMINFO mii; + HMENU hMenu; + int i; + extern const FOLDERDATA g_folderData[]; + + ZeroMemory(&mii,sizeof(mii)); + mii.cbSize = sizeof(mii); + + mii.wID = -1; + mii.fMask = MIIM_SUBMENU | MIIM_ID; + + hMenu = GetSubMenu(hTreeMenu, 0); + + if (GetMenuItemInfo(hMenu,3,TRUE,&mii) == FALSE) + { + dprintf("can't find show folders context menu\n"); + return; + } + + if (mii.hSubMenu == NULL) + { + dprintf("can't find submenu for show folders context menu\n"); + return; + } + + hMenu = mii.hSubMenu; + + for (i=0;g_folderData[i].m_lpTitle;i++) + { + TCHAR* t_title = tstring_from_utf8(g_folderData[i].m_lpTitle); + if( !t_title ) + return; + + mii.fMask = MIIM_TYPE | MIIM_ID; + mii.fType = MFT_STRING; + mii.dwTypeData = t_title; + mii.cch = _tcslen(mii.dwTypeData); + mii.wID = ID_CONTEXT_SHOW_FOLDER_START + g_folderData[i].m_nFolderId; + + + // menu in resources has one empty item (needed for the submenu to setup properly) + // so overwrite this one, append after + if (i == 0) + SetMenuItemInfo(hMenu,ID_CONTEXT_SHOW_FOLDER_START,FALSE,&mii); + else + InsertMenuItem(hMenu,i,FALSE,&mii); + + osd_free(t_title); + } + +} + +void InitBodyContextMenu(HMENU hBodyContextMenu) +{ + LPTREEFOLDER lpFolder; + TCHAR tmp[30]; + MENUITEMINFO mii; + ZeroMemory(&mii,sizeof(mii)); + mii.cbSize = sizeof(mii); + + if (GetMenuItemInfo(hBodyContextMenu,ID_FOLDER_SOURCEPROPERTIES,FALSE,&mii) == FALSE) + { + dprintf("can't find show folders context menu\n"); + return; + } + lpFolder = GetFolderByName(FOLDER_SOURCE, GetDriverFilename(Picker_GetSelectedItem(hwndList)) ); + _sntprintf(tmp,ARRAY_LENGTH(tmp),TEXT("Properties for %s"),lpFolder->m_lptTitle ); + mii.fMask = MIIM_TYPE | MIIM_ID; + mii.fType = MFT_STRING; + mii.dwTypeData = tmp; + mii.cch = _tcslen(mii.dwTypeData); + mii.wID = ID_FOLDER_SOURCEPROPERTIES; + + + // menu in resources has one default item + // so overwrite this one + SetMenuItemInfo(hBodyContextMenu,ID_FOLDER_SOURCEPROPERTIES,FALSE,&mii); + if( ! DriverIsVector(Picker_GetSelectedItem(hwndList) ) ) + EnableMenuItem(hBodyContextMenu, ID_FOLDER_VECTORPROPERTIES, MF_GRAYED); +} + + +void ToggleShowFolder(int folder) +{ + int current_id = GetCurrentFolderID(); + + SetWindowRedraw(hwndList,FALSE); + + SetShowFolder(folder,!GetShowFolder(folder)); + + ResetTreeViewFolders(); + SelectTreeViewFolder(current_id); + + SetWindowRedraw(hwndList,TRUE); +} + +static LRESULT CALLBACK HistoryWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + if (hBackground) + { + switch (uMsg) + { + case WM_MOUSEMOVE: + { + if (MouseHasBeenMoved()) + ShowCursor(TRUE); + break; + } + + case WM_ERASEBKGND: + return TRUE; + case WM_PAINT: + { + POINT p = { 0, 0 }; + + /* get base point of background bitmap */ + MapWindowPoints(hWnd,hTreeView,&p,1); + PaintBackgroundImage(hWnd, NULL, p.x, p.y); + /* to ensure our parent procedure repaints the whole client area */ + InvalidateRect(hWnd, NULL, FALSE); + break; + } + } + } + return CallWindowProc(g_lpHistoryWndProc, hWnd, uMsg, wParam, lParam); +} + +static LRESULT CALLBACK PictureFrameWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch (uMsg) + { + case WM_MOUSEMOVE: + { + if (MouseHasBeenMoved()) + ShowCursor(TRUE); + break; + } + + case WM_NCHITTEST : + { + POINT pt; + RECT rect; + HWND hHistory = GetDlgItem(hMain, IDC_HISTORY); + + pt.x = LOWORD(lParam); + pt.y = HIWORD(lParam); + GetWindowRect(hHistory, &rect); + // check if they clicked on the picture area (leave 6 pixel no man's land + // by the history window to reduce mistaken clicks) + // no more no man's land, the Cursor changes when Edit control is left, should be enough feedback + if (have_history && + ( ( (TabView_GetCurrentTab(hTabCtrl) == TAB_HISTORY) || + (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() && GetShowTab(TAB_HISTORY) == FALSE) || + (TAB_ALL == GetHistoryTab() && GetShowTab(TAB_HISTORY) == FALSE) ) && +// (rect.top - 6) < pt.y && pt.y < (rect.bottom + 6) ) ) + PtInRect( &rect, pt ) ) ) + + { + return HTTRANSPARENT; + } + else + { + return HTCLIENT; + } + } + break; + case WM_CONTEXTMENU: + if ( HandleScreenShotContextMenu(hWnd, wParam, lParam)) + return FALSE; + break; + } + + if (hBackground) + { + switch (uMsg) + { + case WM_ERASEBKGND : + return TRUE; + case WM_PAINT : + { + RECT rect,nodraw_rect; + HRGN region,nodraw_region; + POINT p = { 0, 0 }; + + /* get base point of background bitmap */ + MapWindowPoints(hWnd,hTreeView,&p,1); + + /* get big region */ + GetClientRect(hWnd,&rect); + region = CreateRectRgnIndirect(&rect); + + if (IsWindowVisible(GetDlgItem(hMain,IDC_HISTORY))) + { + /* don't draw over this window */ + GetWindowRect(GetDlgItem(hMain,IDC_HISTORY),&nodraw_rect); + MapWindowPoints(HWND_DESKTOP,hWnd,(LPPOINT)&nodraw_rect,2); + nodraw_region = CreateRectRgnIndirect(&nodraw_rect); + CombineRgn(region,region,nodraw_region,RGN_DIFF); + DeleteObject(nodraw_region); + } + if (IsWindowVisible(GetDlgItem(hMain,IDC_SSPICTURE))) + { + /* don't draw over this window */ + GetWindowRect(GetDlgItem(hMain,IDC_SSPICTURE),&nodraw_rect); + MapWindowPoints(HWND_DESKTOP,hWnd,(LPPOINT)&nodraw_rect,2); + nodraw_region = CreateRectRgnIndirect(&nodraw_rect); + CombineRgn(region,region,nodraw_region,RGN_DIFF); + DeleteObject(nodraw_region); + } + + PaintBackgroundImage(hWnd,region,p.x,p.y); + + DeleteObject(region); + + /* to ensure our parent procedure repaints the whole client area */ + InvalidateRect(hWnd, NULL, FALSE); + + break; + } + } + } + return CallWindowProc(g_lpPictureFrameWndProc, hWnd, uMsg, wParam, lParam); +} + +static LRESULT CALLBACK PictureWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch (uMsg) + { + case WM_ERASEBKGND : + return TRUE; + case WM_PAINT : + { + PAINTSTRUCT ps; + HDC hdc,hdc_temp; + RECT rect; + HBITMAP old_bitmap; + + int width,height; + + RECT rect2; + HBRUSH hBrush; + HBRUSH holdBrush; + HRGN region1, region2; + int nBordersize; + nBordersize = GetScreenshotBorderSize(); + hBrush = CreateSolidBrush(GetScreenshotBorderColor()); + + hdc = BeginPaint(hWnd,&ps); + + hdc_temp = CreateCompatibleDC(hdc); + if (ScreenShotLoaded()) + { + width = GetScreenShotWidth(); + height = GetScreenShotHeight(); + + old_bitmap = (HBITMAP)SelectObject(hdc_temp,GetScreenShotHandle()); + } + else + { + BITMAP bmp; + + GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp); + width = bmp.bmWidth; + height = bmp.bmHeight; + + old_bitmap = (HBITMAP)SelectObject(hdc_temp,hMissing_bitmap); + } + + GetClientRect(hWnd,&rect); + + rect2 = rect; + //Configurable Borders around images + rect.bottom -= nBordersize; + if( rect.bottom < 0) + rect.bottom = rect2.bottom; + rect.right -= nBordersize; + if( rect.right < 0) + rect.right = rect2.right; + rect.top += nBordersize; + if( rect.top > rect.bottom ) + rect.top = rect2.top; + rect.left += nBordersize; + if( rect.left > rect.right ) + rect.left = rect2.left; + region1 = CreateRectRgnIndirect(&rect); + region2 = CreateRectRgnIndirect(&rect2); + CombineRgn(region2,region2,region1,RGN_DIFF); + holdBrush = (HBRUSH)SelectObject(hdc, hBrush); + + FillRgn(hdc,region2, hBrush ); + SelectObject(hdc, holdBrush); + DeleteBrush(hBrush); + + SetStretchBltMode(hdc,STRETCH_HALFTONE); + StretchBlt(hdc,nBordersize,nBordersize,rect.right-rect.left,rect.bottom-rect.top, + hdc_temp,0,0,width,height,SRCCOPY); + SelectObject(hdc_temp,old_bitmap); + DeleteDC(hdc_temp); + DeleteObject(region1); + DeleteObject(region2); + + EndPaint(hWnd,&ps); + + return TRUE; + } + } + + return CallWindowProc(g_lpPictureWndProc, hWnd, uMsg, wParam, lParam); +} + +static void RemoveCurrentGameCustomFolder(void) +{ + RemoveGameCustomFolder(Picker_GetSelectedItem(hwndList)); +} + +static void RemoveGameCustomFolder(int driver_index) +{ + int i; + TREEFOLDER **folders; + int num_folders; + + GetFolders(&folders,&num_folders); + + for (i=0; i<num_folders; i++) + { + if (folders[i]->m_dwFlags & F_CUSTOM && folders[i]->m_nFolderId == GetCurrentFolderID()) + { + int current_pick_index; + + RemoveFromCustomFolder(folders[i],driver_index); + + if (driver_index == Picker_GetSelectedItem(hwndList)) + { + /* if we just removed the current game, + move the current selection so that when we rebuild the listview it + leaves the cursor on next or previous one */ + + current_pick_index = GetSelectedPick(); + Picker_SetSelectedPick(hwndList, GetSelectedPick() + 1); + if (current_pick_index == GetSelectedPick()) /* we must have deleted the last item */ + Picker_SetSelectedPick(hwndList, GetSelectedPick() - 1); + } + + ResetListView(); + return; + } + } + MessageBox(GetMainWindow(), TEXT("Error searching for custom folder"), (LPCTSTR)MAMEUINAME, MB_OK | MB_ICONERROR); +} + + +static void BeginListViewDrag(NM_LISTVIEW *pnmv) +{ + LV_ITEM lvi; + POINT pt; + BOOL res; + + lvi.iItem = pnmv->iItem; + lvi.mask = LVIF_PARAM; + res = ListView_GetItem(hwndList, &lvi); + + game_dragged = lvi.lParam; + + pt.x = 0; + pt.y = 0; + + /* Tell the list view control to create an image to use + for dragging. */ + himl_drag = ListView_CreateDragImage(hwndList,pnmv->iItem,&pt); + + /* Start the drag operation. */ + ImageList_BeginDrag(himl_drag, 0, 0, 0); + + pt = pnmv->ptAction; + ClientToScreen(hwndList,&pt); + ImageList_DragEnter(GetDesktopWindow(),pt.x,pt.y); + + /* Hide the mouse cursor, and direct mouse input to the + parent window. */ + SetCapture(hMain); + + prev_drag_drop_target = NULL; + + g_listview_dragging = TRUE; + +} + +static void MouseMoveListViewDrag(POINTS p) +{ + HTREEITEM htiTarget; + TV_HITTESTINFO tvht; + BOOL res; + + POINT pt; + pt.x = p.x; + pt.y = p.y; + + ClientToScreen(hMain,&pt); + + ImageList_DragMove(pt.x,pt.y); + + MapWindowPoints(GetDesktopWindow(),hTreeView,&pt,1); + + tvht.pt = pt; + htiTarget = TreeView_HitTest(hTreeView,&tvht); + + if (htiTarget != prev_drag_drop_target) + { + ImageList_DragShowNolock(FALSE); + if (htiTarget) + res = TreeView_SelectDropTarget(hTreeView,htiTarget); + else + res = TreeView_SelectDropTarget(hTreeView,NULL); + ImageList_DragShowNolock(TRUE); + + prev_drag_drop_target = htiTarget; + } +} + +static void ButtonUpListViewDrag(POINTS p) +{ + POINT pt; + HTREEITEM htiTarget; + TV_HITTESTINFO tvht; + TVITEM tvi; + BOOL res; + + ReleaseCapture(); + + ImageList_DragLeave(hwndList); + ImageList_EndDrag(); + ImageList_Destroy(himl_drag); + + res = TreeView_SelectDropTarget(hTreeView,NULL); + + g_listview_dragging = FALSE; + + /* see where the game was dragged */ + + pt.x = p.x; + pt.y = p.y; + + MapWindowPoints(hMain,hTreeView,&pt,1); + + tvht.pt = pt; + htiTarget = TreeView_HitTest(hTreeView,&tvht); + if (htiTarget == NULL) + { + LVHITTESTINFO lvhtti; + LPTREEFOLDER folder; + RECT rcList; + + /* the user dragged a game onto something other than the treeview */ + /* try to remove if we're in a custom folder */ + + /* see if it was dragged within the list view; if so, ignore */ + + MapWindowPoints(hTreeView,hwndList,&pt,1); + lvhtti.pt = pt; + GetWindowRect(hwndList, &rcList); + ClientToScreen(hwndList, &pt); + if( PtInRect(&rcList, pt) != 0 ) + return; + + folder = GetCurrentFolder(); + if (folder->m_dwFlags & F_CUSTOM) + { + /* dragged out of a custom folder, so let's remove it */ + RemoveCurrentGameCustomFolder(); + } + return; + } + + + tvi.lParam = 0; + tvi.mask = TVIF_PARAM | TVIF_HANDLE; + tvi.hItem = htiTarget; + + if (TreeView_GetItem(hTreeView, &tvi)) + { + LPTREEFOLDER folder = (LPTREEFOLDER)tvi.lParam; + AddToCustomFolder(folder,game_dragged); + } + +} + +static LPTREEFOLDER GetSelectedFolder(void) +{ + HTREEITEM htree; + TVITEM tvi; + BOOL res; + + htree = TreeView_GetSelection(hTreeView); + if(htree) + { + tvi.hItem = htree; + tvi.mask = TVIF_PARAM; + res = TreeView_GetItem(hTreeView,&tvi); + return (LPTREEFOLDER)tvi.lParam; + } + return NULL; +} + +static HICON GetSelectedFolderIcon(void) +{ + HTREEITEM htree; + TVITEM tvi; + HIMAGELIST hSmall_icon; + LPTREEFOLDER folder; + BOOL res; + + htree = TreeView_GetSelection(hTreeView); + if (htree) + { + tvi.hItem = htree; + tvi.mask = TVIF_PARAM; + res = TreeView_GetItem(hTreeView,&tvi); + + folder = (LPTREEFOLDER)tvi.lParam; + //hSmall_icon = TreeView_GetImageList(hTreeView,(int)tvi.iImage); + hSmall_icon = NULL; + return ImageList_GetIcon(hSmall_icon, tvi.iImage, ILD_TRANSPARENT); + } + return NULL; +} + +/* Updates all currently displayed Items in the List with the latest Data*/ +void UpdateListView(void) +{ + BOOL res; + + if( (GetViewMode() == VIEW_GROUPED) || (GetViewMode() == VIEW_DETAILS ) ) + res = ListView_RedrawItems(hwndList,ListView_GetTopIndex(hwndList), + ListView_GetTopIndex(hwndList)+ ListView_GetCountPerPage(hwndList) ); +} + +static void CalculateBestScreenShotRect(HWND hWnd, RECT *pRect, BOOL restrict_height) +{ + int destX, destY; + int destW, destH; + int nBorder; + RECT rect; + /* for scaling */ + int x, y; + int rWidth, rHeight; + double scale; + BOOL bReduce = FALSE; + + GetClientRect(hWnd, &rect); + + // Scale the bitmap to the frame specified by the passed in hwnd + if (ScreenShotLoaded()) + { + x = GetScreenShotWidth(); + y = GetScreenShotHeight(); + } + else + { + BITMAP bmp; + GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp); + + x = bmp.bmWidth; + y = bmp.bmHeight; + } + rWidth = (rect.right - rect.left); + rHeight = (rect.bottom - rect.top); + + /* Limit the screen shot to max height of 264 */ + if (restrict_height == TRUE && rHeight > 264) + { + rect.bottom = rect.top + 264; + rHeight = 264; + } + + /* If the bitmap does NOT fit in the screenshot area */ + if (x > rWidth - 10 || y > rHeight - 10) + { + rect.right -= 10; + rect.bottom -= 10; + rWidth -= 10; + rHeight -= 10; + bReduce = TRUE; + /* Try to scale it properly */ + /* assumes square pixels, doesn't consider aspect ratio */ + if (x > y) + scale = (double)rWidth / x; + else + scale = (double)rHeight / y; + + destW = (int)(x * scale); + destH = (int)(y * scale); + + /* If it's still too big, scale again */ + if (destW > rWidth || destH > rHeight) + { + if (destW > rWidth) + scale = (double)rWidth / destW; + else + scale = (double)rHeight / destH; + + destW = (int)(destW * scale); + destH = (int)(destH * scale); + } + } + else + { + if (GetStretchScreenShotLarger()) + { + rect.right -= 10; + rect.bottom -= 10; + rWidth -= 10; + rHeight -= 10; + bReduce = TRUE; + // Try to scale it properly + // assumes square pixels, doesn't consider aspect ratio + if (x < y) + scale = (double)rWidth / x; + else + scale = (double)rHeight / y; + + destW = (int)(x * scale); + destH = (int)(y * scale); + + // If it's too big, scale again + if (destW > rWidth || destH > rHeight) + { + if (destW > rWidth) + scale = (double)rWidth / destW; + else + scale = (double)rHeight / destH; + + destW = (int)(destW * scale); + destH = (int)(destH * scale); + } + } + else + { + // Use the bitmaps size if it fits + destW = x; + destH = y; + } + + } + + + destX = (rWidth - destW) / 2; + destY = (rHeight - destH) / 2; + + if (bReduce) + { + destX += 5; + destY += 5; + } + nBorder = GetScreenshotBorderSize(); + if( destX > nBorder+1) + pRect->left = destX - nBorder; + else + pRect->left = 2; + if( destY > nBorder+1) + pRect->top = destY - nBorder; + else + pRect->top = 2; + if( rWidth >= destX + destW + nBorder) + pRect->right = destX + destW + nBorder; + else + pRect->right = rWidth - pRect->left; + if( rHeight >= destY + destH + nBorder) + pRect->bottom = destY + destH + nBorder; + else + pRect->bottom = rHeight - pRect->top; +} + +/* + Switches to either fullscreen or normal mode, based on the + current mode. + + POSSIBLE BUGS: + Removing the menu might cause problems later if some + function tries to poll info stored in the menu. Don't + know if you've done that, but this was the only way I + knew to remove the menu dynamically. +*/ + +static void SwitchFullScreenMode(void) +{ + LONG lMainStyle; + + if (GetRunFullScreen()) + { + // Return to normal + + // Restore the menu + SetMenu(hMain, LoadMenu(hInst,MAKEINTRESOURCE(IDR_UI_MENU))); + + // Refresh the checkmarks + CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, GetShowFolderList() ? MF_CHECKED : MF_UNCHECKED); + CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, GetShowToolBar() ? MF_CHECKED : MF_UNCHECKED); + CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, GetShowStatusBar() ? MF_CHECKED : MF_UNCHECKED); + CheckMenuItem(GetMenu(hMain), ID_VIEW_PAGETAB, GetShowTabCtrl() ? MF_CHECKED : MF_UNCHECKED); + + // Add frame to dialog again + lMainStyle = GetWindowLong(hMain, GWL_STYLE); + lMainStyle = lMainStyle | WS_BORDER; + SetWindowLong(hMain, GWL_STYLE, lMainStyle); + + // Show the window maximized + if( GetWindowState() == SW_MAXIMIZE ) + { + ShowWindow(hMain, SW_NORMAL); + ShowWindow(hMain, SW_MAXIMIZE); + } + else + ShowWindow(hMain, SW_RESTORE); + + SetRunFullScreen(FALSE); + } + else + { + // Set to fullscreen + + // Remove menu + SetMenu(hMain,NULL); + + // Frameless dialog (fake fullscreen) + lMainStyle = GetWindowLong(hMain, GWL_STYLE); + lMainStyle = lMainStyle & (WS_BORDER ^ 0xffffffff); + SetWindowLong(hMain, GWL_STYLE, lMainStyle); + if( IsMaximized(hMain) ) + { + ShowWindow(hMain, SW_NORMAL); + SetWindowState( SW_MAXIMIZE ); + } + else + { + SetWindowState( SW_NORMAL ); + } + + ShowWindow(hMain, SW_MAXIMIZE); + + SetRunFullScreen(TRUE); + } +} + +/* + Checks to see if the mouse has been moved since this func + was first called (which is at startup). The reason for + storing the startup coordinates of the mouse is that when + a window is created it generates WM_MOUSEOVER events, even + though the user didn't actually move the mouse. So we need + to know when the WM_MOUSEOVER event is user-triggered. + + POSSIBLE BUGS: + Gets polled at every WM_MOUSEMOVE so it might cause lag, + but there's probably another way to code this that's + way better? + +*/ + +BOOL MouseHasBeenMoved(void) +{ + static int mouse_x = -1; + static int mouse_y = -1; + POINT p; + + GetCursorPos(&p); + + if (mouse_x == -1) // First time + { + mouse_x = p.x; + mouse_y = p.y; + } + + return (p.x != mouse_x || p.y != mouse_y); +} + +/* End of source file */ diff --git a/docs/release/src/osd/winui/winui.h b/docs/release/src/osd/winui/winui.h new file mode 100644 index 00000000000..a771ef56091 --- /dev/null +++ b/docs/release/src/osd/winui/winui.h @@ -0,0 +1,111 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef WINUI_H +#define WINUI_H + +#define WIN32_LEAN_AND_MEAN +#include <commctrl.h> +#include <commdlg.h> +#include "emu.h" +#include "pool.h" +#include "screenshot.h" +#include "drivenum.h" + +#define MAMENAME "HBMAME" +#define UI_INI_FILENAME MAMENAME "UI.ini" + +#ifdef PTR64 +#define MAMEUINAME MAMENAME "UI64" +#else +#define MAMEUINAME MAMENAME "UI32" +#endif + +#define SEARCH_PROMPT "" +#define SHOW_COLUMN_ROMS +#define SHOW_COLUMN_SAMPLES + +enum +{ + UNKNOWN = -1, + TAB_PICKER = 0, + TAB_DISPLAY, + TAB_MISC, + NUM_TABS +}; + +enum +{ + FILETYPE_INPUT_FILES = 1, + FILETYPE_SAVESTATE_FILES, + FILETYPE_WAVE_FILES, + FILETYPE_AVI_FILES, + FILETYPE_MNG_FILES, + FILETYPE_EFFECT_FILES, + FILETYPE_JOYMAP_FILES, + FILETYPE_DEBUGSCRIPT_FILES, + FILETYPE_CHEAT_FILE, + FILETYPE_HISTORY_FILE, + FILETYPE_MAMEINFO_FILE +}; + + +typedef struct +{ + INT resource; + const char *icon_name; +} ICONDATA; + +extern TCHAR last_directory[MAX_PATH]; + +typedef BOOL (WINAPI *common_file_dialog_proc)(LPOPENFILENAME lpofn); +BOOL CommonFileDialog(common_file_dialog_proc cfd,char *filename, int filetype); + +HWND GetMainWindow(void); +HWND GetTreeView(void); +void SetNumOptionFolders(int count); +void GetRealColumnOrder(int order[]); +HICON LoadIconFromFile(const char *iconname); +void UpdateScreenShot(void); +void ResizePickerControls(HWND hWnd); +void MamePlayGame(void); +int FindIconIndex(int nIconResource); +int FindIconIndexByName(const char *icon_name); +int GetSelectedPick(void); +object_pool *GetMameUIMemoryPool(void); + +void UpdateListView(void); + +// Move The in "The Title (notes)" to "Title, The (notes)" +char * ModifyThe(const char *str); + +// Convert Ampersand so it can display in a static control +char * ConvertAmpersandString(const char *s); + +// globalized for painting tree control +HBITMAP GetBackgroundBitmap(void); +HPALETTE GetBackgroundPalette(void); +MYBITMAPINFO* GetBackgroundInfo(void); +BOOL GetUseOldControl(void); +BOOL GetUseXPControl(void); + +int GetMinimumScreenShotWindowWidth(void); + +// we maintain an array of drivers sorted by name, useful all around +int GetParentIndex(const game_driver *driver); +int GetParentRomSetIndex(const game_driver *driver); +int GetGameNameIndex(const char *name); + +// sets text in part of the status bar on the main window +void SetStatusBarText(int part_index, const char *message); +void SetStatusBarTextF(int part_index, const char *fmt, ...) ATTR_PRINTF(2,3); + +int MameUIMain(HINSTANCE hInstance, + LPWSTR lpCmdLine, + int nCmdShow); + +BOOL MouseHasBeenMoved(void); + +const char * GetSearchText(void); + +#endif diff --git a/docs/release/src/version.cpp b/docs/release/src/version.cpp new file mode 100644 index 00000000000..44df5620301 --- /dev/null +++ b/docs/release/src/version.cpp @@ -0,0 +1,22 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/*************************************************************************** + + version.c + + Version string source file for MAME. + +***************************************************************************/ + +#define BARE_BUILD_VERSION "0.174" + +extern const char bare_build_version[]; +extern const char build_version[]; +const char bare_build_version[] = BARE_BUILD_VERSION; +#if defined(GIT_VERSION) +#define VERSION_TO_STRING(s) XVERSION_TO_STRING(s) +#define XVERSION_TO_STRING(ver) #ver +const char build_version[] = BARE_BUILD_VERSION " (" VERSION_TO_STRING(GIT_VERSION) ")"; +#else +const char build_version[] = BARE_BUILD_VERSION " (" __DATE__")"; +#endif |